Changeset 6000


Ignore:
Timestamp:
Jan 6, 2026, 10:22:19 AM (7 days ago)
Author:
evignon
Message:

merge lmdz_ratqs_ini and lmdz_lscp_ini

Location:
LMDZ6/trunk/libf
Files:
2 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/lmdz_lscp_ini.f90

    r5995 r6000  
    347347  ! parameters for subgrid variability (ratqs) routines
    348348
     349  INTEGER, SAVE, PROTECTED :: nbsrf, is_ter, is_lic         ! number of subgrid tiles, and indices for land and landice tiles
     350  !$OMP THREADPRIVATE(nbsrf, is_ter, is_lic)
     351
     352  REAL, SAVE, PROTECTED :: a_ratqs_cv = 1.                  ! a_ratqs_cv and a_ratqs_wake control the contibution of cold pools to
     353                                                            ! water subgrid variability
     354  !$OMP THREADPRIVATE(a_ratqs_cv)
     355
     356  REAL, SAVE, PROTECTED :: a_ratqs_wake = 3.
     357  !$OMP THREADPRIVATE(a_ratqs_wake)
     358
     359  REAL, SAVE, PROTECTED :: tau_var = 700.0                  ! relaxation time for variability in thermals [s]
     360  !$OMP THREADPRIVATE(tau_var)
     361
     362  REAL, SAVE, PROTECTED :: fac_tau = 2.                     
     363  !$OMP THREADPRIVATE(fac_tau)
     364
     365  REAL, SAVE, PROTECTED :: tau_cumul = 1000.
     366  !$OMP THREADPRIVATE(tau_cumul)
     367
     368  INTEGER, SAVE, PROTECTED :: dqimpl = 1
     369  !$OMP THREADPRIVATE(dqimpl)
     370
     371  REAL, ALLOCATABLE, SAVE :: povariance(:,:)
     372  !$OMP THREADPRIVATE(povariance)
     373 
     374  REAL, ALLOCATABLE, SAVE :: var_conv(:,:)
     375  !$OMP THREADPRIVATE(var_conv)
    349376
    350377
     
    356383CONTAINS
    357384
    358 SUBROUTINE lscp_ini(dtime,lunout_in,prt_level_in,ok_ice_supersat_in, iflag_ratqs_in, fl_cor_ebil_in, &
    359                     RCPD_in, RLSTT_in, RLVTT_in, RLMLT_in, RVTMP2_in, &
     385        SUBROUTINE lscp_ini(dtime, klon, klev, iflag_thermals, nbsrf_in, is_ter_in, is_lic_in, lunout_in,    &
     386                    prt_level_in, ok_ice_supersat_in, iflag_ratqs_in, fl_cor_ebil_in,                        &
     387                    RCPD_in, RLSTT_in, RLVTT_in, RLMLT_in, RVTMP2_in,                                        &
    360388                    RTT_in, RD_in, RV_in, RG_in, RPI_in, EPS_W_in)
    361389
     
    364392
    365393   REAL, INTENT(IN)      :: dtime
     394   INTEGER, INTENT(IN)   :: klon, klev, iflag_thermals
     395   INTEGER, INTENT(IN)   :: nbsrf_in, is_ter_in, is_lic_in
    366396   INTEGER, INTENT(IN)   :: lunout_in,prt_level_in,iflag_ratqs_in,fl_cor_ebil_in
    367397   LOGICAL, INTENT(IN)   :: ok_ice_supersat_in
    368 
    369398   REAL, INTENT(IN)      :: RCPD_in, RLSTT_in, RLVTT_in, RLMLT_in
    370399   REAL, INTENT(IN)      :: RVTMP2_in, RTT_in, RD_in, RV_in, RG_in, RPI_in, EPS_W_in
    371    character (len=20) :: modname='lscp_ini_mod'
    372    character (len=80) :: abort_message
    373 
     400
     401   CHARACTER (len=20) :: modname='lscp_ini_mod'
     402   CHARACTER (len=80) :: abort_message
     403
     404   INTEGER               :: i,k
    374405
    375406    lunout=lunout_in
    376407    prt_level=prt_level_in
     408    nbsrf=nbsrf_in
     409    is_ter=is_ter_in
     410    is_lic=is_lic_in
    377411    fl_cor_ebil=fl_cor_ebil_in
    378412    iflag_ratqs=iflag_ratqs_in
     
    392426    EPS_W=EPS_W_in
    393427
     428
     429    IF (iflag_thermals==15.OR.iflag_thermals==16) THEN
     430        dqimpl=-1
     431    ENDIF
    394432
    395433
     
    420458    CALL getin_p('ffallv_lsc',ffallv_lsc)
    421459    CALL getin_p('ffallv_lsc',ffallv_con)
     460   
    422461    ! for poprecip and cloud phase
    423462    CALL getin_p('coef_eva',coef_eva)
     
    464503    CALL getin_p('snow_fallspeed_clr',snow_fallspeed_clr)
    465504    CALL getin_p('snow_fallspeed_cld',snow_fallspeed_cld)
     505   
    466506    ! for condensation and ice supersaturation
    467507    CALL getin_p('ok_unadjusted_clouds',ok_unadjusted_clouds)
     
    483523    CALL getin_p('coef_shear_lscp',coef_shear_lscp)
    484524    CALL getin_p('chi_mixing_lscp',chi_mixing_lscp)
     525   
    485526    ! for cloudth routines
    486527    CALL getin_p('ok_lscp_mergecond',ok_lscp_mergecond)
     
    495536    CALL getin_p('cloudth_vert_alpha_th',vert_alpha_th)
    496537    CALL getin_p('iflag_cloudth_vert_noratqs',iflag_cloudth_vert_noratqs)
     538
     539    ! for subgrid water variability (ratqs) routines
     540    CALL getin_p('tau_var', tau_var)
     541    CALL getin_p('fac_tau', fac_tau)
     542    CALL getin_p('tau_cumul', tau_cumul)
     543    CALL getin_p('a_ratqs_wake', a_ratqs_wake)
     544    CALL getin_p('a_ratqs_cv', a_ratqs_cv)
     545
    497546
    498547    WRITE(lunout,*) 'lscp_ini, niter_lscp:', niter_lscp
     
    589638    WRITE(lunout,*) 'lscp_ini, cloudth_vert_alpha_th:', vert_alpha_th
    590639    WRITE(lunout,*) 'lscp_ini, iflag_cloudth_vert_noratqs:', iflag_cloudth_vert_noratqs
     640    ! for subgrid water variability (ratqs) routines
     641    WRITE(lunout,*) 'lscp_ini, tau_var:', tau_var
     642    WRITE(lunout,*) 'lscp_ini, fac_tau:', fac_tau
     643    WRITE(lunout,*) 'lscp_ini, tau_cumulu:', tau_cumul
     644    WRITE(lunout,*) 'lscp_ini, a_ratqs_wake:', a_ratqs_wake
     645    WRITE(lunout,*) 'lscp_ini, a_ratqs_cv:', a_ratqs_cv
    591646
    592647
     
    626681
    627682
    628     !AA Temporary initialisation
     683    ! Temporary initialisation
    629684    a_tr_sca(1) = -0.5
    630685    a_tr_sca(2) = -0.5
     
    632687    a_tr_sca(4) = -0.5
    633688   
     689    ! Initialisation of variances of subgrid variability of water
     690    ! for the prognostic parameterisation
     691    ! Works only in 1D so far, but should become a state variable
     692    ! of the model and an argument of the routines
     693
     694    IF (klon.EQ.1) THEN
     695        DO k=1,klev
     696            DO i=1,klon
     697              povariance(i,k) = 0.00000000001
     698              var_conv(i,k) = 0.00000000001
     699            ENDDO
     700        ENDDO
     701    ELSE
     702        PRINT*, 'variance of subgrid variability of water should be conserved in restart files'
     703    ENDIF
     704
     705
    634706
    635707RETURN
  • LMDZ6/trunk/libf/phylmd/lmdz_ratqs_multi.f90

    r5999 r6000  
    2424           ratqs_inter_,sigma_qtherm)
    2525
    26 USE lmdz_ratqs_ini, ONLY : a_ratqs_cv,tau_var,fac_tau,tau_cumul,a_ratqs_wake, dqimpl
    27 USE lmdz_ratqs_ini, ONLY : RG
    28 USE lmdz_ratqs_ini, ONLY : povariance, var_conv
     26USE lmdz_lscp_ini, ONLY : a_ratqs_cv,tau_var,fac_tau,tau_cumul,a_ratqs_wake, dqimpl
     27USE lmdz_lscp_ini, ONLY : RG
     28USE lmdz_lscp_ini, ONLY : povariance, var_conv
    2929USE lmdz_thermcell_dq,  ONLY : thermcell_dq
    3030
  • LMDZ6/trunk/libf/phylmd/physiq_mod.F90

    r5999 r6000  
    18921892       CALL thermcell_ini(iflag_thermals,prt_level,tau_thermals,lunout, &
    18931893            &    RG,RD,RCPD,RKAPPA,RLVTT,RETV)
    1894        CALL ratqs_ini(klon,klev,iflag_thermals,lunout,nbsrf,is_lic,is_ter,RG,RV,RD,RCPD,RLSTT,RLVTT,RTT)
    1895        CALL lscp_ini(pdtphys,lunout,prt_level,ok_ice_supersat,iflag_ratqs,fl_cor_ebil, &
    1896             RCPD,RLSTT,RLVTT,RLMLT,RVTMP2,RTT,RD,RV,RG,RPI,EPS_W)
     1894       CALL lscp_ini(pdtphys,klon,klev,iflag_thermals,nbsrf,is_ter,is_lic,lunout,prt_level,       &
     1895                     ok_ice_supersat,iflag_ratqs,fl_cor_ebil,                                    &
     1896                     RCPD,RLSTT,RLVTT,RLMLT,RVTMP2,RTT,RD,RV,RG,RPI,EPS_W)
    18971897       CALL blowing_snow_ini(RCPD, RLSTT, RLVTT, RLMLT, &
    18981898            RVTMP2, RTT,RD,RG, RV, RPI)
  • LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90

    r5999 r6000  
    20352035       CALL thermcell_ini(iflag_thermals,prt_level,tau_thermals,lunout, &
    20362036   &    RG,RD,RCPD,RKAPPA,RLVTT,RETV)
    2037        CALL ratqs_ini(klon,klev,iflag_thermals,lunout,nbsrf,is_lic,is_ter,RG,RV,RD,RCPD,RLSTT,RLVTT,RTT)
    2038        CALL lscp_ini(pdtphys,lunout,prt_level,ok_ice_supersat,iflag_ratqs,fl_cor_ebil, &
     2037       CALL lscp_ini(pdtphys,klon,klev,iflag_thermals,nbsrf,is_ter,is_lic,lunout,prt_level,       &
     2038                     ok_ice_supersat,iflag_ratqs,fl_cor_ebil,                                    &
    20392039                     RCPD,RLSTT,RLVTT,RLMLT,RVTMP2,RTT,RD,RV,RG,RPI,EPS_W)
    20402040       CALL blowing_snow_ini(RCPD, RLSTT, RLVTT, RLMLT, &
Note: See TracChangeset for help on using the changeset viewer.