Ignore:
Timestamp:
May 31, 2016, 1:34:05 PM (8 years ago)
Author:
oboucher
Message:

Changing flag_aerosol_strat from logical (y/n) to
an integer (0/1/2) for CMIP6 needs

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

Legend:

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

    r2524 r2530  
    7676    LOGICAL              :: ok_ade, ok_aie, ok_cdnc, aerosol_couple
    7777    INTEGER              :: flag_aerosol
    78     LOGICAL              :: flag_aerosol_strat
     78    INTEGER              :: flag_aerosol_strat
    7979    LOGICAL              :: new_aod
    8080    REAL                 :: bl95_b0, bl95_b1
     
    9494    LOGICAL,SAVE        :: ok_ade_omp, ok_aie_omp, ok_cdnc_omp, aerosol_couple_omp
    9595    INTEGER, SAVE       :: flag_aerosol_omp
    96     LOGICAL, SAVE       :: flag_aerosol_strat_omp
     96    INTEGER, SAVE       :: flag_aerosol_strat_omp
    9797    LOGICAL, SAVE       :: new_aod_omp
    9898    REAL,SAVE           :: bl95_b0_omp, bl95_b1_omp
     
    386386    !
    387387    !Config Key  = flag_aerosol_strat
    388     !Config Desc = use stratospheric aerosols T/F
    389     !Config Def  = false
     388    !Config Desc = use stratospheric aerosols 0, 1, 2
     389    ! - 0 = no stratospheric aerosols
     390    ! - 1 = stratospheric aerosols scaled from 550 nm AOD
     391    ! - 2 = stratospheric aerosol properties from CMIP6
     392    !Config Def  = 0
    390393    !Config Help = Used in physiq.F
    391394    !
    392395    !
    393     flag_aerosol_strat_omp = .false.
     396    flag_aerosol_strat_omp = 0
    394397    CALL getin('flag_aerosol_strat',flag_aerosol_strat_omp)
    395398
  • LMDZ5/trunk/libf/phylmd/phys_output_mod.F90

    r2492 r2530  
    8181    INTEGER                               :: nlevSTD, radpas
    8282    LOGICAL                               :: ok_mensuel, ok_journe, ok_hf, ok_instan
    83     LOGICAL                               :: ok_LES,ok_ade,ok_aie,flag_aerosol_strat
     83    LOGICAL                               :: ok_LES,ok_ade,ok_aie
     84    INTEGER                               :: flag_aerosol_strat
    8485    LOGICAL                               :: new_aod, aerosol_couple
    8586    INTEGER, INTENT(IN)::  read_climoz ! read ozone climatology
  • LMDZ5/trunk/libf/phylmd/phys_output_write_mod.F90

    r2517 r2530  
    302302    REAL, DIMENSION(klon,klev,nqtot) :: qx, d_qx
    303303    REAL, DIMENSION(klon, klev) :: zmasse
    304     LOGICAL :: flag_aerosol_strat
     304    INTEGER :: flag_aerosol_strat
    305305    INTEGER :: flag_aerosol
    306306    LOGICAL :: ok_cdnc
     
    943943             !--STRAT AER
    944944          ENDIF
    945           IF (flag_aerosol.GT.0.OR.flag_aerosol_strat) THEN
     945          IF (flag_aerosol.GT.0.OR.flag_aerosol_strat.GT.0) THEN
    946946!             DO naero = 1, naero_spc
    947947!--correction mini bug OB
     
    951951             END DO
    952952          ENDIF
    953           IF (flag_aerosol_strat) THEN
     953          IF (flag_aerosol_strat.GT.0) THEN
    954954             CALL histwrite_phy(o_tausumaero_lw, &
    955955                  tausum_aero(:,6,id_STRAT_phy) )
  • LMDZ5/trunk/libf/phylmd/physiq_mod.F90

    r2529 r2530  
    833833    !
    834834    !--STRAT AEROSOL
    835     LOGICAL, SAVE :: flag_aerosol_strat
     835    INTEGER, SAVE :: flag_aerosol_strat
    836836    !$OMP THREADPRIVATE(flag_aerosol_strat)
    837837    !c-fin STRAT AEROSOL
     
    30663066       !--STRAT AEROSOL
    30673067       !--updates tausum_aero,tau_aero,piz_aero,cg_aero
    3068        IF (flag_aerosol_strat) THEN
     3068       IF (flag_aerosol_strat.GT.0) THEN
    30693069          IF (prt_level .GE.10) THEN
    30703070             PRINT *,'appel a readaerosolstrat', mth_cur
    30713071          ENDIF
    30723072          IF (iflag_rrtm.EQ.0) THEN
     3073           IF (flag_aerosol_strat.EQ.1) THEN
    30733074             CALL readaerosolstrato(debut)
     3075           ELSE
     3076             abort_message='flag_aerosol_strat must equal 1 for rrtm=0'
     3077             call abort_physic(modname,abort_message,1)
     3078           ENDIF
    30743079          ELSE
    30753080#ifdef CPP_RRTM
    30763081             CALL readaerosolstrato_rrtm(debut)
    30773082#else
    3078 
    30793083             abort_message='You should compile with -rrtm if running ' &
    30803084                  // 'with iflag_rrtm=1'
     
    34843488               t_seri,q_seri,wo, &
    34853489               cldfrarad, cldemirad, cldtaurad, &
    3486                ok_ade.OR.flag_aerosol_strat, ok_aie, flag_aerosol, &
     3490               ok_ade.OR.flag_aerosol_strat.GT.0, ok_aie, flag_aerosol, &
    34873491               flag_aerosol_strat, &
    34883492               tau_aero, piz_aero, cg_aero, &
     
    35463550                     t_seri,q_seri,wo, &
    35473551                     cldfra, cldemi, cldtau, &
    3548                      ok_ade.OR.flag_aerosol_strat, ok_aie, flag_aerosol, &
     3552                     ok_ade.OR.flag_aerosol_strat.GT.0, ok_aie, flag_aerosol, &
    35493553                     flag_aerosol_strat, &
    35503554                     tau_aero, piz_aero, cg_aero, &
  • LMDZ5/trunk/libf/phylmd/radlwsw_m.F90

    r2413 r2530  
    101101  ! ok_aie---input-L- apply the Aerosol Indirect Effect or not?
    102102  ! flag_aerosol-input-I- aerosol flag from 0 to 6
    103   ! flag_aerosol_strat-input-I- use stratospheric aerosols flag (T/F)
     103  ! flag_aerosol_strat-input-I- use stratospheric aerosols flag (0, 1, 2)
    104104  ! tau_ae, piz_ae, cg_ae-input-R- aerosol optical properties (calculated in aeropt.F)
    105105  ! cldtaupi-input-R- epaisseur optique des nuages dans le visible
     
    190190  LOGICAL              :: lldebug
    191191  INTEGER, INTENT(in)  :: flag_aerosol                                   ! takes value 0 (no aerosol) or 1 to 6 (aerosols)
    192   LOGICAL, INTENT(in)  :: flag_aerosol_strat                             ! use stratospheric aerosols
     192  INTEGER, INTENT(in)  :: flag_aerosol_strat                             ! use stratospheric aerosols
    193193  REAL,    INTENT(in)  :: cldfra(KLON,KLEV), cldemi(KLON,KLEV), cldtaupd(KLON,KLEV)
    194194  REAL,    INTENT(in)  :: tau_aero(KLON,KLEV,naero_grp,2)                        ! aerosol optical properties (see aeropt.F)
  • LMDZ5/trunk/libf/phylmd/sw_aeroAR4.F90

    r2394 r2530  
    139139
    140140  LOGICAL ok_ade, ok_aie    ! use aerosol forcings or not?
    141   LOGICAL flag_aerosol_strat ! use stratospehric aerosols
     141  INTEGER flag_aerosol_strat ! use stratospehric aerosols
    142142  INTEGER flag_aerosol      ! global flag for aerosol 0 (no aerosol) or 1-5 (aerosols)
    143143  REAL(KIND=8) tauaero(kdlon,kflev,naero_grp,2)  ! aerosol optical properties
     
    309309     ENDIF ! swaero_diag .or. .not. AEROSOLFEEDBACK_ACTIVE
    310310
    311      IF (flag_aerosol .GT. 0 .OR. flag_aerosol_strat) THEN
     311     IF (flag_aerosol.GT.0 .OR. flag_aerosol_strat.GT.0) THEN
    312312
    313313     IF (ok_ade.and.swaero_diag .or. .not. ok_ade) THEN
     
    500500     ENDIF ! ok_aie     
    501501
    502      ENDIF !--if flag_aerosol GT 0 OR flag_aerosol_strat
     502     ENDIF !--if flag_aerosol GT 0 OR flag_aerosol_strat GT 0
    503503
    504504     itapsw = 0
     
    506506  itapsw = itapsw + 1
    507507
    508   IF  ( AEROSOLFEEDBACK_ACTIVE .AND. (flag_aerosol .GT. 0 .OR. flag_aerosol_strat) ) THEN
     508  IF  ( AEROSOLFEEDBACK_ACTIVE .AND. (flag_aerosol.GT.0 .OR. flag_aerosol_strat.GT.0) ) THEN
    509509  IF ( ok_ade .and. ok_aie  ) THEN
    510510    ZFSUP(:,:) =    ZFSUP_AERO(:,:,4)
Note: See TracChangeset for help on using the changeset viewer.