Changeset 4144 for trunk


Ignore:
Timestamp:
Mar 19, 2026, 2:07:02 PM (10 days ago)
Author:
debatzbr
Message:

Pluto PCM: Add IR opacity diagnostics for haze only.
BBT

Location:
trunk/LMDZ.PLUTO/libf/phypluto
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.PLUTO/libf/phypluto/callcorrk.F90

    r4073 r4144  
    1212          fluxabs_sw,fluxtop_dn,                               &
    1313          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,           &
    1516          tau_col,firstcall,lastcall)
    1617
     
    106107      REAL,INTENT(OUT) :: int_dtaui(ngrid,nlayer,L_NSPECTI)              ! IR optical thickness of layers within narrowbands for diags ().
    107108      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 ().
    108110      REAL,INTENT(OUT) :: int_dtauv_aer(ngrid,nlayer,L_NSPECTV,naerkind) ! Aerosol VI optical thickness of layers within narrowbands for diags ().
    109111      REAL,INTENT(OUT) :: int_wbarv_aer(ngrid,nlayer,L_NSPECTV,naerkind) ! Aerosol VI single scattering albedo within narrowbands for diags ().
     
    145147      REAL*8,allocatable,save :: dtaui(:,:,:)
    146148      REAL*8,allocatable,save :: dtauv(:,:,:)
     149      REAL*8,allocatable,save :: dtaui_aer(:,:,:)
    147150      REAL*8,allocatable,save :: dtauv_aer(:,:,:)
    148151      REAL*8,allocatable,save :: cosbv(:,:,:)
     
    151154      REAL*8,allocatable,save :: wbarv(:,:,:)
    152155      REAL*8,allocatable,save :: wbarv_aer(:,:,:)
    153 !$OMP THREADPRIVATE(dtaui,dtauv,dtauv_aer,cosbv,cosbi,wbari,wbarv,wbarv_aer)
     156!$OMP THREADPRIVATE(dtaui,dtauv,dtaui_aer,dtauv_aer,cosbv,cosbi,wbari,wbarv,wbarv_aer)
    154157      REAL*8,allocatable,save :: tauv(:,:,:)
    155158      REAL*8,allocatable,save :: taucumv(:,:,:)
     
    370373              write(*,*) "memory allocation failed for dtauv!"
    371374              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)
    372382           endif
    373383         endif
     
    10241034         call optci(plevrad,tlevrad,dtaui,taucumi,                  &
    10251035              qxiaer,qsiaer,giaer,cosbi,wbari,tauaero,tmid,pmid,    &
    1026               taugsurfi,qvar,muvarrad)
     1036              taugsurfi,qvar,muvarrad,dtaui_aer)
    10271037
    10281038         call sfluxi(plevrad,tlevrad,dtaui,taucumi,ubari,albi,      &
     
    11021112         ! Aerosol optical thickness diagnostics
    11031113         int_dtauv_aer(ig,:,:,:) = dtauv_aer(:,:,:)
     1114         int_dtaui_aer(ig,:,:,:) = dtaui_aer(:,:,:)
    11041115         int_wbarv_aer(ig,:,:,:) = wbarv_aer(:,:,:)
    11051116         ! Total optical thickness diagnostics
  • trunk/LMDZ.PLUTO/libf/phypluto/dyn1d/kcm1d.F90

    r3929 r4144  
    8484  real int_dtaui(1,llm,L_NSPECTI)
    8585  real int_dtauv(1,llm,L_NSPECTV)
     86  real int_dtaui_aer(1,llm,L_NSPECTI,naerkind)
    8687  real int_dtauv_aer(1,llm,L_NSPECTV,naerkind)
    8788  real int_wbarv_aer(1,llm,L_NSPECTV,naerkind)
     
    380381          fluxsurfabs_sw,fluxtop_lw,                      &
    381382          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,      &
    383385          tau_col,firstcall,lastcall)
    384386
     
    431433       dtlw,dtsw,fluxsurf_lw,fluxsurf_sw,fluxsurfabs_sw,       &
    432434       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,              &
    434437       tau_col,firstcall,lastcall)
    435438
  • trunk/LMDZ.PLUTO/libf/phypluto/optci.F90

    r3959 r4144  
    77subroutine optci(PLEV,TLEV,DTAUI,TAUCUMI,      &
    88     QXIAER,QSIAER,GIAER,COSBI,WBARI,TAUAERO,  &
    9      TMID,PMID,TAUGSURF,QVAR,MUVAR)
     9     TMID,PMID,TAUGSURF,QVAR,MUVAR,DTAUI_AER)
    1010
    1111  use radinc_h, only: L_LEVELS, L_NLAYRAD, L_NSPECTI, L_NGAUSS, &
     
    5555
    5656  ! 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)
    6162
    6263  ! local variables (saved for convenience as need be allocated)
     
    139140  dtaui(:,:,:) = 0.0
    140141  taucumi(:,:,:) = 0.0
     142  dtaui_aer(:,:,:) = 0.0
    141143
    142144  taugsurf(:,:) = 0.0
     
    523525  END DO                    ! NW spectral loop
    524526
     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
    525543  ! Total extinction optical depths
    526 
    527544  DO NG=1,L_NGAUSS       ! full gauss loop
    528545     DO NW=1,L_NSPECTI       
  • trunk/LMDZ.PLUTO/libf/phypluto/optcv.F90

    r3959 r4144  
    506506     ENDIF
    507507   END DO ! nw spectral loop
    508   END DO ! iaer Gauss loop
     508  END DO ! iaer loop
    509509
    510510  ! Total extinction optical depths
  • trunk/LMDZ.PLUTO/libf/phypluto/phys_state_var_mod.F90

    r3929 r4144  
    7373      real,dimension(:,:,:),allocatable,save :: int_dtaui       ! IR optical thickness of layers within narrowbands for diags ().
    7474      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 ().
    7576      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)
    7778
    7879      real,allocatable,dimension(:),save :: tau_col ! Total Aerosol Optical Depth.
     
    160161        ALLOCATE(int_dtauv(klon,klev,L_NSPECTV))
    161162        ALLOCATE(int_dtauv_aer(klon,klev,L_NSPECTV,naerkind))
     163        ALLOCATE(int_dtaui_aer(klon,klev,L_NSPECTI,naerkind))
    162164        ALLOCATE(int_wbarv_aer(klon,klev,L_NSPECTV,naerkind))
    163165        ALLOCATE(sensibFlux(klon))
     
    238240        DEALLOCATE(int_dtauv)
    239241        DEALLOCATE(int_dtauv_aer)
     242        DEALLOCATE(int_dtaui_aer)
    240243        DEALLOCATE(int_wbarv_aer)
    241244        DEALLOCATE(sensibFlux)
  • trunk/LMDZ.PLUTO/libf/phypluto/physiq_mod.F90

    r4132 r4144  
    11061106                              fluxsurfabs_sw,fluxtop_lw,                          &
    11071107                              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,          &
    11091110                              tau_col,firstcall,lastcall)
    11101111                  ! Radiative flux from the sky absorbed by the surface (W.m-2).
     
    25062507      call write_output('dtaui_15050nm','Layer optical thickness attenuation in IR band','',int_dtaui(:,nlayer:1:-1,9)) ! 15.050 um
    25072508      !if (callmufi) then
    2508       !   ! Aerosol optical thickness
     2509      !   ! Aerosol optical thickness (VI diagnostics - /!\ for 28+3 VI bands)
    25092510      !   call write_output('dtauv_aers_185nm','Layer sph. aer. optical thickness attenuation in VI band','',int_dtauv_aer(:,nlayer:1:-1,31,1))
    25102511      !   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)
    25122522      !   call write_output('wbarv_aers_185nm','Layer sph. aer. single scattering albedo in VI band','',int_wbarv_aer(:,nlayer:1:-1,31,1))
    25132523      !   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.