Changeset 3196 for trunk/LMDZ.PLUTO/libf
- Timestamp:
- Jan 31, 2024, 5:30:43 PM (11 months ago)
- Location:
- trunk/LMDZ.PLUTO/libf/phypluto
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.PLUTO/libf/phypluto/aeroptproperties.F90
r3184 r3196 38 38 ! ============================================================== 39 39 40 ! Local variables 40 ! Local variables 41 41 ! --------------- 42 42 … … 198 198 ! REAL :: omegaREFvis3d(ngrid,nlayer,naerkind) 199 199 ! REAL :: omegaREFir3d(ngrid,nlayer,naerkind) 200 201 REAL :: minrad ! minimal radius in table .dat radiustab (outside 0) 202 REAL :: maxrad 200 203 201 204 ! 0. Allocate local saved arrays at firstcall … … 246 249 ALLOCATE(qsqrefIRb(L_NSPECTI,ngau,naerkind)) 247 250 ALLOCATE(qrefIRb(ngau,naerkind)) 248 251 249 252 ALLOCATE(omegIRa(L_NSPECTI,ngau,naerkind)) 250 253 ALLOCATE(omegrefIRa(ngau,naerkind)) … … 253 256 ALLOCATE(gIRa(L_NSPECTI,ngau,naerkind)) 254 257 ALLOCATE(gIRb(L_NSPECTI,ngau,naerkind)) 255 258 256 259 first_allocate=.false. 257 260 ENDIF ! of IF (first_allocate) … … 317 320 enddo 318 321 endif 322 323 ! check that radiustab (table.dat) cover the reffrad used for haze : iaer=1 324 minrad=min(MINVAL(radiustab(1,1,1:nsize(1,1))),MINVAL(radiustab(1,2,1:nsize(1,2)))) 325 maxrad=min(MAXVAL(radiustab(1,1,1:nsize(1,1))),MAXVAL(radiustab(1,2,1:nsize(1,2)))) 326 IF ((MINVAL(reffrad).LE.minrad).OR.(MAXVAL(reffrad).GE.maxrad)) then 327 WRITE(*,*) 'Warning: particle size in grid box #' 328 WRITE(*,*) ig,' is too large to be used by the ' 329 WRITE(*,*) 'radiative transfer; please extend the ' 330 WRITE(*,*) 'interpolation grid to larger grain sizes.' 331 WRITE(*,*) 'radiustab=',minrad,'-',maxrad 332 WRITE(*,*) 'reffrad=',MINVAL(reffrad),'-',MAXVAL(reffrad) 333 stop 334 ENDIF 319 335 320 336 firstcall = .false. … … 412 428 qsqrefVISb(m,gausind,iaer)= & 413 429 (1-kint)*QVISsQREF(m,iaer,radius_id) + & 414 kint*QVISsQREF(m,iaer,radius_id+1) 430 kint*QVISsQREF(m,iaer,radius_id+1) 415 431 omegVISb(m,gausind,iaer)= & 416 432 (1-kint)*omegaVIS(m,iaer,radius_id) + & … … 500 516 EXP(-dista(j,1,iaer,idomain,gausind) * & 501 517 dista(j,1,iaer,idomain,gausind) * & 502 0.5e0/sizedistk2)/(radiusm-drad) 518 0.5e0/sizedistk2)/(radiusm-drad) 503 519 dista(j,1,iaer,idomain,gausind) = & 504 520 dista(j,1,iaer,idomain,gausind) / & … … 540 556 ! Convolution: 541 557 qextVISgrid(j,1,m,iaer) = & 542 qextVISgrid(j,1,m,iaer) + & 558 qextVISgrid(j,1,m,iaer) + & 543 559 weightgaus(gausind) * & 544 560 ( & … … 609 625 ( & 610 626 omegrefVISb(gausind,iaer) * & 611 qrefVISb(gausind,iaer) * & 627 qrefVISb(gausind,iaer) * & 612 628 pi*radGAUSb(gausind,iaer,idomain) * & 613 629 radGAUSb(gausind,iaer,idomain) * & … … 622 638 623 639 qrefVISgrid(j,1,iaer)=qrefVISgrid(j,1,iaer) / & 624 normd(j,1,iaer,idomain) 640 normd(j,1,iaer,idomain) 625 641 qscatrefVISgrid(j,1,iaer)=qscatrefVISgrid(j,1,iaer) / & 626 642 normd(j,1,iaer,idomain) … … 736 752 ) 737 753 ENDDO 738 754 739 755 qrefIRgrid(j,1,iaer)=qrefIRgrid(j,1,iaer) / & 740 756 normd(j,1,iaer,idomain) … … 789 805 omegaIR3d(ig,lg,m,iaer) = & 790 806 k1*omegIRgrid(grid_i,1,m,iaer) + & 791 k2*omegIRgrid(grid_i+1,1,m,iaer) 792 gIR3d(ig,lg,m,iaer) = & 807 k2*omegIRgrid(grid_i+1,1,m,iaer) 808 gIR3d(ig,lg,m,iaer) = & 793 809 k1*gIRgrid(grid_i,1,m,iaer) + & 794 810 k2*gIRgrid(grid_i+1,1,m,iaer) -
trunk/LMDZ.PLUTO/libf/phypluto/physiq_mod.F90
r3195 r3196 1474 1474 enddo 1475 1475 1476 ! Generalised for arbitrary aerosols now. By LK 1476 if (aerohaze) then 1477 ! Generalised for arbitrary aerosols now. By LK 1477 1478 reffcol(1:ngrid,1:naerkind)=0.0 1478 1479 ! call n2_reffrad(ngrid,nlayer,nq,zq,reffrad(1,1,iaero_haze)) … … 1496 1497 ENDDO 1497 1498 ENDDO 1499 endif ! end of aerohaze 1498 1500 endif ! end of 'tracer' 1499 1501
Note: See TracChangeset
for help on using the changeset viewer.