Changeset 5158 for LMDZ6/branches/Amaury_dev/libf/phylmd/ecrad/driver
- Timestamp:
- Aug 2, 2024, 2:12:03 PM (3 months ago)
- Location:
- LMDZ6/branches/Amaury_dev/libf/phylmd/ecrad/driver
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/phylmd/ecrad/driver/ecrad_driver.F90
r4853 r5158 311 311 tstart = omp_get_wtime() 312 312 #endif 313 dojrepeat = 1,driver_config%nrepeat313 DO jrepeat = 1,driver_config%nrepeat 314 314 315 315 if (driver_config%do_parallel) then … … 321 321 322 322 !$OMP PARALLEL DO PRIVATE(istartcol, iendcol) SCHEDULE(RUNTIME) 323 dojblock = 1, nblock323 DO jblock = 1, nblock 324 324 ! Specify the range of columns to process. 325 325 istartcol = (jblock-1) * driver_config%nblocksize & -
LMDZ6/branches/Amaury_dev/libf/phylmd/ecrad/driver/ecrad_driver_config.F90
r4773 r5158 400 400 ! wavelength bound, noting that the number of diagnostics is one 401 401 ! fewer than the number of valid bounds 402 dojdiag = 0,NMaxSpectralDiag402 DO jdiag = 0,NMaxSpectralDiag 403 403 if (this%sw_diag_wavelength_bound(jdiag+1) < 0.0_jprb) then 404 404 this%n_sw_diag = max(0,jdiag-1) -
LMDZ6/branches/Amaury_dev/libf/phylmd/ecrad/driver/ecrad_driver_read_input.F90
r4773 r5158 563 563 564 564 ! Loop through all radiatively important gases 565 dojgas = 1,NMaxGases565 DO jgas = 1,NMaxGases 566 566 if (jgas == IH2O) then 567 567 if (file%exists('q')) then -
LMDZ6/branches/Amaury_dev/libf/phylmd/ecrad/driver/ecrad_ifs_driver.F90
r4773 r5158 369 369 tstart = omp_get_wtime() 370 370 #endif 371 dojrepeat = 1,driver_config%nrepeat371 DO jrepeat = 1,driver_config%nrepeat 372 372 373 373 ! if (driver_config%do_parallel) then … … 379 379 380 380 !$OMP PARALLEL DO PRIVATE(istartcol, iendcol) SCHEDULE(RUNTIME) 381 dojblock = 1, nblock381 DO jblock = 1, nblock 382 382 ! Specify the range of columns to process. 383 383 istartcol = (jblock-1) * driver_config%nblocksize & -
LMDZ6/branches/Amaury_dev/libf/phylmd/ecrad/driver/ecrad_ifs_driver_blocked.F90
r4773 r5158 371 371 tstart = omp_get_wtime() 372 372 #endif 373 dojrepeat = 1,driver_config%nrepeat373 DO jrepeat = 1,driver_config%nrepeat 374 374 375 375 ! if (driver_config%do_parallel) then … … 378 378 !$OMP PARALLEL DO SCHEDULE(DYNAMIC,1)& 379 379 !$OMP&PRIVATE(JRL,IBEG,IEND,IL,IB) 380 dojrl=1,ncol,nproma380 DO jrl=1,ncol,nproma 381 381 ibeg=jrl 382 382 iend=min(ibeg+nproma-1,ncol) -
LMDZ6/branches/Amaury_dev/libf/phylmd/ecrad/driver/ifs_blocking.F90
r4773 r5158 329 329 !$OMP PARALLEL DO SCHEDULE(RUNTIME)& 330 330 !$OMP&PRIVATE(IB,IFLD) 331 doib=1,ngpblks332 doifld=1,ifs_config%ifldstot331 DO ib=1,ngpblks 332 DO ifld=1,ifs_config%ifldstot 333 333 zrgp(:,ifld,ib) = 0._jprb 334 334 enddo … … 351 351 !$OMP PARALLEL DO SCHEDULE(RUNTIME)& 352 352 !$OMP&PRIVATE(JRL,IBEG,IEND,IL,IB,JAER,JOFF,JLEV,JALB) 353 dojrl=1,ncol,nproma353 DO jrl=1,ncol,nproma 354 354 355 355 ibeg=jrl … … 363 363 zrgp(1:il,ifs_config%iamu0,ib) = single_level%cos_sza(ibeg:iend) ! cosine of solar zenith ang (mu0) 364 364 365 dojemiss=1,yderad%nlwemiss365 DO jemiss=1,yderad%nlwemiss 366 366 zrgp(1:il,ifs_config%iemiss+jemiss-1,ib) = single_level%lw_emissivity(ibeg:iend,jemiss) 367 367 enddo … … 378 378 ! zrgp(1:il,islon,ib) = ??? 379 379 380 dojalb=1,yderad%nsw380 DO jalb=1,yderad%nsw 381 381 zrgp(1:il,ifs_config%iald+jalb-1,ib) = single_level%sw_albedo(ibeg:iend,jalb) 382 382 enddo 383 383 384 384 if (allocated(single_level%sw_albedo_direct)) then 385 dojalb=1,yderad%nsw385 DO jalb=1,yderad%nsw 386 386 zrgp(1:il,ifs_config%ialp+jalb-1,ib) = single_level%sw_albedo_direct(ibeg:iend,jalb) 387 387 end do 388 388 else 389 dojalb=1,yderad%nsw389 DO jalb=1,yderad%nsw 390 390 zrgp(1:il,ifs_config%ialp+jalb-1,ib) = single_level%sw_albedo(ibeg:iend,jalb) 391 391 end do 392 392 end if 393 393 394 dojlev=1,nlev394 DO jlev=1,nlev 395 395 zrgp(1:il,ifs_config%iti+jlev-1,ib) = temperature_fl(ibeg:iend,jlev) ! full level temperature 396 396 zrgp(1:il,ifs_config%ipr+jlev-1,ib) = pressure_fl(ibeg:iend,jlev) ! full level pressure … … 398 398 enddo 399 399 400 dojlev=1,nlev400 DO jlev=1,nlev 401 401 zrgp(1:il,ifs_config%iwv+jlev-1,ib) = gas%mixing_ratio(ibeg:iend,jlev,IH2O) ! this is already in MassMixingRatio units 402 402 if (rad_config%do_clouds) then … … 421 421 if (yderad%naermacc == 1) then 422 422 joff=ifs_config%iaero 423 dojaer=1,rad_config%n_aerosol_types424 dojlev=1,nlev423 DO jaer=1,rad_config%n_aerosol_types 424 DO jlev=1,nlev 425 425 zrgp(1:il,joff,ib) = aerosol%mixing_ratio(ibeg:iend,jlev,jaer) 426 426 joff=joff+1 … … 429 429 endif 430 430 431 dojlev=1,nlev+1431 DO jlev=1,nlev+1 432 432 ! zrgp(1:il,ihpr+jlev-1,ib) = ??? 433 433 zrgp(1:il,ifs_config%iaprs+jlev-1,ib) = thermodynamics%pressure_hl(ibeg:iend,jlev) … … 453 453 ! local workaround variables for standalone input files 454 454 if (rad_config%do_clouds) then 455 dojlev=1,nlev455 DO jlev=1,nlev 456 456 ! missing full-level temperature and pressure as well as land-sea-mask 457 457 zrgp(1:il,ifs_config%ire_liq+jlev-1,ib) = cloud%re_liq(ibeg:iend,jlev) 458 458 zrgp(1:il,ifs_config%ire_ice+jlev-1,ib) = cloud%re_ice(ibeg:iend,jlev) 459 459 enddo 460 dojlev=1,nlev-1460 DO jlev=1,nlev-1 461 461 ! for the love of it, I can't figure this one out. Probably to do with 462 462 ! my crude approach of setting PGEMU? … … 465 465 if(present(iseed)) iseed(1:il,ib) = single_level%iseed(ibeg:iend) 466 466 else 467 dojlev=1,nlev467 DO jlev=1,nlev 468 468 ! missing full-level temperature and pressure as well as land-sea-mask 469 469 zrgp(1:il,ifs_config%ire_liq+jlev-1,ib) = 0._jprb 470 470 zrgp(1:il,ifs_config%ire_ice+jlev-1,ib) = 0._jprb 471 471 enddo 472 dojlev=1,nlev-1472 DO jlev=1,nlev-1 473 473 zrgp(1:il,ifs_config%ioverlap+jlev-1,ib) = 0._jprb 474 474 enddo … … 531 531 !$OMP PARALLEL DO SCHEDULE(RUNTIME)& 532 532 !$OMP&PRIVATE(JRL,IBEG,IEND,IL,IB,JLEV,JG) 533 dojrl=1,ncol,nproma533 DO jrl=1,ncol,nproma 534 534 ibeg=jrl 535 535 iend=min(ibeg+nproma-1,ncol) … … 537 537 ib=(jrl-1)/nproma+1 538 538 539 dojlev=1,nlev+1539 DO jlev=1,nlev+1 540 540 flux%sw_up(ibeg:iend,jlev) = zrgp(1:il,ifs_config%ifrso+jlev-1,ib) 541 541 flux%lw_up(ibeg:iend,jlev) = zrgp(1:il,ifs_config%ifrth+jlev-1,ib) … … 561 561 emissivity_out(ibeg:iend) = zrgp(1:il,ifs_config%iemit,ib) 562 562 if (yradiation%yrerad%lapproxswupdate) then 563 dojg=1,yradiation%yrerad%nsw563 DO jg=1,yradiation%yrerad%nsw 564 564 flux_diffuse_band(ibeg:iend,jg) = zrgp(1:il,ifs_config%iswdiffuseband+jg-1,ib) 565 565 flux_direct_band(ibeg:iend,jg) = zrgp(1:il,ifs_config%iswdirectband+jg-1,ib) -
LMDZ6/branches/Amaury_dev/libf/phylmd/ecrad/driver/test_cloud_generator.F90
r4773 r5158 57 57 & od_scaling, total_cloud_cover) 58 58 59 dojlev = 1,nlev60 dojcol = 1,ncol59 DO jlev = 1,nlev 60 DO jcol = 1,ncol 61 61 write(6,'(f5.2,a)',advance='no') od_scaling(jcol,jlev), ' ' 62 62 end do -
LMDZ6/branches/Amaury_dev/libf/phylmd/ecrad/driver/test_random_number_generator.F90
r4773 r5158 29 29 call random_number_generator%initialize(itype=IRngType, iseed=212075152, & 30 30 & nmaxstreams=streammax) 31 dojl = 1,131 DO jl = 1,1 32 32 print *, 'initial_state = [ ', int(random_number_generator%istate(1:streammax),jpib), ' ]' 33 33 call random_number_generator%uniform_distribution(vec) -
LMDZ6/branches/Amaury_dev/libf/phylmd/ecrad/driver/test_spartacus_math.F90
r4773 r5158 45 45 46 46 write(*,*) 'A =' 47 doj = 1,m47 DO j = 1,m 48 48 write(*,*) A(1,j,:) 49 49 end do 50 50 51 51 write(*,*) 'B =' 52 doj = 1,m52 DO j = 1,m 53 53 write(*,*) B(1,j,:) 54 54 end do … … 60 60 61 61 write(*,*) 'C = A*B =' 62 doj = 1,m62 DO j = 1,m 63 63 write(*,*) C(1,j,:) 64 64 end do … … 70 70 71 71 write(*,*) 'C = A\B =' 72 doj = 1,m72 DO j = 1,m 73 73 write(*,*) C(1,j,:) 74 74 end do … … 78 78 79 79 write(*,*) 'expm(A) =' 80 doj = 1,m80 DO j = 1,m 81 81 write(*,*) A(1,j,:) 82 82 end do … … 93 93 94 94 write(*,*) 'fast_expm(A) = ' 95 doj = 1,m95 DO j = 1,m 96 96 write(*,*) A(1,j,:) 97 97 end do … … 106 106 107 107 write(*,*) 'expm(A) = ' 108 doj = 1,m108 DO j = 1,m 109 109 write(*,*) A(1,j,:) 110 110 end do … … 115 115 116 116 write(*,*) 'expm(zeros) = ' 117 doj = 1,m117 DO j = 1,m 118 118 write(*,*) A(1,j,:) 119 119 end do … … 124 124 125 125 write(*,*) 'fast_expm(A) = ' 126 doj = 1,m126 DO j = 1,m 127 127 write(*,*) A(1,j,:) 128 128 end do … … 140 140 141 141 write(*,*) 'expm(A) = ' 142 doj = 1,m142 DO j = 1,m 143 143 write(*,*) A(1,j,:) 144 144 end do … … 149 149 150 150 write(*,*) 'expm(zeros) = ' 151 doj = 1,m151 DO j = 1,m 152 152 write(*,*) A(1,j,:) 153 153 end do
Note: See TracChangeset
for help on using the changeset viewer.