Ignore:
Timestamp:
Oct 25, 2018, 5:23:18 PM (6 years ago)
Author:
Laurent Fairhead
Message:

Modifications needed for VolMIP diagnostics for IPSLCM6.1.8
NL/LF

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/rrtm/recmwf_aero.F90

    r3337 r3408  
    3030 & PTOPSWAIAERO,PSOLSWAIAERO,&
    3131 & PTOPSWCFAERO,PSOLSWCFAERO,&
     32 & PSWADAERO,& !--NL
    3233!--LW diagnostics CK
    3334 & PTOPLWADAERO,PSOLLWADAERO,&
    3435 & PTOPLWAD0AERO,PSOLLWAD0AERO,&
    3536 & PTOPLWAIAERO,PSOLLWAIAERO,&
     37 & PLWADAERO,& !--NL
    3638!..end
    37  & ok_ade, ok_aie, flag_aerosol,flag_aerosol_strat)
     39 & ok_ade, ok_aie, ok_volcan, flag_aerosol,flag_aerosol_strat)
    3840!--fin
    3941
     
    8284! ok_ade---input-L- apply the Aerosol Direct Effect or not?
    8385! ok_aie---input-L- apply the Aerosol Indirect Effect or not?
     86! ok_volcan-input-L- activate volcanic diags (SW heat & LW cool rate, SW & LW flux)
    8487! flag_aerosol-input-I- aerosol flag from 0 to 7
    8588! flag_aerosol_strat-input-I- use stratospheric aerosols flag (T/F)
     
    212215REAL(KIND=JPRB)   ,INTENT(IN)    :: PREF_ICE_PI(KPROMA,KLEV)
    213216LOGICAL, INTENT(in)  :: ok_ade, ok_aie         ! switches whether to use aerosol direct (indirect) effects or not
     217LOGICAL, INTENT(in)  :: ok_volcan              ! produce volcanic diags (SW/LW heat flux and rate)
    214218INTEGER, INTENT(in)  :: flag_aerosol           ! takes value 0 (no aerosol) or 1 to 6 (aerosols)
    215219LOGICAL, INTENT(in)  :: flag_aerosol_strat     ! use stratospheric aerosols
    216 REAL(KIND=JPRB)   ,INTENT(out)   :: PTOPSWADAERO(KPROMA), PSOLSWADAERO(KPROMA)       ! Aerosol direct forcing at TOA and surface
     220REAL(KIND=JPRB)   ,INTENT(OUT)   :: PTOPSWADAERO(KPROMA), PSOLSWADAERO(KPROMA)       ! Aerosol direct forcing at TOA and surface
    217221REAL(KIND=JPRB)   ,INTENT(OUT)   :: PTOPSWAD0AERO(KPROMA), PSOLSWAD0AERO(KPROMA)     ! Aerosol direct forcing at TOA and surface
    218222REAL(KIND=JPRB)   ,INTENT(OUT)   :: PTOPSWAIAERO(KPROMA), PSOLSWAIAERO(KPROMA)       ! ditto, indirect
    219223REAL(KIND=JPRB)   ,INTENT(OUT)   :: PTOPSWCFAERO(KPROMA,3), PSOLSWCFAERO(KPROMA,3) !--do we keep this ?
    220224!--fin
     225!--NL
     226REAL(KIND=JPRB)   ,INTENT(OUT)   :: PSWADAERO(KPROMA, KLEV+1)                        ! SW Aerosol direct forcing
     227REAL(KIND=JPRB)   ,INTENT(OUT)   :: PLWADAERO(KPROMA, KLEV+1)                        ! LW Aerosol direct forcing
    221228!--CK
    222229REAL(KIND=JPRB)   ,INTENT(out)   :: PTOPLWADAERO(KPROMA), PSOLLWADAERO(KPROMA)       ! LW Aerosol direct forcing at TOA + surface
     
    806813     PSOLSWAD0AERO(:) = (ZFSDN0_AERO(:,1,4)     -ZFSUP0_AERO(:,1,4))     -(ZFSDN0_AERO(:,1,2)     -ZFSUP0_AERO(:,1,2))
    807814     PTOPSWAD0AERO(:) = (ZFSDN0_AERO(:,KLEV+1,4)-ZFSUP0_AERO(:,KLEV+1,4))-(ZFSDN0_AERO(:,KLEV+1,2)-ZFSUP0_AERO(:,KLEV+1,2))
     815     IF(ok_volcan) THEN
     816        PSWADAERO(:,:)  = (ZFSDN_AERO(:,:,4) -ZFSUP_AERO(:,:,4)) -(ZFSDN_AERO(:,:,2) -ZFSUP_AERO(:,:,2)) !--NL
     817     ENDIF
    808818
    809819! indirect anthropogenic forcing
     
    826836     PSOLLWAD0AERO(:) = (-LWDN0_AERO(:,1,4)     -LWUP0_AERO(:,1,4))     -(-LWDN0_AERO(:,1,2)     -LWUP0_AERO(:,1,2))
    827837     PTOPLWAD0AERO(:) = (-LWDN0_AERO(:,KLEV+1,4)-LWUP0_AERO(:,KLEV+1,4))-(-LWDN0_AERO(:,KLEV+1,2)-LWUP0_AERO(:,KLEV+1,2))
     838     IF(ok_volcan) THEN
     839        PLWADAERO(:,:)  = (-LWDN_AERO(:,:,4) -LWUP_AERO(:,:,4)) -(-LWDN_AERO(:,:,2) -LWUP_AERO(:,:,2)) !--NL
     840     ENDIF
    828841
    829842! LW indirect anthropogenic forcing
     
    840853     PSOLSWAD0AERO(:) = (ZFSDN0_AERO(:,1,3)     -ZFSUP0_AERO(:,1,3))     -(ZFSDN0_AERO(:,1,1)     -ZFSUP0_AERO(:,1,1))
    841854     PTOPSWAD0AERO(:) = (ZFSDN0_AERO(:,KLEV+1,3)-ZFSUP0_AERO(:,KLEV+1,3))-(ZFSDN0_AERO(:,KLEV+1,1)-ZFSUP0_AERO(:,KLEV+1,1))
     855     IF(ok_volcan) THEN
     856        PSWADAERO(:,:)  = (ZFSDN_AERO(:,:,3) -ZFSUP_AERO(:,:,3)) -(ZFSDN_AERO(:,:,1) -ZFSUP_AERO(:,:,1)) !--NL
     857     ENDIF
    842858
    843859! indirect anthropogenic forcing
     
    860876     PSOLLWAD0AERO(:) = (-LWDN0_AERO(:,1,3)     -LWUP0_AERO(:,1,3))     -(-LWDN0_AERO(:,1,1)     -LWUP0_AERO(:,1,1))
    861877     PTOPLWAD0AERO(:) = (-LWDN0_AERO(:,KLEV+1,3)-LWUP0_AERO(:,KLEV+1,3))-(-LWDN0_AERO(:,KLEV+1,1)-LWUP0_AERO(:,KLEV+1,1))
    862 
     878     IF(ok_volcan) THEN
     879        PLWADAERO(:,:)  = (-LWDN_AERO(:,:,3) -LWUP_AERO(:,:,3)) -(-LWDN_AERO(:,:,1) -LWUP_AERO(:,:,1)) !--NL
     880     ENDIF
     881     
    863882! LW indirect anthropogenic forcing
    864883     PSOLLWAIAERO(:) = 0.0
     
    874893     PSOLSWAD0AERO(:) = 0.0
    875894     PTOPSWAD0AERO(:) = 0.0
    876 
     895     IF(ok_volcan) THEN
     896        PSWADAERO(:,:)  = 0.0 !--NL
     897     ENDIF
     898     
    877899! indirect anthropogenic forcing
    878900     PSOLSWAIAERO(:) = (ZFSDN_AERO(:,1,2)     -ZFSUP_AERO(:,1,2))     -(ZFSDN_AERO(:,1,1)     -ZFSUP_AERO(:,1,1))
     
    894916     PSOLLWAD0AERO(:) = 0.0
    895917     PTOPLWAD0AERO(:) = 0.0
    896 
     918     IF(ok_volcan) THEN
     919        PLWADAERO(:,:)  = 0.0 !--NL
     920     ENDIF
     921     
    897922! LW indirect anthropogenic forcing
    898923     PSOLLWAIAERO(:) = (-LWDN_AERO(:,1,2)     -LWUP_AERO(:,1,2))     -(-LWDN_AERO(:,1,1)     -LWUP_AERO(:,1,1))
     
    908933     PSOLSWAD0AERO(:) = 0.0
    909934     PTOPSWAD0AERO(:) = 0.0
    910 
     935     IF(ok_volcan) THEN
     936        PSWADAERO(:,:)  = 0.0 !--NL
     937     ENDIF
     938     
    911939! indirect anthropogenic forcing
    912940     PSOLSWAIAERO(:) = 0.0
     
    928956     PSOLLWAD0AERO(:) = 0.0
    929957     PTOPLWAD0AERO(:) = 0.0
    930 
     958     IF(ok_volcan) THEN
     959        PLWADAERO(:,:)  = 0.0 !--NL
     960     ENDIF
     961     
    931962! LW indirect anthropogenic forcing
    932963     PSOLLWAIAERO(:) = 0.0
Note: See TracChangeset for help on using the changeset viewer.