Changeset 2536 for LMDZ5/trunk


Ignore:
Timestamp:
Jun 3, 2016, 3:04:40 PM (9 years ago)
Author:
oboucher
Message:

Introducing stratomask diagnostic on where the stratosphere is
flag_aerosol_strat = 2 for CMIP6 strat aerosol forcing

Location:
LMDZ5/trunk/libf/phylmd
Files:
2 added
5 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/phys_local_var_mod.F90

    r2518 r2536  
    137137      !$OMP THREADPRIVATE(ZFSDN0,ZFSUP0)
    138138!
     139      REAL, SAVE, ALLOCATABLE :: stratomask(:,:)
     140      !$OMP THREADPRIVATE(stratomask)
    139141      REAL, SAVE, ALLOCATABLE :: tausum_aero(:,:,:)
    140142      !$OMP THREADPRIVATE(tausum_aero)
     
    463465!      allocate(tausum_aero(klon,nwave,naero_spc))
    464466!      allocate(tau3d_aero(klon,klev,nwave,naero_spc))
     467      allocate(stratomask(klon,klev))
    465468!--correction mini bug OB
    466469      allocate(tausum_aero(klon,nwave,naero_tot))
     
    670673      deallocate(topsw0_aero,solsw0_aero)
    671674      deallocate(topswcf_aero,solswcf_aero)
     675      deallocate(stratomask)
    672676      deallocate(tausum_aero)
    673677      deallocate(tau3d_aero)
  • LMDZ5/trunk/libf/phylmd/phys_output_ctrlout_mod.F90

    r2517 r2536  
    850850       ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 /),'OD550_'//name_aero_tau(14),       &
    851851       "Aerosol Optical depth at 550 nm "//name_aero_tau(14),"14", (/ ('', i=1, 9) /)) /)
    852  
    853 
    854 
    855852!
    856853  TYPE(ctrl_out), SAVE :: o_tausumaero_lw = ctrl_out((/ 2, 6, 10, 10, 10, 10, 11, 11, 11 /), &
     
    10321029  TYPE(ctrl_out), SAVE :: o_lcc3dstra = ctrl_out((/ 2,  6, 10, 10, 10, 10, 11, 11, 11 /), &
    10331030    'lcc3dstra', 'Stratiform cloud liquid fraction', '1', (/ ('', i=1, 9) /))
     1031  TYPE(ctrl_out), SAVE :: o_stratomask = ctrl_out((/ 2,  6, 10, 10, 10, 10, 11, 11, 11 /), &
     1032    'stratomask', 'Stratospheric fraction', '1', (/ ('', i=1, 9) /))
    10341033!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    10351034
  • LMDZ5/trunk/libf/phylmd/phys_output_write_mod.F90

    r2530 r2536  
    112112         o_swtoacf_zero, o_swsrfcf_zero, &
    113113         o_topswai, o_solswai, o_scdnc, &
    114          o_cldncl, o_reffclws, o_reffclwc, &
     114         o_cldncl, o_reffclws, o_reffclwc, o_stratomask,&
    115115         o_cldnvi, o_lcc, o_lcc3d, o_lcc3dcon, &
    116116         o_lcc3dstra, o_reffclwtop, o_ec550aer, &
     
    230230         toplwad_aero, toplwad0_aero, sollwad_aero, &
    231231         sollwad0_aero, toplwai_aero, sollwai_aero, &
    232          scdnc, cldncl, reffclws, reffclwc, cldnvi, &
     232         scdnc, cldncl, reffclws, reffclwc, cldnvi, stratomask,&
    233233         lcc, lcc3d, lcc3dcon, lcc3dstra, reffclwtop, &
    234234         ec550aer, flwc, fiwc, t_seri, theta, q_seri, &
     
    10371037       CALL histwrite_phy(o_zfull,zphi/RG)
    10381038
     1039       CALL histwrite_phy(o_stratomask, stratomask)
     1040
    10391041       IF (vars_defined)  THEN
    10401042        zx_tmp_fi3d(:,1)= pphis(:)/RG
  • LMDZ5/trunk/libf/phylmd/physiq_mod.F90

    r2534 r2536  
    30793079             CALL readaerosolstrato(debut)
    30803080           ELSE
    3081              abort_message='flag_aerosol_strat must equal 1 for rrtm=0' 
     3081             abort_message='flag_aerosol_strat must equal 1 for rrtm=0'
    30823082             call abort_physic(modname,abort_message,1)
    30833083           ENDIF
    30843084          ELSE
    30853085#ifdef CPP_RRTM
    3086              CALL readaerosolstrato_rrtm(debut)
     3086            IF (flag_aerosol_strat.EQ.1) THEN
     3087             CALL readaerosolstrato1_rrtm(debut)
     3088            ELSEIF (flag_aerosol_strat.EQ.2) THEN
     3089             CALL stratosphere_mask(t_seri, pplay, latitude_deg)
     3090             CALL readaerosolstrato2_rrtm(debut)
     3091            ELSE
     3092             abort_message='flag_aerosol_strat must equal 1 or 2 for rrtm=1'
     3093             call abort_physic(modname,abort_message,1)
     3094            ENDIF
    30873095#else
    30883096             abort_message='You should compile with -rrtm if running ' &
     
    30933101       ENDIF
    30943102       !--fin STRAT AEROSOL
    3095 
    30963103
    30973104       !   On prend la somme des fractions nuageuses et des contenus en eau
  • LMDZ5/trunk/libf/phylmd/stratosphere_mask.F90

    r2527 r2536  
    1 SUBROUTINE stratosphere_mask(t_seri, pplay, xlat, is_strato)
     1SUBROUTINE stratosphere_mask(t_seri, pplay, xlat)
    22
    33!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
    2727
    2828USE dimphy
    29 !!USE phys_local_var_mod, ONLY: p_tropopause
     29USE phys_local_var_mod, ONLY: stratomask
    3030
    3131IMPLICIT NONE
     
    3434REAL,DIMENSION(klon,klev),INTENT(IN)   :: pplay   ! pression pour le mileu de chaque couche (en Pa)
    3535REAL,DIMENSION(klon),INTENT(IN)        :: xlat    ! latitudes pour chaque point
    36 
    37 LOGICAL,DIMENSION(klon,klev),INTENT(OUT) :: is_strato
    3836
    3937REAL, PARAMETER                        :: plimu=45000.
     
    8482DO k=1, klev
    8583  IF (pplay(i,k).LT.tp(i)) THEN
    86     is_strato(i,k)=.TRUE.
     84    stratomask(i,k)=1.0
    8785  ELSE
    88     is_strato(i,k)=.FALSE.
     86    stratomask(i,k)=0.0
    8987  ENDIF
    9088ENDDO
Note: See TracChangeset for help on using the changeset viewer.