Ignore:
Timestamp:
Sep 24, 2024, 10:47:17 AM (7 weeks ago)
Author:
abarral
Message:

Merge r5204 r5205
Light lint
Correct missing IOIPSL includes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_lscp_ini.F90

    r5117 r5224  
    66  !--------------------
    77 
    8   REAL RCPD, RLSTT, RLVTT, RLMLT, RVTMP2, RTT, RD, RG, RV, RPI
    9   !$OMP THREADPRIVATE(RCPD, RLSTT, RLVTT, RLMLT, RVTMP2, RTT, RD, RG, RV, RPI)
     8  REAL RCPD, RLSTT, RLVTT, RLMLT, RVTMP2, RTT, RD, RV, RG, RPI, EPS_W
     9  !$OMP THREADPRIVATE(RCPD, RLSTT, RLVTT, RLMLT, RVTMP2, RTT, RD, RV, RG, RPI, EPS_W)
    1010 
    1111  REAL, SAVE, PROTECTED :: seuil_neb=0.001      ! cloud fraction threshold: a cloud can precipitate when exceeded
     
    4040  !$OMP THREADPRIVATE(ztfondue)
    4141
    42   REAL, SAVE, PROTECTED :: temp_nowater=233.15  ! temperature below which liquid water no longer exists
     42  REAL, SAVE, PROTECTED :: temp_nowater=235.15  ! temperature below which liquid water no longer exists
    4343  !$OMP THREADPRIVATE(temp_nowater)
    4444
     
    140140  !$OMP THREADPRIVATE(dist_liq)
    141141
    142   REAL, SAVE, PROTECTED    :: tresh_cl=0.0                  ! cloud fraction threshold for cloud top search
     142  REAL, SAVE, PROTECTED  :: tresh_cl=0.0                  ! cloud fraction threshold for cloud top search
    143143  !$OMP THREADPRIVATE(tresh_cl)
     144
     145  !--Parameters for condensation and ice supersaturation
     146  LOGICAL, SAVE, PROTECTED :: ok_external_lognormal=.FALSE.  ! if True, the lognormal condensation scheme is calculated in the lmdz_lscp_condensation routine
     147  !$OMP THREADPRIVATE(ok_external_lognormal)
     148
     149  LOGICAL, SAVE, PROTECTED :: ok_ice_supersat=.FALSE.        ! activates the condensation scheme that allows for ice supersaturation
     150  !$OMP THREADPRIVATE(ok_ice_supersat)
     151
     152  LOGICAL, SAVE, PROTECTED :: ok_unadjusted_clouds=.FALSE.   ! if True, relax the saturation adjustment assumption for ice clouds
     153  !$OMP THREADPRIVATE(ok_unadjusted_clouds)
     154
     155  LOGICAL, SAVE, PROTECTED :: ok_weibull_warm_clouds=.FALSE. ! if True, the weibull condensation scheme replaces the lognormal condensation scheme at positive temperatures
     156  !$OMP THREADPRIVATE(ok_weibull_warm_clouds)
     157
     158  INTEGER, SAVE, PROTECTED :: iflag_cloud_sublim_pdf=3       ! iflag for the distribution of water inside ice clouds
     159  !$OMP THREADPRIVATE(iflag_cloud_sublim_pdf)
     160
     161  REAL, SAVE, PROTECTED :: depo_coef_cirrus=.5               ! [-] deposition coefficient for growth of ice crystals in cirrus clouds
     162  !$OMP THREADPRIVATE(depo_coef_cirrus)
     163
     164  REAL, SAVE, PROTECTED :: capa_cond_cirrus=.5               ! [-] capacitance factor for growth/sublimation of ice crystals in cirrus clouds
     165  !$OMP THREADPRIVATE(capa_cond_cirrus)
     166
     167  REAL, SAVE, PROTECTED :: mu_subl_pdf_lscp=1./3.            ! [-] shape factor of the gamma distribution of water inside ice clouds
     168  !$OMP THREADPRIVATE(mu_subl_pdf_lscp)
     169
     170  REAL, SAVE, PROTECTED :: beta_pdf_lscp=8.75E-4             ! [] tuning coefficient for the standard deviation of the PDF of water vapor in the clear sky region
     171  !$OMP THREADPRIVATE(beta_pdf_lscp)
     172
     173  REAL, SAVE, PROTECTED :: temp_thresh_pdf_lscp=188.         ! [K] factor for the PDF fit of water vapor in UTLS - below this temperature, water vapor is homogeneously distributed in the clear sky region
     174  !$OMP THREADPRIVATE(temp_thresh_pdf_lscp)
     175
     176  REAL, SAVE, PROTECTED :: rhlmid_pdf_lscp=52.8              ! [%] factor for the PDF fit of water vapor in UTLS - below this rel hum wrt liq, std increases with RHliq, above it decreases with RHliq
     177  !$OMP THREADPRIVATE(rhlmid_pdf_lscp)
     178
     179  REAL, SAVE, PROTECTED :: k0_pdf_lscp=2.80                  ! [-] factor for the PDF fit of water vapor in UTLS
     180  !$OMP THREADPRIVATE(k0_pdf_lscp)
     181
     182  REAL, SAVE, PROTECTED :: kappa_pdf_lscp=0.0236             ! [] factor for the PDF fit of water vapor in UTLS
     183  !$OMP THREADPRIVATE(kappa_pdf_lscp)
     184
     185  REAL, SAVE, PROTECTED :: rhl0_pdf_lscp=88.7                ! [%] factor for the PDF fit of water vapor in UTLS
     186  !$OMP THREADPRIVATE(rhl0_pdf_lscp)
     187
     188  REAL, SAVE, PROTECTED :: cond_thresh_pdf_lscp=1.E-10       ! [-] threshold for the formation of new cloud
     189  !$OMP THREADPRIVATE(cond_thresh_pdf_lscp)
     190
     191  REAL, SAVE, PROTECTED :: a_homofreez=2.349                 ! [-] factor for the Koop homogeneous freezing fit
     192  !$OMP THREADPRIVATE(a_homofreez)
     193
     194  REAL, SAVE, PROTECTED :: b_homofreez=259.                  ! [K] factor for the Koop homogeneous freezing fit
     195  !$OMP THREADPRIVATE(b_homofreez)
     196
     197  REAL, SAVE, PROTECTED :: delta_hetfreez=1.                 ! [-] value between 0 and 1 to simulate for heterogeneous freezing.
     198  !$OMP THREADPRIVATE(delta_hetfreez)
     199
     200  REAL, SAVE, PROTECTED :: coef_mixing_lscp=1e-7             ! [-] tuning coefficient for the mixing process
     201  !$OMP THREADPRIVATE(coef_mixing_lscp)
     202
     203  REAL, SAVE, PROTECTED :: coef_shear_lscp=0.1               ! [-] additional coefficient for the shearing process (subprocess of the mixing process)
     204  !$OMP THREADPRIVATE(coef_shear_lscp)
     205
     206  REAL, SAVE, PROTECTED :: chi_mixing_lscp=1.1               ! [-] factor for the macro distribution of ISSRs wrt clouds in a gridbox
     207  !$OMP THREADPRIVATE(chi_mixing_lscp)
     208
     209!  REAL, SAVE, PROTECTED :: contrail_cross_section=200000.
     210!  !$OMP THREADPRIVATE(contrail_cross_section)
     211  !--End of the parameters for condensation and ice supersaturation
    144212
    145213  !--Parameters for poprecip
     
    247315CONTAINS
    248316
    249 SUBROUTINE lscp_ini(dtime,lunout_in,prt_level_in,ok_ice_sursat, iflag_ratqs, fl_cor_ebil_in, RCPD_in, RLSTT_in, RLVTT_in, RLMLT_in, &
    250                     RVTMP2_in, RTT_in,RD_in,RG_in,RV_in,RPI_in)
     317SUBROUTINE lscp_ini(dtime,lunout_in,prt_level_in,ok_ice_supersat_in, iflag_ratqs, fl_cor_ebil_in, &
     318                    RCPD_in, RLSTT_in, RLVTT_in, RLMLT_in, RVTMP2_in, &
     319                    RTT_in, RD_in, RV_in, RG_in, RPI_in, EPS_W_in)
    251320
    252321
    253322   USE lmdz_ioipsl_getin_p, ONLY: getin_p
    254    USE ice_sursat_mod, ONLY: ice_sursat_init
    255323   USE lmdz_cloudth_ini, ONLY: cloudth_ini
    256324   USE lmdz_abort_physic, ONLY: abort_physic
     
    258326   REAL, INTENT(IN)      :: dtime
    259327   INTEGER, INTENT(IN)   :: lunout_in,prt_level_in,iflag_ratqs,fl_cor_ebil_in
    260    LOGICAL, INTENT(IN)   :: ok_ice_sursat
     328   LOGICAL, INTENT(IN)   :: ok_ice_supersat_in
    261329
    262330   REAL, INTENT(IN)      :: RCPD_in, RLSTT_in, RLVTT_in, RLMLT_in
    263    REAL, INTENT(IN)      ::  RVTMP2_in, RTT_in, RD_in, RG_in, RV_in, RPI_in
     331   REAL, INTENT(IN)      :: RVTMP2_in, RTT_in, RD_in, RV_in, RG_in, RPI_in, EPS_W_in
    264332   CHARACTER (LEN=20) :: modname='lscp_ini_mod'
    265333   CHARACTER (LEN=80) :: abort_message
     
    270338    fl_cor_ebil=fl_cor_ebil_in
    271339
     340    ok_ice_supersat=ok_ice_supersat_in
     341
    272342    RG=RG_in
    273343    RD=RD_in
     344    RV=RV_in
    274345    RCPD=RCPD_in
    275346    RLVTT=RLVTT_in
     
    280351    RVTMP2=RVTMP2_in
    281352    RPI=RPI_in
     353    EPS_W=EPS_W_in
    282354
    283355
     
    327399    CALL getin_p('gamma_taud',gamma_taud)
    328400    CALL getin_p('iflag_oldbug_fisrtilp',iflag_oldbug_fisrtilp)
     401    CALL getin_p('temp_nowater',temp_nowater)
     402    ! for poprecip
    329403    CALL getin_p('ok_poprecip',ok_poprecip)
    330404    CALL getin_p('ok_corr_vap_evasub',ok_corr_vap_evasub)
     
    346420    CALL getin_p('snow_fallspeed_clr',snow_fallspeed_clr)
    347421    CALL getin_p('snow_fallspeed_cld',snow_fallspeed_cld)
     422    ! for condensation and ice supersaturation
     423    CALL getin_p('ok_external_lognormal',ok_external_lognormal)
     424    CALL getin_p('ok_unadjusted_clouds',ok_unadjusted_clouds)
     425    CALL getin_p('ok_weibull_warm_clouds',ok_weibull_warm_clouds)
     426    CALL getin_p('iflag_cloud_sublim_pdf',iflag_cloud_sublim_pdf)
     427    CALL getin_p('depo_coef_cirrus',depo_coef_cirrus)
     428    CALL getin_p('capa_cond_cirrus',capa_cond_cirrus)
     429    CALL getin_p('mu_subl_pdf_lscp',mu_subl_pdf_lscp)
     430    CALL getin_p('beta_pdf_lscp',beta_pdf_lscp)
     431    CALL getin_p('temp_thresh_pdf_lscp',temp_thresh_pdf_lscp)
     432    CALL getin_p('rhlmid_pdf_lscp',rhlmid_pdf_lscp)
     433    CALL getin_p('k0_pdf_lscp',k0_pdf_lscp)
     434    CALL getin_p('kappa_pdf_lscp',kappa_pdf_lscp)
     435    CALL getin_p('rhl0_pdf_lscp',rhl0_pdf_lscp)
     436    CALL getin_p('cond_thresh_pdf_lscp',cond_thresh_pdf_lscp)
     437    CALL getin_p('a_homofreez',a_homofreez)
     438    CALL getin_p('b_homofreez',b_homofreez)
     439    CALL getin_p('delta_hetfreez',delta_hetfreez)
     440    CALL getin_p('coef_mixing_lscp',coef_mixing_lscp)
     441    CALL getin_p('coef_shear_lscp',coef_shear_lscp)
     442    CALL getin_p('chi_mixing_lscp',chi_mixing_lscp)
     443    !CALL getin_p('contrail_cross_section',contrail_cross_section)
    348444
    349445
     
    391487    WRITE(lunout,*) 'lscp_ini, iflag_oldbug_fisrtilp', iflag_oldbug_fisrtilp
    392488    WRITE(lunout,*) 'lscp_ini, fl_cor_ebil', fl_cor_ebil
     489    WRITE(lunout,*) 'lscp_ini, temp_nowater', temp_nowater
     490    ! for poprecip
    393491    WRITE(lunout,*) 'lscp_ini, ok_poprecip', ok_poprecip
    394492    WRITE(lunout,*) 'lscp_ini, ok_corr_vap_evasub', ok_corr_vap_evasub
     
    404502    WRITE(lunout,*) 'lscp_ini, snow_fallspeed_clr:', snow_fallspeed_clr
    405503    WRITE(lunout,*) 'lscp_ini, snow_fallspeed_cld:', snow_fallspeed_cld
     504    ! for condensation and ice supersaturation
     505    WRITE(lunout,*) 'lscp_ini, ok_external_lognormal:', ok_external_lognormal
     506    WRITE(lunout,*) 'lscp_ini, ok_ice_supersat:', ok_ice_supersat
     507    WRITE(lunout,*) 'lscp_ini, ok_unadjusted_clouds:', ok_unadjusted_clouds
     508    WRITE(lunout,*) 'lscp_ini, ok_weibull_warm_clouds:', ok_weibull_warm_clouds
     509    WRITE(lunout,*) 'lscp_ini, iflag_cloud_sublim_pdf:', iflag_cloud_sublim_pdf
     510    WRITE(lunout,*) 'lscp_ini, depo_coef_cirrus:', depo_coef_cirrus
     511    WRITE(lunout,*) 'lscp_ini, capa_cond_cirrus:', capa_cond_cirrus
     512    WRITE(lunout,*) 'lscp_ini, mu_subl_pdf_lscp:', mu_subl_pdf_lscp
     513    WRITE(lunout,*) 'lscp_ini, beta_pdf_lscp:', beta_pdf_lscp
     514    WRITE(lunout,*) 'lscp_ini, temp_thresh_pdf_lscp:', temp_thresh_pdf_lscp
     515    WRITE(lunout,*) 'lscp_ini, rhlmid_pdf_lscp:', rhlmid_pdf_lscp
     516    WRITE(lunout,*) 'lscp_ini, k0_pdf_lscp:', k0_pdf_lscp
     517    WRITE(lunout,*) 'lscp_ini, kappa_pdf_lscp:', kappa_pdf_lscp
     518    WRITE(lunout,*) 'lscp_ini, rhl0_pdf_lscp:', rhl0_pdf_lscp
     519    WRITE(lunout,*) 'lscp_ini, a_homofreez:', a_homofreez
     520    WRITE(lunout,*) 'lscp_ini, b_homofreez:', b_homofreez
     521    WRITE(lunout,*) 'lscp_ini, delta_hetfreez', delta_hetfreez
     522    WRITE(lunout,*) 'lscp_ini, coef_mixing_lscp:', coef_mixing_lscp
     523    WRITE(lunout,*) 'lscp_ini, coef_shear_lscp:', coef_shear_lscp
     524    WRITE(lunout,*) 'lscp_ini, chi_mixing_lscp:', chi_mixing_lscp
     525!    WRITE(lunout,*) 'lscp_ini, contrail_cross_section:', contrail_cross_section
    406526
    407527
     
    423543
    424544
     545    !--Check flags for condensation and ice supersaturation
     546    IF ( ok_external_lognormal .AND. ok_ice_supersat ) THEN
     547      abort_message = 'in lscp, ok_external_lognormal=y is incompatible with ok_ice_supersat=y'
     548      CALL abort_physic (modname,abort_message,1)
     549    ENDIF
     550
     551    IF ( ok_weibull_warm_clouds .AND. .NOT. ok_ice_supersat ) THEN
     552      abort_message = 'in lscp, ok_weibull_warm_clouds=y needs ok_ice_supersat=y'
     553      CALL abort_physic (modname,abort_message,1)
     554    ENDIF
     555
     556    IF ( ok_unadjusted_clouds .AND. .NOT. ok_ice_supersat ) THEN
     557      abort_message = 'in lscp, ok_unadjusted_clouds=y needs ok_ice_supersat=y'
     558      CALL abort_physic (modname,abort_message,1)
     559    ENDIF
     560
     561
    425562    !AA Temporary initialisation
    426563    a_tr_sca(1) = -0.5
     
    428565    a_tr_sca(3) = -0.5
    429566    a_tr_sca(4) = -0.5
    430    
    431     IF (ok_ice_sursat) CALL ice_sursat_init()
    432567
    433568    CALL cloudth_ini(iflag_cloudth_vert,iflag_ratqs)
Note: See TracChangeset for help on using the changeset viewer.