diff --git a/src/MNH/modn_param_ice.f90 b/src/MNH/modn_param_ice.f90 deleted file mode 100644 index 5f669897704cbd6fc0adee895d96c432b4b68327..0000000000000000000000000000000000000000 --- a/src/MNH/modn_param_ice.f90 +++ /dev/null @@ -1,32 +0,0 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/modn_param_ice.f90,v $ $Revision: 1.2.2.1.2.1.18.3 $ -! MASDEV4_7 modn 2006/10/16 14:23:23 -!----------------------------------------------------------------- -! ##################### - MODULE MODN_PARAM_ICE -! ##################### -! -!------------------------------------------------------------------------------- -! -!* 0. DECLARATIONS -! ------------ -! -USE MODD_PARAM_ICE -! -IMPLICIT NONE -! -NAMELIST/NAM_PARAM_ICE/LWARM,LSEDIC,LCONVHG,CPRISTINE_ICE,CSEDIM,LDEPOSC,XVDEPOSC, & - LRED, LFEEDBACKT, & - LEVLIMIT,LNULLWETG,LWETGPOST,LNULLWETH,LWETHPOST, & - CSNOWRIMING,XFRACM90,NMAXITER,XMRSTEP,XTSTEP_TS, & - LADJ_BEFORE, LADJ_AFTER, CFRAC_ICE_ADJUST, LCRFLIMIT, & - XSPLIT_MAXCFL, CFRAC_ICE_SHALLOW_MF, LSEDIM_AFTER, & - CSUBG_RC_RR_ACCR, CSUBG_RR_EVAP, CSUBG_PR_PDF, LSNOW_T -! -END MODULE MODN_PARAM_ICE diff --git a/src/MNH/modn_param_mfshalln.f90 b/src/MNH/modn_param_mfshalln.f90 deleted file mode 100644 index 8654ee8bd19a6c10f2662c46a7e6b29456a0bba7..0000000000000000000000000000000000000000 --- a/src/MNH/modn_param_mfshalln.f90 +++ /dev/null @@ -1,180 +0,0 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!----------------------------------------------------------------- -!! MODIFICATIONS -!! ------------- -!! 10/16 R.Honnert Update with AROME -!! 01/2019 R.Honnert add parameters for the reduction of mass-flux surface closure with resolution -!----------------------------------------------------------------- -! ########################### - MODULE MODN_PARAM_MFSHALL_n -! ########################### -! -!------------------------------------------------------------------------------- -! -!* 0. DECLARATIONS -! ------------ -! -USE MODD_PARAM_MFSHALL_n, ONLY: & - XIMPL_MF_n => XIMPL_MF, & - CMF_UPDRAFT_n => CMF_UPDRAFT, & - CMF_CLOUD_n => CMF_CLOUD, & - LMIXUV_n => LMIXUV, & - LMF_FLX_n => LMF_FLX, & - XALP_PERT_n => XALP_PERT, & - XABUO_n => XABUO, & - XBENTR_n => XBENTR, & - XBDETR_n => XBDETR, & - XCMF_n => XCMF, & - XENTR_MF_n => XENTR_MF, & - XCRAD_MF_n => XCRAD_MF, & - XENTR_DRY_n => XENTR_DRY, & - XDETR_DRY_n => XDETR_DRY, & - XDETR_LUP_n => XDETR_LUP, & - XKCF_MF_n => XKCF_MF, & - XKRC_MF_n => XKRC_MF, & - XTAUSIGMF_n => XTAUSIGMF, & - XPRES_UV_n => XPRES_UV, & - XALPHA_MF_n => XALPHA_MF, & - XSIGMA_MF_n => XSIGMA_MF, & - XFRAC_UP_MAX_n => XFRAC_UP_MAX, & - XA1_n => XA1, & - XB_n => XB, & - XC_n => XC, & - XBETA1_n => XBETA1, & - XR_n => XR, & - XLAMBDA_MF_n => XLAMBDA_MF, & - LGZ_n => LGZ, & - XGZ_n => XGZ -! -IMPLICIT NONE -! -REAL ,SAVE :: XIMPL_MF -CHARACTER (LEN=4),SAVE :: CMF_UPDRAFT -CHARACTER (LEN=4),SAVE :: CMF_CLOUD -LOGICAL ,SAVE :: LMIXUV -LOGICAL ,SAVE :: LMF_FLX -! -REAL,SAVE :: XALP_PERT ! coefficient for the perturbation of - ! theta_l and r_t at the first level of - ! the updraft -REAL,SAVE :: XABUO ! coefficient of the buoyancy term in the w_up equation -REAL,SAVE :: XBENTR ! coefficient of the entrainment term in the w_up equation -REAL,SAVE :: XBDETR ! coefficient of the detrainment term in the w_up equation -REAL,SAVE :: XCMF ! coefficient for the mass flux at the first level - ! of the updraft (closure) -REAL,SAVE :: XENTR_MF ! entrainment constant (m/Pa) = 0.2 (m) -REAL,SAVE :: XCRAD_MF ! cloud radius in cloudy part -REAL,SAVE :: XENTR_DRY ! coefficient for entrainment in dry part -REAL,SAVE :: XDETR_DRY ! coefficient for detrainment in dry part -REAL,SAVE :: XDETR_LUP ! coefficient for detrainment in dry part -REAL,SAVE :: XKCF_MF ! coefficient for cloud fraction -REAL,SAVE :: XKRC_MF ! coefficient for convective rc -REAL,SAVE :: XTAUSIGMF -REAL,SAVE :: XPRES_UV ! coefficient for pressure term in wind - ! mixing - -REAL,SAVE :: XALPHA_MF ! coefficient for cloudy fraction -REAL,SAVE :: XSIGMA_MF ! coefficient for sigma computation - -REAL,SAVE :: XFRAC_UP_MAX! maximum Updraft fraction -! -! -! Tuning variables for RHCJ10 updraft : -! -REAL,SAVE :: XA1 -REAL,SAVE :: XB -REAL,SAVE :: XC -REAL,SAVE :: XBETA1 -! -! Tuning variables for RAHA updraft : -! -REAL,SAVE :: XR -REAL,SAVE :: XLAMBDA_MF -! -! Tuning variables for Grey Zone updraft : -! -LOGICAL,SAVE :: LGZ -REAL,SAVE :: XGZ -! -NAMELIST/NAM_PARAM_MFSHALLn/XIMPL_MF,CMF_UPDRAFT,CMF_CLOUD,LMIXUV,LMF_FLX,& - XALP_PERT,XABUO,XBENTR,XBDETR,XCMF,XENTR_MF,& - XCRAD_MF,XENTR_DRY,XDETR_DRY,XDETR_LUP,XKCF_MF,& - XKRC_MF,XTAUSIGMF,XPRES_UV,XALPHA_MF,XSIGMA_MF,& - XFRAC_UP_MAX,XA1,XB,XC,XBETA1,XR,XLAMBDA_MF,LGZ,XGZ - - -! -CONTAINS -! -SUBROUTINE INIT_NAM_PARAM_MFSHALLn - XIMPL_MF = XIMPL_MF_n - CMF_UPDRAFT = CMF_UPDRAFT_n - CMF_CLOUD = CMF_CLOUD_n - LMIXUV = LMIXUV_n - LMF_FLX = LMF_FLX_n - XALP_PERT = XALP_PERT_n - XABUO = XABUO_n - XBENTR = XBENTR_n - XBDETR = XBDETR_n - XCMF = XCMF_n - XENTR_MF = XENTR_MF_n - XCRAD_MF = XCRAD_MF_n - XENTR_DRY = XENTR_DRY_n - XDETR_DRY = XDETR_DRY_n - XDETR_LUP = XDETR_LUP_n - XKCF_MF = XKCF_MF_n - XKRC_MF = XKRC_MF_n - XTAUSIGMF = XTAUSIGMF_n - XPRES_UV = XPRES_UV_n - XALPHA_MF = XALPHA_MF_n - XSIGMA_MF = XSIGMA_MF_n - XFRAC_UP_MAX = XFRAC_UP_MAX_n - XA1 = XA1_n - XB = XB_n - XC = XC_n - XBETA1 = XBETA1_n - XR = XR_n - XLAMBDA_MF = XLAMBDA_MF_n - LGZ = LGZ_n - XGZ = XGZ_n - -END SUBROUTINE INIT_NAM_PARAM_MFSHALLn - -SUBROUTINE UPDATE_NAM_PARAM_MFSHALLn - XIMPL_MF_n = XIMPL_MF - CMF_UPDRAFT_n = CMF_UPDRAFT - CMF_CLOUD_n = CMF_CLOUD - LMIXUV_n = LMIXUV - LMF_FLX_n = LMF_FLX - XALP_PERT_n = XALP_PERT - XABUO_n = XABUO - XBENTR_n = XBENTR - XBDETR_n = XBDETR - XCMF_n = XCMF - XENTR_MF_n = XENTR_MF - XCRAD_MF_n = XCRAD_MF - XENTR_DRY_n = XENTR_DRY - XDETR_DRY_n = XDETR_DRY - XDETR_LUP_n = XDETR_LUP - XKCF_MF_n = XKCF_MF - XKRC_MF_n = XKRC_MF - XTAUSIGMF_n = XTAUSIGMF - XPRES_UV_n = XPRES_UV - XALPHA_MF_n = XALPHA_MF - XSIGMA_MF_n = XSIGMA_MF - XFRAC_UP_MAX_n = XFRAC_UP_MAX - XA1_n = XA1 - XB_n = XB - XC_n = XC - XBETA1_n = XBETA1 - XR_n = XR - XLAMBDA_MF_n = XLAMBDA_MF - LGZ_n = LGZ - XGZ_n = XGZ - -END SUBROUTINE UPDATE_NAM_PARAM_MFSHALLn - -END MODULE MODN_PARAM_MFSHALL_n diff --git a/src/MNH/modn_turbn.f90 b/src/MNH/modn_turbn.f90 deleted file mode 100644 index 35b271f9cbf2fd0634245e495fa635e44220815b..0000000000000000000000000000000000000000 --- a/src/MNH/modn_turbn.f90 +++ /dev/null @@ -1,167 +0,0 @@ -!MNH_LIC Copyright 1995-2021 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!----------------------------------------------------------------- -! ################### - MODULE MODN_TURB_n -! ################### -! -!!**** *MODN_TURB$n* - declaration of namelist NAM_TURBn -!! -!! PURPOSE -!! ------- -! The purpose of this module is to specify the namelist NAM_TURBn -! which concern the parameters of the turbulence scheme for one nested -! model. -! -!! -!!** IMPLICIT ARGUMENTS -!! ------------------ -!! Module MODD_TURB$n : contains declaration of turbulence scheme -!! variables entering by a namelist -!! -!! XIMPL,CTURBLEN,CTURBDIM,LTURB_FLX -!! LTURB_DIAG,LSUBG_COND,LTGT_FLX -!! -!! REFERENCE -!! --------- -!! Book2 of documentation of Meso-NH (module MODD_TURBn) -!! -!! AUTHOR -!! ------ -!! J. Cuxart and J. Stein * I.N.M. and Meteo-France * -!! -!! MODIFICATIONS -!! ------------- -!! Original January 9, 1995 -!! J.Cuxart February 15, 1995 add the switches for diagnostic storages -!! J. Stein June 14, 1995 add the subgrid condensation switch -!! J. Stein October, 1999 add the tangential fluxes switch -!! M. Tomasini Jul 05, 2001 add the subgrid autoconversion -!! P. Bechtold Feb 11, 2002 add switch for Sigma_s computation -!! P. Jabouille Apr 4, 2002 add switch for Sigma_s convection -!! V. Masson Nov 13 2002 add switch for SBL lengths -!! D. Ricard May, 2021 add switch for Leonard Terms -!------------------------------------------------------------------------------- -! -!* 0. DECLARATIONS -! ------------ -! -USE MODD_TURB_n, ONLY: & - XIMPL_n => XIMPL, & - XKEMIN_n => XKEMIN, & - XCEDIS_n => XCEDIS, & - XCADAP_n => XCADAP, & - CTURBLEN_n => CTURBLEN, & - CTURBDIM_n => CTURBDIM, & - LTURB_FLX_n => LTURB_FLX, & - LTURB_DIAG_n => LTURB_DIAG, & - LSUBG_COND_n => LSUBG_COND, & - LSIGMAS_n => LSIGMAS, & - LSIG_CONV_n => LSIG_CONV, & - LRMC01_n => LRMC01, & - CTOM_n => CTOM, & - CSUBG_AUCV_n => CSUBG_AUCV, & - VSIGQSAT_n => VSIGQSAT, & - CSUBG_AUCV_RI_n => CSUBG_AUCV_RI, & - CCONDENS_n => CCONDENS, & - CLAMBDA3_n => CLAMBDA3, & - CSUBG_MF_PDF_n => CSUBG_MF_PDF, & - LLEONARD_n => LLEONARD, & - XCOEFHGRADTHL_n => XCOEFHGRADTHL, & - XCOEFHGRADRM_n => XCOEFHGRADRM, & - XALTHGRAD_n => XALTHGRAD, & - XCLDTHOLD_n => XCLDTHOLD -! -IMPLICIT NONE -! -REAL,SAVE :: XIMPL -REAL,SAVE :: XKEMIN -REAL,SAVE :: XCEDIS -REAL,SAVE :: XCADAP -CHARACTER (LEN=4),SAVE :: CTURBLEN -CHARACTER (LEN=4),SAVE :: CTURBDIM -LOGICAL,SAVE :: LTURB_FLX -LOGICAL,SAVE :: LTURB_DIAG -LOGICAL,SAVE :: LSUBG_COND -LOGICAL,SAVE :: LSIGMAS -LOGICAL,SAVE :: LSIG_CONV -LOGICAL,SAVE :: LRMC01 -CHARACTER (LEN=4),SAVE :: CTOM -CHARACTER (LEN=4),SAVE :: CSUBG_AUCV -CHARACTER (LEN=80),SAVE :: CSUBG_AUCV_RI -CHARACTER (LEN=80),SAVE :: CCONDENS -CHARACTER (LEN=4),SAVE :: CLAMBDA3 -CHARACTER (LEN=80),SAVE :: CSUBG_MF_PDF -REAL,SAVE :: VSIGQSAT -LOGICAL,SAVE :: LLEONARD -REAL,SAVE :: XCOEFHGRADTHL -REAL,SAVE :: XCOEFHGRADRM -REAL,SAVE :: XALTHGRAD -REAL,SAVE :: XCLDTHOLD -! -NAMELIST/NAM_TURBn/XIMPL,CTURBLEN,CTURBDIM,LTURB_FLX,LTURB_DIAG, & - LSUBG_COND,LSIGMAS,LSIG_CONV,LRMC01,CTOM,CSUBG_AUCV,& - XKEMIN,VSIGQSAT,XCEDIS,XCADAP,CSUBG_AUCV_RI,CCONDENS,& - CLAMBDA3,CSUBG_MF_PDF,LLEONARD,XCOEFHGRADTHL, XCOEFHGRADRM, & - XALTHGRAD, XCLDTHOLD - -! -CONTAINS -! -SUBROUTINE INIT_NAM_TURBn - XIMPL = XIMPL_n - XKEMIN = XKEMIN_n - XCEDIS = XCEDIS_n - XCADAP = XCADAP_n - CTURBLEN = CTURBLEN_n - CTURBDIM = CTURBDIM_n - LTURB_FLX = LTURB_FLX_n - LTURB_DIAG = LTURB_DIAG_n - LSUBG_COND = LSUBG_COND_n - LSIGMAS = LSIGMAS_n - LSIG_CONV = LSIG_CONV_n - LRMC01 = LRMC01_n - CTOM = CTOM_n - CSUBG_AUCV = CSUBG_AUCV_n - VSIGQSAT = VSIGQSAT_n - CSUBG_AUCV_RI = CSUBG_AUCV_RI_n - CCONDENS = CCONDENS_n - CLAMBDA3 = CLAMBDA3_n - CSUBG_MF_PDF = CSUBG_MF_PDF_n - LLEONARD = LLEONARD_n - XCOEFHGRADTHL = XCOEFHGRADTHL_n - XCOEFHGRADRM = XCOEFHGRADRM_n - XALTHGRAD = XALTHGRAD_n - XCLDTHOLD = XCLDTHOLD_n -END SUBROUTINE INIT_NAM_TURBn - -SUBROUTINE UPDATE_NAM_TURBn - XIMPL_n = XIMPL - XKEMIN_n = XKEMIN - XCEDIS_n = XCEDIS - XCADAP_n = XCADAP - CTURBLEN_n = CTURBLEN - CTURBDIM_n = CTURBDIM - LTURB_FLX_n = LTURB_FLX - LTURB_DIAG_n = LTURB_DIAG - LSUBG_COND_n = LSUBG_COND - LSIGMAS_n = LSIGMAS - LSIG_CONV_n = LSIG_CONV - LRMC01_n = LRMC01 - CTOM_n = CTOM - CSUBG_AUCV_n = CSUBG_AUCV - VSIGQSAT_n = VSIGQSAT - CSUBG_AUCV_RI_n = CSUBG_AUCV_RI - CCONDENS_n = CCONDENS - CLAMBDA3_n = CLAMBDA3 - CSUBG_MF_PDF_n = CSUBG_MF_PDF - LLEONARD_n = LLEONARD - XCOEFHGRADTHL_n = XCOEFHGRADTHL - XCOEFHGRADRM_n = XCOEFHGRADRM - XALTHGRAD_n = XALTHGRAD - XCLDTHOLD_n = XCLDTHOLD -END SUBROUTINE UPDATE_NAM_TURBn - -END MODULE MODN_TURB_n diff --git a/src/PHYEX/micro/ini_neb.f90 b/src/PHYEX/micro/ini_neb.f90 deleted file mode 100644 index 0a36664e96fdd44e8fd287d9bd48bb39af288a15..0000000000000000000000000000000000000000 --- a/src/PHYEX/micro/ini_neb.f90 +++ /dev/null @@ -1,63 +0,0 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -! ######spl - SUBROUTINE INI_NEB -! ####################### -! -!!**** *INI_NEB* - routine to initialize the nebulosity computation -!! constants. -!! -!! PURPOSE -!! ------- -! The purpose of this routine is to initialize -! constants used for nebulosity computation -! -!! METHOD -!! ------ -!! The constants are set to their numerical values -!! -!! EXTERNAL -!! -------- -!! NONE -!! -!! IMPLICIT ARGUMENTS -!! ------------------ -!! Module MODD_NEB -!! -!! REFERENCE -!! --------- -!! -!! AUTHOR -!! ------ -!! S. Riette (Meteo France) -!! -!! MODIFICATIONS -!! ------------- -!! Original 24 Aug 2011 -!! -------------------------------------------------------------------------- -! -!* 0. DECLARATIONS -! ------------ -! -USE MODD_NEB -USE PARKIND1, ONLY : JPRB -USE YOMHOOK , ONLY : LHOOK, DR_HOOK -! -IMPLICIT NONE -REAL(KIND=JPRB) :: ZHOOK_HANDLE -! -! --------------------------------------------------------------------------- -! -! 1. SETTING THE NUMERICAL VALUES -! -IF (LHOOK) CALL DR_HOOK('INI_NEB',0,ZHOOK_HANDLE) -! -CALL NEB_ASSOCIATE() -! -!Freezing between 0 and -20. Other possibilities are 0/-40 or -5/-25 -XTMAXMIX = 273.16 -XTMINMIX = 253.16 -IF (LHOOK) CALL DR_HOOK('INI_NEB',1,ZHOOK_HANDLE) -END SUBROUTINE INI_NEB diff --git a/src/PHYEX/micro/lima_nucleation_procs.f90 b/src/PHYEX/micro/lima_nucleation_procs.f90 deleted file mode 100644 index c239ca84cf69c23c4370c8488ee9cb6428669957..0000000000000000000000000000000000000000 --- a/src/PHYEX/micro/lima_nucleation_procs.f90 +++ /dev/null @@ -1,394 +0,0 @@ -!MNH_LIC Copyright 2018-2021 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!------------------------------------------------------------------------------- -! ############################### - MODULE MODI_LIMA_NUCLEATION_PROCS -! ############################### -! -IMPLICIT NONE -INTERFACE - SUBROUTINE LIMA_NUCLEATION_PROCS (PTSTEP, TPFILE, PRHODJ, & - PRHODREF, PEXNREF, PPABST, PT, PDTHRAD, PW_NU,& - PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & - PCCT, PCRT, PCIT, & - PNFT, PNAT, PIFT, PINT, PNIT, PNHT, & - PCLDFR, PICEFR, PPRCFR ) -! -USE MODD_IO, ONLY: TFILEDATA -IMPLICIT NONE -! -REAL, INTENT(IN) :: PTSTEP ! Double Time step -TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file -! -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! Reference density -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF ! Reference density -REAL, DIMENSION(:,:,:), INTENT(IN) :: PEXNREF ! Reference Exner function -REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABST ! abs. pressure at time t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PT ! Temperature -REAL, DIMENSION(:,:,:), INTENT(IN) :: PDTHRAD ! Radiative temperature tendency -REAL, DIMENSION(:,:,:), INTENT(IN) :: PW_NU ! updraft velocity used for -! -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PTHT ! Theta at t -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRVT ! Water vapor m.r. at t -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRCT ! Cloud water m.r. at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRRT ! Rain water m.r. at t -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRIT ! Pristine ice m.r. at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRST ! Snow m.r. at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRGT ! Graupel m.r. at t -! -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCCT ! Cloud water conc. at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PCRT ! Rain water conc. at t -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCIT ! Prinstine ice conc. at t -! -REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PNFT ! CCN C. available at t -REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PNAT ! CCN C. activated at t -REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PIFT ! IFN C. available at t -REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PINT ! IFN C. activated at t -REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PNIT ! Coated IFN activated at t -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PNHT ! CCN hom freezing -! -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCLDFR ! Cloud fraction -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PICEFR ! Ice fraction -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PPRCFR ! Precipitation fraction -! -END SUBROUTINE LIMA_NUCLEATION_PROCS -END INTERFACE -END MODULE MODI_LIMA_NUCLEATION_PROCS -! ############################################################################# -SUBROUTINE LIMA_NUCLEATION_PROCS (PTSTEP, TPFILE, PRHODJ, & - PRHODREF, PEXNREF, PPABST, PT, PDTHRAD, PW_NU,& - PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & - PCCT, PCRT, PCIT, & - PNFT, PNAT, PIFT, PINT, PNIT, PNHT, & - PCLDFR, PICEFR, PPRCFR ) -! ############################################################################# -! -!! PURPOSE -!! ------- -!! Compute nucleation processes for the time-split version of LIMA -!! -!! AUTHOR -!! ------ -!! B. Vié * CNRM * -!! -!! MODIFICATIONS -!! ------------- -!! Original 15/03/2018 -! M. Leriche 06/2019: missing update of PNFT after CCN hom. ncl. -! P. Wautelet 27/02/2020: bugfix: PNFT was not updated after LIMA_CCN_HOM_FREEZING -! P. Wautelet 27/02/2020: add Z_TH_HINC variable (for budgets) -! P. Wautelet 02/2020: use the new data structures and subroutines for budgets -! B. Vie 03/03/2020: use DTHRAD instead of dT/dt in Smax diagnostic computation -! B. Vie 03/2022: Add option for 1-moment pristine ice -!------------------------------------------------------------------------------- -! -use modd_budget, only: lbu_enable, lbudget_th, lbudget_rv, lbudget_rc, lbudget_rr, & - lbudget_ri, lbudget_rs, lbudget_rg, lbudget_rh, lbudget_sv, & - NBUDGET_TH, NBUDGET_RV, NBUDGET_RC, NBUDGET_RI, NBUDGET_SV1, & - tbudgets -USE MODD_IO, ONLY: TFILEDATA -USE MODD_PARAMETERS, ONLY : JPHEXT, JPVEXT -USE MODD_NSV, ONLY : NSV_LIMA_NC, NSV_LIMA_NR, NSV_LIMA_CCN_FREE, NSV_LIMA_CCN_ACTI, & - NSV_LIMA_NI, NSV_LIMA_IFN_FREE, NSV_LIMA_IFN_NUCL, NSV_LIMA_IMM_NUCL, NSV_LIMA_HOM_HAZE -USE MODD_PARAM_LIMA, ONLY : LCOLD, LNUCL, LMEYERS, LSNOW, LWARM, LACTI, LRAIN, LHHONI, & - NMOD_CCN, NMOD_IFN, NMOD_IMM, XCTMIN, XRTMIN, LSPRO, NMOM_I, NMOM_C -USE MODD_NEB_n, ONLY : LSUBG_COND - -use mode_budget, only: Budget_store_add, Budget_store_init, Budget_store_end - -USE MODI_LIMA_CCN_ACTIVATION -USE MODI_LIMA_CCN_HOM_FREEZING -USE MODI_LIMA_MEYERS_NUCLEATION -USE MODI_LIMA_PHILLIPS_IFN_NUCLEATION -USE MODE_RAIN_ICE_NUCLEATION -! -!------------------------------------------------------------------------------- -! -IMPLICIT NONE -! -!------------------------------------------------------------------------------- -! -REAL, INTENT(IN) :: PTSTEP ! Double Time step -TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file -! -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! Reference density -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF ! Reference density -REAL, DIMENSION(:,:,:), INTENT(IN) :: PEXNREF ! Reference Exner function -REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABST ! abs. pressure at time t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PT ! Temperature -REAL, DIMENSION(:,:,:), INTENT(IN) :: PDTHRAD ! Radiative temperature tendency -REAL, DIMENSION(:,:,:), INTENT(IN) :: PW_NU ! updraft velocity used for -! -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PTHT ! Theta at t -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRVT ! Water vapor m.r. at t -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRCT ! Cloud water m.r. at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRRT ! Rain water m.r. at t -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRIT ! Rain water m.r. at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRST ! Rain water m.r. at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRGT ! Rain water m.r. at t -! -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCCT ! Cloud water conc. at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PCRT ! Rain water conc. at t -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCIT ! Prinstine ice conc. at t -! -REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PNFT ! CCN C. available at t -REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PNAT ! CCN C. activated at t -REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PIFT ! IFN C. available at t -REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PINT ! IFN C. activated at t -REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PNIT ! Coated IFN activated at t -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PNHT ! CCN hom. freezing -! -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCLDFR ! Cloud fraction -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PICEFR ! Ice fraction -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PPRCFR ! Precipitation fraction -! -!------------------------------------------------------------------------------- -! -REAL, DIMENSION(SIZE(PT,1),SIZE(PT,2),SIZE(PT,3)) :: Z_TH_HIND, Z_RI_HIND, Z_CI_HIND, Z_TH_HINC, Z_RC_HINC, Z_CC_HINC -REAL, DIMENSION(SIZE(PT,1),SIZE(PT,2),SIZE(PT,3)) :: ZTHS, ZRIS, ZRVS, ZRHT, ZCIT, ZT -! -integer :: idx -INTEGER :: JL -! -!------------------------------------------------------------------------------- -! -IF ( LWARM .AND. LACTI .AND. NMOD_CCN >=1 .AND. NMOM_C.GE.2) THEN - - IF (.NOT.LSUBG_COND .AND. .NOT.LSPRO) THEN - - if ( lbu_enable ) then - if ( lbudget_th ) call Budget_store_init( tbudgets(NBUDGET_TH), 'HENU', ptht(:, :, :) * prhodj(:, :, :) / ptstep ) - if ( lbudget_rv ) call Budget_store_init( tbudgets(NBUDGET_RV), 'HENU', prvt(:, :, :) * prhodj(:, :, :) / ptstep ) - if ( lbudget_rc ) call Budget_store_init( tbudgets(NBUDGET_RC), 'HENU', prct(:, :, :) * prhodj(:, :, :) / ptstep ) - if ( lbudget_sv ) then - call Budget_store_init( tbudgets(NBUDGET_SV1 - 1 + nsv_lima_nc), 'HENU', pcct(:, :, :) * prhodj(:, :, :) / ptstep ) - do jl = 1, nmod_ccn - idx = NBUDGET_SV1 - 1 + nsv_lima_ccn_free - 1 + jl - call Budget_store_init( tbudgets(idx), 'HENU', pnft(:, :, :, jl) * prhodj(:, :, :) / ptstep ) - idx = NBUDGET_SV1 - 1 + nsv_lima_ccn_acti - 1 + jl - call Budget_store_init( tbudgets(idx), 'HENU', pnat(:, :, :, jl) * prhodj(:, :, :) / ptstep ) - end do - end if - end if - - CALL LIMA_CCN_ACTIVATION( TPFILE, & - PRHODREF, PEXNREF, PPABST, PT, PDTHRAD, PW_NU, & - PTHT, PRVT, PRCT, PCCT, PRRT, PNFT, PNAT, PCLDFR ) - if ( lbu_enable ) then - if ( lbudget_th ) call Budget_store_end( tbudgets(NBUDGET_TH), 'HENU', ptht(:, :, :) * prhodj(:, :, :) / ptstep ) - if ( lbudget_rv ) call Budget_store_end( tbudgets(NBUDGET_RV), 'HENU', prvt(:, :, :) * prhodj(:, :, :) / ptstep ) - if ( lbudget_rc ) call Budget_store_end( tbudgets(NBUDGET_RC), 'HENU', prct(:, :, :) * prhodj(:, :, :) / ptstep ) - if ( lbudget_sv ) then - call Budget_store_end( tbudgets(NBUDGET_SV1 - 1 + nsv_lima_nc), 'HENU', pcct(:, :, :) * prhodj(:, :, :) / ptstep ) - do jl = 1, nmod_ccn - idx = NBUDGET_SV1 - 1 + nsv_lima_ccn_free - 1 + jl - call Budget_store_end( tbudgets(idx), 'HENU', pnft(:, :, :, jl) * prhodj(:, :, :) / ptstep ) - idx = NBUDGET_SV1 - 1 + nsv_lima_ccn_acti - 1 + jl - call Budget_store_end( tbudgets(idx), 'HENU', pnat(:, :, :, jl) * prhodj(:, :, :) / ptstep ) - end do - end if - end if - - END IF - - WHERE(PCLDFR(:,:,:)<1.E-10 .AND. PRCT(:,:,:)>XRTMIN(2) .AND. PCCT(:,:,:)>XCTMIN(2)) PCLDFR(:,:,:)=1. - -END IF -! -!------------------------------------------------------------------------------- -! -IF ( LCOLD .AND. LNUCL .AND. NMOM_I>=2 .AND. .NOT.LMEYERS .AND. NMOD_IFN >= 1 ) THEN - if ( lbu_enable ) then - if ( lbudget_sv ) then - do jl = 1, nmod_ifn - idx = NBUDGET_SV1 - 1 + nsv_lima_ifn_free - 1 + jl - call Budget_store_init( tbudgets(idx), 'HIND', pift(:, :, :, jl) * prhodj(:, :, :) / ptstep ) - idx = NBUDGET_SV1 - 1 + nsv_lima_ifn_nucl - 1 + jl - call Budget_store_init( tbudgets(idx), 'HIND', pint(:, :, :, jl) * prhodj(:, :, :) / ptstep ) - end do - - do jl = 1, nmod_ccn - idx = NBUDGET_SV1 - 1 + nsv_lima_ccn_acti - 1 + jl - call Budget_store_init( tbudgets(idx), 'HINC', pnat(:, :, :, jl) * prhodj(:, :, :) / ptstep ) - end do - do jl = 1, nmod_imm - idx = NBUDGET_SV1 - 1 + nsv_lima_imm_nucl - 1 + jl - call Budget_store_init( tbudgets(idx), 'HINC', pnit(:, :, :, jl) * prhodj(:, :, :) / ptstep ) - end do - end if - end if - - CALL LIMA_PHILLIPS_IFN_NUCLEATION (PTSTEP, & - PRHODREF, PEXNREF, PPABST, & - PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & - PCCT, PCIT, PNAT, PIFT, PINT, PNIT, & - Z_TH_HIND, Z_RI_HIND, Z_CI_HIND, & - Z_TH_HINC, Z_RC_HINC, Z_CC_HINC, & - PICEFR ) - WHERE(PICEFR(:,:,:)<1.E-10 .AND. PRIT(:,:,:)>XRTMIN(4) .AND. PCIT(:,:,:)>XCTMIN(4)) PICEFR(:,:,:)=1. -! - if ( lbu_enable ) then - if ( lbudget_th ) call Budget_store_add( tbudgets(NBUDGET_TH), 'HIND', z_th_hind(:, :, :) * prhodj(:, :, :) / ptstep ) - if ( lbudget_rv ) call Budget_store_add( tbudgets(NBUDGET_RV), 'HIND', -z_ri_hind(:, :, :) * prhodj(:, :, :) / ptstep ) - if ( lbudget_ri ) call Budget_store_add( tbudgets(NBUDGET_RI), 'HIND', z_ri_hind(:, :, :) * prhodj(:, :, :) / ptstep ) - if ( lbudget_sv ) then - call Budget_store_add( tbudgets(NBUDGET_SV1 - 1 + nsv_lima_ni), 'HIND', z_ci_hind(:, :, :) * prhodj(:, :, :) / ptstep ) - do jl = 1, nmod_ifn - idx = NBUDGET_SV1 - 1 + nsv_lima_ifn_free - 1 + jl - call Budget_store_end( tbudgets(idx), 'HIND', pift(:, :, :, jl) * prhodj(:, :, :) / ptstep ) - idx = NBUDGET_SV1 - 1 + nsv_lima_ifn_nucl - 1 + jl - call Budget_store_end( tbudgets(idx), 'HIND', pint(:, :, :, jl) * prhodj(:, :, :) / ptstep ) - end do - end if - - if ( lbudget_th ) call Budget_store_add( tbudgets(NBUDGET_TH), 'HINC', z_th_hinc(:, :, :) * prhodj(:, :, :) / ptstep ) - if ( lbudget_rc ) call Budget_store_add( tbudgets(NBUDGET_RC), 'HINC', z_rc_hinc(:, :, :) * prhodj(:, :, :) / ptstep ) - if ( lbudget_ri ) call Budget_store_add( tbudgets(NBUDGET_RI), 'HINC', -z_rc_hinc(:, :, :) * prhodj(:, :, :) / ptstep ) - if ( lbudget_sv ) then - if (nmom_c.ge.2) then - call Budget_store_add( tbudgets(NBUDGET_SV1 - 1 + nsv_lima_nc), 'HINC', z_cc_hinc(:, :, :) * prhodj(:, :, :) / ptstep ) - end if - call Budget_store_add( tbudgets(NBUDGET_SV1 - 1 + nsv_lima_ni), 'HINC', -z_cc_hinc(:, :, :) * prhodj(:, :, :) / ptstep ) - do jl = 1, nmod_ccn - idx = NBUDGET_SV1 - 1 + nsv_lima_ccn_acti - 1 + jl - call Budget_store_end( tbudgets(idx), 'HINC', pnat(:, :, :, jl) * prhodj(:, :, :) / ptstep ) - end do - do jl = 1, nmod_imm - idx = NBUDGET_SV1 - 1 + nsv_lima_imm_nucl - 1 + jl - call Budget_store_end( tbudgets(idx), 'HINC', pnit(:, :, :, jl) * prhodj(:, :, :) / ptstep ) - end do - end if - end if -END IF -! -!------------------------------------------------------------------------------- -! -IF (LCOLD .AND. LNUCL .AND. NMOM_I>=2 .AND. LMEYERS) THEN - CALL LIMA_MEYERS_NUCLEATION (PTSTEP, & - PRHODREF, PEXNREF, PPABST, & - PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & - PCCT, PCIT, PINT, & - Z_TH_HIND, Z_RI_HIND, Z_CI_HIND, & - Z_TH_HINC, Z_RC_HINC, Z_CC_HINC, & - PICEFR ) - WHERE(PICEFR(:,:,:)<1.E-10 .AND. PRIT(:,:,:)>XRTMIN(4) .AND. PCIT(:,:,:)>XCTMIN(4)) PICEFR(:,:,:)=1. - ! - if ( lbu_enable ) then - if ( lbudget_th ) call Budget_store_add( tbudgets(NBUDGET_TH), 'HIND', z_th_hind(:, :, :) * prhodj(:, :, :) / ptstep ) - if ( lbudget_rv ) call Budget_store_add( tbudgets(NBUDGET_RV), 'HIND', -z_ri_hind(:, :, :) * prhodj(:, :, :) / ptstep ) - if ( lbudget_ri ) call Budget_store_add( tbudgets(NBUDGET_RI), 'HIND', z_ri_hind(:, :, :) * prhodj(:, :, :) / ptstep ) - if ( lbudget_sv ) then - call Budget_store_add( tbudgets(NBUDGET_SV1 - 1 + nsv_lima_ni), 'HIND', z_ci_hind(:, :, :) * prhodj(:, :, :) / ptstep ) - if (nmod_ifn > 0 ) & - call Budget_store_add( tbudgets(NBUDGET_SV1 - 1 + nsv_lima_ifn_nucl), 'HIND', & - z_ci_hind(:, :, :) * prhodj(:, :, :) / ptstep ) - end if - - if ( lbudget_th ) call Budget_store_add( tbudgets(NBUDGET_TH), 'HINC', z_th_hinc(:, :, :) * prhodj(:, :, :) / ptstep ) - if ( lbudget_rc ) call Budget_store_add( tbudgets(NBUDGET_RC), 'HINC', z_rc_hinc(:, :, :) * prhodj(:, :, :) / ptstep ) - if ( lbudget_ri ) call Budget_store_add( tbudgets(NBUDGET_RI), 'HINC', -z_rc_hinc(:, :, :) * prhodj(:, :, :) / ptstep ) - if ( lbudget_sv ) then - if (nmom_c.ge.2) then - call Budget_store_add( tbudgets(NBUDGET_SV1 - 1 + nsv_lima_nc), 'HINC', z_cc_hinc(:, :, :) * prhodj(:, :, :) / ptstep ) - end if - call Budget_store_add( tbudgets(NBUDGET_SV1 - 1 + nsv_lima_ni), 'HINC', -z_cc_hinc(:, :, :) * prhodj(:, :, :) / ptstep ) - if (nmod_ifn > 0 ) & - call Budget_store_add( tbudgets(NBUDGET_SV1 - 1 + nsv_lima_ifn_nucl), 'HINC', & - -z_cc_hinc(:, :, :) * prhodj(:, :, :) / ptstep ) - end if - end if -END IF -! -!------------------------------------------------------------------------------- -! -IF (LCOLD .AND. LNUCL .AND. NMOM_I.EQ.1) THEN - WHERE(PICEFR(:,:,:)<1.E-10 .AND. PRIT(:,:,:)>XRTMIN(4) .AND. PCIT(:,:,:)>XCTMIN(4)) PICEFR(:,:,:)=1. - ! - ZTHS=PTHT/PTSTEP - ZRVS=PRVT/PTSTEP - ZRIS=PRIT/PTSTEP - ZRHT=0. - ZCIT=PCIT - ZT=PT - CALL RAIN_ICE_NUCLEATION(1+JPHEXT, SIZE(PT,1)-JPHEXT, 1+JPHEXT, SIZE(PT,2)-JPHEXT, 1+JPVEXT, SIZE(PT,3)-JPVEXT, 6, & - PTSTEP, PTHT, PPABST, PRHODJ, PRHODREF, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & - ZCIT, PEXNREF, ZTHS, ZRVS, ZRIS, ZT, ZRHT) - ! -! Z_TH_HIND=ZTHS*PTSTEP-PTHT -! Z_RI_HIND=ZRIS*PTSTEP-PRIT -! Z_CI_HIND=ZCIT-PCIT - PCIT=ZCIT - PRIT=ZRIS*PTSTEP - PTHT=ZTHS*PTSTEP - PRVT=ZRVS*PTSTEP -! Z_TH_HINC=0. -! Z_RC_HINC=0. -! Z_CC_HINC=0. -! ! -! if ( lbu_enable ) then -! if ( lbudget_th ) call Budget_store_add( tbudgets(NBUDGET_TH), 'HIND', z_th_hind(:, :, :) * prhodj(:, :, :) / ptstep ) -! if ( lbudget_rv ) call Budget_store_add( tbudgets(NBUDGET_RV), 'HIND', -z_ri_hind(:, :, :) * prhodj(:, :, :) / ptstep ) -! if ( lbudget_ri ) call Budget_store_add( tbudgets(NBUDGET_RI), 'HIND', z_ri_hind(:, :, :) * prhodj(:, :, :) / ptstep ) -! if ( lbudget_sv ) then -! call Budget_store_add( tbudgets(NBUDGET_SV1 - 1 + nsv_lima_ni), 'HIND', z_ci_hind(:, :, :) * prhodj(:, :, :) / ptstep ) -! if (nmod_ifn > 0 ) & -! call Budget_store_add( tbudgets(NBUDGET_SV1 - 1 + nsv_lima_ifn_nucl), 'HIND', & -! z_ci_hind(:, :, :) * prhodj(:, :, :) / ptstep ) -! end if -! -! if ( lbudget_th ) call Budget_store_add( tbudgets(NBUDGET_TH), 'HINC', z_th_hinc(:, :, :) * prhodj(:, :, :) / ptstep ) -! if ( lbudget_rc ) call Budget_store_add( tbudgets(NBUDGET_RC), 'HINC', z_rc_hinc(:, :, :) * prhodj(:, :, :) / ptstep ) -! if ( lbudget_ri ) call Budget_store_add( tbudgets(NBUDGET_RI), 'HINC', -z_rc_hinc(:, :, :) * prhodj(:, :, :) / ptstep ) -! if ( lbudget_sv ) then -! call Budget_store_add( tbudgets(NBUDGET_SV1 - 1 + nsv_lima_nc), 'HINC', z_cc_hinc(:, :, :) * prhodj(:, :, :) / ptstep ) -! call Budget_store_add( tbudgets(NBUDGET_SV1 - 1 + nsv_lima_ni), 'HINC', -z_cc_hinc(:, :, :) * prhodj(:, :, :) / ptstep ) -! if (nmod_ifn > 0 ) & -! call Budget_store_add( tbudgets(NBUDGET_SV1 - 1 + nsv_lima_ifn_nucl), 'HINC', & -! -z_cc_hinc(:, :, :) * prhodj(:, :, :) / ptstep ) -! end if -! end if -END IF -! -!------------------------------------------------------------------------------- -! -IF ( LCOLD .AND. LNUCL .AND. LHHONI .AND. NMOD_CCN >= 1 .AND. NMOM_I.GE.2) THEN - if ( lbu_enable ) then - if ( lbudget_th ) call Budget_store_init( tbudgets(NBUDGET_TH), 'HONH', PTHT(:, :, :) * prhodj(:, :, :) / ptstep ) - if ( lbudget_rv ) call Budget_store_init( tbudgets(NBUDGET_RV), 'HONH', PRVT(:, :, :) * prhodj(:, :, :) / ptstep ) - if ( lbudget_ri ) call Budget_store_init( tbudgets(NBUDGET_RI), 'HONH', PRIT(:, :, :) * prhodj(:, :, :) / ptstep ) - if ( lbudget_sv ) then - call Budget_store_init( tbudgets(NBUDGET_SV1 - 1 + nsv_lima_ni), 'HONH', PCIT(:, :, :) * prhodj(:, :, :) / ptstep ) - do jl = 1, nmod_ccn - idx = NBUDGET_SV1 - 1 + nsv_lima_ccn_free - 1 + jl - call Budget_store_init( tbudgets(idx), 'HONH', PNFT(:, :, :, jl) * prhodj(:, :, :) / ptstep ) - end do - call Budget_store_init( tbudgets(NBUDGET_SV1 - 1 + nsv_lima_hom_haze), 'HONH', PNHT(:, :, :) * prhodj(:, :, :) / ptstep ) - end if - end if - - CALL LIMA_CCN_HOM_FREEZING (PRHODREF, PEXNREF, PPABST, PW_NU, & - PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & - PCCT, PCRT, PCIT, PNFT, PNHT, & - PICEFR ) - WHERE(PICEFR(:,:,:)<1.E-10 .AND. PRIT(:,:,:)>XRTMIN(4) .AND. PCIT(:,:,:)>XCTMIN(4)) PICEFR(:,:,:)=1. -! - if ( lbu_enable ) then - if ( lbudget_th ) call Budget_store_end( tbudgets(NBUDGET_TH), 'HONH', PTHT(:, :, :) * prhodj(:, :, :) / ptstep ) - if ( lbudget_rv ) call Budget_store_end( tbudgets(NBUDGET_RV), 'HONH', PRVT(:, :, :) * prhodj(:, :, :) / ptstep ) - if ( lbudget_ri ) call Budget_store_end( tbudgets(NBUDGET_RI), 'HONH', PRIT(:, :, :) * prhodj(:, :, :) / ptstep ) - if ( lbudget_sv ) then - call Budget_store_end( tbudgets(NBUDGET_SV1 - 1 + nsv_lima_ni), 'HONH', PCIT(:, :, :) * prhodj(:, :, :) / ptstep ) - do jl = 1, nmod_ccn - idx = NBUDGET_SV1 - 1 + nsv_lima_ccn_free - 1 + jl - call Budget_store_end( tbudgets(idx), 'HONH', PNFT(:, :, :, jl) * prhodj(:, :, :) / ptstep ) - end do - call Budget_store_end( tbudgets(NBUDGET_SV1 - 1 + nsv_lima_hom_haze), 'HONH', PNHT(:, :, :) * prhodj(:, :, :) / ptstep ) - end if - end if -ENDIF -! -!------------------------------------------------------------------------------- -! -END SUBROUTINE LIMA_NUCLEATION_PROCS