- Timestamp:
- Mar 19, 2026, 2:07:02 PM (10 days ago)
- Location:
- trunk/LMDZ.PLUTO/libf/phypluto
- Files:
-
- 6 edited
-
callcorrk.F90 (modified) (7 diffs)
-
dyn1d/kcm1d.F90 (modified) (3 diffs)
-
optci.F90 (modified) (4 diffs)
-
optcv.F90 (modified) (1 diff)
-
phys_state_var_mod.F90 (modified) (3 diffs)
-
physiq_mod.F90 (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.PLUTO/libf/phypluto/callcorrk.F90
r4073 r4144 12 12 fluxabs_sw,fluxtop_dn, & 13 13 OLR_nu,OSR_nu,GSR_nu, & 14 int_dtaui,int_dtauv,int_dtauv_aer,int_wbarv_aer, & 14 int_dtaui,int_dtauv, & 15 int_dtauv_aer,int_dtaui_aer,int_wbarv_aer, & 15 16 tau_col,firstcall,lastcall) 16 17 … … 106 107 REAL,INTENT(OUT) :: int_dtaui(ngrid,nlayer,L_NSPECTI) ! IR optical thickness of layers within narrowbands for diags (). 107 108 REAL,INTENT(OUT) :: int_dtauv(ngrid,nlayer,L_NSPECTV) ! VI optical thickness of layers within narrowbands for diags (). 109 REAL,INTENT(OUT) :: int_dtaui_aer(ngrid,nlayer,L_NSPECTI,naerkind) ! Aerosol IR optical thickness of layers within narrowbands for diags (). 108 110 REAL,INTENT(OUT) :: int_dtauv_aer(ngrid,nlayer,L_NSPECTV,naerkind) ! Aerosol VI optical thickness of layers within narrowbands for diags (). 109 111 REAL,INTENT(OUT) :: int_wbarv_aer(ngrid,nlayer,L_NSPECTV,naerkind) ! Aerosol VI single scattering albedo within narrowbands for diags (). … … 145 147 REAL*8,allocatable,save :: dtaui(:,:,:) 146 148 REAL*8,allocatable,save :: dtauv(:,:,:) 149 REAL*8,allocatable,save :: dtaui_aer(:,:,:) 147 150 REAL*8,allocatable,save :: dtauv_aer(:,:,:) 148 151 REAL*8,allocatable,save :: cosbv(:,:,:) … … 151 154 REAL*8,allocatable,save :: wbarv(:,:,:) 152 155 REAL*8,allocatable,save :: wbarv_aer(:,:,:) 153 !$OMP THREADPRIVATE(dtaui,dtauv,dtau v_aer,cosbv,cosbi,wbari,wbarv,wbarv_aer)156 !$OMP THREADPRIVATE(dtaui,dtauv,dtaui_aer,dtauv_aer,cosbv,cosbi,wbari,wbarv,wbarv_aer) 154 157 REAL*8,allocatable,save :: tauv(:,:,:) 155 158 REAL*8,allocatable,save :: taucumv(:,:,:) … … 370 373 write(*,*) "memory allocation failed for dtauv!" 371 374 call abort_physic(subname,'allocation failure for dtauv',1) 375 endif 376 endif 377 if(.not.allocated(dtaui_aer)) then 378 ALLOCATE(dtaui_aer(L_NLAYRAD,L_NSPECTI,naerkind), stat=ok) 379 if (ok/=0) then 380 write(*,*) "memory allocation failed for dtaui_aer!" 381 call abort_physic(subname,'allocation failure for dtaui_aer',1) 372 382 endif 373 383 endif … … 1024 1034 call optci(plevrad,tlevrad,dtaui,taucumi, & 1025 1035 qxiaer,qsiaer,giaer,cosbi,wbari,tauaero,tmid,pmid, & 1026 taugsurfi,qvar,muvarrad )1036 taugsurfi,qvar,muvarrad,dtaui_aer) 1027 1037 1028 1038 call sfluxi(plevrad,tlevrad,dtaui,taucumi,ubari,albi, & … … 1102 1112 ! Aerosol optical thickness diagnostics 1103 1113 int_dtauv_aer(ig,:,:,:) = dtauv_aer(:,:,:) 1114 int_dtaui_aer(ig,:,:,:) = dtaui_aer(:,:,:) 1104 1115 int_wbarv_aer(ig,:,:,:) = wbarv_aer(:,:,:) 1105 1116 ! Total optical thickness diagnostics -
trunk/LMDZ.PLUTO/libf/phypluto/dyn1d/kcm1d.F90
r3929 r4144 84 84 real int_dtaui(1,llm,L_NSPECTI) 85 85 real int_dtauv(1,llm,L_NSPECTV) 86 real int_dtaui_aer(1,llm,L_NSPECTI,naerkind) 86 87 real int_dtauv_aer(1,llm,L_NSPECTV,naerkind) 87 88 real int_wbarv_aer(1,llm,L_NSPECTV,naerkind) … … 380 381 fluxsurfabs_sw,fluxtop_lw, & 381 382 fluxabs_sw,fluxtop_dn,OLR_nu,OSR_nu,GSR_nu, & 382 int_dtaui,int_dtauv,int_dtauv_aer,int_wbarv_aer,& 383 int_dtaui,int_dtauv, & 384 int_dtauv_aer,int_dtaui_aer,int_wbarv_aer, & 383 385 tau_col,firstcall,lastcall) 384 386 … … 431 433 dtlw,dtsw,fluxsurf_lw,fluxsurf_sw,fluxsurfabs_sw, & 432 434 fluxtop_lw, fluxabs_sw,fluxtop_dn,OLR_nu,OSR_nu,GSR_nu, & 433 int_dtaui,int_dtauv,int_dtauv_aer,int_wbarv_aer, & 435 int_dtaui,int_dtauv, & 436 int_dtauv_aer,int_dtaui_aer,int_wbarv_aer, & 434 437 tau_col,firstcall,lastcall) 435 438 -
trunk/LMDZ.PLUTO/libf/phypluto/optci.F90
r3959 r4144 7 7 subroutine optci(PLEV,TLEV,DTAUI,TAUCUMI, & 8 8 QXIAER,QSIAER,GIAER,COSBI,WBARI,TAUAERO, & 9 TMID,PMID,TAUGSURF,QVAR,MUVAR )9 TMID,PMID,TAUGSURF,QVAR,MUVAR,DTAUI_AER) 10 10 11 11 use radinc_h, only: L_LEVELS, L_NLAYRAD, L_NSPECTI, L_NGAUSS, & … … 55 55 56 56 ! for aerosols 57 real*8,intent(in) :: QXIAER(L_LEVELS,L_NSPECTI,NAERKIND) 58 real*8,intent(in) :: QSIAER(L_LEVELS,L_NSPECTI,NAERKIND) 59 real*8,intent(in) :: GIAER(L_LEVELS,L_NSPECTI,NAERKIND) 60 real*8,intent(in) :: TAUAERO(L_LEVELS,NAERKIND) 57 real*8,intent(in) :: QXIAER(L_LEVELS,L_NSPECTI,NAERKIND) 58 real*8,intent(in) :: QSIAER(L_LEVELS,L_NSPECTI,NAERKIND) 59 real*8,intent(in) :: GIAER(L_LEVELS,L_NSPECTI,NAERKIND) 60 real*8,intent(in) :: TAUAERO(L_LEVELS,NAERKIND) 61 real*8,intent(out) :: DTAUI_AER(L_NLAYRAD,L_NSPECTI,NAERKIND) 61 62 62 63 ! local variables (saved for convenience as need be allocated) … … 139 140 dtaui(:,:,:) = 0.0 140 141 taucumi(:,:,:) = 0.0 142 dtaui_aer(:,:,:) = 0.0 141 143 142 144 taugsurf(:,:) = 0.0 … … 523 525 END DO ! NW spectral loop 524 526 527 ! Aerosols extinction optical depths 528 DO iaer = 1, naerkind 529 DO nw = 1, L_NSPECTI 530 DO L = 1, L_NLAYRAD-1 531 K = 2*L+1 532 DTAUI_AER(L,nw,iaer) = TAEROS(K,nw,iaer) + TAEROS(K+1,nw,iaer) 533 END DO ! L vertical loop 534 535 ! Last level 536 !----------- 537 L = L_NLAYRAD 538 K = 2*L+1 539 DTAUI_AER(L,nw,iaer) = TAEROS(K,nw,iaer) 540 END DO ! nw spectral loop 541 END DO ! iaer loop 542 525 543 ! Total extinction optical depths 526 527 544 DO NG=1,L_NGAUSS ! full gauss loop 528 545 DO NW=1,L_NSPECTI -
trunk/LMDZ.PLUTO/libf/phypluto/optcv.F90
r3959 r4144 506 506 ENDIF 507 507 END DO ! nw spectral loop 508 END DO ! iaer Gaussloop508 END DO ! iaer loop 509 509 510 510 ! Total extinction optical depths -
trunk/LMDZ.PLUTO/libf/phypluto/phys_state_var_mod.F90
r3929 r4144 73 73 real,dimension(:,:,:),allocatable,save :: int_dtaui ! IR optical thickness of layers within narrowbands for diags (). 74 74 real,dimension(:,:,:,:),allocatable,save :: int_dtauv_aer ! Aerosol VI optical thickness of layers within narrowbands for diags (). 75 real,dimension(:,:,:,:),allocatable,save :: int_dtaui_aer ! Aerosol IR optical thickness of layers within narrowbands for diags (). 75 76 real,dimension(:,:,:,:),allocatable,save :: int_wbarv_aer ! Aerosol VI single scattering albedo within narrowbands for diags (). 76 !$OMP THREADPRIVATE(int_dtaui,int_dtauv,int_dtauv_aer,int_ wbarv_aer)77 !$OMP THREADPRIVATE(int_dtaui,int_dtauv,int_dtauv_aer,int_dtaui_aer,int_wbarv_aer) 77 78 78 79 real,allocatable,dimension(:),save :: tau_col ! Total Aerosol Optical Depth. … … 160 161 ALLOCATE(int_dtauv(klon,klev,L_NSPECTV)) 161 162 ALLOCATE(int_dtauv_aer(klon,klev,L_NSPECTV,naerkind)) 163 ALLOCATE(int_dtaui_aer(klon,klev,L_NSPECTI,naerkind)) 162 164 ALLOCATE(int_wbarv_aer(klon,klev,L_NSPECTV,naerkind)) 163 165 ALLOCATE(sensibFlux(klon)) … … 238 240 DEALLOCATE(int_dtauv) 239 241 DEALLOCATE(int_dtauv_aer) 242 DEALLOCATE(int_dtaui_aer) 240 243 DEALLOCATE(int_wbarv_aer) 241 244 DEALLOCATE(sensibFlux) -
trunk/LMDZ.PLUTO/libf/phypluto/physiq_mod.F90
r4132 r4144 1106 1106 fluxsurfabs_sw,fluxtop_lw, & 1107 1107 fluxabs_sw,fluxtop_dn,OLR_nu,OSR_nu,GSR_nu, & 1108 int_dtaui,int_dtauv,int_dtauv_aer,int_wbarv_aer, & 1108 int_dtaui,int_dtauv, & 1109 int_dtauv_aer,int_dtaui_aer,int_wbarv_aer, & 1109 1110 tau_col,firstcall,lastcall) 1110 1111 ! Radiative flux from the sky absorbed by the surface (W.m-2). … … 2506 2507 call write_output('dtaui_15050nm','Layer optical thickness attenuation in IR band','',int_dtaui(:,nlayer:1:-1,9)) ! 15.050 um 2507 2508 !if (callmufi) then 2508 ! ! Aerosol optical thickness 2509 ! ! Aerosol optical thickness (VI diagnostics - /!\ for 28+3 VI bands) 2509 2510 ! call write_output('dtauv_aers_185nm','Layer sph. aer. optical thickness attenuation in VI band','',int_dtauv_aer(:,nlayer:1:-1,31,1)) 2510 2511 ! call write_output('dtauv_aerf_185nm','Layer fra. aer. optical thickness attenuation in VI band','',int_dtauv_aer(:,nlayer:1:-1,31,2)) 2511 ! ! Aerosols single scattering albedo 2512 ! ! Aerosol optical thickness (IR diagnostics - /!\ for 20+6 IR bands) 2513 ! call write_output('dtaui_aers_25250nm','Layer sph. aer. optical thickness attenuation in IR band','',int_dtaui_aer(:,nlayer:1:-1,3,1)) 2514 ! call write_output('dtaui_aerf_25250nm','Layer fra. aer. optical thickness attenuation in IR band','',int_dtaui_aer(:,nlayer:1:-1,3,2)) 2515 ! call write_output('dtaui_aers_20800nm','Layer sph. aer. optical thickness attenuation in IR band','',int_dtaui_aer(:,nlayer:1:-1,5,1)) 2516 ! call write_output('dtaui_aerf_20800nm','Layer fra. aer. optical thickness attenuation in IR band','',int_dtaui_aer(:,nlayer:1:-1,5,2)) 2517 ! call write_output('dtaui_aers_18000nm','Layer sph. aer. optical thickness attenuation in IR band','',int_dtaui_aer(:,nlayer:1:-1,7,1)) 2518 ! call write_output('dtaui_aerf_18000nm','Layer fra. aer. optical thickness attenuation in IR band','',int_dtaui_aer(:,nlayer:1:-1,7,2)) 2519 ! call write_output('dtaui_aers_15050nm','Layer sph. aer. optical thickness attenuation in IR band','',int_dtaui_aer(:,nlayer:1:-1,9,1)) 2520 ! call write_output('dtaui_aerf_15050nm','Layer fra. aer. optical thickness attenuation in IR band','',int_dtaui_aer(:,nlayer:1:-1,9,2)) 2521 ! ! Aerosols single scattering albedo (VI diagnostics - /!\ for 28+3 VI bands) 2512 2522 ! call write_output('wbarv_aers_185nm','Layer sph. aer. single scattering albedo in VI band','',int_wbarv_aer(:,nlayer:1:-1,31,1)) 2513 2523 ! call write_output('wbarv_aerf_185nm','Layer fra. aer. single scattering albedo in VI band','',int_wbarv_aer(:,nlayer:1:-1,31,2))
Note: See TracChangeset
for help on using the changeset viewer.
