Changeset 3082


Ignore:
Timestamp:
Nov 21, 2017, 5:18:23 PM (6 years ago)
Author:
oboucher
Message:

Adding new diagnostics for clean (no aerosol) clear sky SW radiative fluxes

Location:
LMDZ6/trunk
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/DefLists/field_def_lmdz.xml

    r3078 r3082  
    9191        <field id="SWupTOA"    long_name="SWup at TOA"    unit="W/m2" />
    9292        <field id="SWupTOAclr"    long_name="SWup clear sky at TOA"    unit="W/m2" />
     93        <field id="SWupTOAcleanclr"    long_name="SWup clean (no aerosol) clear sky at TOA"    unit="W/m2" />
    9394        <field id="SWdnTOA"    long_name="SWdn at TOA"    unit="W/m2" />
    9495        <field id="SWdnTOAclr"    long_name="SWdn clear sky at TOA"    unit="W/m2" />
     
    109110        <field id="SWupSFC"    long_name="SWup at surface"    unit="W/m2" />
    110111        <field id="SWupSFCclr"    long_name="SWup clear sky at surface"    unit="W/m2" />
     112        <field id="SWupSFCcleanclr"    long_name="SWup clean (no aerosol) clear sky at surface"    unit="W/m2" />
    111113        <field id="SWdnSFC"    long_name="SWdn at surface"    unit="W/m2" />
    112114        <field id="SWdnSFCclr"    long_name="SWdn clear sky at surface"    unit="W/m2" />
     115        <field id="SWdnSFCcleanclr"    long_name="SWdn clean (no aerosol) clear sky at surface"    unit="W/m2" />
    113116        <field id="LWupSFC"    long_name="Upwd. IR rad. at surface"    unit="W/m2" />
    114117        <field id="LWupSFCclr"    long_name="CS Upwd. IR rad. at surface"    unit="W/m2" />
     
    646649        <field id="rlu"    long_name="LW upward radiation"    unit="W m-2" />
    647650        <field id="rld"    long_name="LW downward radiation"    unit="W m-2" />
     651        <field id="rsucsaf"  long_name="SW clean (no aerosol) CS upward radiation"    unit="W m-2" />
     652        <field id="rsdcsaf"  long_name="SW clean (no aerosol) CS downward radiation"    unit="W m-2" />
    648653        <field id="rsucs"    long_name="SW CS upward radiation"    unit="W m-2" />
    649654        <field id="rsdcs"    long_name="SW CS downward radiation"    unit="W m-2" />
  • LMDZ6/trunk/libf/phylmd/iophy.F90

    r3003 r3082  
    583583    USE phys_output_var_mod, ONLY: ctrl_out, type_ecri_files, zoutm, zdtime_moy, &
    584584                                   clef_stations, phys_out_filenames, lev_files, &
    585                                    nid_files, nhorim, swaero_diag, dryaod_diag,&
     585                                   nid_files, nhorim, swaerofree_diag, swaero_diag, dryaod_diag,&
    586586                                   ok_4xCO2atm
    587587    USE print_control_mod, ONLY: prt_level,lunout
     
    662662         var%name=='toplwai' .OR. var%name=='sollwai'  ) ) ) THEN
    663663       IF  ( var%flag(iff)<=lev_files(iff) ) swaero_diag=.TRUE.
     664    ENDIF
     665
     666    ! Set swaerofree_diag=true if at least one of the concerned variables are defined
     667    IF (var%name=='SWupTOAcleanclr' .OR. var%name=='SWupSFCcleanclr' .OR. var%name=='SWdnSFCcleanclr' ) THEN
     668       IF  ( var%flag(iff)<=lev_files(iff) ) swaerofree_diag=.TRUE.
    664669    ENDIF
    665670
     
    692697    USE phys_output_var_mod, ONLY: ctrl_out, type_ecri_files, zoutm, zdtime_moy, &
    693698                                   clef_stations, phys_out_filenames, lev_files, &
    694                                    nid_files, nhorim, swaero_diag, dryaod_diag, levmin, &
     699                                   nid_files, nhorim, swaerofree_diag, swaero_diag, dryaod_diag, levmin, &
    695700                                   levmax, nvertm
    696701    USE print_control_mod, ONLY: prt_level,lunout
     
    764769#endif
    765770    ENDIF
     771
     772    ! Set swaerofree_diag=true if at least one of the concerned variables are defined
     773    IF (var%name=='rsucsaf' .OR. var%name=='rsdcsaf') THEN
     774       IF  ( var%flag(iff)<=lev_files(iff) ) swaerofree_diag=.TRUE.
     775    ENDIF
     776
    766777  END SUBROUTINE histdef3d
    767778
  • LMDZ6/trunk/libf/phylmd/phys_output_ctrlout_mod.F90

    r3059 r3082  
    387387  TYPE(ctrl_out), SAVE :: o_SWupTOAclr = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11, 11/), &
    388388    'SWupTOAclr', 'SWup clear sky at TOA', 'W/m2', (/ ('', i=1, 10) /))
     389  TYPE(ctrl_out), SAVE :: o_SWupTOAcleanclr = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11, 11/), &
     390    'SWupTOAcleanclr', 'SWup clear sky clean (no aerosol) at TOA', 'W/m2', (/ ('', i=1, 10) /))
    389391  TYPE(ctrl_out), SAVE :: o_SWdnTOA = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11, 11/), &
    390392    'SWdnTOA', 'SWdn at TOA', 'W/m2', (/ ('', i=1, 10) /))
     
    433435  TYPE(ctrl_out), SAVE :: o_SWupSFCclr = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11, 11/), &
    434436    'SWupSFCclr', 'SWup clear sky at surface', 'W/m2', (/ ('', i=1, 10) /))
     437  TYPE(ctrl_out), SAVE :: o_SWupSFCcleanclr = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11, 11/), &
     438    'SWupSFCcleanclr', 'SWup clear sky clean (no aerosol) at surface', 'W/m2', (/ ('', i=1, 10) /))
    435439  TYPE(ctrl_out), SAVE :: o_SWdnSFC = ctrl_out((/ 1, 1, 10, 10, 5, 10, 11, 11, 11, 11/), &
    436440    'SWdnSFC', 'SWdn at surface', 'W/m2', (/ ('', i=1, 10) /))
    437441  TYPE(ctrl_out), SAVE :: o_SWdnSFCclr = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11, 11/), &
    438442    'SWdnSFCclr', 'SWdn clear sky at surface', 'W/m2', (/ ('', i=1, 10) /))
     443  TYPE(ctrl_out), SAVE :: o_SWdnSFCcleanclr = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11, 11/), &
     444    'SWdnSFCcleanclr', 'SWdn clear sky clean (no aerosol) at surface', 'W/m2', (/ ('', i=1, 10) /))
    439445  TYPE(ctrl_out), SAVE :: o_LWupSFC = ctrl_out((/ 1, 4, 10, 10, 5, 10, 11, 11, 11, 11/), &
    440446    'LWupSFC', 'Upwd. IR rad. at surface', 'W/m2', (/ ('', i=1, 10) /))
     
    17231729  TYPE(ctrl_out), SAVE :: o_rsucs = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &
    17241730    'rsucs', 'SW CS upward radiation', 'W m-2', (/ ('', i=1, 10) /))
     1731  TYPE(ctrl_out), SAVE :: o_rsucsaf = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &
     1732    'rsucsaf', 'SW CS clean (no aerosol) upward radiation', 'W m-2', (/ ('', i=1, 10) /))
    17251733  TYPE(ctrl_out), SAVE :: o_rsdcs = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &
    17261734    'rsdcs', 'SW CS downward radiation', 'W m-2', (/ ('', i=1, 10) /))
     1735  TYPE(ctrl_out), SAVE :: o_rsdcsaf = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &
     1736    'rsdcsaf', 'SW CS clean (no aerosol) downward radiation', 'W m-2', (/ ('', i=1, 10) /))
    17271737  TYPE(ctrl_out), SAVE :: o_rlucs = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), &
    17281738    'rlucs', 'LW CS upward radiation', 'W m-2', (/ ('', i=1, 10) /))
  • LMDZ6/trunk/libf/phylmd/phys_output_mod.F90

    r3048 r3082  
    585585
    586586    IF (prt_level >= 10) THEN
     587      WRITE(lunout,*)'swaerofree_diag=',swaerofree_diag
    587588      WRITE(lunout,*)'swaero_diag=',swaero_diag
    588589      WRITE(lunout,*)'dryaod_diag=',dryaod_diag
  • LMDZ6/trunk/libf/phylmd/phys_output_var_mod.F90

    r2989 r3082  
    8686
    8787  ! swaero_diag : flag indicates if it is necessary to do calculation for some aerosol diagnostics
     88  ! swaerofree_diag : flag indicates if it is necessary to do calculation for some aerosol diagnostics
    8889  ! dryaod_diag : flag indicates if it is necessary to do calculation for some aerosol diagnostics
    8990  !--OB: this needs to be set to TRUE by default and changed back to FALSE after first radiation call
    9091  !--    and corrected back to TRUE based on output requests
     92  LOGICAL, SAVE                                :: swaerofree_diag=.TRUE.
    9193  LOGICAL, SAVE                                :: swaero_diag=.TRUE.
    9294  LOGICAL, SAVE                                :: dryaod_diag=.TRUE.
    93   !$OMP THREADPRIVATE(swaero_diag, dryaod_diag)
     95  !$OMP THREADPRIVATE(swaerofree_diag, swaero_diag, dryaod_diag)
    9496  ! ok_4xCO2atm : flag indicates if it is necessary to do a second call of
    9597  ! radiation code with a 4xCO2 or another different GES to assess SW/LW
  • LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90

    r3080 r3082  
    4343         o_snow, o_msnow, o_fsnow, o_evap, o_ep,o_epmax_diag, & ! epmax_cape
    4444         o_tops, o_tops0, o_topl, o_topl0, &
    45          o_SWupTOA, o_SWupTOAclr, o_SWdnTOA, &
     45         o_SWupTOA, o_SWupTOAclr, o_SWupTOAcleanclr, o_SWdnTOA, &
    4646         o_SWdnTOAclr, o_nettop, o_SWup200, &
    4747         o_SWup200clr, o_SWdn200, o_SWdn200clr, &
     
    4949         o_LWdn200clr, o_sols, o_sols0, &
    5050         o_soll, o_radsol, o_soll0, o_SWupSFC, &
    51          o_SWupSFCclr, o_SWdnSFC, o_SWdnSFCclr, &
     51         o_SWupSFCclr, o_SWupSFCcleanclr, o_SWdnSFC, o_SWdnSFCclr, o_SWdnSFCcleanclr, &
    5252         o_LWupSFC, o_LWdnSFC, o_LWupSFCclr, &
    5353         o_LWdnSFCclr, o_bils, o_bils_diss, &
     
    154154         o_du_gwd_front, o_dv_gwd_front, &
    155155         o_east_gwstress, o_west_gwstress, &
    156          o_rsd, o_rlu, o_rld, o_rsucs, o_rsdcs, &
     156         o_rsd, o_rlu, o_rld, o_rsucs, o_rsdcs, o_rsucsaf, o_rsdcsaf, &
    157157         o_rlucs, o_rldcs, o_tnt, o_tntr, &
    158158         o_tntscpbl, o_tnhus, o_tnhusscpbl, &
     
    210210         nday_rain, rain_con, snow_con, &
    211211         topsw, toplw, toplw0, swup, swdn, &
    212          topsw0, swup0, swdn0, SWup200, SWup200clr, &
     212         topsw0, swupc0, swdnc0, swup0, swdn0, SWup200, SWup200clr, &
    213213         SWdn200, SWdn200clr, LWup200, LWup200clr, &
    214214         LWdn200, LWdn200clr, solsw, solsw0, sollw, &
     
    225225         ratqs, entr_therm, zqasc, detr_therm, f0, &
    226226         lwup, lwdn, lwup0, coefm, &
    227          swupp, lwupp, swup0p, lwup0p, swdnp, lwdnp, &
    228          swdn0p, lwdn0p, tnondef, O3sumSTD, uvsumSTD, &
     227         swupp, lwupp, swupc0p, swup0p, lwup0p, swdnp, lwdnp, &
     228         swdnc0p, swdn0p, lwdn0p, tnondef, O3sumSTD, uvsumSTD, &
    229229         vqsumSTD, vTsumSTD, O3daysumSTD, wqsumSTD, &
    230230         vphisumSTD, wTsumSTD, u2sumSTD, v2sumSTD, &
     
    708708
    709709       IF (vars_defined) THEN
     710          zx_tmp_fi2d(:) = swupc0(:,klevp1)*swradcorr(:)
     711       ENDIF
     712       CALL histwrite_phy(o_SWupTOAcleanclr, zx_tmp_fi2d)
     713
     714       IF (vars_defined) THEN
    710715          zx_tmp_fi2d(:) = swdn(:,klevp1)*swradcorr(:)
    711716       ENDIF
     
    746751
    747752       IF (vars_defined) THEN
     753          zx_tmp_fi2d(:) = swupc0(:,1)*swradcorr(:)
     754       ENDIF
     755       CALL histwrite_phy(o_SWupSFCcleanclr, zx_tmp_fi2d)
     756
     757       IF (vars_defined) THEN
    748758          zx_tmp_fi2d(:) = swdn(:,1)*swradcorr(:)
    749759       ENDIF
     
    754764       ENDIF
    755765       CALL histwrite_phy(o_SWdnSFCclr, zx_tmp_fi2d)
     766
     767       IF (vars_defined) THEN
     768          zx_tmp_fi2d(:) = swdnc0(:,1)*swradcorr(:)
     769       ENDIF
     770       CALL histwrite_phy(o_SWdnSFCcleanclr, zx_tmp_fi2d)
    756771
    757772       IF (vars_defined) THEN
     
    17381753       CALL histwrite_phy(o_rsucs, zx_tmp_fi3d1)
    17391754       DO k=1, klevp1
     1755         zx_tmp_fi3d1(:,k)=swupc0(:,k)*swradcorr(:)
     1756       ENDDO
     1757       CALL histwrite_phy(o_rsucsaf, zx_tmp_fi3d1)
     1758       DO k=1, klevp1
    17401759         zx_tmp_fi3d1(:,k)=swdn0(:,k)*swradcorr(:)
    17411760       ENDDO
    17421761       CALL histwrite_phy(o_rsdcs, zx_tmp_fi3d1)
     1762       DO k=1, klevp1
     1763         zx_tmp_fi3d1(:,k)=swdnc0(:,k)*swradcorr(:)
     1764       ENDDO
     1765       CALL histwrite_phy(o_rsdcsaf, zx_tmp_fi3d1)
    17431766
    17441767       CALL histwrite_phy(o_rlu, lwup)
  • LMDZ6/trunk/libf/phylmd/phys_state_var_mod.F90

    r3080 r3082  
    111111!$OMP THREADPRIVATE(clwcon0th,rnebcon0th)
    112112! radiation outputs
    113       REAL,ALLOCATABLE,SAVE :: swdn0(:,:), swdn(:,:)
    114 !$OMP THREADPRIVATE(swdn0,swdn)
    115       REAL,ALLOCATABLE,SAVE :: swup0(:,:), swup(:,:)
    116 !$OMP THREADPRIVATE(swup0,swup)
     113      REAL,ALLOCATABLE,SAVE :: swdnc0(:,:), swdn0(:,:), swdn(:,:)
     114!$OMP THREADPRIVATE(swdnc0,swdn0,swdn)
     115      REAL,ALLOCATABLE,SAVE :: swupc0(:,:), swup0(:,:), swup(:,:)
     116!$OMP THREADPRIVATE(swupc0, swup0,swup)
    117117      REAL,ALLOCATABLE,SAVE :: SWdn200clr(:), SWdn200(:)
    118118!$OMP THREADPRIVATE(SWdn200clr,SWdn200)
     
    355355      REAL,ALLOCATABLE,SAVE :: lwup0p(:,:), lwupp(:,:)
    356356!$OMP THREADPRIVATE(lwdn0p, lwdnp, lwup0p, lwupp)
    357       REAL,ALLOCATABLE,SAVE :: swdn0p(:,:), swdnp(:,:)
    358       REAL,ALLOCATABLE,SAVE :: swup0p(:,:), swupp(:,:)
    359 !$OMP THREADPRIVATE(swdn0p, swdnp, swup0p, swupp)
     357      REAL,ALLOCATABLE,SAVE :: swdnc0p(:,:), swdn0p(:,:), swdnp(:,:)
     358      REAL,ALLOCATABLE,SAVE :: swupc0p(:,:), swup0p(:,:), swupp(:,:)
     359!$OMP THREADPRIVATE(swdnc0p, swdn0p, swdnp, swupc0p, swup0p, swupp)
    360360
    361361! pbase : cloud base pressure
     
    478478      ALLOCATE(clwcon0th(klon,klev),rnebcon0th(klon,klev))
    479479! radiation outputs
    480       ALLOCATE(swdn0(klon,klevp1), swdn(klon,klevp1))
    481       ALLOCATE(swup0(klon,klevp1), swup(klon,klevp1))
     480      ALLOCATE(swdnc0(klon,klevp1), swdn0(klon,klevp1), swdn(klon,klevp1))
     481      ALLOCATE(swupc0(klon,klevp1), swup0(klon,klevp1), swup(klon,klevp1))
    482482      ALLOCATE(lwdn0(klon,klevp1), lwdn(klon,klevp1))
    483483      ALLOCATE(lwup0(klon,klevp1), lwup(klon,klevp1))
     
    578578      ALLOCATE(lwdn0p(klon,klevp1), lwdnp(klon,klevp1))
    579579      ALLOCATE(lwup0p(klon,klevp1), lwupp(klon,klevp1))
    580       ALLOCATE(swdn0p(klon,klevp1), swdnp(klon,klevp1))
    581       ALLOCATE(swup0p(klon,klevp1), swupp(klon,klevp1))
     580      ALLOCATE(swdnc0p(klon,klevp1), swdn0p(klon,klevp1), swdnp(klon,klevp1))
     581      ALLOCATE(swupc0p(klon,klevp1), swup0p(klon,klevp1), swupp(klon,klevp1))
    582582
    583583      ALLOCATE(cape(klon))
     
    636636      deallocate(clwcon0th, rnebcon0th)
    637637! radiation outputs
    638       deallocate(swdn0, swdn)
    639       deallocate(swup0, swup)
     638      deallocate(swdnc0, swdn0, swdn)
     639      deallocate(swupc0, swup0, swup)
    640640      deallocate(lwdn0, lwdn)
    641641      deallocate(lwup0, lwup)
     
    713713      deallocate(lwdn0p, lwdnp)
    714714      deallocate(lwup0p, lwupp)
    715       deallocate(swdn0p, swdnp)
    716       deallocate(swup0p, swupp)
     715      deallocate(swdnc0p, swdn0p, swdnp)
     716      deallocate(swupc0p, swup0p, swupp)
    717717      deallocate(cape)
    718718      deallocate(pbase,bbase)
  • LMDZ6/trunk/libf/phylmd/physiq_mod.F90

    r3080 r3082  
    16231623           !!!  xios_field_is_active("toplwai").OR.xios_field_is_active("sollwai") !))) &
    16241624           swaero_diag=.TRUE.
     1625
     1626       !--setting up swaerofree_diag to TRUE in XIOS case
     1627       IF (xios_field_is_active("SWdnSFCcleanclr").OR.xios_field_is_active("SWupSFCcleanclr").OR. &
     1628           xios_field_is_active("SWupTOAcleanclr").OR.xios_field_is_active("rsucsaf").OR. &
     1629           xios_field_is_active("rsdcsaf")) &
     1630           swaerofree_diag=.TRUE.
    16251631
    16261632       !--setting up dryaod_diag to TRUE in XIOS case
     
    37663772               topsw0,toplw0,solsw0,sollw0, &
    37673773               lwdn0, lwdn, lwup0, lwup,  &
    3768                swdn0, swdn, swup0, swup, &
     3774               swdnc0, swdn0, swdn, swupc0, swup0, swup, &
    37693775               topswad_aero, solswad_aero, &
    37703776               topswai_aero, solswai_aero, &
     
    37973803          !--this is necessary to get the right swaero at first step
    37983804          !--but only in the case of no XIOS as XIOS is covered elsewhere
     3805          IF (debut) swaerofree_diag = .FALSE.
    37993806          IF (debut) swaero_diag = .FALSE.
    38003807          IF (debut) dryaod_diag = .FALSE.
     
    38493856                     topsw0p,toplw0p,solsw0p,sollw0p, &
    38503857                     lwdn0p, lwdnp, lwup0p, lwupp,  &
    3851                      swdn0p, swdnp, swup0p, swupp, &
     3858                     swdnc0p, swdn0p, swdnp, swupc0p, swup0p, swupp, &
    38523859                     topswad_aerop, solswad_aerop, &
    38533860                     topswai_aerop, solswai_aerop, &
  • LMDZ6/trunk/libf/phylmd/radlwsw_m.F90

    r2611 r3082  
    2929   topsw0,toplw0,solsw0,sollw0,&
    3030   lwdn0, lwdn, lwup0, lwup,&
    31    swdn0, swdn, swup0, swup,&
     31   swdnc0, swdn0, swdn, swupc0, swup0, swup,&
    3232   topswad_aero, solswad_aero,&
    3333   topswai_aero, solswai_aero, &
     
    148148  ! ZFSDWN(klon,KLEV+1)           ; TOTAL SW  DWN FLUXES           ! added by MPL 080411
    149149  ! ZFCDWN(klon,KLEV+1)           ; CLEAR SKY SW  DWN FLUXES       ! added by MPL 080411
     150  ! ZFCCDWN(klon,KLEV+1)          ; CLEAR SKY CLEAN (NO AEROSOL) SW  DWN FLUXES      ! added by OB 211117
    150151  ! ZFSUP (klon,KLEV+1)           ; TOTAL SW  UP  FLUXES           ! added by MPL 080411
    151152  ! ZFCUP (klon,KLEV+1)           ; CLEAR SKY SW  UP  FLUXES       ! added by MPL 080411
     153  ! ZFCCUP (klon,KLEV+1)          ; CLEAR SKY CLEAN (NO AEROSOL) SW  UP  FLUXES       ! added by OB 211117
    152154 
    153155  !======================================================================
     
    226228  REAL,    INTENT(out) :: topsw0(KLON), toplw0(KLON), solsw0(KLON), sollw0(KLON)
    227229  REAL,    INTENT(out) :: sollwdown(KLON)
    228   REAL,    INTENT(out) :: swdn(KLON,kflev+1),swdn0(KLON,kflev+1)
    229   REAL,    INTENT(out) :: swup(KLON,kflev+1),swup0(KLON,kflev+1)
     230  REAL,    INTENT(out) :: swdn(KLON,kflev+1),swdn0(KLON,kflev+1), swdnc0(KLON,kflev+1)
     231  REAL,    INTENT(out) :: swup(KLON,kflev+1),swup0(KLON,kflev+1), swupc0(KLON,kflev+1)
    230232  REAL,    INTENT(out) :: lwdn(KLON,kflev+1),lwdn0(KLON,kflev+1)
    231233  REAL,    INTENT(out) :: lwup(KLON,kflev+1),lwup0(KLON,kflev+1)
     
    252254  REAL(KIND=8) ZFSUP0(KDLON,KFLEV+1)
    253255  REAL(KIND=8) ZFSDN0(KDLON,KFLEV+1)
     256  REAL(KIND=8) ZFSUPC0(KDLON,KFLEV+1)
     257  REAL(KIND=8) ZFSDNC0(KDLON,KFLEV+1)
    254258  REAL(KIND=8) ZFLUP(KDLON,KFLEV+1)
    255259  REAL(KIND=8) ZFLDN(KDLON,KFLEV+1)
     
    364368      REAL(KIND=8) ZFSDWN_i (klon,klev+1)
    365369      REAL(KIND=8) ZFCDWN_i (klon,klev+1)
     370      REAL(KIND=8) ZFCCDWN_i (klon,klev+1)
    366371      REAL(KIND=8) ZFSUP_i (klon,klev+1)
    367372      REAL(KIND=8) ZFCUP_i (klon,klev+1)
     373      REAL(KIND=8) ZFCCUP_i (klon,klev+1)
    368374! 3 lignes suivantes a activer pour CCMVAL (MPL 20100412)
    369375!      REAL(KIND=8) RSUN(3,2)
     
    575581      ZFSUP0(i,k)=0.
    576582      ZFSDN0(i,k)=0.
     583      ZFSUPC0(i,k)=0.
     584      ZFSDNC0(i,k)=0.
    577585      ZSWFT0_i(i,k)=0.
    578586      ZFCUP_i(i,k)=0.
    579587      ZFCDWN_i(i,k)=0.
     588      ZFCCUP_i(i,k)=0.
     589      ZFCCDWN_i(i,k)=0.
    580590      ENDDO
    581591      ENDDO
     
    676686      ZFSDWN_i(i,k)=0.
    677687      ZFCDWN_i(i,k)=0.
     688      ZFCCDWN_i(i,k)=0.
    678689      ZFSUP_i(i,k)=0.
    679690      ZFCUP_i(i,k)=0.
     691      ZFCCUP_i(i,k)=0.
    680692      ENDDO
    681693      ENDDO
     
    823835         PTAU_LW_TOT, PTAU_LW_NAT,               &  ! rajoute par C. Kleinschmitt
    824836         ZFLUX_i  , ZFLUC_i ,&
    825          ZFSDWN_i , ZFSUP_i , ZFCDWN_i, ZFCUP_i,&
     837         ZFSDWN_i , ZFSUP_i , ZFCDWN_i, ZFCUP_i, ZFCCDWN_i, ZFCCUP_i, &
    826838         ZTOPSWADAERO,ZSOLSWADAERO,&  ! rajoute par OB pour diagnostics
    827839         ZTOPSWAD0AERO,ZSOLSWAD0AERO,&
     
    904916         ZFSDN(i,k+1)  = ZFSDWN_i(i,k+1)*fract(i)
    905917         ZFSDN0(i,k+1) = ZFCDWN_i(i,k+1)*fract(i)
     918         ZFSDNC0(i,k+1)= ZFCCDWN_i(i,k+1)*fract(i)
    906919         ZFSUP (i,k+1) = ZFSUP_i(i,k+1)*fract(i)
    907920         ZFSUP0(i,k+1) = ZFCUP_i(i,k+1)*fract(i)
     921         ZFSUPC0(i,k+1)= ZFCCUP_i(i,k+1)*fract(i)
    908922!   Nouveau calcul car visiblement ZSWFT et ZSWFC sont nuls dans RRTM cy32
    909923!   en sortie de radlsw.F90 - MPL 7.01.09
     
    10171031
    10181032      DO k = 1, kflev+1
     1033        swdnc0( iof+i,k)   = ZFSDNC0( i,k)
    10191034        swdn0 ( iof+i,k)   = ZFSDN0 ( i,k)
    10201035        swdn  ( iof+i,k)   = ZFSDN  ( i,k)
     1036        swupc0( iof+i,k)   = ZFSUPC0( i,k)
    10211037        swup0 ( iof+i,k)   = ZFSUP0 ( i,k)
    10221038        swup  ( iof+i,k)   = ZFSUP  ( i,k)
  • LMDZ6/trunk/libf/phylmd/rrtm/recmwf_aero.F90

    r2529 r3082  
    2424!--end
    2525 & PFLUX,PFLUC,&
    26  & PFSDN ,PFSUP , PFSCDN , PFSCUP,&
     26 & PFSDN ,PFSUP , PFSCDN , PFSCUP, PFSCCDN, PFSCCUP, &
    2727!--OB diagnostics
    2828 & PTOPSWADAERO,PSOLSWADAERO,&
     
    110110! PFSCDN(KPROMA,KLEV+1)         ; SW clear sky flux down
    111111! PFSCUP(KPROMA,KLEV+1)         ; SW clear sky flux up
     112! PFSCCDN(KPROMA,KLEV+1)         ; SW clear sky clean (no aerosol) flux down
     113! PFSCCUP(KPROMA,KLEV+1)         ; SW clear sky clean (no aerosol) flux up
    112114
    113115
     
    152154USE YOERDI   , ONLY : RRAE   ,REPCLC    ,REPH2O
    153155USE YOMARPHY , ONLY : LRDUST
    154 USE phys_output_mod, ONLY : swaero_diag
     156USE phys_output_mod, ONLY : swaerofree_diag, swaero_diag
    155157
    156158!-----------------------------------------------------------------------
     
    241243REAL(KIND=JPRB)   ,INTENT(OUT)   :: PFSCDN(KPROMA,KLEV+1)  ! SW clear sky flux down
    242244REAL(KIND=JPRB)   ,INTENT(OUT)   :: PFSCUP(KPROMA,KLEV+1)  ! SW clear sky flux up
     245REAL(KIND=JPRB)   ,INTENT(OUT)   :: PFSCCDN(KPROMA,KLEV+1)  ! SW clear sky clean (no aerosol) flux down
     246REAL(KIND=JPRB)   ,INTENT(OUT)   :: PFSCCUP(KPROMA,KLEV+1)  ! SW clear sky clean (no aerosol) flux up
    243247
    244248!     ==== COMPUTED IN RADITE ===
     
    607611
    608612! case with no aerosols at all is also computed IF ACTIVEFEEDBACK_ACTIVE is false
    609 !IF (swaero_diag .OR. .not. AEROSOLFEEDBACK_ACTIVE .OR. flag_aerosol .EQ. 0 ) THEN   
    610 IF (.not. AEROSOLFEEDBACK_ACTIVE .OR. flag_aerosol .EQ. 0 ) THEN   
     613IF (.not. AEROSOLFEEDBACK_ACTIVE .OR. flag_aerosol .EQ. 0 .OR. swaerofree_diag) THEN   
    611614
    612615! ZERO aerosol effect
     
    757760  ENDIF
    758761
     762! copy clear-sky clean (no aerosol) case
     763  PFSCCUP(:,:) =   ZFSUP0_AERO(:,:,5)
     764  PFSCCDN(:,:) =   ZFSDN0_AERO(:,:,5)
     765
    759766! The following allows to compute the forcing diagostics without
    760767! letting the aerosol forcing act on the meteorology
Note: See TracChangeset for help on using the changeset viewer.