Changeset 3112 for LMDZ6/trunk/libf


Ignore:
Timestamp:
Dec 5, 2017, 12:53:00 PM (7 years ago)
Author:
musat
Message:

Add LMDZ outputs: icc3dcon, icc3dstra
Add CMIP6 outputs : clic, clis, rsdsdiff, rsdscsdiff
Correct parasolRefl_sea
Add "HomeCMIP6" variable HomeCMIP6_parasolCRefl
IM

Location:
LMDZ6/trunk/libf/phylmd
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/newmicro.F90

    r2596 r3112  
    1010  USE dimphy
    1111  USE phys_local_var_mod, ONLY: scdnc, cldncl, reffclwtop, lcc, reffclws, &
    12     reffclwc, cldnvi, lcc3d, lcc3dcon, lcc3dstra
     12    reffclwc, cldnvi, lcc3d, lcc3dcon, lcc3dstra, icc3dcon, icc3dstra
    1313  USE phys_state_var_mod, ONLY: rnebcon, clwcon
    1414  USE icefrac_lsc_mod ! computes ice fraction (JBM 3/14)
     
    586586        lcc3dstra(i, k) = lcc3dstra(i, k) - lcc3dcon(i, k) ! eau liquide stratiforme
    587587        lcc3dstra(i, k) = max(lcc3dstra(i,k), 0.0)
     588        !
     589        icc3dcon(i, k) = rnebcon(i, k)*(1-phase3d(i, k))*clwcon(i, k) ! glace
     590                                                                      ! convective
     591        icc3dstra(i, k) = pclc(i, k)*pqlwp(i, k)*(1-phase3d(i, k))
     592        icc3dstra(i, k) = icc3dstra(i, k) - icc3dcon(i, k) ! glace stratiforme
     593        icc3dstra(i, k) = max( icc3dstra(i, k), 0.0)
     594        !
    588595        ! Compute cloud droplet radius as above in meter
    589596        radius = 1.1*((pqlwp(i,k)*pplay(i,k)/(rd*t(i,k)))/(4./3*rpi*1000.* &
     
    626633        IF (lcc3dcon(i,k)<=0.0) lcc3dcon(i, k) = 0.0
    627634        IF (lcc3dstra(i,k)<=0.0) lcc3dstra(i, k) = 0.0
     635        IF (icc3dcon(i,k)<=0.0) icc3dcon(i, k) = 0.0
     636        IF (icc3dstra(i,k)<=0.0) icc3dstra(i, k) = 0.0
    628637      END DO
    629638      IF (reffclwtop(i)<=0.0) reffclwtop(i) = 0.0
  • LMDZ6/trunk/libf/phylmd/phys_local_var_mod.F90

    r3100 r3112  
    140140      REAL, SAVE, ALLOCATABLE :: ZFSDN0(:,:),  ZFSUP0(:,:)      ! diag
    141141      !$OMP THREADPRIVATE(ZFSDN0,ZFSUP0)
     142      REAL, SAVE, ALLOCATABLE :: PSFSWDIR(:,:), PSFSWDIF(:,:)
     143      !$OMP THREADPRIVATE(PSFSWDIR, PSFSWDIF)
    142144!
    143145      REAL, SAVE, ALLOCATABLE :: stratomask(:,:)
     
    169171      REAL, SAVE, ALLOCATABLE :: lcc3dstra(:,:)
    170172      !$OMP THREADPRIVATE(lcc3dstra)
     173      REAL, SAVE, ALLOCATABLE :: icc3dstra(:,:)
     174      !$OMP THREADPRIVATE(icc3dstra)
     175      REAL, SAVE, ALLOCATABLE :: icc3dcon(:,:)
     176      !$OMP THREADPRIVATE(icc3dcon)
    171177      REAL, SAVE, ALLOCATABLE :: od443aer(:)
    172178      !$OMP THREADPRIVATE(od443aer)
     
    516522USE phys_state_var_mod
    517523
    518 IMPLICIT NONE
     524      IMPLICIT NONE
     525      include "clesphys.h"
    519526      ALLOCATE(t_seri(klon,klev),q_seri(klon,klev),ql_seri(klon,klev),qs_seri(klon,klev))
    520527      ALLOCATE(u_seri(klon,klev),v_seri(klon,klev))
     
    564571      ALLOCATE(ZLWFT0_i(klon,klev+1),ZSWFT0_i(klon,klev+1),ZFLDN0(klon,klev+1))
    565572      ALLOCATE(ZFLUP0(klon,klev+1),ZFSDN0(klon,klev+1),ZFSUP0(klon,klev+1))
     573      ALLOCATE(PSFSWDIR(klon,NSW), PSFSWDIF(klon,NSW))
    566574!
    567575      ALLOCATE(topswad_aero(klon), solswad_aero(klon))
     
    593601      ALLOCATE(lcc3dcon(klon, klev))
    594602      ALLOCATE(lcc3dstra(klon, klev))
     603      ALLOCATE(icc3dcon(klon, klev))
     604      ALLOCATE(icc3dstra(klon, klev))
    595605      ALLOCATE(od443aer(klon))
    596606      ALLOCATE(od550aer(klon))
     
    845855      DEALLOCATE(d_u_lif,d_v_lif)
    846856      DEALLOCATE(d_ts, d_tr)
     857      DEALLOCATE(ZLWFT0_i,ZSWFT0_i,ZFLDN0)
     858      DEALLOCATE(ZFLUP0,ZFSDN0,ZFSUP0)
     859      DEALLOCATE(PSFSWDIR, PSFSWDIF)
    847860      DEALLOCATE(topswad_aero,solswad_aero)
    848861      DEALLOCATE(topswai_aero,solswai_aero)
     
    868881      DEALLOCATE(lcc3dcon)
    869882      DEALLOCATE(lcc3dstra)
     883      DEALLOCATE(icc3dcon)
     884      DEALLOCATE(icc3dstra)
    870885      DEALLOCATE(od443aer)
    871886      DEALLOCATE(od550aer)
  • LMDZ6/trunk/libf/phylmd/phys_output_ctrlout_mod.F90

    r3110 r3112  
    14471447  TYPE(ctrl_out), SAVE :: o_lcc3dstra = ctrl_out((/ 2,  6, 10, 10, 10, 10, 11, 11, 11, 11/), &
    14481448    'lcc3dstra', 'Stratiform cloud liquid fraction', '1', (/ ('', i=1, 10) /))
     1449  TYPE(ctrl_out), SAVE :: o_icc3dcon = ctrl_out((/ 2,  6, 10, 10, 10, 10, 11, 11, 11, 11/), &
     1450    'icc3dcon', 'Mass Fraction of Convective Cloud Ice', &
     1451    'kg kg-1', (/ ('', i=1, 10) /))
     1452  TYPE(ctrl_out), SAVE :: o_icc3dstra = ctrl_out((/ 2,  6, 10, 10, 10, 10, 11, 11, 11, 11/), &
     1453    'icc3dstra', 'Mass Fraction of Stratiform Cloud Ice', &
     1454    'kg kg-1', (/ ('', i=1, 10) /))
    14491455  TYPE(ctrl_out), SAVE :: o_solbnd = ctrl_out((/ 2,  6, 10, 10, 10, 10, 11, 11, 11, 11/), &
    14501456    'solbnd', 'Top-of-Atmosphere Solar Insolation for each band', 'W m-2', (/ ('', i=1, 10) /))
     1457  TYPE(ctrl_out), SAVE :: o_rsdsdiff = ctrl_out((/ 2,  6, 10, 10, 10, 10, 11, 11, 11, 11/), &
     1458    'rsdsdiff', 'Surface Diffuse Downwelling Shortwave Radiation', 'W m-2', (/ ('', i=1, 10) /))
     1459  TYPE(ctrl_out), SAVE :: o_rsdscsdiff = ctrl_out((/ 2,  6, 10, 10, 10, 10, 11, 11, 11, 11/), &
     1460    'rsdscsdiff', 'Surface Diffuse Downwelling Clear Sky Shortwave Radiation', 'W m-2', (/ ('', i=1, 10) /))
    14511461  TYPE(ctrl_out), SAVE :: o_stratomask = ctrl_out((/ 2,  6, 10, 10, 10, 10, 11, 11, 11, 11/), &
    14521462    'stratomask', 'Stratospheric fraction', '1', (/ ('', i=1, 10) /))
  • LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90

    r3110 r3112  
    120120         o_swtoacf_zero, o_swsrfcf_zero, &
    121121         o_topswai, o_solswai, o_toplwai, o_sollwai, o_scdnc, &
    122          o_cldncl, o_reffclws, o_reffclwc, o_solbnd, o_stratomask,&
     122         o_cldncl, o_reffclws, o_reffclwc, o_solbnd, &
     123         o_rsdsdiff, o_rsdscsdiff, o_stratomask,&
    123124         o_cldnvi, o_lcc, o_lcc3d, o_lcc3dcon, &
    124          o_lcc3dstra, o_reffclwtop, o_ec550aer, &
     125         o_lcc3dstra, o_icc3dcon, o_icc3dstra, o_reffclwtop, o_ec550aer, &
    125126         o_lwcon, o_iwcon, o_temp, o_theta, &
    126127         o_ovapinit, o_ovap, o_oliq, o_ocond, o_geop, &
     
    277278         toplwad_aero, toplwad0_aero, sollwad_aero, &
    278279         sollwad0_aero, toplwai_aero, sollwai_aero, &
    279          scdnc, cldncl, reffclws, reffclwc, cldnvi, stratomask,&
    280          lcc, lcc3d, lcc3dcon, lcc3dstra, reffclwtop, &
     280         scdnc, cldncl, reffclws, reffclwc, cldnvi, &
     281         PSFSWDIR, PSFSWDIF, stratomask,&
     282         lcc, lcc3d, lcc3dcon, lcc3dstra, icc3dcon, icc3dstra, reffclwtop, &
    281283         ec550aer, flwc, fiwc, t_seri, theta, q_seri, &
    282284         ql_seri, qs_seri, tr_seri, &
     
    14061408          CALL histwrite_phy(o_lcc3dcon, lcc3dcon)
    14071409          CALL histwrite_phy(o_lcc3dstra, lcc3dstra)
     1410          CALL histwrite_phy(o_icc3dcon, icc3dcon)
     1411          CALL histwrite_phy(o_icc3dstra, icc3dstra)
    14081412          CALL histwrite_phy(o_reffclwtop, reffclwtop)
    14091413       ENDIF
     
    14321436#ifdef CPP_RRTM
    14331437      IF (iflag_rrtm.EQ.1) THEN
     1438
    14341439       IF (vars_defined) THEN
    14351440        DO ISW=1, NSW
     
    14381443        CALL histwrite_phy(o_solbnd, zx_tmp_fi3dsp)
    14391444       ENDIF
     1445
     1446       IF (vars_defined) THEN
     1447        CALL histwrite_phy(o_rsdscsdiff, PSFSWDIR)
     1448       ENDIF
     1449
     1450       IF (vars_defined) THEN
     1451        CALL histwrite_phy(o_rsdsdiff, PSFSWDIF)
     1452       ENDIF
     1453
    14401454      ENDIF
    14411455#endif
  • LMDZ6/trunk/libf/phylmd/physiq_mod.F90

    r3111 r3112  
    8080       ZLWFT0_i,ZSWFT0_i,ZFLDN0,  &
    8181       ZFLUP0,ZFSDN0,ZFSUP0,      &
     82       PSFSWDIR, PSFSWDIF, &
    8283       !
    8384       topswad_aero,solswad_aero,   &
     
    37923793                                !-end
    37933794               ZLWFT0_i, ZFLDN0, ZFLUP0, &
    3794                ZSWFT0_i, ZFSDN0, ZFSUP0)
     3795               ZSWFT0_i, ZFSDN0, ZFSUP0, &
     3796               PSFSWDIR, PSFSWDIF)
    37953797
    37963798          !lwoff=y, betalwoff=1. : offset LW CRE for radiation code and other
     
    38763878                                !-end
    38773879                     ZLWFT0_i, ZFLDN0, ZFLUP0, &
    3878                      ZSWFT0_i, ZFSDN0, ZFSUP0)
     3880                     ZSWFT0_i, ZFSDN0, ZFSUP0, &
     3881                     PSFSWDIR, PSFSWDIF)
    38793882          endif !ok_4xCO2atm
    38803883       ENDIF ! aerosol_couple
  • LMDZ6/trunk/libf/phylmd/radlwsw_m.F90

    r3106 r3112  
    4242!-end
    4343   ZLWFT0_i, ZFLDN0, ZFLUP0,&
    44    ZSWFT0_i, ZFSDN0, ZFSUP0)
     44   ZSWFT0_i, ZFSDN0, ZFSUP0,&
     45   PSFSWDIR, PSFSWDIF)
    4546
    4647
Note: See TracChangeset for help on using the changeset viewer.