diff --git a/src/common/micro/ini_lima_cold_mixed.F90 b/src/common/micro/ini_lima_cold_mixed.F90 index 12fca326bcaa6f7a708376d180894b31f96662d0..a493f28ee15f1ebe1c524b650e40667a87cb05b7 100644 --- a/src/common/micro/ini_lima_cold_mixed.F90 +++ b/src/common/micro/ini_lima_cold_mixed.F90 @@ -61,20 +61,20 @@ USE MODD_REF ! use mode_msg ! -USE MODI_LIMA_FUNCTIONS +USE MODE_LIMA_FUNCTIONS, ONLY: MOMG, GAUHER USE MODI_GAMMA USE MODI_GAMMA_INC USE MODE_RRCOLSS, ONLY: RRCOLSS USE MODE_RZCOLX, ONLY: RZCOLX USE MODE_RSCOLRG, ONLY: RSCOLRG -USE MODI_NRCOLSS -USE MODI_NZCOLX -USE MODI_NSCOLRG -USE MODI_LIMA_READ_XKER_RACCS -USE MODI_LIMA_READ_XKER_SDRYG -USE MODI_LIMA_READ_XKER_RDRYG -USE MODI_LIMA_READ_XKER_SWETH -USE MODI_LIMA_READ_XKER_GWETH +USE MODE_NRCOLSS, ONLY: NRCOLSS +USE MODE_NZCOLX, ONLY: NZCOLX +USE MODE_NSCOLRG, ONLY: NSCOLRG +USE MODI_LIMA_READ_XKER_RACCS, ONLY: LIMA_READ_XKER_RACCS +USE MODI_LIMA_READ_XKER_SDRYG, ONLY: LIMA_READ_XKER_SDRYG +USE MODI_LIMA_READ_XKER_RDRYG, ONLY: LIMA_READ_XKER_RDRYG +USE MODI_LIMA_READ_XKER_SWETH, ONLY: LIMA_READ_XKER_SWETH +USE MODI_LIMA_READ_XKER_GWETH, ONLY: LIMA_READ_XKER_GWETH ! IMPLICIT NONE ! diff --git a/src/common/micro/ini_lima_warm.F90 b/src/common/micro/ini_lima_warm.F90 index c1485757f397c113484257f6849c349f240f709c..8ae14ed0fe38348f4a761530db6ec43c75b2238d 100644 --- a/src/common/micro/ini_lima_warm.F90 +++ b/src/common/micro/ini_lima_warm.F90 @@ -52,7 +52,7 @@ USE MODD_PARAM_LIMA_WARM USE MODD_PARAMETERS !USE MODD_LUNIT, ONLY : TLUOUT0 ! -USE MODI_LIMA_FUNCTIONS +USE MODE_LIMA_FUNCTIONS, ONLY: MOMG USE MODI_HYPGEO USE MODI_GAMMA ! diff --git a/src/common/micro/init_aerosol_properties.F90 b/src/common/micro/init_aerosol_properties.F90 index e1a7916408b799fa8d5eed03ce2698fb3ba9c37d..ecd30df7f7498c011657b3af21a40a14cc675103 100644 --- a/src/common/micro/init_aerosol_properties.F90 +++ b/src/common/micro/init_aerosol_properties.F90 @@ -58,7 +58,7 @@ USE MODD_PARAM_LIMA, ONLY : NMOD_CCN, HINI_CCN, HTYPE_CCN, & use mode_msg ! USE MODI_GAMMA -USE MODI_LIMA_INIT_CCN_ACTIVATION_SPECTRUM +USE MODE_LIMA_INIT_CCN_ACTIVATION_SPECTRUM, ONLY: LIMA_INIT_CCN_ACTIVATION_SPECTRUM ! IMPLICIT NONE ! diff --git a/src/common/micro/lima.F90 b/src/common/micro/lima.F90 index c832735a6bf29b8c1db76f9f6d040eb99616e874..c1d23e04f783deee4db97f278f061b20237e6838 100644 --- a/src/common/micro/lima.F90 +++ b/src/common/micro/lima.F90 @@ -3,86 +3,17 @@ !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -! ######spl -MODULE MODI_LIMA -! #################### -! -INTERFACE -! - SUBROUTINE LIMA ( D, CST, BUCONF, TBUDGETS, KBUDGETS, & - PTSTEP, & - PRHODREF, PEXNREF, PDZZ, & - PRHODJ, PPABST, & - NCCN, NIFN, NIMM, & - PDTHRAD, PTHT, PRT, PSVT, PW_NU, & - PTHS, PRS, PSVS, & - PINPRC, PINDEP, PINPRR, PINPRI, PINPRS, PINPRG, PINPRH, & - PEVAP3D, PCLDFR, PICEFR, PPRCFR, PFPR ) -! -USE MODD_IO, ONLY: TFILEDATA -USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t -USE MODD_BUDGET, ONLY: TBUDGETDATA, TBUDGETCONF_t -USE MODD_CST, ONLY: CST_t -! -TYPE(DIMPHYEX_t), INTENT(IN) :: D -TYPE(CST_t), INTENT(IN) :: CST -TYPE(TBUDGETCONF_t), INTENT(IN) :: BUCONF -TYPE(TBUDGETDATA), DIMENSION(KBUDGETS), INTENT(INOUT) :: TBUDGETS -INTEGER, INTENT(IN) :: KBUDGETS -! -REAL, INTENT(IN) :: PTSTEP ! Time step -! -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF ! Reference density -REAL, DIMENSION(:,:,:), INTENT(IN) :: PEXNREF ! Reference Exner function -REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! Layer thikness (m) -! -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! Dry density * Jacobian -REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABST ! absolute pressure at t -! -INTEGER, INTENT(IN) :: NCCN ! for array size declarations -INTEGER, INTENT(IN) :: NIFN ! for array size declarations -INTEGER, INTENT(IN) :: NIMM ! for array size declarations -! -REAL, DIMENSION(:,:,:), INTENT(IN) :: PDTHRAD ! dT/dt due to radiation -REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHT ! Theta at time t -REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRT ! Mixing ratios at time t -REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PSVT ! Concentrations at time t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PW_NU ! w for CCN activation -! -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PTHS ! Theta source -REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRS ! Mixing ratios sources -REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PSVS ! Concentration sources -! -REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRC ! Cloud instant precip -REAL, DIMENSION(:,:), INTENT(OUT) :: PINDEP ! Cloud droplets deposition -REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRR ! Rain instant precip -REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRI ! Rain instant precip -REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRS ! Snow instant precip -REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRG ! Graupel instant precip -REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRH ! Rain instant precip -REAL, DIMENSION(:,:,:), INTENT(OUT) :: PEVAP3D ! Rain evap profile -! -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCLDFR ! Cloud fraction -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PICEFR ! Cloud fraction -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PPRCFR ! Cloud fraction -REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PFPR ! Precipitation fluxes in altitude -! -END SUBROUTINE LIMA -END INTERFACE -END MODULE MODI_LIMA -! -! -! ######spl - SUBROUTINE LIMA ( D, CST, BUCONF, TBUDGETS, KBUDGETS, & - PTSTEP, & - PRHODREF, PEXNREF, PDZZ, & - PRHODJ, PPABST, & - NCCN, NIFN, NIMM, & - PDTHRAD, PTHT, PRT, PSVT, PW_NU, & - PTHS, PRS, PSVS, & - PINPRC, PINDEP, PINPRR, PINPRI, PINPRS, PINPRG, PINPRH, & - PEVAP3D, PCLDFR, PICEFR, PPRCFR, PFPR ) -! ###################################################################### +! ##################################################################### +SUBROUTINE LIMA ( D, CST, BUCONF, TBUDGETS, KBUDGETS, & + PTSTEP, & + PRHODREF, PEXNREF, PDZZ, & + PRHODJ, PPABST, & + NCCN, NIFN, NIMM, & + PDTHRAD, PTHT, PRT, PSVT, PW_NU, & + PTHS, PRS, PSVS, & + PINPRC, PINDEP, PINPRR, PINPRI, PINPRS, PINPRG, PINPRH, & + PEVAP3D, PCLDFR, PICEFR, PPRCFR, PFPR ) +! ##################################################################### ! !! PURPOSE !! ------- @@ -134,12 +65,12 @@ USE MODD_PARAM_LIMA_WARM, ONLY: XLBC, XLBEXC, XAC, XBC, XAR, XBR use mode_budget, only: BUDGET_STORE_ADD_PHY, BUDGET_STORE_INIT_PHY, BUDGET_STORE_END_PHY use mode_tools, only: Countjv -USE MODI_LIMA_COMPUTE_CLOUD_FRACTIONS -USE MODI_LIMA_DROPS_TO_DROPLETS_CONV -USE MODI_LIMA_INST_PROCS -USE MODI_LIMA_NUCLEATION_PROCS -USE MODI_LIMA_SEDIMENTATION -USE MODI_LIMA_TENDENCIES +USE MODE_LIMA_COMPUTE_CLOUD_FRACTIONS, ONLY: LIMA_COMPUTE_CLOUD_FRACTIONS +USE MODE_LIMA_DROPS_TO_DROPLETS_CONV, ONLY: LIMA_DROPS_TO_DROPLETS_CONV +USE MODE_LIMA_INST_PROCS, ONLY: LIMA_INST_PROCS +USE MODE_LIMA_NUCLEATION_PROCS, ONLY: LIMA_NUCLEATION_PROCS +USE MODE_LIMA_SEDIMENTATION, ONLY: LIMA_SEDIMENTATION +USE MODE_LIMA_TENDENCIES, ONLY: LIMA_TENDENCIES ! IMPLICIT NONE ! diff --git a/src/common/micro/lima_adjust_split.F90 b/src/common/micro/lima_adjust_split.F90 index e4d3ce84b52cfc42370c6b5b18ad619b9a4550d2..0b59012332465225b9908870b0f22b152d05f5e2 100644 --- a/src/common/micro/lima_adjust_split.F90 +++ b/src/common/micro/lima_adjust_split.F90 @@ -3,80 +3,6 @@ !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_ADJUST_SPLIT -! ############################# -! -INTERFACE -! - SUBROUTINE LIMA_ADJUST_SPLIT(D, CST, BUCONF, TBUDGETS, KBUDGETS, & - KRR, KMI, HCONDENS, HLAMBDA3, & - OSUBG_COND, OSIGMAS, PTSTEP, PSIGQSAT, & - PRHODREF, PRHODJ, PEXNREF, PSIGS, PMFCONV, & - PPABST, PPABSTT, PZZ, PDTHRAD, PW_NU, & - PRT, PRS, PSVT, PSVS, & - PTHS, PSRCS, PCLDFR, PICEFR, PRC_MF, PRI_MF, PCF_MF) -! -!USE MODD_IO, ONLY: TFILEDATA -USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t -USE MODD_BUDGET, ONLY: TBUDGETDATA, TBUDGETCONF_t -USE MODD_CST, ONLY: CST_t -! -TYPE(DIMPHYEX_t), INTENT(IN) :: D -TYPE(CST_t), INTENT(IN) :: CST -TYPE(TBUDGETCONF_t), INTENT(IN) :: BUCONF -TYPE(TBUDGETDATA), DIMENSION(KBUDGETS), INTENT(INOUT) :: TBUDGETS -INTEGER, INTENT(IN) :: KBUDGETS -! -INTEGER, INTENT(IN) :: KRR ! Number of moist variables -INTEGER, INTENT(IN) :: KMI ! Model index -CHARACTER(len=80), INTENT(IN) :: HCONDENS -CHARACTER(len=4), INTENT(IN) :: HLAMBDA3 ! formulation for lambda3 coeff -LOGICAL, INTENT(IN) :: OSUBG_COND ! Switch for Subgrid - ! Condensation -LOGICAL, INTENT(IN) :: OSIGMAS ! Switch for Sigma_s: - ! use values computed in CONDENSATION - ! or that from turbulence scheme -REAL, INTENT(IN) :: PTSTEP ! Time step -REAL, INTENT(IN) :: PSIGQSAT ! coeff applied to qsat variance contribution -! -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF ! Dry density of the - ! reference state -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! Dry density * Jacobian -REAL, DIMENSION(:,:,:), INTENT(IN) :: PEXNREF ! Reference Exner function -REAL, DIMENSION(:,:,:), INTENT(IN) :: PSIGS ! Sigma_s at time t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PMFCONV ! -REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABST ! Absolute Pressure at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABSTT ! Absolute Pressure at t+dt -REAL, DIMENSION(:,:,:), INTENT(IN) :: PZZ ! -REAL, DIMENSION(:,:,:), INTENT(IN) :: PDTHRAD ! Radiative temperature tendency -REAL, DIMENSION(:,:,:), INTENT(IN) :: PW_NU ! updraft velocity used for -! -REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRT ! m.r. at t -! -REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRS ! m.r. source -! -REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PSVT ! Concentrations at time t -! -REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PSVS ! Concentration sources -! -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PTHS ! Theta source -! -REAL, DIMENSION(:,:,:), INTENT(OUT) :: PSRCS ! Second-order flux - ! s'rc'/2Sigma_s2 at time t+1 - ! multiplied by Lambda_3 -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCLDFR ! Cloud fraction -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PICEFR ! Cloud fraction -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRC_MF! Convective Mass Flux liquid mixing ratio -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRI_MF! Convective Mass Flux ice mixing ratio -REAL, DIMENSION(:,:,:), INTENT(IN) :: PCF_MF! Convective Mass Flux Cloud fraction -! -END SUBROUTINE LIMA_ADJUST_SPLIT -! -END INTERFACE -! -END MODULE MODI_LIMA_ADJUST_SPLIT -! ! ########################################################################### SUBROUTINE LIMA_ADJUST_SPLIT(D, CST, BUCONF, TBUDGETS, KBUDGETS, & KRR, KMI, HCONDENS, HLAMBDA3, & diff --git a/src/common/micro/lima_bergeron.F90 b/src/common/micro/mode_lima_bergeron.F90 similarity index 61% rename from src/common/micro/lima_bergeron.F90 rename to src/common/micro/mode_lima_bergeron.F90 index 7a4967708e09ec8b49e850a2583fd47a7c04ee6d..7df06b07fb522fb373f86bd6211ef365729bd9a1 100644 --- a/src/common/micro/lima_bergeron.F90 +++ b/src/common/micro/mode_lima_bergeron.F90 @@ -2,41 +2,14 @@ !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_BERGERON -! ################################# -! -INTERFACE - SUBROUTINE LIMA_BERGERON (LDCOMPUTE, & - PRCT, PRIT, PCIT, PLBDI, & - PSSIW, PAI, PCJ, PLVFACT, PLSFACT, & - P_TH_BERFI, P_RC_BERFI ) -! -LOGICAL, DIMENSION(:),INTENT(IN) :: LDCOMPUTE -! -REAL, DIMENSION(:), INTENT(IN) :: PRCT ! Cloud water C. at t -REAL, DIMENSION(:), INTENT(IN) :: PRIT ! Cloud water C. at t -REAL, DIMENSION(:), INTENT(IN) :: PCIT ! Cloud water C. at t -REAL, DIMENSION(:), INTENT(IN) :: PLBDI ! -! -REAL, DIMENSION(:), INTENT(IN) :: PSSIW ! -REAL, DIMENSION(:), INTENT(IN) :: PAI ! -REAL, DIMENSION(:), INTENT(IN) :: PCJ ! -REAL, DIMENSION(:), INTENT(IN) :: PLVFACT ! -REAL, DIMENSION(:), INTENT(IN) :: PLSFACT ! -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_TH_BERFI -REAL, DIMENSION(:), INTENT(INOUT) :: P_RC_BERFI -!! -END SUBROUTINE LIMA_BERGERON -END INTERFACE -END MODULE MODI_LIMA_BERGERON -! +MODULE MODE_LIMA_BERGERON + IMPLICIT NONE + CONTAINS ! ############################################################# - SUBROUTINE LIMA_BERGERON( LDCOMPUTE, & - PRCT, PRIT, PCIT, PLBDI, & - PSSIW, PAI, PCJ, PLVFACT, PLSFACT, & - P_TH_BERFI, P_RC_BERFI ) + SUBROUTINE LIMA_BERGERON( LDCOMPUTE, & + PRCT, PRIT, PCIT, PLBDI, & + PSSIW, PAI, PCJ, PLVFACT, PLSFACT, & + P_TH_BERFI, P_RC_BERFI ) ! ############################################################# ! !! PURPOSE @@ -99,3 +72,4 @@ END WHERE !------------------------------------------------------------------------------- ! END SUBROUTINE LIMA_BERGERON +END MODULE MODE_LIMA_BERGERON diff --git a/src/common/micro/lima_ccn_activation.F90 b/src/common/micro/mode_lima_ccn_activation.F90 similarity index 92% rename from src/common/micro/lima_ccn_activation.F90 rename to src/common/micro/mode_lima_ccn_activation.F90 index f94b3ec75a89781a09f9dbfaa096da8b6b373807..1731dd8156a2f19ebaa201b3f7fad0e835e2d417 100644 --- a/src/common/micro/lima_ccn_activation.F90 +++ b/src/common/micro/mode_lima_ccn_activation.F90 @@ -3,49 +3,15 @@ !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_CCN_ACTIVATION -! ############################### -! -INTERFACE - SUBROUTINE LIMA_CCN_ACTIVATION (CST, & - PRHODREF, PEXNREF, PPABST, PT, PDTHRAD, PW_NU, & - PTHT, PRVT, PRCT, PCCT, PRRT, PNFT, PNAT, & - PCLDFR ) -USE MODD_CST, ONLY: CST_t -!USE MODD_IO, ONLY: TFILEDATA -! -TYPE(CST_t), INTENT(IN) :: CST -!TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file -! -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 - ! the nucleation param. -! -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(INOUT) :: PCCT ! Cloud water m.r. at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRRT ! Cloud water m.r. 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(IN) :: PCLDFR ! Precipitation fraction -! -END SUBROUTINE LIMA_CCN_ACTIVATION -END INTERFACE -END MODULE MODI_LIMA_CCN_ACTIVATION -! ############################################################################# - SUBROUTINE LIMA_CCN_ACTIVATION (CST, & - PRHODREF, PEXNREF, PPABST, PT, PDTHRAD, PW_NU, & - PTHT, PRVT, PRCT, PCCT, PRRT, PNFT, PNAT, & - PCLDFR ) -! ############################################################################# +MODULE MODE_LIMA_CCN_ACTIVATION + IMPLICIT NONE +CONTAINS +! ############################################################################## + SUBROUTINE LIMA_CCN_ACTIVATION (CST, & + PRHODREF, PEXNREF, PPABST, PT, PDTHRAD, PW_NU, & + PTHT, PRVT, PRCT, PCCT, PRRT, PNFT, PNAT, & + PCLDFR ) +! ############################################################################## ! !! !! PURPOSE @@ -851,3 +817,4 @@ END FUNCTION SINGL_FUNCSMAX !----------------------------------------------------------------------------- ! END SUBROUTINE LIMA_CCN_ACTIVATION +END MODULE MODE_LIMA_CCN_ACTIVATION diff --git a/src/common/micro/lima_ccn_hom_freezing.F90 b/src/common/micro/mode_lima_ccn_hom_freezing.F90 similarity index 85% rename from src/common/micro/lima_ccn_hom_freezing.F90 rename to src/common/micro/mode_lima_ccn_hom_freezing.F90 index b57bc6f2a99592997db11ce391024386fa85d4fc..25744d42abb867dfca9935a86bb924329e49ee8e 100644 --- a/src/common/micro/lima_ccn_hom_freezing.F90 +++ b/src/common/micro/mode_lima_ccn_hom_freezing.F90 @@ -3,50 +3,14 @@ !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_CCN_HOM_FREEZING -! ################################# -! -INTERFACE - SUBROUTINE LIMA_CCN_HOM_FREEZING (CST, PRHODREF, PEXNREF, PPABST, PW_NU, & - PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & - PCCT, PCRT, PCIT, PNFT, PNHT, & - PICEFR ) -USE MODD_CST, ONLY: CST_t -! -TYPE(CST_t), INTENT(IN) :: CST -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) :: PW_NU ! updraft velocity used for - ! the nucleation param. -! -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PTHT ! Theta at time t -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRVT ! Water vapor m.r. at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRCT ! Cloud water m.r. at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRRT ! Rain water m.r. at t -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRIT ! Cloud ice m.r. at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRST ! Snow/aggregate m.r. at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRGT ! Graupel m.r. at t -! -REAL, DIMENSION(:,:,:), INTENT(IN) :: PCCT ! Cloud water C. at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PCRT ! Rain water C. source -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCIT ! Ice crystal C. source -! -REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PNFT ! Free CCN conc. -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PNHT ! haze homogeneous freezing -! -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PICEFR ! Ice fraction -! -END SUBROUTINE LIMA_CCN_HOM_FREEZING -END INTERFACE -END MODULE MODI_LIMA_CCN_HOM_FREEZING -! +MODULE MODE_LIMA_CCN_HOM_FREEZING + IMPLICIT NONE +CONTAINS ! ########################################################################## - SUBROUTINE LIMA_CCN_HOM_FREEZING (CST, PRHODREF, PEXNREF, PPABST, PW_NU, & - PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & - PCCT, PCRT, PCIT, PNFT, PNHT , & - PICEFR ) + SUBROUTINE LIMA_CCN_HOM_FREEZING (CST, PRHODREF, PEXNREF, PPABST, PW_NU, & + PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & + PCCT, PCRT, PCIT, PNFT, PNHT , & + PICEFR ) ! ########################################################################## ! !! PURPOSE @@ -396,3 +360,4 @@ END IF ! INEGT>0 !------------------------------------------------------------------------------- ! END SUBROUTINE LIMA_CCN_HOM_FREEZING +END MODULE MODE_LIMA_CCN_HOM_FREEZING diff --git a/src/common/micro/lima_collisional_ice_breakup.F90 b/src/common/micro/mode_lima_collisional_ice_breakup.F90 similarity index 90% rename from src/common/micro/lima_collisional_ice_breakup.F90 rename to src/common/micro/mode_lima_collisional_ice_breakup.F90 index a6848d14345bcdf23a70338347f5b8ab66940e7b..58a040f5af64a6c7b1b780d32a0b6ea0a448709a 100644 --- a/src/common/micro/lima_collisional_ice_breakup.F90 +++ b/src/common/micro/mode_lima_collisional_ice_breakup.F90 @@ -3,43 +3,15 @@ !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_COLLISIONAL_ICE_BREAKUP -! ######################################## -! -INTERFACE - SUBROUTINE LIMA_COLLISIONAL_ICE_BREAKUP (LDCOMPUTE, & - PRHODREF, & - PRIT, PRST, PRGT, PCIT, PCST, PCGT, & - PLBDS, PLBDG, & - P_RI_CIBU, P_CI_CIBU ) -! -LOGICAL, DIMENSION(:),INTENT(IN) :: LDCOMPUTE -! -REAL, DIMENSION(:), INTENT(IN) :: PRHODREF -! -REAL, DIMENSION(:), INTENT(IN) :: PRIT -REAL, DIMENSION(:), INTENT(IN) :: PRST -REAL, DIMENSION(:), INTENT(IN) :: PRGT -REAL, DIMENSION(:), INTENT(IN) :: PCIT -REAL, DIMENSION(:), INTENT(IN) :: PCST -REAL, DIMENSION(:), INTENT(IN) :: PCGT -REAL, DIMENSION(:), INTENT(IN) :: PLBDS -REAL, DIMENSION(:), INTENT(IN) :: PLBDG -! -REAL, DIMENSION(:), INTENT(OUT) :: P_RI_CIBU -REAL, DIMENSION(:), INTENT(OUT) :: P_CI_CIBU -! -END SUBROUTINE LIMA_COLLISIONAL_ICE_BREAKUP -END INTERFACE -END MODULE MODI_LIMA_COLLISIONAL_ICE_BREAKUP -! +MODULE MODE_LIMA_COLLISIONAL_ICE_BREAKUP + IMPLICIT NONE +CONTAINS ! ####################################################################### - SUBROUTINE LIMA_COLLISIONAL_ICE_BREAKUP (LDCOMPUTE, & - PRHODREF, & - PRIT, PRST, PRGT, PCIT, PCST, PCGT, & - PLBDS, PLBDG, & - P_RI_CIBU, P_CI_CIBU ) + SUBROUTINE LIMA_COLLISIONAL_ICE_BREAKUP (LDCOMPUTE, & + PRHODREF, & + PRIT, PRST, PRGT, PCIT, PCST, PCGT, & + PLBDS, PLBDG, & + P_RI_CIBU, P_CI_CIBU ) ! ####################################################################### ! !! PURPOSE @@ -418,3 +390,4 @@ END IF !------------------------------------------------------------------------------- ! END SUBROUTINE LIMA_COLLISIONAL_ICE_BREAKUP +END MODULE MODE_LIMA_COLLISIONAL_ICE_BREAKUP diff --git a/src/common/micro/lima_compute_cloud_fractions.F90 b/src/common/micro/mode_lima_compute_cloud_fractions.F90 similarity index 65% rename from src/common/micro/lima_compute_cloud_fractions.F90 rename to src/common/micro/mode_lima_compute_cloud_fractions.F90 index 60bdab28e1f6ff8b2cd0f972d041820e1f154ae0..98ac4ae517cd8b246674fd551efabd46b21cd441 100644 --- a/src/common/micro/lima_compute_cloud_fractions.F90 +++ b/src/common/micro/mode_lima_compute_cloud_fractions.F90 @@ -3,57 +3,18 @@ !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_COMPUTE_CLOUD_FRACTIONS -!####################################### - INTERFACE - SUBROUTINE LIMA_COMPUTE_CLOUD_FRACTIONS (D, & - PCCT, PRCT, & - PCRT, PRRT, & - PCIT, PRIT, & - PCST, PRST, & - PCGT, PRGT, & - PCHT, PRHT, & - PCLDFR, PICEFR, PPRCFR ) - USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t - TYPE(DIMPHYEX_t), INTENT(IN) :: D - ! - REAL, DIMENSION(:,:,:),INTENT(IN) :: PCCT ! - REAL, DIMENSION(:,:,:),INTENT(IN) :: PRCT ! - ! - REAL, DIMENSION(:,:,:),INTENT(IN) :: PCRT ! - REAL, DIMENSION(:,:,:),INTENT(IN) :: PRRT ! - ! - REAL, DIMENSION(:,:,:),INTENT(IN) :: PCIT ! - REAL, DIMENSION(:,:,:),INTENT(IN) :: PRIT ! - ! - REAL, DIMENSION(:,:,:),INTENT(IN) :: PCST ! - REAL, DIMENSION(:,:,:),INTENT(IN) :: PRST ! - ! - REAL, DIMENSION(:,:,:),INTENT(IN) :: PCGT ! - REAL, DIMENSION(:,:,:),INTENT(IN) :: PRGT ! - ! - REAL, DIMENSION(:,:,:),INTENT(IN) :: PCHT ! - REAL, DIMENSION(:,:,:),INTENT(IN) :: PRHT ! - ! - REAL, DIMENSION(:,:,:),INTENT(INOUT) :: PCLDFR ! - REAL, DIMENSION(:,:,:),INTENT(INOUT) :: PICEFR ! - REAL, DIMENSION(:,:,:),INTENT(INOUT) :: PPRCFR ! - ! - END SUBROUTINE LIMA_COMPUTE_CLOUD_FRACTIONS - END INTERFACE -END MODULE MODI_LIMA_COMPUTE_CLOUD_FRACTIONS -! -! +MODULE MODE_LIMA_COMPUTE_CLOUD_FRACTIONS + IMPLICIT NONE +CONTAINS !################################################################ -SUBROUTINE LIMA_COMPUTE_CLOUD_FRACTIONS (D, & - PCCT, PRCT, & - PCRT, PRRT, & - PCIT, PRIT, & - PCST, PRST, & - PCGT, PRGT, & - PCHT, PRHT, & - PCLDFR, PICEFR, PPRCFR ) + SUBROUTINE LIMA_COMPUTE_CLOUD_FRACTIONS (D, & + PCCT, PRCT, & + PCRT, PRRT, & + PCIT, PRIT, & + PCST, PRST, & + PCGT, PRGT, & + PCHT, PRHT, & + PCLDFR, PICEFR, PPRCFR ) !################################################################ ! !! @@ -176,3 +137,4 @@ WHERE ( (PRRT(:,:,:).GT.0. .AND. (NMOM_R.EQ.1 .OR. PCRT(:,:,:).GT.0.) ) .OR. & !------------------------------------------------------------------------------- ! END SUBROUTINE LIMA_COMPUTE_CLOUD_FRACTIONS +END MODULE MODE_LIMA_COMPUTE_CLOUD_FRACTIONS diff --git a/src/common/micro/lima_conversion_melting_snow.F90 b/src/common/micro/mode_lima_conversion_melting_snow.F90 similarity index 68% rename from src/common/micro/lima_conversion_melting_snow.F90 rename to src/common/micro/mode_lima_conversion_melting_snow.F90 index ef46c794f37aee347aa52ea5bf8c338502b53801..0921e3f73188b680251bbae80789d0f74870c35c 100644 --- a/src/common/micro/lima_conversion_melting_snow.F90 +++ b/src/common/micro/mode_lima_conversion_melting_snow.F90 @@ -3,42 +3,14 @@ !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_CONVERSION_MELTING_SNOW -! ################################# -! -INTERFACE - SUBROUTINE LIMA_CONVERSION_MELTING_SNOW (LDCOMPUTE, & - PRHODREF, PPRES, PT, PKA, PDV, PCJ, & - PRVT, PRST, PCST, PLBDS, & - P_RS_CMEL, P_CS_CMEL ) -! -LOGICAL, DIMENSION(:),INTENT(IN) :: LDCOMPUTE -! -REAL, DIMENSION(:), INTENT(IN) :: PRHODREF ! Reference Exner function -REAL, DIMENSION(:), INTENT(IN) :: PPRES ! -REAL, DIMENSION(:), INTENT(IN) :: PT ! -REAL, DIMENSION(:), INTENT(IN) :: PKA ! -REAL, DIMENSION(:), INTENT(IN) :: PDV ! -REAL, DIMENSION(:), INTENT(IN) :: PCJ ! -! -REAL, DIMENSION(:), INTENT(IN) :: PRVT ! -REAL, DIMENSION(:), INTENT(IN) :: PRST ! Snow mr at t -REAL, DIMENSION(:), INTENT(IN) :: PCST ! Snow C. at t -REAL, DIMENSION(:), INTENT(IN) :: PLBDS ! -! -REAL, DIMENSION(:), INTENT(OUT) :: P_RS_CMEL -REAL, DIMENSION(:), INTENT(OUT) :: P_CS_CMEL -! -END SUBROUTINE LIMA_CONVERSION_MELTING_SNOW -END INTERFACE -END MODULE MODI_LIMA_CONVERSION_MELTING_SNOW -! +MODULE MODE_LIMA_CONVERSION_MELTING_SNOW + IMPLICIT NONE +CONTAINS ! ############################################################################## - SUBROUTINE LIMA_CONVERSION_MELTING_SNOW (LDCOMPUTE, & - PRHODREF, PPRES, PT, PKA, PDV, PCJ, & - PRVT, PRST, PCST, PLBDS, & - P_RS_CMEL, P_CS_CMEL ) + SUBROUTINE LIMA_CONVERSION_MELTING_SNOW (LDCOMPUTE, & + PRHODREF, PPRES, PT, PKA, PDV, PCJ, & + PRVT, PRST, PCST, PLBDS, & + P_RS_CMEL, P_CS_CMEL ) ! ############################################################################## ! !! PURPOSE @@ -127,3 +99,4 @@ END WHERE !------------------------------------------------------------------------------- ! END SUBROUTINE LIMA_CONVERSION_MELTING_SNOW +END MODULE MODE_LIMA_CONVERSION_MELTING_SNOW diff --git a/src/common/micro/lima_droplets_accretion.F90 b/src/common/micro/mode_lima_droplets_accretion.F90 similarity index 75% rename from src/common/micro/lima_droplets_accretion.F90 rename to src/common/micro/mode_lima_droplets_accretion.F90 index d183953cd21da3563c87d7fc851af9bd76d10539..8e0119a4380f264f99c14f7c3e76426f049c175e 100644 --- a/src/common/micro/lima_droplets_accretion.F90 +++ b/src/common/micro/mode_lima_droplets_accretion.F90 @@ -3,43 +3,15 @@ !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_DROPLETS_ACCRETION -! ################################# -! -INTERFACE - SUBROUTINE LIMA_DROPLETS_ACCRETION (LDCOMPUTE, & - PRHODREF, & - PRCT, PRRT, PCCT, PCRT, & - PLBDC, PLBDC3, PLBDR, PLBDR3, & - P_RC_ACCR, P_CC_ACCR ) -! -LOGICAL, DIMENSION(:),INTENT(IN) :: LDCOMPUTE -! -REAL, DIMENSION(:), INTENT(IN) :: PRHODREF ! Reference Exner function -! -REAL, DIMENSION(:), INTENT(IN) :: PRCT ! Cloud water m.r. at t -REAL, DIMENSION(:), INTENT(IN) :: PRRT ! Rain m.r. at t -REAL, DIMENSION(:), INTENT(IN) :: PCCT ! Cloud water conc. at t -REAL, DIMENSION(:), INTENT(IN) :: PCRT ! Rain conc. at t -REAL, DIMENSION(:), INTENT(IN) :: PLBDC ! -REAL, DIMENSION(:), INTENT(IN) :: PLBDC3 ! -REAL, DIMENSION(:), INTENT(IN) :: PLBDR ! -REAL, DIMENSION(:), INTENT(IN) :: PLBDR3 ! -! -REAL, DIMENSION(:), INTENT(OUT) :: P_RC_ACCR -REAL, DIMENSION(:), INTENT(OUT) :: P_CC_ACCR -! -END SUBROUTINE LIMA_DROPLETS_ACCRETION -END INTERFACE -END MODULE MODI_LIMA_DROPLETS_ACCRETION -! +MODULE MODE_LIMA_DROPLETS_ACCRETION + IMPLICIT NONE +CONTAINS ! ##################################################################### - SUBROUTINE LIMA_DROPLETS_ACCRETION (LDCOMPUTE, & - PRHODREF, & - PRCT, PRRT, PCCT, PCRT, & - PLBDC, PLBDC3, PLBDR, PLBDR3, & - P_RC_ACCR, P_CC_ACCR ) + SUBROUTINE LIMA_DROPLETS_ACCRETION (LDCOMPUTE, & + PRHODREF, & + PRCT, PRRT, PCCT, PCRT, & + PLBDC, PLBDC3, PLBDR, PLBDR3, & + P_RC_ACCR, P_CC_ACCR ) ! ##################################################################### ! !! PURPOSE @@ -190,3 +162,4 @@ END IF !------------------------------------------------------------------------------- ! END SUBROUTINE LIMA_DROPLETS_ACCRETION +END MODULE MODE_LIMA_DROPLETS_ACCRETION diff --git a/src/common/micro/lima_droplets_autoconversion.F90 b/src/common/micro/mode_lima_droplets_autoconversion.F90 similarity index 74% rename from src/common/micro/lima_droplets_autoconversion.F90 rename to src/common/micro/mode_lima_droplets_autoconversion.F90 index 6d48daab73d7a4f16fdb4c2fb055f2f27ce2ffe4..fca3fbf804de1e6b60bc4fd54a9073a4b04eb369 100644 --- a/src/common/micro/lima_droplets_autoconversion.F90 +++ b/src/common/micro/mode_lima_droplets_autoconversion.F90 @@ -3,38 +3,14 @@ !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_DROPLETS_AUTOCONVERSION -! ################################# -! -INTERFACE - SUBROUTINE LIMA_DROPLETS_AUTOCONVERSION (LDCOMPUTE, & - PRHODREF, & - PRCT, PCCT, PLBDC, PLBDR, & - P_RC_AUTO, P_CC_AUTO, P_CR_AUTO ) -! -LOGICAL, DIMENSION(:),INTENT(IN) :: LDCOMPUTE -! -REAL, DIMENSION(:), INTENT(IN) :: PRHODREF ! Reference Exner function -! -REAL, DIMENSION(:), INTENT(IN) :: PRCT ! Cloud water m.r. at t -REAL, DIMENSION(:), INTENT(IN) :: PCCT ! Cloud water conc. at t -REAL, DIMENSION(:), INTENT(IN) :: PLBDC ! -REAL, DIMENSION(:), INTENT(IN) :: PLBDR ! -! -REAL, DIMENSION(:), INTENT(OUT) :: P_RC_AUTO -REAL, DIMENSION(:), INTENT(OUT) :: P_CC_AUTO -REAL, DIMENSION(:), INTENT(OUT) :: P_CR_AUTO -! -END SUBROUTINE LIMA_DROPLETS_AUTOCONVERSION -END INTERFACE -END MODULE MODI_LIMA_DROPLETS_AUTOCONVERSION -! +MODULE MODE_LIMA_DROPLETS_AUTOCONVERSION + IMPLICIT NONE +CONTAINS ! ########################################################################## - SUBROUTINE LIMA_DROPLETS_AUTOCONVERSION (LDCOMPUTE, & - PRHODREF, & - PRCT, PCCT, PLBDC, PLBDR, & - P_RC_AUTO, P_CC_AUTO, P_CR_AUTO ) + SUBROUTINE LIMA_DROPLETS_AUTOCONVERSION (LDCOMPUTE, & + PRHODREF, & + PRCT, PCCT, PLBDC, PLBDR, & + P_RC_AUTO, P_CC_AUTO, P_CR_AUTO ) ! ########################################################################## ! !! PURPOSE @@ -148,3 +124,4 @@ END IF !------------------------------------------------------------------------------- ! END SUBROUTINE LIMA_DROPLETS_AUTOCONVERSION +END MODULE MODE_LIMA_DROPLETS_AUTOCONVERSION diff --git a/src/common/micro/lima_droplets_hom_freezing.F90 b/src/common/micro/mode_lima_droplets_hom_freezing.F90 similarity index 67% rename from src/common/micro/lima_droplets_hom_freezing.F90 rename to src/common/micro/mode_lima_droplets_hom_freezing.F90 index b33d7a3501fdf56c3925db691f50a11af30b2e5f..687e161ee34a2f9c138f4510f06f81b4e15035ba 100644 --- a/src/common/micro/lima_droplets_hom_freezing.F90 +++ b/src/common/micro/mode_lima_droplets_hom_freezing.F90 @@ -2,40 +2,14 @@ !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_DROPLETS_HOM_FREEZING -! ################################# -! -INTERFACE - SUBROUTINE LIMA_DROPLETS_HOM_FREEZING (PTSTEP, LDCOMPUTE, & - PT, PLVFACT, PLSFACT, & - PRCT, PCCT, PLBDC, & - P_TH_HONC, P_RC_HONC, P_CC_HONC ) -! -REAL, INTENT(IN) :: PTSTEP -LOGICAL, DIMENSION(:),INTENT(IN) :: LDCOMPUTE -! -REAL, DIMENSION(:), INTENT(IN) :: PT ! -REAL, DIMENSION(:), INTENT(IN) :: PLVFACT ! -REAL, DIMENSION(:), INTENT(IN) :: PLSFACT ! -! -REAL, DIMENSION(:), INTENT(IN) :: PRCT ! Cloud water m.r. at t -REAL, DIMENSION(:), INTENT(IN) :: PCCT ! Cloud water C. at t -REAL, DIMENSION(:), INTENT(IN) :: PLBDC ! Cloud water lambda -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_TH_HONC -REAL, DIMENSION(:), INTENT(INOUT) :: P_RC_HONC -REAL, DIMENSION(:), INTENT(INOUT) :: P_CC_HONC -! -END SUBROUTINE LIMA_DROPLETS_HOM_FREEZING -END INTERFACE -END MODULE MODI_LIMA_DROPLETS_HOM_FREEZING -! +MODULE MODE_LIMA_DROPLETS_HOM_FREEZING + IMPLICIT NONE +CONTAINS ! ########################################################################## - SUBROUTINE LIMA_DROPLETS_HOM_FREEZING (PTSTEP, LDCOMPUTE, & - PT, PLVFACT, PLSFACT, & - PRCT, PCCT, PLBDC, & - P_TH_HONC, P_RC_HONC, P_CC_HONC ) + SUBROUTINE LIMA_DROPLETS_HOM_FREEZING (PTSTEP, LDCOMPUTE, & + PT, PLVFACT, PLSFACT, & + PRCT, PCCT, PLBDC, & + P_TH_HONC, P_RC_HONC, P_CC_HONC ) ! ########################################################################## ! !! PURPOSE @@ -123,3 +97,4 @@ END WHERE !------------------------------------------------------------------------------- ! END SUBROUTINE LIMA_DROPLETS_HOM_FREEZING +END MODULE MODE_LIMA_DROPLETS_HOM_FREEZING diff --git a/src/common/micro/lima_droplets_riming_snow.F90 b/src/common/micro/mode_lima_droplets_riming_snow.F90 similarity index 76% rename from src/common/micro/lima_droplets_riming_snow.F90 rename to src/common/micro/mode_lima_droplets_riming_snow.F90 index cd46682388de1ab48cd16f98169998029eb2dca6..70ab95d4787ed23f3b4e12fb544d6c25f3edcf40 100644 --- a/src/common/micro/lima_droplets_riming_snow.F90 +++ b/src/common/micro/mode_lima_droplets_riming_snow.F90 @@ -3,53 +3,15 @@ !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_DROPLETS_RIMING_SNOW -! ################################# -! -INTERFACE - SUBROUTINE LIMA_DROPLETS_RIMING_SNOW (PTSTEP, LDCOMPUTE, & - PRHODREF, PT, & - PRCT, PCCT, PRST, PCST, PLBDC, PLBDS, PLVFACT, PLSFACT, & - P_TH_RIM, P_RC_RIM, P_CC_RIM, P_RS_RIM, P_CS_RIM, P_RG_RIM, & - P_RI_HMS, P_CI_HMS, P_RS_HMS ) -! -REAL, INTENT(IN) :: PTSTEP -LOGICAL, DIMENSION(:),INTENT(IN) :: LDCOMPUTE -! -REAL, DIMENSION(:), INTENT(IN) :: PRHODREF ! -REAL, DIMENSION(:), INTENT(IN) :: PT ! -! -REAL, DIMENSION(:), INTENT(IN) :: PRCT ! Cloud water mr at t -REAL, DIMENSION(:), INTENT(IN) :: PCCT ! Cloud water C. at t -REAL, DIMENSION(:), INTENT(IN) :: PRST ! Snow mr at t -REAL, DIMENSION(:), INTENT(IN) :: PCST ! Snow C. at t -REAL, DIMENSION(:), INTENT(IN) :: PLBDC ! -REAL, DIMENSION(:), INTENT(IN) :: PLBDS ! -REAL, DIMENSION(:), INTENT(IN) :: PLVFACT ! -REAL, DIMENSION(:), INTENT(IN) :: PLSFACT ! -! -REAL, DIMENSION(:), INTENT(OUT) :: P_TH_RIM -REAL, DIMENSION(:), INTENT(OUT) :: P_RC_RIM -REAL, DIMENSION(:), INTENT(OUT) :: P_CC_RIM -REAL, DIMENSION(:), INTENT(OUT) :: P_RS_RIM -REAL, DIMENSION(:), INTENT(OUT) :: P_CS_RIM -REAL, DIMENSION(:), INTENT(OUT) :: P_RG_RIM -! -REAL, DIMENSION(:), INTENT(OUT) :: P_RI_HMS -REAL, DIMENSION(:), INTENT(OUT) :: P_CI_HMS -REAL, DIMENSION(:), INTENT(OUT) :: P_RS_HMS -! -END SUBROUTINE LIMA_DROPLETS_RIMING_SNOW -END INTERFACE -END MODULE MODI_LIMA_DROPLETS_RIMING_SNOW -! +MODULE MODE_LIMA_DROPLETS_RIMING_SNOW + IMPLICIT NONE +CONTAINS ! ######################################################################################### - SUBROUTINE LIMA_DROPLETS_RIMING_SNOW (PTSTEP, LDCOMPUTE, & - PRHODREF, PT, & - PRCT, PCCT, PRST, PCST, PLBDC, PLBDS, PLVFACT, PLSFACT, & - P_TH_RIM, P_RC_RIM, P_CC_RIM, P_RS_RIM, P_CS_RIM, P_RG_RIM, & - P_RI_HMS, P_CI_HMS, P_RS_HMS ) + SUBROUTINE LIMA_DROPLETS_RIMING_SNOW (PTSTEP, LDCOMPUTE, & + PRHODREF, PT, & + PRCT, PCCT, PRST, PCST, PLBDC, PLBDS, PLVFACT, PLSFACT, & + P_TH_RIM, P_RC_RIM, P_CC_RIM, P_RS_RIM, P_CS_RIM, P_RG_RIM, & + P_RI_HMS, P_CI_HMS, P_RS_HMS ) ! ######################################################################################### ! !! PURPOSE @@ -234,3 +196,4 @@ END DO !------------------------------------------------------------------------------- ! END SUBROUTINE LIMA_DROPLETS_RIMING_SNOW +END MODULE MODE_LIMA_DROPLETS_RIMING_SNOW diff --git a/src/common/micro/lima_droplets_self_collection.F90 b/src/common/micro/mode_lima_droplets_self_collection.F90 similarity index 63% rename from src/common/micro/lima_droplets_self_collection.F90 rename to src/common/micro/mode_lima_droplets_self_collection.F90 index 79312e8cb058055804d58a2d48c53f10a04deb65..6a4557c89610cb9cafac0c37c4c639926e4b9a90 100644 --- a/src/common/micro/lima_droplets_self_collection.F90 +++ b/src/common/micro/mode_lima_droplets_self_collection.F90 @@ -3,34 +3,14 @@ !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_DROPLETS_SELF_COLLECTION -! ################################# -! -INTERFACE - SUBROUTINE LIMA_DROPLETS_SELF_COLLECTION (LDCOMPUTE, & - PRHODREF, & - PCCT, PLBDC3, & - P_CC_SELF ) -! -LOGICAL, DIMENSION(:),INTENT(IN) :: LDCOMPUTE -! -REAL, DIMENSION(:), INTENT(IN) :: PRHODREF ! Reference Exner function -! -REAL, DIMENSION(:), INTENT(IN) :: PCCT ! Cloud water C. at t -REAL, DIMENSION(:), INTENT(IN) :: PLBDC3 ! -! -REAL, DIMENSION(:), INTENT(OUT) :: P_CC_SELF -! -END SUBROUTINE LIMA_DROPLETS_SELF_COLLECTION -END INTERFACE -END MODULE MODI_LIMA_DROPLETS_SELF_COLLECTION -! +MODULE MODE_LIMA_DROPLETS_SELF_COLLECTION + IMPLICIT NONE +CONTAINS ! ###################################################################### - SUBROUTINE LIMA_DROPLETS_SELF_COLLECTION (LDCOMPUTE, & - PRHODREF, & - PCCT, PLBDC3, & - P_CC_SELF ) + SUBROUTINE LIMA_DROPLETS_SELF_COLLECTION (LDCOMPUTE, & + PRHODREF, & + PCCT, PLBDC3, & + P_CC_SELF ) ! ###################################################################### ! !! PURPOSE @@ -92,3 +72,4 @@ END WHERE !------------------------------------------------------------------------------- ! END SUBROUTINE LIMA_DROPLETS_SELF_COLLECTION +END MODULE MODE_LIMA_DROPLETS_SELF_COLLECTION diff --git a/src/common/micro/lima_drops_break_up.F90 b/src/common/micro/mode_lima_drops_break_up.F90 similarity index 71% rename from src/common/micro/lima_drops_break_up.F90 rename to src/common/micro/mode_lima_drops_break_up.F90 index 697c682469036cd49ecd2f8906efd9bdd1bdb093..e2b36c2ab18e6bfa233bd9c9e27f5c40bbb62927 100644 --- a/src/common/micro/lima_drops_break_up.F90 +++ b/src/common/micro/mode_lima_drops_break_up.F90 @@ -2,36 +2,14 @@ !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_DROPS_BREAK_UP -! ############################### -! -INTERFACE - SUBROUTINE LIMA_DROPS_BREAK_UP (LDCOMPUTE, & - PCRT, PRRT, & - P_CR_BRKU, & - PB_CR ) - -! -LOGICAL, DIMENSION(:), INTENT(IN) :: LDCOMPUTE -! -REAL, DIMENSION(:), INTENT(IN) :: PCRT ! -REAL, DIMENSION(:), INTENT(IN) :: PRRT ! -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_CR_BRKU ! Concentration change (#/kg) -REAL, DIMENSION(:), INTENT(INOUT) :: PB_CR ! Cumulated concentration change (#/kg) -! -END SUBROUTINE LIMA_DROPS_BREAK_UP -END INTERFACE -END MODULE MODI_LIMA_DROPS_BREAK_UP -! -! +MODULE MODE_LIMA_DROPS_BREAK_UP + IMPLICIT NONE +CONTAINS ! ########################################## - SUBROUTINE LIMA_DROPS_BREAK_UP (LDCOMPUTE, & - PCRT, PRRT, & - P_CR_BRKU, & - PB_CR ) - + SUBROUTINE LIMA_DROPS_BREAK_UP (LDCOMPUTE, & + PCRT, PRRT, & + P_CR_BRKU, & + PB_CR ) ! ########################################## ! !! @@ -98,3 +76,4 @@ PB_CR(:) = PB_CR(:) + P_CR_BRKU(:) !------------------------------------------------------------------------------- ! END SUBROUTINE LIMA_DROPS_BREAK_UP +END MODULE MODE_LIMA_DROPS_BREAK_UP diff --git a/src/common/micro/lima_drops_hom_freezing.F90 b/src/common/micro/mode_lima_drops_hom_freezing.F90 similarity index 59% rename from src/common/micro/lima_drops_hom_freezing.F90 rename to src/common/micro/mode_lima_drops_hom_freezing.F90 index b8382155bd2b89953b7a60ae0f54063d4c99af8e..1d3e289dbaad05153f76fc9dd95c23226010cec3 100644 --- a/src/common/micro/lima_drops_hom_freezing.F90 +++ b/src/common/micro/mode_lima_drops_hom_freezing.F90 @@ -2,53 +2,16 @@ !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_DROPS_HOM_FREEZING -! ################################# -! -INTERFACE - SUBROUTINE LIMA_DROPS_HOM_FREEZING (PTSTEP, LDCOMPUTE, & - PEXNREF, PPABST, & - PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & - PCRT, & - P_TH_HONR, P_RR_HONR, P_CR_HONR, & - PB_TH, PB_RR, PB_CR, PB_RG ) -! -REAL, INTENT(IN) :: PTSTEP -LOGICAL, DIMENSION(:), INTENT(IN) :: LDCOMPUTE -! -REAL, DIMENSION(:), INTENT(IN) :: PEXNREF ! Reference Exner function -REAL, DIMENSION(:), INTENT(IN) :: PPABST ! abs. pressure at time t -! -REAL, DIMENSION(:), INTENT(IN) :: PTHT ! Theta at time t -REAL, DIMENSION(:), INTENT(IN) :: PRVT ! Water vapor m.r. at t -REAL, DIMENSION(:), INTENT(IN) :: PRCT ! Cloud water m.r. at t -REAL, DIMENSION(:), INTENT(IN) :: PRRT ! Rain water m.r. at t -REAL, DIMENSION(:), INTENT(IN) :: PRIT ! Cloud ice m.r. at t -REAL, DIMENSION(:), INTENT(IN) :: PRST ! Snow/aggregate m.r. at t -REAL, DIMENSION(:), INTENT(IN) :: PRGT ! Graupel m.r. at t -! -REAL, DIMENSION(:), INTENT(IN) :: PCRT ! Rain water C. at t -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_TH_HONR -REAL, DIMENSION(:), INTENT(INOUT) :: P_RR_HONR -REAL, DIMENSION(:), INTENT(INOUT) :: P_CR_HONR -REAL, DIMENSION(:), INTENT(INOUT) :: PB_TH -REAL, DIMENSION(:), INTENT(INOUT) :: PB_RR -REAL, DIMENSION(:), INTENT(INOUT) :: PB_CR -REAL, DIMENSION(:), INTENT(INOUT) :: PB_RG -! -END SUBROUTINE LIMA_DROPS_HOM_FREEZING -END INTERFACE -END MODULE MODI_LIMA_DROPS_HOM_FREEZING -! +MODULE MODE_LIMA_DROPS_HOM_FREEZING + IMPLICIT NONE +CONTAINS ! ############################################################################### - SUBROUTINE LIMA_DROPS_HOM_FREEZING (PTSTEP, LDCOMPUTE, & - PEXNREF, PPABST, & - PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & - PCRT, & - P_TH_HONR, P_RR_HONR, P_CR_HONR, & - PB_TH, PB_RR, PB_CR, PB_RG ) + SUBROUTINE LIMA_DROPS_HOM_FREEZING (PTSTEP, LDCOMPUTE, & + PEXNREF, PPABST, & + PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & + PCRT, & + P_TH_HONR, P_RR_HONR, P_CR_HONR, & + PB_TH, PB_RR, PB_CR, PB_RG ) ! ############################################################################### ! !! PURPOSE @@ -142,3 +105,4 @@ ENDWHERE !------------------------------------------------------------------------------- ! END SUBROUTINE LIMA_DROPS_HOM_FREEZING +END MODULE MODE_LIMA_DROPS_HOM_FREEZING diff --git a/src/common/micro/lima_drops_self_collection.F90 b/src/common/micro/mode_lima_drops_self_collection.F90 similarity index 73% rename from src/common/micro/lima_drops_self_collection.F90 rename to src/common/micro/mode_lima_drops_self_collection.F90 index 3f064dfcdc0f19a5124562e4d8a5658f2a31a7c5..0c16b69b4d41c53ba69667de98731a79df209c38 100644 --- a/src/common/micro/lima_drops_self_collection.F90 +++ b/src/common/micro/mode_lima_drops_self_collection.F90 @@ -3,35 +3,14 @@ !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_DROPS_SELF_COLLECTION -! ################################# -! -INTERFACE - SUBROUTINE LIMA_DROPS_SELF_COLLECTION (LDCOMPUTE, & - PRHODREF, & - PCRT, PLBDR, PLBDR3, & - P_CR_SCBU ) -! -LOGICAL, DIMENSION(:),INTENT(IN) :: LDCOMPUTE -! -REAL, DIMENSION(:), INTENT(IN) :: PRHODREF ! Reference Exner function -! -REAL, DIMENSION(:), INTENT(IN) :: PCRT ! Cloud water C. at t -REAL, DIMENSION(:), INTENT(IN) :: PLBDR ! -REAL, DIMENSION(:), INTENT(IN) :: PLBDR3 ! -! -REAL, DIMENSION(:), INTENT(OUT) :: P_CR_SCBU -! -END SUBROUTINE LIMA_DROPS_SELF_COLLECTION -END INTERFACE -END MODULE MODI_LIMA_DROPS_SELF_COLLECTION -! +MODULE MODE_LIMA_DROPS_SELF_COLLECTION + IMPLICIT NONE +CONTAINS ! ############################################################# - SUBROUTINE LIMA_DROPS_SELF_COLLECTION (LDCOMPUTE, & - PRHODREF, & - PCRT, PLBDR, PLBDR3, & - P_CR_SCBU ) + SUBROUTINE LIMA_DROPS_SELF_COLLECTION (LDCOMPUTE, & + PRHODREF, & + PCRT, PLBDR, PLBDR3, & + P_CR_SCBU ) ! ############################################################# ! !! PURPOSE @@ -121,3 +100,4 @@ P_CR_SCBU(:) = - ZW3(:) * PRHODREF(:) !------------------------------------------------------------------------------- ! END SUBROUTINE LIMA_DROPS_SELF_COLLECTION +END MODULE MODE_LIMA_DROPS_SELF_COLLECTION diff --git a/src/common/micro/lima_drops_to_droplets_conv.F90 b/src/common/micro/mode_lima_drops_to_droplets_conv.F90 similarity index 71% rename from src/common/micro/lima_drops_to_droplets_conv.F90 rename to src/common/micro/mode_lima_drops_to_droplets_conv.F90 index b7b1a48bf416027e773dfb621ac8abaa08a63571..808bed2403a360d48509250e1925cea5d12a25ca 100644 --- a/src/common/micro/lima_drops_to_droplets_conv.F90 +++ b/src/common/micro/mode_lima_drops_to_droplets_conv.F90 @@ -2,34 +2,12 @@ !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_DROPS_TO_DROPLETS_CONV -! ################################# -! -INTERFACE - SUBROUTINE LIMA_DROPS_TO_DROPLETS_CONV (CST, PRHODREF, PRCT, PRRT, PCCT, PCRT, & - P_RR_CVRC, P_CR_CVRC ) -! -USE MODD_CST, ONLY: CST_t -TYPE(CST_t), INTENT(IN) :: CST -! -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF! Cloud water m.r. at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRCT ! Cloud water m.r. at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRRT ! Rain water m.r. at t -! -REAL, DIMENSION(:,:,:), INTENT(IN) :: PCCT ! Cloud water C. at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PCRT ! Rain water C. at t -! -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_RR_CVRC -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: P_CR_CVRC -! -END SUBROUTINE LIMA_DROPS_TO_DROPLETS_CONV -END INTERFACE -END MODULE MODI_LIMA_DROPS_TO_DROPLETS_CONV -! +MODULE MODE_LIMA_DROPS_TO_DROPLETS_CONV + IMPLICIT NONE +CONTAINS ! ###################################################################### - SUBROUTINE LIMA_DROPS_TO_DROPLETS_CONV (CST, PRHODREF, PRCT, PRRT, PCCT, PCRT, & - P_RR_CVRC, P_CR_CVRC ) + SUBROUTINE LIMA_DROPS_TO_DROPLETS_CONV (CST, PRHODREF, PRCT, PRRT, PCCT, PCRT, & + P_RR_CVRC, P_CR_CVRC ) ! ###################################################################### ! !! PURPOSE @@ -106,3 +84,4 @@ END WHERE !------------------------------------------------------------------------------- ! END SUBROUTINE LIMA_DROPS_TO_DROPLETS_CONV +END MODULE MODE_LIMA_DROPS_TO_DROPLETS_CONV diff --git a/src/common/micro/lima_functions.F90 b/src/common/micro/mode_lima_functions.F90 similarity index 76% rename from src/common/micro/lima_functions.F90 rename to src/common/micro/mode_lima_functions.F90 index b5a8f17d782405a0467ae9e39bc3d7cf8faf4b6a..e68fa3e7a3128ba430621d6cd7cf1a73b64ea5b2 100644 --- a/src/common/micro/lima_functions.F90 +++ b/src/common/micro/mode_lima_functions.F90 @@ -9,63 +9,9 @@ ! P. Wautelet 26/04/2019: replace non-standard FLOAT function by REAL function ! P. Wautelet 28/05/2019: move COUNTJV function to tools.f90 !----------------------------------------------------------------- -!################################# - MODULE MODI_LIMA_FUNCTIONS -!################################# -! -INTERFACE -! -FUNCTION MOMG (PALPHA,PNU,PP) RESULT (PMOMG) - REAL, INTENT(IN) :: PALPHA - REAL, INTENT(IN) :: PNU - REAL, INTENT(IN) :: PP - REAL :: PMOMG -END FUNCTION MOMG -! -FUNCTION RECT(PA,PB,PX,PX1,PX2) RESULT(PRECT) - REAL, INTENT(IN) :: PA - REAL, INTENT(IN) :: PB - REAL, DIMENSION(:), INTENT(IN) :: PX - REAL, INTENT(IN) :: PX1 - REAL, INTENT(IN) :: PX2 - REAL, DIMENSION(SIZE(PX,1)) :: PRECT -END FUNCTION RECT -! -FUNCTION DELTA(PA,PB,PX,PX1,PX2) RESULT(PDELTA) - REAL, INTENT(IN) :: PA - REAL, INTENT(IN) :: PB - REAL, DIMENSION(:), INTENT(IN) :: PX - REAL, INTENT(IN) :: PX1 - REAL, INTENT(IN) :: PX2 - REAL, DIMENSION(SIZE(PX,1)) :: PDELTA -END FUNCTION DELTA -! -FUNCTION DELTA_VEC(PA,PB,PX,PX1,PX2) RESULT(PDELTA_VEC) - REAL, INTENT(IN) :: PA - REAL, INTENT(IN) :: PB - REAL, DIMENSION(:), INTENT(IN) :: PX - REAL, DIMENSION(:), INTENT(IN) :: PX1 - REAL, DIMENSION(:), INTENT(IN) :: PX2 - REAL, DIMENSION(SIZE(PX,1)) :: PDELTA_VEC -END FUNCTION DELTA_VEC -! -SUBROUTINE GAULAG(x,w,n,alf) - INTEGER, INTENT(IN) :: n - REAL, INTENT(IN) :: alf - REAL, DIMENSION(n), INTENT(INOUT) :: w, x -END SUBROUTINE GAULAG -! -SUBROUTINE GAUHER(x,w,n) - INTEGER, INTENT(IN) :: n - REAL, DIMENSION(n), INTENT(INOUT) :: w, x -END SUBROUTINE GAUHER -! -END INTERFACE -! -END MODULE MODI_LIMA_FUNCTIONS -! -!------------------------------------------------------------------------------ -! +MODULE MODE_LIMA_FUNCTIONS + IMPLICIT NONE +CONTAINS !########################################### FUNCTION MOMG (PALPHA,PNU,PP) RESULT (PMOMG) !########################################### @@ -305,3 +251,4 @@ SUBROUTINE gauher(x,w,n) END SUBROUTINE gauher ! !------------------------------------------------------------------------------ +END MODULE MODE_LIMA_FUNCTIONS diff --git a/src/common/micro/lima_graupel.F90 b/src/common/micro/mode_lima_graupel.F90 similarity index 78% rename from src/common/micro/lima_graupel.F90 rename to src/common/micro/mode_lima_graupel.F90 index 6e73522666ee21e10b06296efcd8681f5faeefe9..42dfa71fbae577e18dab94b672e7be2cb42dae02 100644 --- a/src/common/micro/lima_graupel.F90 +++ b/src/common/micro/mode_lima_graupel.F90 @@ -3,123 +3,24 @@ !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_GRAUPEL -! ################################# -! -INTERFACE - SUBROUTINE LIMA_GRAUPEL (PTSTEP, LDCOMPUTE, & - PRHODREF, PPRES, PT, PKA, PDV, PCJ, & - PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & - PCCT, PCRT, PCIT, PCST, PCGT, & - PLBDC, PLBDR, PLBDS, PLBDG, & - PLVFACT, PLSFACT, & - P_TH_WETG, P_RC_WETG, P_CC_WETG, P_RR_WETG, P_CR_WETG, & - P_RI_WETG, P_CI_WETG, P_RS_WETG, P_CS_WETG, P_RG_WETG, P_CG_WETG, P_RH_WETG, & - P_TH_DRYG, P_RC_DRYG, P_CC_DRYG, P_RR_DRYG, P_CR_DRYG, & - P_RI_DRYG, P_CI_DRYG, P_RS_DRYG, P_CS_DRYG, P_RG_DRYG, & - P_RI_HMG, P_CI_HMG, P_RG_HMG, & - P_TH_GMLT, P_RR_GMLT, P_CR_GMLT, P_CG_GMLT, & - PA_TH, PA_RC, PA_CC, PA_RR, PA_CR, & - PA_RI, PA_CI, PA_RS, PA_CS, PA_RG, PA_CG, PA_RH, PA_CH ) -! -REAL, INTENT(IN) :: PTSTEP -LOGICAL, DIMENSION(:),INTENT(IN) :: LDCOMPUTE -! -REAL, DIMENSION(:), INTENT(IN) :: PRHODREF ! -REAL, DIMENSION(:), INTENT(IN) :: PPRES ! -REAL, DIMENSION(:), INTENT(IN) :: PT ! -REAL, DIMENSION(:), INTENT(IN) :: PKA ! -REAL, DIMENSION(:), INTENT(IN) :: PDV ! -REAL, DIMENSION(:), INTENT(IN) :: PCJ ! -! -REAL, DIMENSION(:), INTENT(IN) :: PRVT ! -REAL, DIMENSION(:), INTENT(IN) :: PRCT ! -REAL, DIMENSION(:), INTENT(IN) :: PRRT ! -REAL, DIMENSION(:), INTENT(IN) :: PRIT ! -REAL, DIMENSION(:), INTENT(IN) :: PRST ! -REAL, DIMENSION(:), INTENT(IN) :: PRGT ! -! -REAL, DIMENSION(:), INTENT(IN) :: PCCT ! -REAL, DIMENSION(:), INTENT(IN) :: PCRT ! -REAL, DIMENSION(:), INTENT(IN) :: PCIT ! -REAL, DIMENSION(:), INTENT(IN) :: PCST ! -REAL, DIMENSION(:), INTENT(IN) :: PCGT ! -! -REAL, DIMENSION(:), INTENT(IN) :: PLBDC ! -REAL, DIMENSION(:), INTENT(IN) :: PLBDR ! -REAL, DIMENSION(:), INTENT(IN) :: PLBDS ! -REAL, DIMENSION(:), INTENT(IN) :: PLBDG ! -! -REAL, DIMENSION(:), INTENT(IN) :: PLVFACT ! -REAL, DIMENSION(:), INTENT(IN) :: PLSFACT ! -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_TH_WETG -REAL, DIMENSION(:), INTENT(INOUT) :: P_RC_WETG -REAL, DIMENSION(:), INTENT(INOUT) :: P_CC_WETG -REAL, DIMENSION(:), INTENT(INOUT) :: P_RR_WETG -REAL, DIMENSION(:), INTENT(INOUT) :: P_CR_WETG -REAL, DIMENSION(:), INTENT(INOUT) :: P_RI_WETG -REAL, DIMENSION(:), INTENT(INOUT) :: P_CI_WETG -REAL, DIMENSION(:), INTENT(INOUT) :: P_RS_WETG -REAL, DIMENSION(:), INTENT(INOUT) :: P_CS_WETG -REAL, DIMENSION(:), INTENT(INOUT) :: P_RG_WETG -REAL, DIMENSION(:), INTENT(INOUT) :: P_CG_WETG -REAL, DIMENSION(:), INTENT(INOUT) :: P_RH_WETG -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_TH_DRYG -REAL, DIMENSION(:), INTENT(INOUT) :: P_RC_DRYG -REAL, DIMENSION(:), INTENT(INOUT) :: P_CC_DRYG -REAL, DIMENSION(:), INTENT(INOUT) :: P_RR_DRYG -REAL, DIMENSION(:), INTENT(INOUT) :: P_CR_DRYG -REAL, DIMENSION(:), INTENT(INOUT) :: P_RI_DRYG -REAL, DIMENSION(:), INTENT(INOUT) :: P_CI_DRYG -REAL, DIMENSION(:), INTENT(INOUT) :: P_RS_DRYG -REAL, DIMENSION(:), INTENT(INOUT) :: P_CS_DRYG -REAL, DIMENSION(:), INTENT(INOUT) :: P_RG_DRYG -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_RI_HMG -REAL, DIMENSION(:), INTENT(INOUT) :: P_CI_HMG -REAL, DIMENSION(:), INTENT(INOUT) :: P_RG_HMG -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_TH_GMLT -REAL, DIMENSION(:), INTENT(INOUT) :: P_RR_GMLT -REAL, DIMENSION(:), INTENT(INOUT) :: P_CR_GMLT -REAL, DIMENSION(:), INTENT(INOUT) :: P_CG_GMLT -! -REAL, DIMENSION(:), INTENT(INOUT) :: PA_TH -REAL, DIMENSION(:), INTENT(INOUT) :: PA_RC -REAL, DIMENSION(:), INTENT(INOUT) :: PA_CC -REAL, DIMENSION(:), INTENT(INOUT) :: PA_RR -REAL, DIMENSION(:), INTENT(INOUT) :: PA_CR -REAL, DIMENSION(:), INTENT(INOUT) :: PA_RI -REAL, DIMENSION(:), INTENT(INOUT) :: PA_CI -REAL, DIMENSION(:), INTENT(INOUT) :: PA_RS -REAL, DIMENSION(:), INTENT(INOUT) :: PA_CS -REAL, DIMENSION(:), INTENT(INOUT) :: PA_RG -REAL, DIMENSION(:), INTENT(INOUT) :: PA_CG -REAL, DIMENSION(:), INTENT(INOUT) :: PA_RH -REAL, DIMENSION(:), INTENT(INOUT) :: PA_CH -! -END SUBROUTINE LIMA_GRAUPEL -END INTERFACE -END MODULE MODI_LIMA_GRAUPEL -! +MODULE MODE_LIMA_GRAUPEL + IMPLICIT NONE +CONTAINS ! ################################################################################# - SUBROUTINE LIMA_GRAUPEL (PTSTEP, LDCOMPUTE, & - PRHODREF, PPRES, PT, PKA, PDV, PCJ, & - PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & - PCCT, PCRT, PCIT, PCST, PCGT, & - PLBDC, PLBDR, PLBDS, PLBDG, & - PLVFACT, PLSFACT, & - P_TH_WETG, P_RC_WETG, P_CC_WETG, P_RR_WETG, P_CR_WETG, & - P_RI_WETG, P_CI_WETG, P_RS_WETG, P_CS_WETG, P_RG_WETG, P_CG_WETG, P_RH_WETG, & - P_TH_DRYG, P_RC_DRYG, P_CC_DRYG, P_RR_DRYG, P_CR_DRYG, & - P_RI_DRYG, P_CI_DRYG, P_RS_DRYG, P_CS_DRYG, P_RG_DRYG, & - P_RI_HMG, P_CI_HMG, P_RG_HMG, & - P_TH_GMLT, P_RR_GMLT, P_CR_GMLT, P_CG_GMLT, & - PA_TH, PA_RC, PA_CC, PA_RR, PA_CR, & - PA_RI, PA_CI, PA_RS, PA_CS, PA_RG, PA_CG, PA_RH, PA_CH ) + SUBROUTINE LIMA_GRAUPEL (PTSTEP, LDCOMPUTE, & + PRHODREF, PPRES, PT, PKA, PDV, PCJ, & + PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & + PCCT, PCRT, PCIT, PCST, PCGT, & + PLBDC, PLBDR, PLBDS, PLBDG, & + PLVFACT, PLSFACT, & + P_TH_WETG, P_RC_WETG, P_CC_WETG, P_RR_WETG, P_CR_WETG, & + P_RI_WETG, P_CI_WETG, P_RS_WETG, P_CS_WETG, P_RG_WETG, P_CG_WETG, P_RH_WETG, & + P_TH_DRYG, P_RC_DRYG, P_CC_DRYG, P_RR_DRYG, P_CR_DRYG, & + P_RI_DRYG, P_CI_DRYG, P_RS_DRYG, P_CS_DRYG, P_RG_DRYG, & + P_RI_HMG, P_CI_HMG, P_RG_HMG, & + P_TH_GMLT, P_RR_GMLT, P_CR_GMLT, P_CG_GMLT, & + PA_TH, PA_RC, PA_CC, PA_RR, PA_CR, & + PA_RI, PA_CI, PA_RS, PA_CS, PA_RG, PA_CG, PA_RH, PA_CH ) ! ################################################################################# ! !! PURPOSE @@ -668,3 +569,4 @@ CONTAINS !------------------------------------------------------------------------------- ! END SUBROUTINE LIMA_GRAUPEL +END MODULE MODE_LIMA_GRAUPEL diff --git a/src/common/micro/lima_graupel_deposition.F90 b/src/common/micro/mode_lima_graupel_deposition.F90 similarity index 65% rename from src/common/micro/lima_graupel_deposition.F90 rename to src/common/micro/mode_lima_graupel_deposition.F90 index 83b28e3d202d33d6339b48fd0d81b7f5b79cdc5b..14e970084e17abc54a598dd2720b5e1e84156e84 100644 --- a/src/common/micro/lima_graupel_deposition.F90 +++ b/src/common/micro/mode_lima_graupel_deposition.F90 @@ -3,37 +3,13 @@ !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_GRAUPEL_DEPOSITION -! ################################# -! -INTERFACE - SUBROUTINE LIMA_GRAUPEL_DEPOSITION (LDCOMPUTE, PRHODREF, & - PRGT, PCGT, PSSI, PLBDG, PAI, PCJ, PLSFACT, & - P_TH_DEPG, P_RG_DEPG ) -! -LOGICAL, DIMENSION(:),INTENT(IN) :: LDCOMPUTE -REAL, DIMENSION(:), INTENT(IN) :: PRHODREF ! -! -REAL, DIMENSION(:), INTENT(IN) :: PRGT ! graupel mr -REAL, DIMENSION(:), INTENT(IN) :: PCGT ! graupel conc -REAL, DIMENSION(:), INTENT(IN) :: PSSI ! -REAL, DIMENSION(:), INTENT(IN) :: PLBDG ! -REAL, DIMENSION(:), INTENT(IN) :: PAI ! -REAL, DIMENSION(:), INTENT(IN) :: PCJ ! -REAL, DIMENSION(:), INTENT(IN) :: PLSFACT ! -! -REAL, DIMENSION(:), INTENT(OUT) :: P_TH_DEPG -REAL, DIMENSION(:), INTENT(OUT) :: P_RG_DEPG -!! -END SUBROUTINE LIMA_GRAUPEL_DEPOSITION -END INTERFACE -END MODULE MODI_LIMA_GRAUPEL_DEPOSITION -! +MODULE MODE_LIMA_GRAUPEL_DEPOSITION + IMPLICIT NONE +CONTAINS ! ########################################################################### - SUBROUTINE LIMA_GRAUPEL_DEPOSITION (LDCOMPUTE, PRHODREF, & - PRGT, PCGT, PSSI, PLBDG, PAI, PCJ, PLSFACT, & - P_TH_DEPG, P_RG_DEPG ) + SUBROUTINE LIMA_GRAUPEL_DEPOSITION (LDCOMPUTE, PRHODREF, & + PRGT, PCGT, PSSI, PLBDG, PAI, PCJ, PLSFACT, & + P_TH_DEPG, P_RG_DEPG ) ! ########################################################################### ! !! PURPOSE @@ -98,3 +74,4 @@ END WHERE !------------------------------------------------------------------------------- ! END SUBROUTINE LIMA_GRAUPEL_DEPOSITION +END MODULE MODE_LIMA_GRAUPEL_DEPOSITION diff --git a/src/common/micro/lima_hail.F90 b/src/common/micro/mode_lima_hail.F90 similarity index 78% rename from src/common/micro/lima_hail.F90 rename to src/common/micro/mode_lima_hail.F90 index 66fe11b3ae5f50236e862dc58ebee8a78ba84487..4d1fef9038708a7578e9491e8cccc2b215d2fb65 100644 --- a/src/common/micro/lima_hail.F90 +++ b/src/common/micro/mode_lima_hail.F90 @@ -3,110 +3,22 @@ !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_HAIL -! ################################# -! -INTERFACE - SUBROUTINE LIMA_HAIL (PTSTEP, LDCOMPUTE, & - PRHODREF, PPRES, PT, PKA, PDV, PCJ, & - PRVT, PRCT, PRRT, PRIT, PRST, PRGT, PRHT, & - PCCT, PCRT, PCIT, PCST, PCGT, PCHT, & - PLBDC, PLBDR, PLBDS, PLBDG, PLBDH, & - PLVFACT, PLSFACT, & - P_TH_WETH, P_RC_WETH, P_CC_WETH, P_RR_WETH, P_CR_WETH, & - P_RI_WETH, P_CI_WETH, P_RS_WETH, P_CS_WETH, P_RG_WETH, P_CG_WETH, P_RH_WETH, & - P_RG_COHG, P_CG_COHG, & - P_TH_HMLT, P_RR_HMLT, P_CR_HMLT, P_CH_HMLT, & - PA_TH, PA_RC, PA_CC, PA_RR, PA_CR, & - PA_RI, PA_CI, PA_RS, PA_CS, PA_RG, PA_CG, PA_RH, PA_CH ) -! -REAL, INTENT(IN) :: PTSTEP -LOGICAL, DIMENSION(:),INTENT(IN) :: LDCOMPUTE -! -REAL, DIMENSION(:), INTENT(IN) :: PRHODREF ! -REAL, DIMENSION(:), INTENT(IN) :: PPRES ! -REAL, DIMENSION(:), INTENT(IN) :: PT ! -REAL, DIMENSION(:), INTENT(IN) :: PKA ! -REAL, DIMENSION(:), INTENT(IN) :: PDV ! -REAL, DIMENSION(:), INTENT(IN) :: PCJ ! -! -REAL, DIMENSION(:), INTENT(IN) :: PRVT ! -REAL, DIMENSION(:), INTENT(IN) :: PRCT ! -REAL, DIMENSION(:), INTENT(IN) :: PRRT ! -REAL, DIMENSION(:), INTENT(IN) :: PRIT ! -REAL, DIMENSION(:), INTENT(IN) :: PRST ! -REAL, DIMENSION(:), INTENT(IN) :: PRGT ! -REAL, DIMENSION(:), INTENT(IN) :: PRHT ! -! -REAL, DIMENSION(:), INTENT(IN) :: PCCT ! -REAL, DIMENSION(:), INTENT(IN) :: PCRT ! -REAL, DIMENSION(:), INTENT(IN) :: PCIT ! -REAL, DIMENSION(:), INTENT(IN) :: PCST ! -REAL, DIMENSION(:), INTENT(IN) :: PCGT ! -REAL, DIMENSION(:), INTENT(IN) :: PCHT ! -! -REAL, DIMENSION(:), INTENT(IN) :: PLBDC ! -REAL, DIMENSION(:), INTENT(IN) :: PLBDR ! -REAL, DIMENSION(:), INTENT(IN) :: PLBDS ! -REAL, DIMENSION(:), INTENT(IN) :: PLBDG ! -REAL, DIMENSION(:), INTENT(IN) :: PLBDH ! -! -REAL, DIMENSION(:), INTENT(IN) :: PLVFACT ! -REAL, DIMENSION(:), INTENT(IN) :: PLSFACT ! -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_TH_WETH -REAL, DIMENSION(:), INTENT(INOUT) :: P_RC_WETH -REAL, DIMENSION(:), INTENT(INOUT) :: P_CC_WETH -REAL, DIMENSION(:), INTENT(INOUT) :: P_RR_WETH -REAL, DIMENSION(:), INTENT(INOUT) :: P_CR_WETH -REAL, DIMENSION(:), INTENT(INOUT) :: P_RI_WETH -REAL, DIMENSION(:), INTENT(INOUT) :: P_CI_WETH -REAL, DIMENSION(:), INTENT(INOUT) :: P_RS_WETH -REAL, DIMENSION(:), INTENT(INOUT) :: P_CS_WETH -REAL, DIMENSION(:), INTENT(INOUT) :: P_RG_WETH -REAL, DIMENSION(:), INTENT(INOUT) :: P_CG_WETH -REAL, DIMENSION(:), INTENT(INOUT) :: P_RH_WETH -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_RG_COHG -REAL, DIMENSION(:), INTENT(INOUT) :: P_CG_COHG -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_TH_HMLT -REAL, DIMENSION(:), INTENT(INOUT) :: P_RR_HMLT -REAL, DIMENSION(:), INTENT(INOUT) :: P_CR_HMLT -REAL, DIMENSION(:), INTENT(INOUT) :: P_CH_HMLT -! -REAL, DIMENSION(:), INTENT(INOUT) :: PA_TH -REAL, DIMENSION(:), INTENT(INOUT) :: PA_RC -REAL, DIMENSION(:), INTENT(INOUT) :: PA_CC -REAL, DIMENSION(:), INTENT(INOUT) :: PA_RR -REAL, DIMENSION(:), INTENT(INOUT) :: PA_CR -REAL, DIMENSION(:), INTENT(INOUT) :: PA_RI -REAL, DIMENSION(:), INTENT(INOUT) :: PA_CI -REAL, DIMENSION(:), INTENT(INOUT) :: PA_RS -REAL, DIMENSION(:), INTENT(INOUT) :: PA_CS -REAL, DIMENSION(:), INTENT(INOUT) :: PA_RG -REAL, DIMENSION(:), INTENT(INOUT) :: PA_CG -REAL, DIMENSION(:), INTENT(INOUT) :: PA_RH -REAL, DIMENSION(:), INTENT(INOUT) :: PA_CH -! -END SUBROUTINE LIMA_HAIL -END INTERFACE -END MODULE MODI_LIMA_HAIL -! +MODULE MODE_LIMA_HAIL + IMPLICIT NONE +CONTAINS ! ################################################################################# - SUBROUTINE LIMA_HAIL (PTSTEP, LDCOMPUTE, & - PRHODREF, PPRES, PT, PKA, PDV, PCJ, & - PRVT, PRCT, PRRT, PRIT, PRST, PRGT, PRHT, & - PCCT, PCRT, PCIT, PCST, PCGT, PCHT, & - PLBDC, PLBDR, PLBDS, PLBDG, PLBDH, & - PLVFACT, PLSFACT, & - P_TH_WETH, P_RC_WETH, P_CC_WETH, P_RR_WETH, P_CR_WETH, & - P_RI_WETH, P_CI_WETH, P_RS_WETH, P_CS_WETH, P_RG_WETH, P_CG_WETH, P_RH_WETH, & - P_RG_COHG, P_CG_COHG, & - P_TH_HMLT, P_RR_HMLT, P_CR_HMLT, P_CH_HMLT, & - PA_TH, PA_RC, PA_CC, PA_RR, PA_CR, & - PA_RI, PA_CI, PA_RS, PA_CS, PA_RG, PA_CG, PA_RH, PA_CH ) + SUBROUTINE LIMA_HAIL (PTSTEP, LDCOMPUTE, & + PRHODREF, PPRES, PT, PKA, PDV, PCJ, & + PRVT, PRCT, PRRT, PRIT, PRST, PRGT, PRHT, & + PCCT, PCRT, PCIT, PCST, PCGT, PCHT, & + PLBDC, PLBDR, PLBDS, PLBDG, PLBDH, & + PLVFACT, PLSFACT, & + P_TH_WETH, P_RC_WETH, P_CC_WETH, P_RR_WETH, P_CR_WETH, & + P_RI_WETH, P_CI_WETH, P_RS_WETH, P_CS_WETH, P_RG_WETH, P_CG_WETH, P_RH_WETH, & + P_RG_COHG, P_CG_COHG, & + P_TH_HMLT, P_RR_HMLT, P_CR_HMLT, P_CH_HMLT, & + PA_TH, PA_RC, PA_CC, PA_RR, PA_CR, & + PA_RI, PA_CI, PA_RS, PA_CS, PA_RG, PA_CG, PA_RH, PA_CH ) ! ################################################################################# ! !! PURPOSE @@ -574,3 +486,4 @@ CONTAINS !------------------------------------------------------------------------------- ! END SUBROUTINE LIMA_HAIL +END MODULE MODE_LIMA_HAIL diff --git a/src/common/micro/lima_hail_deposition.F90 b/src/common/micro/mode_lima_hail_deposition.F90 similarity index 65% rename from src/common/micro/lima_hail_deposition.F90 rename to src/common/micro/mode_lima_hail_deposition.F90 index 1b411138fdfc344c7ab8cdc4043bc37e737baa2e..50eae03d08804182d5da09f0eefcf8fc30bed701 100644 --- a/src/common/micro/lima_hail_deposition.F90 +++ b/src/common/micro/mode_lima_hail_deposition.F90 @@ -3,37 +3,13 @@ !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_HAIL_DEPOSITION -! ################################# -! -INTERFACE - SUBROUTINE LIMA_HAIL_DEPOSITION (LDCOMPUTE, PRHODREF, & - PRHT, PCHT, PSSI, PLBDH, PAI, PCJ, PLSFACT, & - P_TH_DEPH, P_RH_DEPH ) -! -LOGICAL, DIMENSION(:),INTENT(IN) :: LDCOMPUTE -REAL, DIMENSION(:), INTENT(IN) :: PRHODREF ! -! -REAL, DIMENSION(:), INTENT(IN) :: PRHT ! hail mr -REAL, DIMENSION(:), INTENT(IN) :: PCHT ! hail conc -REAL, DIMENSION(:), INTENT(IN) :: PSSI ! -REAL, DIMENSION(:), INTENT(IN) :: PLBDH ! -REAL, DIMENSION(:), INTENT(IN) :: PAI ! -REAL, DIMENSION(:), INTENT(IN) :: PCJ ! -REAL, DIMENSION(:), INTENT(IN) :: PLSFACT ! -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_TH_DEPH -REAL, DIMENSION(:), INTENT(INOUT) :: P_RH_DEPH -!! -END SUBROUTINE LIMA_HAIL_DEPOSITION -END INTERFACE -END MODULE MODI_LIMA_HAIL_DEPOSITION -! +MODULE MODE_LIMA_HAIL_DEPOSITION + IMPLICIT NONE +CONTAINS ! ########################################################################### - SUBROUTINE LIMA_HAIL_DEPOSITION (LDCOMPUTE, PRHODREF, & - PRHT, PCHT, PSSI, PLBDH, PAI, PCJ, PLSFACT, & - P_TH_DEPH, P_RH_DEPH ) + SUBROUTINE LIMA_HAIL_DEPOSITION (LDCOMPUTE, PRHODREF, & + PRHT, PCHT, PSSI, PLBDH, PAI, PCJ, PLSFACT, & + P_TH_DEPH, P_RH_DEPH ) ! ########################################################################### ! !! PURPOSE @@ -98,3 +74,4 @@ END WHERE !------------------------------------------------------------------------------- ! END SUBROUTINE LIMA_HAIL_DEPOSITION +END MODULE MODE_LIMA_HAIL_DEPOSITION diff --git a/src/common/micro/lima_ice_aggregation_snow.F90 b/src/common/micro/mode_lima_ice_aggregation_snow.F90 similarity index 72% rename from src/common/micro/lima_ice_aggregation_snow.F90 rename to src/common/micro/mode_lima_ice_aggregation_snow.F90 index 26b23005738fe4202944cb83e51d634d403aeede..03f4c10b228955877104f014612422e0374ce9d2 100644 --- a/src/common/micro/lima_ice_aggregation_snow.F90 +++ b/src/common/micro/mode_lima_ice_aggregation_snow.F90 @@ -3,40 +3,14 @@ !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_ICE_AGGREGATION_SNOW -! ################################# -! -INTERFACE - SUBROUTINE LIMA_ICE_AGGREGATION_SNOW (LDCOMPUTE, & - PT, PRHODREF, & - PRIT, PRST, PCIT, PCST, PLBDI, PLBDS, & - P_RI_AGGS, P_CI_AGGS ) -! -LOGICAL, DIMENSION(:),INTENT(IN) :: LDCOMPUTE -! -REAL, DIMENSION(:), INTENT(IN) :: PT -REAL, DIMENSION(:), INTENT(IN) :: PRHODREF -! -REAL, DIMENSION(:), INTENT(IN) :: PRIT -REAL, DIMENSION(:), INTENT(IN) :: PRST -REAL, DIMENSION(:), INTENT(IN) :: PCIT -REAL, DIMENSION(:), INTENT(IN) :: PCST -REAL, DIMENSION(:), INTENT(IN) :: PLBDI -REAL, DIMENSION(:), INTENT(IN) :: PLBDS -! -REAL, DIMENSION(:), INTENT(OUT) :: P_RI_AGGS -REAL, DIMENSION(:), INTENT(OUT) :: P_CI_AGGS -! -END SUBROUTINE LIMA_ICE_AGGREGATION_SNOW -END INTERFACE -END MODULE MODI_LIMA_ICE_AGGREGATION_SNOW -! +MODULE MODE_LIMA_ICE_AGGREGATION_SNOW + IMPLICIT NONE +CONTAINS ! ####################################################################### - SUBROUTINE LIMA_ICE_AGGREGATION_SNOW (LDCOMPUTE, & - PT, PRHODREF, & - PRIT, PRST, PCIT, PCST, PLBDI, PLBDS, & - P_RI_AGGS, P_CI_AGGS ) + SUBROUTINE LIMA_ICE_AGGREGATION_SNOW (LDCOMPUTE, & + PT, PRHODREF, & + PRIT, PRST, PCIT, PCST, PLBDI, PLBDS, & + P_RI_AGGS, P_CI_AGGS ) ! ####################################################################### ! !! PURPOSE @@ -134,3 +108,4 @@ END IF !------------------------------------------------------------------------------- ! END SUBROUTINE LIMA_ICE_AGGREGATION_SNOW +END MODULE MODE_LIMA_ICE_AGGREGATION_SNOW diff --git a/src/common/micro/lima_ice_deposition.F90 b/src/common/micro/mode_lima_ice_deposition.F90 similarity index 73% rename from src/common/micro/lima_ice_deposition.F90 rename to src/common/micro/mode_lima_ice_deposition.F90 index a0d51a533e82cb3b54e469f07c539392d73b5514..ed7540ca238a6898c0c9c4a61ac52eaad60d2035 100644 --- a/src/common/micro/lima_ice_deposition.F90 +++ b/src/common/micro/mode_lima_ice_deposition.F90 @@ -3,48 +3,15 @@ !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_ICE_DEPOSITION -! ##################### -! -INTERFACE - SUBROUTINE LIMA_ICE_DEPOSITION (PTSTEP, LDCOMPUTE, & - PRHODREF, PT, PSSI, PAI, PCJ, PLSFACT, & - PRIT, PCIT, PLBDI, & - P_TH_DEPI, P_RI_DEPI, & - P_RI_CNVS, P_CI_CNVS ) -! -REAL, INTENT(IN) :: PTSTEP -LOGICAL, DIMENSION(:),INTENT(IN) :: LDCOMPUTE -! -REAL, DIMENSION(:), INTENT(IN) :: PRHODREF! Reference density -REAL, DIMENSION(:), INTENT(IN) :: PT ! abs. pressure at time t -REAL, DIMENSION(:), INTENT(IN) :: PSSI ! abs. pressure at time t -REAL, DIMENSION(:), INTENT(IN) :: PAI ! abs. pressure at time t -REAL, DIMENSION(:), INTENT(IN) :: PCJ ! abs. pressure at time t -REAL, DIMENSION(:), INTENT(IN) :: PLSFACT ! abs. pressure at time t -! -REAL, DIMENSION(:), INTENT(IN) :: PRIT ! Cloud ice m.r. at t -! -REAL, DIMENSION(:), INTENT(IN) :: PCIT ! Ice crystal C. at t -! -REAL, DIMENSION(:), INTENT(IN) :: PLBDI ! Graupel m.r. at t -! -REAL, DIMENSION(:), INTENT(OUT) :: P_TH_DEPI -REAL, DIMENSION(:), INTENT(OUT) :: P_RI_DEPI -REAL, DIMENSION(:), INTENT(OUT) :: P_RI_CNVS -REAL, DIMENSION(:), INTENT(OUT) :: P_CI_CNVS -! -END SUBROUTINE LIMA_ICE_DEPOSITION -END INTERFACE -END MODULE MODI_LIMA_ICE_DEPOSITION -! +MODULE MODE_LIMA_ICE_DEPOSITION + IMPLICIT NONE +CONTAINS ! ########################################################################## -SUBROUTINE LIMA_ICE_DEPOSITION (PTSTEP, LDCOMPUTE, & - PRHODREF, PT, PSSI, PAI, PCJ, PLSFACT, & - PRIT, PCIT, PLBDI, & - P_TH_DEPI, P_RI_DEPI, & - P_RI_CNVS, P_CI_CNVS ) + SUBROUTINE LIMA_ICE_DEPOSITION (PTSTEP, LDCOMPUTE, & + PRHODREF, PT, PSSI, PAI, PCJ, PLSFACT, & + PRIT, PCIT, PLBDI, & + P_TH_DEPI, P_RI_DEPI, & + P_RI_CNVS, P_CI_CNVS ) ! ########################################################################## ! !! PURPOSE @@ -183,3 +150,4 @@ IF (NMOM_S.EQ.0) THEN END IF ! END SUBROUTINE LIMA_ICE_DEPOSITION +END MODULE MODE_LIMA_ICE_DEPOSITION diff --git a/src/common/micro/lima_ice_melting.F90 b/src/common/micro/mode_lima_ice_melting.F90 similarity index 60% rename from src/common/micro/lima_ice_melting.F90 rename to src/common/micro/mode_lima_ice_melting.F90 index a95f45044056fda9664059a03b549d2395581639..e2e7b475ec9a9c622bab7d00b003b6f4997ce240 100644 --- a/src/common/micro/lima_ice_melting.F90 +++ b/src/common/micro/mode_lima_ice_melting.F90 @@ -2,56 +2,16 @@ !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_ICE_MELTING -! ################################# -! -INTERFACE - SUBROUTINE LIMA_ICE_MELTING (PTSTEP, LDCOMPUTE, & - PEXNREF, PPABST, & - PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & - PCIT, PINT, & - P_TH_IMLT, P_RC_IMLT, P_CC_IMLT, & - PB_TH, PB_RC, PB_CC, PB_RI, PB_CI, PB_IFNN) -! -REAL, INTENT(IN) :: PTSTEP -LOGICAL, DIMENSION(:),INTENT(IN) :: LDCOMPUTE -! -REAL, DIMENSION(:), INTENT(IN) :: PEXNREF ! Reference Exner function -REAL, DIMENSION(:), INTENT(IN) :: PPABST ! abs. pressure at time t -! -REAL, DIMENSION(:), INTENT(IN) :: PTHT ! Theta at time t -REAL, DIMENSION(:), INTENT(IN) :: PRVT ! -REAL, DIMENSION(:), INTENT(IN) :: PRCT ! -REAL, DIMENSION(:), INTENT(IN) :: PRRT ! -REAL, DIMENSION(:), INTENT(IN) :: PRIT ! Cloud ice m.r. at t -REAL, DIMENSION(:), INTENT(IN) :: PRST ! -REAL, DIMENSION(:), INTENT(IN) :: PRGT ! -! -REAL, DIMENSION(:), INTENT(IN) :: PCIT ! Rain water C. at t -REAL, DIMENSION(:,:), INTENT(IN) :: PINT ! Nucleated IFN C. at t -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_TH_IMLT -REAL, DIMENSION(:), INTENT(INOUT) :: P_RC_IMLT -REAL, DIMENSION(:), INTENT(INOUT) :: P_CC_IMLT -REAL, DIMENSION(:), INTENT(INOUT) :: PB_TH -REAL, DIMENSION(:), INTENT(INOUT) :: PB_RC -REAL, DIMENSION(:), INTENT(INOUT) :: PB_CC -REAL, DIMENSION(:), INTENT(INOUT) :: PB_RI -REAL, DIMENSION(:), INTENT(INOUT) :: PB_CI -REAL, DIMENSION(:,:), INTENT(INOUT) :: PB_IFNN -! -END SUBROUTINE LIMA_ICE_MELTING -END INTERFACE -END MODULE MODI_LIMA_ICE_MELTING -! +MODULE MODE_LIMA_ICE_MELTING + IMPLICIT NONE +CONTAINS ! ######################################################################## - SUBROUTINE LIMA_ICE_MELTING (PTSTEP, LDCOMPUTE, & - PEXNREF, PPABST, & - PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & - PCIT, PINT, & - P_TH_IMLT, P_RC_IMLT, P_CC_IMLT, & - PB_TH, PB_RC, PB_CC, PB_RI, PB_CI, PB_IFNN) + SUBROUTINE LIMA_ICE_MELTING (PTSTEP, LDCOMPUTE, & + PEXNREF, PPABST, & + PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & + PCIT, PINT, & + P_TH_IMLT, P_RC_IMLT, P_CC_IMLT, & + PB_TH, PB_RC, PB_CC, PB_RI, PB_CI, PB_IFNN) ! ######################################################################## ! !! PURPOSE @@ -162,3 +122,4 @@ ENDDO !------------------------------------------------------------------------------- ! END SUBROUTINE LIMA_ICE_MELTING +END MODULE MODE_LIMA_ICE_MELTING diff --git a/src/common/micro/lima_init_ccn_activation_spectrum.F90 b/src/common/micro/mode_lima_init_ccn_activation_spectrum.F90 similarity index 93% rename from src/common/micro/lima_init_ccn_activation_spectrum.F90 rename to src/common/micro/mode_lima_init_ccn_activation_spectrum.F90 index 4403f97025e2c04b8f823efd603eec3accbb28ef..c11b9222e8a25524ee32b40d0a16b49c0abd7077 100644 --- a/src/common/micro/lima_init_ccn_activation_spectrum.F90 +++ b/src/common/micro/mode_lima_init_ccn_activation_spectrum.F90 @@ -3,27 +3,11 @@ !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_INIT_CCN_ACTIVATION_SPECTRUM -INTERFACE - SUBROUTINE LIMA_INIT_CCN_ACTIVATION_SPECTRUM (CTYPE_CCN,XD,XSIGMA,XLIMIT_FACTOR,XK,XMU,XBETA,XKAPPA) - ! - CHARACTER(LEN=*), INTENT(IN) :: CTYPE_CCN ! Aerosol type - REAL, INTENT(IN) :: XD ! Aerosol PSD modal diameter - REAL, INTENT(IN) :: XSIGMA ! Aerosol PSD width - REAL, INTENT(OUT) :: XLIMIT_FACTOR ! C/Naer - REAL, INTENT(OUT) :: XK ! k - REAL, INTENT(OUT) :: XMU ! mu - REAL, INTENT(OUT) :: XBETA ! beta - REAL, INTENT(OUT) :: XKAPPA ! kappa -! - END SUBROUTINE LIMA_INIT_CCN_ACTIVATION_SPECTRUM -END INTERFACE -END MODULE MODI_LIMA_INIT_CCN_ACTIVATION_SPECTRUM -! #################### -! +MODULE MODE_LIMA_INIT_CCN_ACTIVATION_SPECTRUM + IMPLICIT NONE +CONTAINS ! ############################################################# - SUBROUTINE LIMA_INIT_CCN_ACTIVATION_SPECTRUM (CTYPE_CCN,XD,XSIGMA,XLIMIT_FACTOR,XK,XMU,XBETA,XKAPPA) + SUBROUTINE LIMA_INIT_CCN_ACTIVATION_SPECTRUM (CTYPE_CCN,XD,XSIGMA,XLIMIT_FACTOR,XK,XMU,XBETA,XKAPPA) ! ############################################################# !! @@ -456,3 +440,4 @@ END FUNCTION DSDD ! !------------------------------------------------------------------------------ END SUBROUTINE LIMA_INIT_CCN_ACTIVATION_SPECTRUM +END MODULE MODE_LIMA_INIT_CCN_ACTIVATION_SPECTRUM diff --git a/src/common/micro/lima_inst_procs.F90 b/src/common/micro/mode_lima_inst_procs.F90 similarity index 50% rename from src/common/micro/lima_inst_procs.F90 rename to src/common/micro/mode_lima_inst_procs.F90 index 3de0152dbbc9e78a2548cbf4f47b2eaede217a8a..0deeb85fa8652fa12103407a5fc1b0ad2b8a7712 100644 --- a/src/common/micro/lima_inst_procs.F90 +++ b/src/common/micro/mode_lima_inst_procs.F90 @@ -3,87 +3,22 @@ !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_INST_PROCS -! ############################### -! -INTERFACE - SUBROUTINE LIMA_INST_PROCS (PTSTEP, LDCOMPUTE, & - PEXNREF, PPABST, & - PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & - PCCT, PCRT, PCIT, & - PINT, & - P_CR_BRKU, & ! spontaneous break up of drops (BRKU) : Nr - P_TH_HONR, P_RR_HONR, P_CR_HONR, & ! rain drops homogeneous freezing (HONR) : rr, Nr, rg=-rr, th - P_TH_IMLT, P_RC_IMLT, P_CC_IMLT, & ! ice melting (IMLT) : rc, Nc, ri=-rc, Ni=-Nc, th, IFNF, IFNA - PB_TH, PB_RV, PB_RC, PB_RR, PB_RI, PB_RG, & - PB_CC, PB_CR, PB_CI, & - PB_IFNN, & - PCF1D, PIF1D, PPF1D ) -! -REAL, INTENT(IN) :: PTSTEP ! Time step -LOGICAL, DIMENSION(:),INTENT(IN) :: LDCOMPUTE -! -REAL, DIMENSION(:), INTENT(IN) :: PEXNREF ! Reference Exner function -REAL, DIMENSION(:), INTENT(IN) :: PPABST ! abs. pressure at time t -! -REAL, DIMENSION(:), INTENT(IN) :: PTHT ! Theta at t -REAL, DIMENSION(:), INTENT(IN) :: PRVT ! Water vapor m.r. at t -REAL, DIMENSION(:), INTENT(IN) :: PRCT ! Cloud water m.r. at t -REAL, DIMENSION(:), INTENT(IN) :: PRRT ! Rain water m.r. at t -REAL, DIMENSION(:), INTENT(IN) :: 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(IN) :: PCCT ! Cloud water conc. at t -REAL, DIMENSION(:), INTENT(IN) :: PCRT ! Rain water conc. at t -REAL, DIMENSION(:), INTENT(IN) :: PCIT ! Prinstine ice conc. at t -! -REAL, DIMENSION(:,:), INTENT(IN) :: PINT ! IFN C. activated at t -! -REAL, DIMENSION(:) , INTENT(INOUT) :: P_CR_BRKU ! Concentration change (#/kg) -REAL, DIMENSION(:) , INTENT(INOUT) :: P_TH_HONR ! -REAL, DIMENSION(:) , INTENT(INOUT) :: P_RR_HONR ! mr change (kg/kg) -REAL, DIMENSION(:) , INTENT(INOUT) :: P_CR_HONR ! Concentration change (#/kg) -REAL, DIMENSION(:) , INTENT(INOUT) :: P_TH_IMLT ! -REAL, DIMENSION(:) , INTENT(INOUT) :: P_RC_IMLT ! mr change (kg/kg) -REAL, DIMENSION(:) , INTENT(INOUT) :: P_CC_IMLT ! Concentration change (#/kg) -! -REAL, DIMENSION(:) , INTENT(INOUT) :: PB_TH ! Cumulated theta change -REAL, DIMENSION(:) , INTENT(INOUT) :: PB_RV ! Cumulated mr change (kg/kg) -REAL, DIMENSION(:) , INTENT(INOUT) :: PB_RC ! Cumulated mr change (kg/kg) -REAL, DIMENSION(:) , INTENT(INOUT) :: PB_RR ! Cumulated mr change (kg/kg) -REAL, DIMENSION(:) , INTENT(INOUT) :: PB_RI ! Cumulated mr change (kg/kg) -REAL, DIMENSION(:) , INTENT(INOUT) :: PB_RG ! Cumulated mr change (kg/kg) -! -REAL, DIMENSION(:) , INTENT(INOUT) :: PB_CC ! Cumulated concentration change (#/kg) -REAL, DIMENSION(:) , INTENT(INOUT) :: PB_CR ! Cumulated concentration change (#/kg) -REAL, DIMENSION(:) , INTENT(INOUT) :: PB_CI ! Cumulated concentration change (#/kg) -! -REAL, DIMENSION(:,:), INTENT(INOUT) :: PB_IFNN ! Cumulated concentration change (#/kg) -! -REAL, DIMENSION(:) , INTENT(INOUT) :: PCF1D ! Liquid cloud fraction -REAL, DIMENSION(:) , INTENT(INOUT) :: PIF1D ! Ice cloud fraction -REAL, DIMENSION(:) , INTENT(INOUT) :: PPF1D ! Precipitation fraction -! - END SUBROUTINE LIMA_INST_PROCS -END INTERFACE -END MODULE MODI_LIMA_INST_PROCS -! -! +MODULE MODE_LIMA_INST_PROCS + IMPLICIT NONE +CONTAINS ! ########################################################################### -SUBROUTINE LIMA_INST_PROCS (PTSTEP, LDCOMPUTE, & - PEXNREF, PPABST, & - PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & - PCCT, PCRT, PCIT, & - PINT, & - P_CR_BRKU, & ! spontaneous break up of drops (BRKU) : Nr - P_TH_HONR, P_RR_HONR, P_CR_HONR, & ! rain drops homogeneous freezing (HONR) : rr, Nr, rg=-rr, th - P_TH_IMLT, P_RC_IMLT, P_CC_IMLT, & ! ice melting (IMLT) : rc, Nc, ri=-rc, Ni=-Nc, th, IFNF, IFNA - PB_TH, PB_RV, PB_RC, PB_RR, PB_RI, PB_RG, & - PB_CC, PB_CR, PB_CI, & - PB_IFNN, & - PCF1D, PIF1D, PPF1D ) + SUBROUTINE LIMA_INST_PROCS (PTSTEP, LDCOMPUTE, & + PEXNREF, PPABST, & + PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & + PCCT, PCRT, PCIT, & + PINT, & + P_CR_BRKU, & ! spontaneous break up of drops (BRKU) : Nr + P_TH_HONR, P_RR_HONR, P_CR_HONR, & ! rain drops homogeneous freezing (HONR) : rr, Nr, rg=-rr, th + P_TH_IMLT, P_RC_IMLT, P_CC_IMLT, & ! ice melting (IMLT) : rc, Nc, ri=-rc, Ni=-Nc, th, IFNF, IFNA + PB_TH, PB_RV, PB_RC, PB_RR, PB_RI, PB_RG, & + PB_CC, PB_CR, PB_CI, & + PB_IFNN, & + PCF1D, PIF1D, PPF1D ) ! ########################################################################### ! !! PURPOSE @@ -104,9 +39,9 @@ SUBROUTINE LIMA_INST_PROCS (PTSTEP, LDCOMPUTE, ! USE MODD_PARAM_LIMA, ONLY : NMOM_C, NMOM_R, NMOM_I, NMOM_G ! -USE MODI_LIMA_DROPS_BREAK_UP -USE MODI_LIMA_DROPS_HOM_FREEZING -USE MODI_LIMA_ICE_MELTING +USE MODE_LIMA_DROPS_BREAK_UP, ONLY: LIMA_DROPS_BREAK_UP +USE MODE_LIMA_DROPS_HOM_FREEZING, ONLY: LIMA_DROPS_HOM_FREEZING +USE MODE_LIMA_ICE_MELTING, ONLY: LIMA_ICE_MELTING IMPLICIT NONE @@ -195,3 +130,4 @@ END IF !------------------------------------------------------------------------------- ! END SUBROUTINE LIMA_INST_PROCS +END MODULE MODE_LIMA_INST_PROCS diff --git a/src/common/micro/lima_meyers_nucleation.F90 b/src/common/micro/mode_lima_meyers_nucleation.F90 similarity index 78% rename from src/common/micro/lima_meyers_nucleation.F90 rename to src/common/micro/mode_lima_meyers_nucleation.F90 index f85e3274037252e496fbf1d48a17fdfdb50628a7..989c3562cbcac6400404794c726c1c6f7237fe2d 100644 --- a/src/common/micro/lima_meyers_nucleation.F90 +++ b/src/common/micro/mode_lima_meyers_nucleation.F90 @@ -3,60 +3,17 @@ !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_MEYERS_NUCLEATION -! ################################## -! -INTERFACE - SUBROUTINE LIMA_MEYERS_NUCLEATION (CST, PTSTEP, & - PRHODREF, PEXNREF, PPABST, & - PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & - PCCT, PCIT, PINT, & - P_TH_HIND, P_RI_HIND, P_CI_HIND, & - P_TH_HINC, P_RC_HINC, P_CC_HINC, & - PICEFR ) -USE MODD_CST, ONLY: CST_t -! -TYPE(CST_t), INTENT(IN) :: CST -REAL, INTENT(IN) :: PTSTEP -! -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(INOUT) :: PTHT ! Theta at time 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 ! Cloud ice m.r. at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRST ! Snow/aggregate m.r. at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRGT ! Graupel m.r. at t -! -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCCT ! Cloud water C. at t -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCIT ! Ice crystal C. source -REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PINT ! Activated ice nuclei C. -! -REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_TH_HIND -REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_RI_HIND -REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_CI_HIND -REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_TH_HINC -REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_RC_HINC -REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_CC_HINC -! -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PICEFR -! -END SUBROUTINE LIMA_MEYERS_NUCLEATION -END INTERFACE -END MODULE MODI_LIMA_MEYERS_NUCLEATION -! +MODULE MODE_LIMA_MEYERS_NUCLEATION + IMPLICIT NONE +CONTAINS ! ############################################################################# - SUBROUTINE LIMA_MEYERS_NUCLEATION (CST, PTSTEP, & - PRHODREF, PEXNREF, PPABST, & - PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & - PCCT, PCIT, PINT, & - P_TH_HIND, P_RI_HIND, P_CI_HIND, & - P_TH_HINC, P_RC_HINC, P_CC_HINC, & - PICEFR ) + SUBROUTINE LIMA_MEYERS_NUCLEATION (CST, PTSTEP, & + PRHODREF, PEXNREF, PPABST, & + PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & + PCCT, PCIT, PINT, & + P_TH_HIND, P_RI_HIND, P_CI_HIND, & + P_TH_HINC, P_RC_HINC, P_CC_HINC, & + PICEFR ) ! ############################################################################# !! !! PURPOSE @@ -348,3 +305,4 @@ END IF !------------------------------------------------------------------------------- ! END SUBROUTINE LIMA_MEYERS_NUCLEATION +END MODULE MODE_LIMA_MEYERS_NUCLEATION diff --git a/src/common/micro/lima_nucleation_procs.F90 b/src/common/micro/mode_lima_nucleation_procs.F90 similarity index 82% rename from src/common/micro/lima_nucleation_procs.F90 rename to src/common/micro/mode_lima_nucleation_procs.F90 index ae5ec06ce838568ad69420bf481370d1c5b1cdab..502d8a3c52e2dd9f4b57e27a66b7051cf96a1244 100644 --- a/src/common/micro/lima_nucleation_procs.F90 +++ b/src/common/micro/mode_lima_nucleation_procs.F90 @@ -3,76 +3,17 @@ !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 -! ############################### -! -INTERFACE - SUBROUTINE LIMA_NUCLEATION_PROCS (D, CST, BUCONF, TBUDGETS, KBUDGETS, & - PTSTEP, PRHODJ, & - PRHODREF, PEXNREF, PPABST, PT, PDTHRAD, PW_NU, & - PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, PRHT, & - PCCT, PCRT, PCIT, & - PNFT, PNAT, PIFT, PINT, PNIT, PNHT, & - PCLDFR, PICEFR, PPRCFR ) -! -USE MODD_CST, ONLY: CST_t -USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t -USE MODD_BUDGET, ONLY: TBUDGETDATA, TBUDGETCONF_t -!USE MODD_IO, ONLY: TFILEDATA -! -TYPE(DIMPHYEX_t), INTENT(IN) :: D -TYPE(CST_t), INTENT(IN) :: CST -TYPE(TBUDGETCONF_t), INTENT(IN) :: BUCONF -TYPE(TBUDGETDATA), DIMENSION(KBUDGETS), INTENT(INOUT) :: TBUDGETS -INTEGER, INTENT(IN) :: KBUDGETS -! -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(IN) :: PRHT ! Hail 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 +MODULE MODE_LIMA_NUCLEATION_PROCS + IMPLICIT NONE +CONTAINS ! ############################################################################# -SUBROUTINE LIMA_NUCLEATION_PROCS (D, CST, BUCONF, TBUDGETS, KBUDGETS, & - PTSTEP, PRHODJ, & - PRHODREF, PEXNREF, PPABST, PT, PDTHRAD, PW_NU, & - PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, PRHT, & - PCCT, PCRT, PCIT, & - PNFT, PNAT, PIFT, PINT, PNIT, PNHT, & - PCLDFR, PICEFR, PPRCFR ) + SUBROUTINE LIMA_NUCLEATION_PROCS (D, CST, BUCONF, TBUDGETS, KBUDGETS, & + PTSTEP, PRHODJ, & + PRHODREF, PEXNREF, PPABST, PT, PDTHRAD, PW_NU, & + PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, PRHT, & + PCCT, PCRT, PCIT, & + PNFT, PNAT, PIFT, PINT, PNIT, PNHT, & + PCLDFR, PICEFR, PPRCFR ) ! ############################################################################# ! !! PURPOSE @@ -108,11 +49,11 @@ USE MODD_TURB_n, ONLY : LSUBG_COND use mode_budget, only: BUDGET_STORE_ADD_PHY, BUDGET_STORE_INIT_PHY, BUDGET_STORE_END_PHY -USE MODI_LIMA_CCN_ACTIVATION -USE MODI_LIMA_CCN_HOM_FREEZING -USE MODI_LIMA_MEYERS_NUCLEATION -USE MODI_LIMA_PHILLIPS_IFN_NUCLEATION -USE MODE_LIMA_ICE4_NUCLEATION +USE MODE_LIMA_CCN_ACTIVATION, ONLY: LIMA_CCN_ACTIVATION +USE MODE_LIMA_CCN_HOM_FREEZING, ONLY: LIMA_CCN_HOM_FREEZING +USE MODE_LIMA_MEYERS_NUCLEATION, ONLY: LIMA_MEYERS_NUCLEATION +USE MODE_LIMA_PHILLIPS_IFN_NUCLEATION, ONLY: LIMA_PHILLIPS_IFN_NUCLEATION +USE MODE_LIMA_ICE4_NUCLEATION, ONLY: LIMA_ICE4_NUCLEATION ! !------------------------------------------------------------------------------- ! @@ -436,3 +377,4 @@ ENDIF !------------------------------------------------------------------------------- ! END SUBROUTINE LIMA_NUCLEATION_PROCS +END MODULE MODE_LIMA_NUCLEATION_PROCS diff --git a/src/common/micro/lima_phillips_ifn_nucleation.F90 b/src/common/micro/mode_lima_phillips_ifn_nucleation.F90 similarity index 84% rename from src/common/micro/lima_phillips_ifn_nucleation.F90 rename to src/common/micro/mode_lima_phillips_ifn_nucleation.F90 index c2d7cabc30dc0f1944f81bf50f4f5de02f548951..37d4b321f11f73814c63fb5fd163bd87b9ecf614 100644 --- a/src/common/micro/lima_phillips_ifn_nucleation.F90 +++ b/src/common/micro/mode_lima_phillips_ifn_nucleation.F90 @@ -3,63 +3,17 @@ !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_PHILLIPS_IFN_NUCLEATION -! ######################################## -! -INTERFACE - SUBROUTINE LIMA_PHILLIPS_IFN_NUCLEATION (CST, PTSTEP, & - PRHODREF, PEXNREF, PPABST, & - PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & - PCCT, PCIT, PNAT, PIFT, PINT, PNIT, & - P_TH_HIND, P_RI_HIND, P_CI_HIND, & - P_TH_HINC, P_RC_HINC, P_CC_HINC, & - PICEFR ) -USE MODD_CST, ONLY: CST_t -! -TYPE(CST_t), INTENT(IN) :: CST -REAL, INTENT(IN) :: PTSTEP -! -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(INOUT) :: PTHT ! Theta at time 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 ! Cloud ice m.r. at t -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRST ! Snow/aggregate 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(INOUT) :: PCIT ! Cloud water conc. at t -REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PNAT ! CCN conc. used for immersion nucl. -REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PIFT ! Free IFN conc. -REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PINT ! Nucleated IFN conc. -REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PNIT ! Nucleated (by immersion) CCN conc. -! -REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_TH_HIND -REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_RI_HIND -REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_CI_HIND -REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_TH_HINC -REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_RC_HINC -REAL, DIMENSION(:,:,:), INTENT(OUT) :: P_CC_HINC -! -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PICEFR -! -END SUBROUTINE LIMA_PHILLIPS_IFN_NUCLEATION -END INTERFACE -END MODULE MODI_LIMA_PHILLIPS_IFN_NUCLEATION -! +MODULE MODE_LIMA_PHILLIPS_IFN_NUCLEATION + IMPLICIT NONE +CONTAINS ! ################################################################################# - SUBROUTINE LIMA_PHILLIPS_IFN_NUCLEATION (CST, PTSTEP, & - PRHODREF, PEXNREF, PPABST, & - PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & - PCCT, PCIT, PNAT, PIFT, PINT, PNIT, & - P_TH_HIND, P_RI_HIND, P_CI_HIND, & - P_TH_HINC, P_RC_HINC, P_CC_HINC, & - PICEFR ) + SUBROUTINE LIMA_PHILLIPS_IFN_NUCLEATION (CST, PTSTEP, & + PRHODREF, PEXNREF, PPABST, & + PTHT, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & + PCCT, PCIT, PNAT, PIFT, PINT, PNIT, & + P_TH_HIND, P_RI_HIND, P_CI_HIND, & + P_TH_HINC, P_RC_HINC, P_CC_HINC, & + PICEFR ) ! ################################################################################# !! !! PURPOSE @@ -126,8 +80,8 @@ USE MODD_PARAM_LIMA_COLD, ONLY : XMNU0 use mode_tools, only: Countjv -USE MODI_LIMA_PHILLIPS_INTEG -USE MODI_LIMA_PHILLIPS_REF_SPECTRUM +USE MODE_LIMA_PHILLIPS_INTEG, ONLY : LIMA_PHILLIPS_INTEG +USE MODE_LIMA_PHILLIPS_REF_SPECTRUM, ONLY : LIMA_PHILLIPS_REF_SPECTRUM IMPLICIT NONE ! @@ -510,3 +464,4 @@ END IF ! INEGT > 0 !------------------------------------------------------------------------------- ! END SUBROUTINE LIMA_PHILLIPS_IFN_NUCLEATION +END MODULE MODE_LIMA_PHILLIPS_IFN_NUCLEATION diff --git a/src/common/micro/lima_phillips_integ.F90 b/src/common/micro/mode_lima_phillips_integ.F90 similarity index 87% rename from src/common/micro/lima_phillips_integ.F90 rename to src/common/micro/mode_lima_phillips_integ.F90 index 7cb098c3b4bb5d848e8d91b355a5490e477af53a..210dd08f9009aee84bcec0a9b8997d1cbe681e46 100644 --- a/src/common/micro/lima_phillips_integ.F90 +++ b/src/common/micro/mode_lima_phillips_integ.F90 @@ -1,25 +1,8 @@ -! ############################### - MODULE MODI_LIMA_PHILLIPS_INTEG -! ############################### -! -INTERFACE - SUBROUTINE LIMA_PHILLIPS_INTEG (CST, ZZT, ZSI, ZSI0, ZSW, ZZY, Z_FRAC_ACT) -! -USE MODD_CST, ONLY: CST_t -TYPE(CST_t), INTENT(IN) :: CST -REAL, DIMENSION(:), INTENT(IN) :: ZZT -REAL, DIMENSION(:), INTENT(IN) :: ZSI -REAL, DIMENSION(:,:), INTENT(IN) :: ZSI0 -REAL, DIMENSION(:), INTENT(IN) :: ZSW -REAL, DIMENSION(:), INTENT(IN) :: ZZY -REAL, DIMENSION(:,:), INTENT(INOUT) :: Z_FRAC_ACT -! -END SUBROUTINE LIMA_PHILLIPS_INTEG -END INTERFACE -END MODULE MODI_LIMA_PHILLIPS_INTEG -! +MODULE MODE_LIMA_PHILLIPS_INTEG + IMPLICIT NONE +CONTAINS ! ###################################################################### - SUBROUTINE LIMA_PHILLIPS_INTEG (CST, ZZT, ZSI, ZSI0, ZSW, ZZY, Z_FRAC_ACT) + SUBROUTINE LIMA_PHILLIPS_INTEG (CST, ZZT, ZSI, ZSI0, ZSW, ZZY, Z_FRAC_ACT) ! ###################################################################### !! !! PURPOSE @@ -54,7 +37,7 @@ USE MODD_CST, ONLY: CST_t USE MODD_PARAM_LIMA, ONLY : XMDIAM_IFN, XSIGMA_IFN, NSPECIE, XFRAC_REF, & XH, XAREA1, XGAMMA, XABSCISS, XWEIGHT, NDIAM, & XT0, XDT0, XDSI0, XSW0, XTX1, XTX2 -USE MODI_LIMA_FUNCTIONS, ONLY : DELTA, DELTA_VEC +USE MODE_LIMA_FUNCTIONS, ONLY : DELTA, DELTA_VEC USE MODI_GAMMA_INC ! IMPLICIT NONE @@ -164,3 +147,4 @@ DO JSPECIE = 1, NSPECIE ! = 4 = {DM1, DM2, BC, O} respectively ENDDO ! END SUBROUTINE LIMA_PHILLIPS_INTEG +END MODULE MODE_LIMA_PHILLIPS_INTEG diff --git a/src/common/micro/lima_phillips_ref_spectrum.F90 b/src/common/micro/mode_lima_phillips_ref_spectrum.F90 similarity index 82% rename from src/common/micro/lima_phillips_ref_spectrum.F90 rename to src/common/micro/mode_lima_phillips_ref_spectrum.F90 index 62d5f1985c88867a7f17bdd7363ccc0170df0ce3..b1492d450bab9ae445a17bc7be1ec4594f091600 100644 --- a/src/common/micro/lima_phillips_ref_spectrum.F90 +++ b/src/common/micro/mode_lima_phillips_ref_spectrum.F90 @@ -1,23 +1,8 @@ -! ###################################### - MODULE MODI_LIMA_PHILLIPS_REF_SPECTRUM -! ###################################### -! -INTERFACE - SUBROUTINE LIMA_PHILLIPS_REF_SPECTRUM (CST, ZZT, ZSI, ZSI_W, ZZY) -! -USE MODD_CST, ONLY: CST_t -TYPE(CST_t), INTENT(IN) :: CST -REAL, DIMENSION(:), INTENT(IN) :: ZZT ! Temperature -REAL, DIMENSION(:), INTENT(IN) :: ZSI ! Saturation over ice -REAL, DIMENSION(:), INTENT(IN) :: ZSI_W ! Saturation over ice at water sat. -REAL, DIMENSION(:), INTENT(INOUT) :: ZZY ! Reference activity spectrum -! -END SUBROUTINE LIMA_PHILLIPS_REF_SPECTRUM -END INTERFACE -END MODULE MODI_LIMA_PHILLIPS_REF_SPECTRUM -! +MODULE MODE_LIMA_PHILLIPS_REF_SPECTRUM + IMPLICIT NONE +CONTAINS ! ###################################################################### - SUBROUTINE LIMA_PHILLIPS_REF_SPECTRUM (CST, ZZT, ZSI, ZSI_W, ZZY) + SUBROUTINE LIMA_PHILLIPS_REF_SPECTRUM (CST, ZZT, ZSI, ZSI_W, ZZY) ! ###################################################################### !! !! PURPOSE @@ -50,7 +35,7 @@ END MODULE MODI_LIMA_PHILLIPS_REF_SPECTRUM ! USE MODD_CST, ONLY: CST_t USE MODD_PARAM_LIMA, ONLY : XGAMMA, XRHO_CFDC -USE MODI_LIMA_FUNCTIONS, ONLY : RECT, DELTA +USE MODE_LIMA_FUNCTIONS, ONLY : RECT, DELTA ! IMPLICIT NONE ! @@ -139,3 +124,4 @@ DEALLOCATE(Z1) DEALLOCATE(Z2) ! END SUBROUTINE LIMA_PHILLIPS_REF_SPECTRUM +END MODULE MODE_LIMA_PHILLIPS_REF_SPECTRUM diff --git a/src/common/micro/lima_rain_accr_snow.F90 b/src/common/micro/mode_lima_rain_accr_snow.F90 similarity index 87% rename from src/common/micro/lima_rain_accr_snow.F90 rename to src/common/micro/mode_lima_rain_accr_snow.F90 index a63ac24a4b9c776d316c18074682e61dddff53ed..66f06a67fe17542a7f11409800e09a9ea9f75d8e 100644 --- a/src/common/micro/lima_rain_accr_snow.F90 +++ b/src/common/micro/mode_lima_rain_accr_snow.F90 @@ -3,47 +3,14 @@ !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_RAIN_ACCR_SNOW -! ################################# -! -INTERFACE - SUBROUTINE LIMA_RAIN_ACCR_SNOW (PTSTEP, LDCOMPUTE, & - PRHODREF, PT, & - PRRT, PCRT, PRST, PCST, PLBDR, PLBDS, PLVFACT, PLSFACT, & - P_TH_ACC, P_RR_ACC, P_CR_ACC, P_RS_ACC, P_CS_ACC, P_RG_ACC ) -! -REAL, INTENT(IN) :: PTSTEP -LOGICAL, DIMENSION(:),INTENT(IN) :: LDCOMPUTE -! -REAL, DIMENSION(:), INTENT(IN) :: PRHODREF ! -REAL, DIMENSION(:), INTENT(IN) :: PT ! -! -REAL, DIMENSION(:), INTENT(IN) :: PRRT ! Rain mr at t -REAL, DIMENSION(:), INTENT(IN) :: PCRT ! Rain C. at t -REAL, DIMENSION(:), INTENT(IN) :: PRST ! Snow mr at t -REAL, DIMENSION(:), INTENT(IN) :: PCST ! Snow C. at t -REAL, DIMENSION(:), INTENT(IN) :: PLBDR ! -REAL, DIMENSION(:), INTENT(IN) :: PLBDS ! -REAL, DIMENSION(:), INTENT(IN) :: PLVFACT ! -REAL, DIMENSION(:), INTENT(IN) :: PLSFACT ! -! -REAL, DIMENSION(:), INTENT(OUT) :: P_TH_ACC -REAL, DIMENSION(:), INTENT(OUT) :: P_RR_ACC -REAL, DIMENSION(:), INTENT(OUT) :: P_CR_ACC -REAL, DIMENSION(:), INTENT(OUT) :: P_RS_ACC -REAL, DIMENSION(:), INTENT(OUT) :: P_CS_ACC -REAL, DIMENSION(:), INTENT(OUT) :: P_RG_ACC -! -END SUBROUTINE LIMA_RAIN_ACCR_SNOW -END INTERFACE -END MODULE MODI_LIMA_RAIN_ACCR_SNOW -! +MODULE MODE_LIMA_RAIN_ACCR_SNOW + IMPLICIT NONE +CONTAINS ! ################################################################################### - SUBROUTINE LIMA_RAIN_ACCR_SNOW (PTSTEP, LDCOMPUTE, & - PRHODREF, PT, & - PRRT, PCRT, PRST, PCST, PLBDR, PLBDS, PLVFACT, PLSFACT, & - P_TH_ACC, P_RR_ACC, P_CR_ACC, P_RS_ACC, P_CS_ACC, P_RG_ACC ) + SUBROUTINE LIMA_RAIN_ACCR_SNOW (PTSTEP, LDCOMPUTE, & + PRHODREF, PT, & + PRRT, PCRT, PRST, PCST, PLBDR, PLBDS, PLVFACT, PLSFACT, & + P_TH_ACC, P_RR_ACC, P_CR_ACC, P_RS_ACC, P_CS_ACC, P_RG_ACC ) ! ################################################################################### ! !! PURPOSE @@ -398,3 +365,4 @@ CONTAINS !------------------------------------------------------------------------------- ! END SUBROUTINE LIMA_RAIN_ACCR_SNOW +END MODULE MODE_LIMA_RAIN_ACCR_SNOW diff --git a/src/common/micro/lima_rain_evaporation.F90 b/src/common/micro/mode_lima_rain_evaporation.F90 similarity index 66% rename from src/common/micro/lima_rain_evaporation.F90 rename to src/common/micro/mode_lima_rain_evaporation.F90 index c7211f2fcd62960a43373cb63f19c38314ea6d0f..86e59a8d7778eba2ba80b4263a1d9edea2980a3f 100644 --- a/src/common/micro/lima_rain_evaporation.F90 +++ b/src/common/micro/mode_lima_rain_evaporation.F90 @@ -3,48 +3,15 @@ !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_RAIN_EVAPORATION -! ########################## -! -INTERFACE - SUBROUTINE LIMA_RAIN_EVAPORATION (PTSTEP, LDCOMPUTE, & - PRHODREF, PT, PLV, PLVFACT, PEVSAT, PRVSAT, & - PRVT, PRCT, PRRT, PCRT, PLBDR, & - P_TH_EVAP, P_RR_EVAP, P_CR_EVAP, & - PEVAP3D ) -! -REAL, INTENT(IN) :: PTSTEP ! Time step -LOGICAL, DIMENSION(:),INTENT(IN) :: LDCOMPUTE ! -! -REAL, DIMENSION(:), INTENT(IN) :: PRHODREF ! Reference density -REAL, DIMENSION(:), INTENT(IN) :: PT ! Temperature -REAL, DIMENSION(:), INTENT(IN) :: PLV ! -REAL, DIMENSION(:), INTENT(IN) :: PLVFACT ! -REAL, DIMENSION(:), INTENT(IN) :: PEVSAT ! -REAL, DIMENSION(:), INTENT(IN) :: PRVSAT ! -! -REAL, DIMENSION(:), INTENT(IN) :: PRVT ! Water vapor m.r. at t -REAL, DIMENSION(:), INTENT(IN) :: PRCT ! Cloud water m.r. at t -REAL, DIMENSION(:), INTENT(IN) :: PRRT ! Rain water m.r. at t -REAL, DIMENSION(:), INTENT(IN) :: PCRT ! Rain water conc at t -REAL, DIMENSION(:), INTENT(IN) :: PLBDR ! Lambda(rain) -! -REAL, DIMENSION(:), INTENT(OUT) :: P_TH_EVAP -REAL, DIMENSION(:), INTENT(OUT) :: P_RR_EVAP -REAL, DIMENSION(:), INTENT(OUT) :: P_CR_EVAP -! -REAL, DIMENSION(:), INTENT(INOUT) :: PEVAP3D ! Rain evap profile -! -END SUBROUTINE LIMA_RAIN_EVAPORATION -END INTERFACE -END MODULE MODI_LIMA_RAIN_EVAPORATION +MODULE MODE_LIMA_RAIN_EVAPORATION + IMPLICIT NONE +CONTAINS ! ############################################################################### - SUBROUTINE LIMA_RAIN_EVAPORATION (PTSTEP, LDCOMPUTE, & - PRHODREF, PT, PLV, PLVFACT, PEVSAT, PRVSAT, & - PRVT, PRCT, PRRT, PCRT, PLBDR, & - P_TH_EVAP, P_RR_EVAP, P_CR_EVAP, & - PEVAP3D ) + SUBROUTINE LIMA_RAIN_EVAPORATION (PTSTEP, LDCOMPUTE, & + PRHODREF, PT, PLV, PLVFACT, PEVSAT, PRVSAT, & + PRVT, PRCT, PRRT, PCRT, PLBDR, & + P_TH_EVAP, P_RR_EVAP, P_CR_EVAP, & + PEVAP3D ) ! ############################################################################### ! !! @@ -168,3 +135,4 @@ END IF !----------------------------------------------------------------------------- ! END SUBROUTINE LIMA_RAIN_EVAPORATION +END MODULE MODE_LIMA_RAIN_EVAPORATION diff --git a/src/common/micro/lima_rain_freezing.F90 b/src/common/micro/mode_lima_rain_freezing.F90 similarity index 65% rename from src/common/micro/lima_rain_freezing.F90 rename to src/common/micro/mode_lima_rain_freezing.F90 index a6c9504a1cef696a5003a099c293a41060ed4fa7..b3bee2145b48b566fd0673e947a804fe0f37a8d4 100644 --- a/src/common/micro/lima_rain_freezing.F90 +++ b/src/common/micro/mode_lima_rain_freezing.F90 @@ -3,44 +3,14 @@ !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_RAIN_FREEZING -! ################################# -! -INTERFACE - SUBROUTINE LIMA_RAIN_FREEZING (LDCOMPUTE, & - PRHODREF, PT, PLVFACT, PLSFACT, & - PRRT, PCRT, PRIT, PCIT, PLBDR, & - P_TH_CFRZ, P_RR_CFRZ, P_CR_CFRZ, P_RI_CFRZ, P_CI_CFRZ ) -! -LOGICAL, DIMENSION(:),INTENT(IN) :: LDCOMPUTE -! -REAL, DIMENSION(:), INTENT(IN) :: PRHODREF ! Reference Exner function -REAL, DIMENSION(:), INTENT(IN) :: PT ! -REAL, DIMENSION(:), INTENT(IN) :: PLVFACT ! -REAL, DIMENSION(:), INTENT(IN) :: PLSFACT ! -! -REAL, DIMENSION(:), INTENT(IN) :: PRRT ! -REAL, DIMENSION(:), INTENT(IN) :: PCRT ! -REAL, DIMENSION(:), INTENT(IN) :: PRIT ! -REAL, DIMENSION(:), INTENT(IN) :: PCIT ! -REAL, DIMENSION(:), INTENT(IN) :: PLBDR ! -! -REAL, DIMENSION(:), INTENT(OUT) :: P_TH_CFRZ -REAL, DIMENSION(:), INTENT(OUT) :: P_RR_CFRZ -REAL, DIMENSION(:), INTENT(OUT) :: P_CR_CFRZ -REAL, DIMENSION(:), INTENT(OUT) :: P_RI_CFRZ -REAL, DIMENSION(:), INTENT(OUT) :: P_CI_CFRZ -! -END SUBROUTINE LIMA_RAIN_FREEZING -END INTERFACE -END MODULE MODI_LIMA_RAIN_FREEZING -! +MODULE MODE_LIMA_RAIN_FREEZING + IMPLICIT NONE +CONTAINS ! ####################################################################################### - SUBROUTINE LIMA_RAIN_FREEZING (LDCOMPUTE, & - PRHODREF, PT, PLVFACT, PLSFACT, & - PRRT, PCRT, PRIT, PCIT, PLBDR, & - P_TH_CFRZ, P_RR_CFRZ, P_CR_CFRZ, P_RI_CFRZ, P_CI_CFRZ ) + SUBROUTINE LIMA_RAIN_FREEZING (LDCOMPUTE, & + PRHODREF, PT, PLVFACT, PLSFACT, & + PRRT, PCRT, PRIT, PCIT, PLBDR, & + P_TH_CFRZ, P_RR_CFRZ, P_CR_CFRZ, P_RI_CFRZ, P_CI_CFRZ ) ! ####################################################################################### ! !! PURPOSE @@ -133,3 +103,4 @@ END WHERE !------------------------------------------------------------------------------- ! END SUBROUTINE LIMA_RAIN_FREEZING +END MODULE MODE_LIMA_RAIN_FREEZING diff --git a/src/common/micro/lima_raindrop_shattering_freezing.F90 b/src/common/micro/mode_lima_raindrop_shattering_freezing.F90 similarity index 74% rename from src/common/micro/lima_raindrop_shattering_freezing.F90 rename to src/common/micro/mode_lima_raindrop_shattering_freezing.F90 index dc7c14066214dfb589ad8428291dbc1c9262706d..43f20e08f1825fe23736064c7fb91e1c1694c8ad 100644 --- a/src/common/micro/lima_raindrop_shattering_freezing.F90 +++ b/src/common/micro/mode_lima_raindrop_shattering_freezing.F90 @@ -3,41 +3,15 @@ !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_RAINDROP_SHATTERING_FREEZING -! ############################################# -! -INTERFACE - SUBROUTINE LIMA_RAINDROP_SHATTERING_FREEZING (LDCOMPUTE, & - PRHODREF, & - PRRT, PCRT, PRIT, PCIT, PRGT, & - PLBDR, & - P_RI_RDSF, P_CI_RDSF ) -! -LOGICAL, DIMENSION(:),INTENT(IN) :: LDCOMPUTE -! -REAL, DIMENSION(:), INTENT(IN) :: PRHODREF -! -REAL, DIMENSION(:), INTENT(IN) :: PRRT -REAL, DIMENSION(:), INTENT(IN) :: PCRT -REAL, DIMENSION(:), INTENT(IN) :: PRIT -REAL, DIMENSION(:), INTENT(IN) :: PCIT -REAL, DIMENSION(:), INTENT(IN) :: PRGT -REAL, DIMENSION(:), INTENT(IN) :: PLBDR -! -REAL, DIMENSION(:), INTENT(OUT) :: P_RI_RDSF -REAL, DIMENSION(:), INTENT(OUT) :: P_CI_RDSF -! -END SUBROUTINE LIMA_RAINDROP_SHATTERING_FREEZING -END INTERFACE -END MODULE MODI_LIMA_RAINDROP_SHATTERING_FREEZING -! +MODULE MODE_LIMA_RAINDROP_SHATTERING_FREEZING + IMPLICIT NONE +CONTAINS ! ####################################################################### - SUBROUTINE LIMA_RAINDROP_SHATTERING_FREEZING (LDCOMPUTE, & - PRHODREF, & - PRRT, PCRT, PRIT, PCIT, PRGT, & - PLBDR, & - P_RI_RDSF, P_CI_RDSF ) + SUBROUTINE LIMA_RAINDROP_SHATTERING_FREEZING (LDCOMPUTE, & + PRHODREF, & + PRRT, PCRT, PRIT, PCIT, PRGT, & + PLBDR, & + P_RI_RDSF, P_CI_RDSF ) ! ####################################################################### ! !! PURPOSE @@ -157,3 +131,4 @@ ENDIF !------------------------------------------------------------------------------- ! END SUBROUTINE LIMA_RAINDROP_SHATTERING_FREEZING +END MODULE MODE_LIMA_RAINDROP_SHATTERING_FREEZING diff --git a/src/common/micro/lima_read_xker_gweth.F90 b/src/common/micro/mode_lima_read_xker_gweth.F90 similarity index 97% rename from src/common/micro/lima_read_xker_gweth.F90 rename to src/common/micro/mode_lima_read_xker_gweth.F90 index 25a567ec83399fb73d1774df9bacf5d879b67240..b0a514a0ba2fce4e6724da3ed87984e1d1496e74 100644 --- a/src/common/micro/lima_read_xker_gweth.F90 +++ b/src/common/micro/mode_lima_read_xker_gweth.F90 @@ -3,49 +3,14 @@ !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$ $Revision$ -! MASDEV4_7 microph 2006/05/18 13:07:25 -!----------------------------------------------------------------- -! ########################### - MODULE MODI_LIMA_READ_XKER_GWETH -! ########################### -! -INTERFACE - SUBROUTINE LIMA_READ_XKER_GWETH (KWETLBDAH,KWETLBDAG,KND, & - PALPHAH,PNUH,PALPHAG,PNUG,PEHG,PBG,PCH,PDH,PCG,PDG, & - PWETLBDAH_MAX,PWETLBDAG_MAX,PWETLBDAH_MIN,PWETLBDAG_MIN, & - PFDINFTY,PKER_GWETH ) -! -INTEGER, INTENT(OUT) :: KND,KWETLBDAH,KWETLBDAG -REAL, INTENT(OUT) :: PALPHAH -REAL, INTENT(OUT) :: PNUH -REAL, INTENT(OUT) :: PALPHAG -REAL, INTENT(OUT) :: PNUG -REAL, INTENT(OUT) :: PEHG -REAL, INTENT(OUT) :: PBG -REAL, INTENT(OUT) :: PCH -REAL, INTENT(OUT) :: PDH -REAL, INTENT(OUT) :: PCG -REAL, INTENT(OUT) :: PDG -REAL, INTENT(OUT) :: PWETLBDAH_MAX -REAL, INTENT(OUT) :: PWETLBDAG_MAX -REAL, INTENT(OUT) :: PWETLBDAH_MIN -REAL, INTENT(OUT) :: PWETLBDAG_MIN -REAL, INTENT(OUT) :: PFDINFTY -REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PKER_GWETH -! -END SUBROUTINE LIMA_READ_XKER_GWETH -! -END INTERFACE -! -END MODULE MODI_LIMA_READ_XKER_GWETH +MODULE MODE_LIMA_READ_XKER_GWETH + IMPLICIT NONE +CONTAINS ! ######################################################################## - SUBROUTINE LIMA_READ_XKER_GWETH (KWETLBDAH,KWETLBDAG,KND, & - PALPHAH,PNUH,PALPHAG,PNUG,PEHG,PBG,PCH,PDH,PCG,PDG, & - PWETLBDAH_MAX,PWETLBDAG_MAX,PWETLBDAH_MIN,PWETLBDAG_MIN, & - PFDINFTY,PKER_GWETH ) + SUBROUTINE LIMA_READ_XKER_GWETH (KWETLBDAH,KWETLBDAG,KND, & + PALPHAH,PNUH,PALPHAG,PNUG,PEHG,PBG,PCH,PDH,PCG,PDG, & + PWETLBDAH_MAX,PWETLBDAG_MAX,PWETLBDAH_MIN,PWETLBDAG_MIN, & + PFDINFTY,PKER_GWETH ) ! ######################################################################## ! !!**** * * - initialize the kernels for the graupel-hail wet growth process @@ -1735,3 +1700,4 @@ PKER_GWETH( 40, 40) = 0.197923E-01 END IF ! END SUBROUTINE LIMA_READ_XKER_GWETH +END MODULE MODE_LIMA_READ_XKER_GWETH diff --git a/src/common/micro/lima_read_xker_raccs.F90 b/src/common/micro/mode_lima_read_xker_raccs.F90 similarity index 98% rename from src/common/micro/lima_read_xker_raccs.F90 rename to src/common/micro/mode_lima_read_xker_raccs.F90 index 5a75adf255339c49ec3c786f1d70c08083274e16..55afa459085921cb76b02b6471ce22c7da2a5612 100644 --- a/src/common/micro/lima_read_xker_raccs.F90 +++ b/src/common/micro/mode_lima_read_xker_raccs.F90 @@ -3,53 +3,14 @@ !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$ $Revision$ -! MASDEV4_7 init 2006/05/18 13:07:25 -!----------------------------------------------------------------- -! ########################### - MODULE MODI_LIMA_READ_XKER_RACCS -! ########################### -! -INTERFACE - SUBROUTINE LIMA_READ_XKER_RACCS (KACCLBDAS,KACCLBDAR,KND, & - PALPHAS,PNUS,PALPHAR,PNUR,PESR,PBS,PBR,PCS,PDS,PFVELOS,PCR,PDR, & - PACCLBDAS_MAX,PACCLBDAR_MAX,PACCLBDAS_MIN,PACCLBDAR_MIN, & - PFDINFTY,PKER_RACCSS,PKER_RACCS,PKER_SACCRG ) -! -INTEGER, INTENT(OUT) :: KND,KACCLBDAS,KACCLBDAR -REAL, INTENT(OUT) :: PALPHAS -REAL, INTENT(OUT) :: PNUS -REAL, INTENT(OUT) :: PALPHAR -REAL, INTENT(OUT) :: PNUR -REAL, INTENT(OUT) :: PESR -REAL, INTENT(OUT) :: PBS -REAL, INTENT(OUT) :: PBR -REAL, INTENT(OUT) :: PCS -REAL, INTENT(OUT) :: PDS -REAL, INTENT(OUT) :: PFVELOS -REAL, INTENT(OUT) :: PCR -REAL, INTENT(OUT) :: PDR -REAL, INTENT(OUT) :: PACCLBDAS_MAX -REAL, INTENT(OUT) :: PACCLBDAR_MAX -REAL, INTENT(OUT) :: PACCLBDAS_MIN -REAL, INTENT(OUT) :: PACCLBDAR_MIN -REAL, INTENT(OUT) :: PFDINFTY -REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PKER_RACCSS -REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PKER_RACCS -REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PKER_SACCRG -! -END SUBROUTINE LIMA_READ_XKER_RACCS -! -END INTERFACE -! -END MODULE MODI_LIMA_READ_XKER_RACCS +MODULE MODE_LIMA_READ_XKER_RACCS + IMPLICIT NONE +CONTAINS ! ########################################################################## - SUBROUTINE LIMA_READ_XKER_RACCS (KACCLBDAS,KACCLBDAR,KND, & - PALPHAS,PNUS,PALPHAR,PNUR,PESR,PBS,PBR,PCS,PDS,PFVELOS,PCR,PDR, & - PACCLBDAS_MAX,PACCLBDAR_MAX,PACCLBDAS_MIN,PACCLBDAR_MIN, & - PFDINFTY,PKER_RACCSS,PKER_RACCS,PKER_SACCRG ) + SUBROUTINE LIMA_READ_XKER_RACCS (KACCLBDAS,KACCLBDAR,KND, & + PALPHAS,PNUS,PALPHAR,PNUR,PESR,PBS,PBR,PCS,PDS,PFVELOS,PCR,PDR, & + PACCLBDAS_MAX,PACCLBDAR_MAX,PACCLBDAS_MIN,PACCLBDAR_MIN, & + PFDINFTY,PKER_RACCSS,PKER_RACCS,PKER_SACCRG ) ! ########################################################################## ! !!**** * * - initialize the kernels for the rain-snow accretion process @@ -4951,3 +4912,4 @@ IF( PRESENT(PKER_SACCRG) ) THEN END IF ! END SUBROUTINE LIMA_READ_XKER_RACCS +END MODULE MODE_LIMA_READ_XKER_RACCS diff --git a/src/common/micro/lima_read_xker_rdryg.F90 b/src/common/micro/mode_lima_read_xker_rdryg.F90 similarity index 97% rename from src/common/micro/lima_read_xker_rdryg.F90 rename to src/common/micro/mode_lima_read_xker_rdryg.F90 index de1a4287401dc151fb785ab4e23b24010b8988e0..160392c58731e22c56e5fb8a5b96b161d6bcccde 100644 --- a/src/common/micro/lima_read_xker_rdryg.F90 +++ b/src/common/micro/mode_lima_read_xker_rdryg.F90 @@ -3,49 +3,14 @@ !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$ $Revision$ -! MASDEV4_7 init 2006/05/18 13:07:25 -!----------------------------------------------------------------- -! ########################### - MODULE MODI_LIMA_READ_XKER_RDRYG -! ########################### -! -INTERFACE - SUBROUTINE LIMA_READ_XKER_RDRYG (KDRYLBDAG,KDRYLBDAR,KND, & - PALPHAG,PNUG,PALPHAR,PNUR,PEGR,PBR,PCG,PDG,PCR,PDR, & - PDRYLBDAG_MAX,PDRYLBDAR_MAX,PDRYLBDAG_MIN,PDRYLBDAR_MIN, & - PFDINFTY,PKER_RDRYG ) -! -INTEGER, INTENT(OUT) :: KND,KDRYLBDAG,KDRYLBDAR -REAL, INTENT(OUT) :: PALPHAG -REAL, INTENT(OUT) :: PNUG -REAL, INTENT(OUT) :: PALPHAR -REAL, INTENT(OUT) :: PNUR -REAL, INTENT(OUT) :: PEGR -REAL, INTENT(OUT) :: PBR -REAL, INTENT(OUT) :: PCG -REAL, INTENT(OUT) :: PDG -REAL, INTENT(OUT) :: PCR -REAL, INTENT(OUT) :: PDR -REAL, INTENT(OUT) :: PDRYLBDAG_MAX -REAL, INTENT(OUT) :: PDRYLBDAR_MAX -REAL, INTENT(OUT) :: PDRYLBDAG_MIN -REAL, INTENT(OUT) :: PDRYLBDAR_MIN -REAL, INTENT(OUT) :: PFDINFTY -REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PKER_RDRYG -! -END SUBROUTINE LIMA_READ_XKER_RDRYG -! -END INTERFACE -! -END MODULE MODI_LIMA_READ_XKER_RDRYG +MODULE MODE_LIMA_READ_XKER_RDRYG + IMPLICIT NONE +CONTAINS ! ######################################################################## - SUBROUTINE LIMA_READ_XKER_RDRYG (KDRYLBDAG,KDRYLBDAR,KND, & - PALPHAG,PNUG,PALPHAR,PNUR,PEGR,PBR,PCG,PDG,PCR,PDR, & - PDRYLBDAG_MAX,PDRYLBDAR_MAX,PDRYLBDAG_MIN,PDRYLBDAR_MIN, & - PFDINFTY,PKER_RDRYG ) + SUBROUTINE LIMA_READ_XKER_RDRYG (KDRYLBDAG,KDRYLBDAR,KND, & + PALPHAG,PNUG,PALPHAR,PNUR,PEGR,PBR,PCG,PDG,PCR,PDR, & + PDRYLBDAG_MAX,PDRYLBDAR_MAX,PDRYLBDAG_MIN,PDRYLBDAR_MIN, & + PFDINFTY,PKER_RDRYG ) ! ######################################################################## ! !!**** * * - initialize the kernels for the snow-graupel dry growth process @@ -1734,3 +1699,4 @@ PKER_RDRYG( 40, 40) = 0.603544E-02 END IF ! END SUBROUTINE LIMA_READ_XKER_RDRYG +END MODULE MODE_LIMA_READ_XKER_RDRYG diff --git a/src/common/micro/lima_read_xker_sdryg.F90 b/src/common/micro/mode_lima_read_xker_sdryg.F90 similarity index 98% rename from src/common/micro/lima_read_xker_sdryg.F90 rename to src/common/micro/mode_lima_read_xker_sdryg.F90 index f3c2377e598d75bfa99128901bc11047e768d4ee..d12ca6142379d89ae956366a15b105784e13f08c 100644 --- a/src/common/micro/lima_read_xker_sdryg.F90 +++ b/src/common/micro/mode_lima_read_xker_sdryg.F90 @@ -3,50 +3,14 @@ !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$ $Revision$ -! MASDEV4_7 init 2006/05/18 13:07:25 -!----------------------------------------------------------------- -! ########################### - MODULE MODI_LIMA_READ_XKER_SDRYG -! ########################### -! -INTERFACE - SUBROUTINE LIMA_READ_XKER_SDRYG (KDRYLBDAG,KDRYLBDAS,KND, & - PALPHAG,PNUG,PALPHAS,PNUS,PEGS,PBS,PCG,PDG,PCS,PDS,PFVELOS, & - PDRYLBDAG_MAX,PDRYLBDAS_MAX,PDRYLBDAG_MIN,PDRYLBDAS_MIN, & - PFDINFTY,PKER_SDRYG ) -! -INTEGER, INTENT(OUT) :: KND,KDRYLBDAG,KDRYLBDAS -REAL, INTENT(OUT) :: PALPHAG -REAL, INTENT(OUT) :: PNUG -REAL, INTENT(OUT) :: PALPHAS -REAL, INTENT(OUT) :: PNUS -REAL, INTENT(OUT) :: PEGS -REAL, INTENT(OUT) :: PBS -REAL, INTENT(OUT) :: PCG -REAL, INTENT(OUT) :: PDG -REAL, INTENT(OUT) :: PCS -REAL, INTENT(OUT) :: PDS -REAL, INTENT(OUT) :: PFVELOS -REAL, INTENT(OUT) :: PDRYLBDAG_MAX -REAL, INTENT(OUT) :: PDRYLBDAS_MAX -REAL, INTENT(OUT) :: PDRYLBDAG_MIN -REAL, INTENT(OUT) :: PDRYLBDAS_MIN -REAL, INTENT(OUT) :: PFDINFTY -REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PKER_SDRYG -! -END SUBROUTINE LIMA_READ_XKER_SDRYG -! -END INTERFACE -! -END MODULE MODI_LIMA_READ_XKER_SDRYG +MODULE MODE_LIMA_READ_XKER_SDRYG + IMPLICIT NONE +CONTAINS ! ######################################################################## - SUBROUTINE LIMA_READ_XKER_SDRYG (KDRYLBDAG,KDRYLBDAS,KND, & - PALPHAG,PNUG,PALPHAS,PNUS,PEGS,PBS,PCG,PDG,PCS,PDS,PFVELOS, & - PDRYLBDAG_MAX,PDRYLBDAS_MAX,PDRYLBDAG_MIN,PDRYLBDAS_MIN, & - PFDINFTY,PKER_SDRYG ) + SUBROUTINE LIMA_READ_XKER_SDRYG (KDRYLBDAG,KDRYLBDAS,KND, & + PALPHAG,PNUG,PALPHAS,PNUS,PEGS,PBS,PCG,PDG,PCS,PDS,PFVELOS, & + PDRYLBDAG_MAX,PDRYLBDAS_MAX,PDRYLBDAG_MIN,PDRYLBDAS_MIN, & + PFDINFTY,PKER_SDRYG ) ! ######################################################################## ! !!**** * * - initialize the kernels for the snow-graupel dry growth process @@ -3338,3 +3302,4 @@ PKER_SDRYG( 40, 80) = 0.332823E+00 END IF ! END SUBROUTINE LIMA_READ_XKER_SDRYG +END MODULE MODE_LIMA_READ_XKER_SDRYG diff --git a/src/common/micro/lima_read_xker_sweth.F90 b/src/common/micro/mode_lima_read_xker_sweth.F90 similarity index 98% rename from src/common/micro/lima_read_xker_sweth.F90 rename to src/common/micro/mode_lima_read_xker_sweth.F90 index a034ec708a09071c4185be149cc4ef3c89d294fa..fe423f89a53fda3abfc716d9fdc36d6d52f0ef64 100644 --- a/src/common/micro/lima_read_xker_sweth.F90 +++ b/src/common/micro/mode_lima_read_xker_sweth.F90 @@ -3,50 +3,14 @@ !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$ $Revision$ -! MASDEV4_7 microph 2006/05/18 13:07:25 -!----------------------------------------------------------------- -! ########################### - MODULE MODI_LIMA_READ_XKER_SWETH -! ########################### -! -INTERFACE - SUBROUTINE LIMA_READ_XKER_SWETH (KWETLBDAH,KWETLBDAS,KND, & - PALPHAH,PNUH,PALPHAS,PNUS,PEHS,PBS,PCH,PDH,PCS,PDS,PFVELOS, & - PWETLBDAH_MAX,PWETLBDAS_MAX,PWETLBDAH_MIN,PWETLBDAS_MIN, & - PFDINFTY,PKER_SWETH ) -! -INTEGER, INTENT(OUT) :: KND,KWETLBDAH,KWETLBDAS -REAL, INTENT(OUT) :: PALPHAH -REAL, INTENT(OUT) :: PNUH -REAL, INTENT(OUT) :: PALPHAS -REAL, INTENT(OUT) :: PNUS -REAL, INTENT(OUT) :: PEHS -REAL, INTENT(OUT) :: PBS -REAL, INTENT(OUT) :: PCH -REAL, INTENT(OUT) :: PDH -REAL, INTENT(OUT) :: PCS -REAL, INTENT(OUT) :: PDS -REAL, INTENT(OUT) :: PFVELOS -REAL, INTENT(OUT) :: PWETLBDAH_MAX -REAL, INTENT(OUT) :: PWETLBDAS_MAX -REAL, INTENT(OUT) :: PWETLBDAH_MIN -REAL, INTENT(OUT) :: PWETLBDAS_MIN -REAL, INTENT(OUT) :: PFDINFTY -REAL, DIMENSION(:,:), INTENT(OUT), OPTIONAL :: PKER_SWETH -! -END SUBROUTINE LIMA_READ_XKER_SWETH -! -END INTERFACE -! -END MODULE MODI_LIMA_READ_XKER_SWETH +MODULE MODE_LIMA_READ_XKER_SWETH + IMPLICIT NONE +CONTAINS ! ######################################################################## - SUBROUTINE LIMA_READ_XKER_SWETH (KWETLBDAH,KWETLBDAS,KND, & - PALPHAH,PNUH,PALPHAS,PNUS,PEHS,PBS,PCH,PDH,PCS,PDS,PFVELOS, & - PWETLBDAH_MAX,PWETLBDAS_MAX,PWETLBDAH_MIN,PWETLBDAS_MIN, & - PFDINFTY,PKER_SWETH ) + SUBROUTINE LIMA_READ_XKER_SWETH (KWETLBDAH,KWETLBDAS,KND, & + PALPHAH,PNUH,PALPHAS,PNUS,PEHS,PBS,PCH,PDH,PCS,PDS,PFVELOS, & + PWETLBDAH_MAX,PWETLBDAS_MAX,PWETLBDAH_MIN,PWETLBDAS_MIN, & + PFDINFTY,PKER_SWETH ) ! ######################################################################## ! !!**** * * - initialize the kernels for the snow-hail wet growth process @@ -3338,3 +3302,4 @@ PKER_SWETH( 40, 80) = 0.310319E+00 END IF ! END SUBROUTINE LIMA_READ_XKER_SWETH +END MODULE MODE_LIMA_READ_XKER_SWETH diff --git a/src/common/micro/lima_sedimentation.F90 b/src/common/micro/mode_lima_sedimentation.F90 similarity index 83% rename from src/common/micro/lima_sedimentation.F90 rename to src/common/micro/mode_lima_sedimentation.F90 index bbf6b492af02ad6d77ec4786ec1a62320080cc22..dc6164d492aedbacd1aa7819285d9289d210e909 100644 --- a/src/common/micro/lima_sedimentation.F90 +++ b/src/common/micro/mode_lima_sedimentation.F90 @@ -3,45 +3,13 @@ !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_SEDIMENTATION -! ################################### -! -INTERFACE - SUBROUTINE LIMA_SEDIMENTATION (D, CST, & - HPHASE, KMOMENTS, KID, KSPLITG, PTSTEP, PDZZ, PRHODREF, & - PPABST, PT, PRT_SUM, PCPT, PRS, PCS, PINPR, PFPR ) -! -USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t -USE MODD_CST, ONLY: CST_t -! -TYPE(DIMPHYEX_t), INTENT(IN) :: D -TYPE(CST_t), INTENT(IN) :: CST -CHARACTER(1), INTENT(IN) :: HPHASE ! Liquid or solid hydrometeors -INTEGER, INTENT(IN) :: KMOMENTS ! Number of moments -INTEGER, INTENT(IN) :: KID ! Hydrometeor ID -INTEGER, INTENT(IN) :: KSPLITG ! -REAL, INTENT(IN) :: PTSTEP ! Time step -REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! Height (z) -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF ! Reference density -REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABST ! abs. pressure at time t -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PT ! Temperature -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRT_SUM ! total water mixing ratio -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCPT ! Cp -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRS ! m.r. source -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCS ! C. source -REAL, DIMENSION(:,:), INTENT(INOUT) :: PINPR ! Instant precip rate -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFPR ! Precip. fluxes in altitude -! -END SUBROUTINE LIMA_SEDIMENTATION -END INTERFACE -END MODULE MODI_LIMA_SEDIMENTATION -! -! +MODULE MODE_LIMA_SEDIMENTATION + IMPLICIT NONE +CONTAINS ! ###################################################################### - SUBROUTINE LIMA_SEDIMENTATION (D, CST, & - HPHASE, KMOMENTS, KID, KSPLITG, PTSTEP, PDZZ, PRHODREF, & - PPABST, PT, PRT_SUM, PCPT, PRS, PCS, PINPR, PFPR ) + SUBROUTINE LIMA_SEDIMENTATION (D, CST, & + HPHASE, KMOMENTS, KID, KSPLITG, PTSTEP, PDZZ, PRHODREF, & + PPABST, PT, PRT_SUM, PCPT, PRS, PCS, PINPR, PFPR ) ! ###################################################################### ! !! PURPOSE @@ -281,5 +249,4 @@ PRS(:,:,:) = PRS(:,:,:) / PTSTEP IF (KMOMENTS==2) PCS(:,:,:) = PCS(:,:,:) / PTSTEP ! END SUBROUTINE LIMA_SEDIMENTATION -! -!------------------------------------------------------------------------------- +END MODULE MODE_LIMA_SEDIMENTATION diff --git a/src/common/micro/lima_snow_deposition.F90 b/src/common/micro/mode_lima_snow_deposition.F90 similarity index 74% rename from src/common/micro/lima_snow_deposition.F90 rename to src/common/micro/mode_lima_snow_deposition.F90 index 3bd8d0141f23ef6c013ba7738e1da65518be4811..0a520c063aa1e96b4c6631a836ab3c4470b62023 100644 --- a/src/common/micro/lima_snow_deposition.F90 +++ b/src/common/micro/mode_lima_snow_deposition.F90 @@ -3,45 +3,15 @@ !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_SNOW_DEPOSITION -! ##################### -! -INTERFACE - SUBROUTINE LIMA_SNOW_DEPOSITION (LDCOMPUTE, & - PRHODREF, PSSI, PAI, PCJ, PLSFACT, & - PRST, PCST, PLBDS, & - P_RI_CNVI, P_CI_CNVI, & - P_TH_DEPS, P_RS_DEPS ) -! -LOGICAL, DIMENSION(:),INTENT(IN) :: LDCOMPUTE -! -REAL, DIMENSION(:), INTENT(IN) :: PRHODREF! Reference density -REAL, DIMENSION(:), INTENT(IN) :: PSSI ! abs. pressure at time t -REAL, DIMENSION(:), INTENT(IN) :: PAI ! abs. pressure at time t -REAL, DIMENSION(:), INTENT(IN) :: PCJ ! abs. pressure at time t -REAL, DIMENSION(:), INTENT(IN) :: PLSFACT ! abs. pressure at time t -! -REAL, DIMENSION(:), INTENT(IN) :: PRST ! Snow/aggregate m.r. at t -REAL, DIMENSION(:), INTENT(IN) :: PCST ! Snow/aggregate concentration -! -REAL, DIMENSION(:), INTENT(IN) :: PLBDS ! Graupel m.r. at t -! -REAL, DIMENSION(:), INTENT(OUT) :: P_RI_CNVI -REAL, DIMENSION(:), INTENT(OUT) :: P_CI_CNVI -REAL, DIMENSION(:), INTENT(OUT) :: P_TH_DEPS -REAL, DIMENSION(:), INTENT(OUT) :: P_RS_DEPS -! -END SUBROUTINE LIMA_SNOW_DEPOSITION -END INTERFACE -END MODULE MODI_LIMA_SNOW_DEPOSITION -! +MODULE MODE_LIMA_SNOW_DEPOSITION + IMPLICIT NONE +CONTAINS ! ########################################################################## -SUBROUTINE LIMA_SNOW_DEPOSITION (LDCOMPUTE, & - PRHODREF, PSSI, PAI, PCJ, PLSFACT, & - PRST, PCST, PLBDS, & - P_RI_CNVI, P_CI_CNVI, & - P_TH_DEPS, P_RS_DEPS ) + SUBROUTINE LIMA_SNOW_DEPOSITION (LDCOMPUTE, & + PRHODREF, PSSI, PAI, PCJ, PLSFACT, & + PRST, PCST, PLBDS, & + P_RI_CNVI, P_CI_CNVI, & + P_TH_DEPS, P_RS_DEPS ) ! ########################################################################## ! !! PURPOSE @@ -177,3 +147,4 @@ ELSE END IF ! END SUBROUTINE LIMA_SNOW_DEPOSITION +END MODULE MODE_LIMA_SNOW_DEPOSITION diff --git a/src/common/micro/lima_snow_self_collection.F90 b/src/common/micro/mode_lima_snow_self_collection.F90 similarity index 78% rename from src/common/micro/lima_snow_self_collection.F90 rename to src/common/micro/mode_lima_snow_self_collection.F90 index ea38870b87d715c9d5d556b1ea1d9353c44bf41e..50339a87f9cfab882ee4e4ea81fea509d1aebfd2 100644 --- a/src/common/micro/lima_snow_self_collection.F90 +++ b/src/common/micro/mode_lima_snow_self_collection.F90 @@ -3,36 +3,14 @@ !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_SNOW_SELF_COLLECTION -! ################################# -! -INTERFACE - SUBROUTINE LIMA_SNOW_SELF_COLLECTION (LDCOMPUTE, & - PRHODREF, PT, & - PRST, PCST, PLBDS, & - P_CS_SSC ) -! -LOGICAL, DIMENSION(:),INTENT(IN) :: LDCOMPUTE -! -REAL, DIMENSION(:), INTENT(IN) :: PRHODREF ! Reference Exner function -REAL, DIMENSION(:), INTENT(IN) :: PT ! Temperature -! -REAL, DIMENSION(:), INTENT(IN) :: PRST ! Snow mr at t -REAL, DIMENSION(:), INTENT(IN) :: PCST ! Snow C. at t -REAL, DIMENSION(:), INTENT(IN) :: PLBDS ! -! -REAL, DIMENSION(:), INTENT(OUT) :: P_CS_SSC -! -END SUBROUTINE LIMA_SNOW_SELF_COLLECTION -END INTERFACE -END MODULE MODI_LIMA_SNOW_SELF_COLLECTION -! +MODULE MODE_LIMA_SNOW_SELF_COLLECTION + IMPLICIT NONE +CONTAINS ! ############################################################# - SUBROUTINE LIMA_SNOW_SELF_COLLECTION (LDCOMPUTE, & - PRHODREF, PT, & - PRST, PCST, PLBDS, & - P_CS_SSC ) + SUBROUTINE LIMA_SNOW_SELF_COLLECTION (LDCOMPUTE, & + PRHODREF, PT, & + PRST, PCST, PLBDS, & + P_CS_SSC ) ! ############################################################# ! !! PURPOSE @@ -147,3 +125,4 @@ END IF !------------------------------------------------------------------------------- ! END SUBROUTINE LIMA_SNOW_SELF_COLLECTION +END MODULE MODE_LIMA_SNOW_SELF_COLLECTION diff --git a/src/common/micro/lima_tendencies.F90 b/src/common/micro/mode_lima_tendencies.F90 similarity index 66% rename from src/common/micro/lima_tendencies.F90 rename to src/common/micro/mode_lima_tendencies.F90 index 6ee01ff6f07750ec44c2d1c86852f0006facecf4..d25250bcc03b6020789d727a7b4d915fce8ef20c 100644 --- a/src/common/micro/lima_tendencies.F90 +++ b/src/common/micro/mode_lima_tendencies.F90 @@ -3,273 +3,50 @@ !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_TENDENCIES -!############################### - INTERFACE - SUBROUTINE LIMA_TENDENCIES (PTSTEP, LDCOMPUTE, & - PEXNREF, PRHODREF, PPABST, PTHT, & - PRVT, PRCT, PRRT, PRIT, PRST, PRGT, PRHT, & - PCCT, PCRT, PCIT, PCST, PCGT, PCHT, & - P_TH_HONC, P_RC_HONC, P_CC_HONC, & - P_CC_SELF, & - P_RC_AUTO, P_CC_AUTO, P_CR_AUTO, & - P_RC_ACCR, P_CC_ACCR, & - P_CR_SCBU, & - P_TH_EVAP, P_RR_EVAP, P_CR_EVAP, & - P_RI_CNVI, P_CI_CNVI, & - P_TH_DEPS, P_RS_DEPS, & - P_TH_DEPI, P_RI_DEPI, & - P_RI_CNVS, P_CI_CNVS, & - P_CS_SSC, & - P_RI_AGGS, P_CI_AGGS, & - P_TH_DEPG, P_RG_DEPG, & - P_TH_BERFI, P_RC_BERFI, & - P_TH_RIM, P_RC_RIM, P_CC_RIM, P_RS_RIM, P_CS_RIM, P_RG_RIM, & - P_RI_HMS, P_CI_HMS, P_RS_HMS, & - P_TH_ACC, P_RR_ACC, P_CR_ACC, P_RS_ACC, P_CS_ACC, P_RG_ACC, & - P_RS_CMEL, P_CS_CMEL, & - P_TH_CFRZ, P_RR_CFRZ, P_CR_CFRZ, P_RI_CFRZ, P_CI_CFRZ, & - P_RI_CIBU, P_CI_CIBU, & - P_RI_RDSF, P_CI_RDSF, & - P_TH_WETG, P_RC_WETG, P_CC_WETG, P_RR_WETG, P_CR_WETG, & - P_RI_WETG, P_CI_WETG, P_RS_WETG, P_CS_WETG, P_RG_WETG, P_CG_WETG, P_RH_WETG, & - P_TH_DRYG, P_RC_DRYG, P_CC_DRYG, P_RR_DRYG, P_CR_DRYG, & - P_RI_DRYG, P_CI_DRYG, P_RS_DRYG, P_CS_DRYG, P_RG_DRYG, & - P_RI_HMG, P_CI_HMG, P_RG_HMG, & - P_TH_GMLT, P_RR_GMLT, P_CR_GMLT, P_CG_GMLT, & - P_TH_DEPH, P_RH_DEPH, & - P_TH_WETH, P_RC_WETH, P_CC_WETH, P_RR_WETH, P_CR_WETH, & - P_RI_WETH, P_CI_WETH, P_RS_WETH, P_CS_WETH, P_RG_WETH, P_CG_WETH, P_RH_WETH, & - P_RG_COHG, P_CG_COHG, & - P_TH_HMLT, P_RR_HMLT, P_CR_HMLT, P_CH_HMLT, & - PA_TH, PA_RV, PA_RC, PA_CC, PA_RR, PA_CR, & - PA_RI, PA_CI, PA_RS, PA_CS, PA_RG, PA_CG, PA_RH, PA_CH, & - PEVAP3D, & - PCF1D, PIF1D, PPF1D ) -! -REAL, INTENT(IN) :: PTSTEP -LOGICAL, DIMENSION(:),INTENT(IN) :: LDCOMPUTE -! -REAL, DIMENSION(:), INTENT(IN) :: PEXNREF ! -REAL, DIMENSION(:), INTENT(IN) :: PRHODREF ! -REAL, DIMENSION(:), INTENT(IN) :: PPABST ! Pressure -REAL, DIMENSION(:), INTENT(IN) :: PTHT ! Potential temperature -! -REAL, DIMENSION(:), INTENT(IN) :: PRVT ! -REAL, DIMENSION(:), INTENT(IN) :: PRCT ! -REAL, DIMENSION(:), INTENT(IN) :: PRRT ! -REAL, DIMENSION(:), INTENT(IN) :: PRIT ! -REAL, DIMENSION(:), INTENT(IN) :: PRST ! -REAL, DIMENSION(:), INTENT(IN) :: PRGT ! -REAL, DIMENSION(:), INTENT(IN) :: PRHT ! Mixing ratios (kg/kg) -! -REAL, DIMENSION(:), INTENT(IN) :: PCCT ! -REAL, DIMENSION(:), INTENT(IN) :: PCRT ! -REAL, DIMENSION(:), INTENT(IN) :: PCIT ! -REAL, DIMENSION(:), INTENT(IN) :: PCST ! -REAL, DIMENSION(:), INTENT(IN) :: PCGT ! -REAL, DIMENSION(:), INTENT(IN) :: PCHT ! Number concentrations (/kg) -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_TH_HONC -REAL, DIMENSION(:), INTENT(INOUT) :: P_RC_HONC -REAL, DIMENSION(:), INTENT(INOUT) :: P_CC_HONC ! droplets homogeneous freezing (HONC) : rc, Nc, ri=-rc, Ni=-Nc, th -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_CC_SELF ! self collection of droplets (SELF) : Nc -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_RC_AUTO -REAL, DIMENSION(:), INTENT(INOUT) :: P_CC_AUTO -REAL, DIMENSION(:), INTENT(INOUT) :: P_CR_AUTO ! autoconversion of cloud droplets (AUTO) : rc, Nc, rr=-rc, Nr -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_RC_ACCR -REAL, DIMENSION(:), INTENT(INOUT) :: P_CC_ACCR ! accretion of droplets by rain drops (ACCR) : rc, Nc, rr=-rr -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_CR_SCBU ! self collectio break up of drops (SCBU) : Nr -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_TH_EVAP -REAL, DIMENSION(:), INTENT(INOUT) :: P_RR_EVAP -REAL, DIMENSION(:), INTENT(INOUT) :: P_CR_EVAP ! evaporation of rain drops (EVAP) : rr, Nr, rv=-rr -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_RI_CNVI -REAL, DIMENSION(:), INTENT(INOUT) :: P_CI_CNVI ! conversion snow -> ice (CNVI) : ri, Ni, rs=-ri -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_TH_DEPS -REAL, DIMENSION(:), INTENT(INOUT) :: P_RS_DEPS ! deposition of vapor on snow (DEPS) : rv=-rs, rs, th -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_TH_DEPI -REAL, DIMENSION(:), INTENT(INOUT) :: P_RI_DEPI ! deposition of vapor on ice (DEPI) : rv=-ri, ri, th -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_RI_CNVS -REAL, DIMENSION(:), INTENT(INOUT) :: P_CI_CNVS ! conversion ice -> snow (CNVS) : ri, Ni, rs=-ri -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_CS_SSC ! self collection of snow (SSC) : Ns -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_RI_AGGS -REAL, DIMENSION(:), INTENT(INOUT) :: P_CI_AGGS ! aggregation of ice on snow (AGGS) : ri, Ni, rs=-ri -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_TH_DEPG -REAL, DIMENSION(:), INTENT(INOUT) :: P_RG_DEPG ! deposition of vapor on graupel (DEPG) : rv=-rg, rg, th -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_TH_BERFI -REAL, DIMENSION(:), INTENT(INOUT) :: P_RC_BERFI ! Bergeron (BERFI) : rc, ri=-rc, th -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_TH_RIM -REAL, DIMENSION(:), INTENT(INOUT) :: P_RC_RIM -REAL, DIMENSION(:), INTENT(INOUT) :: P_CC_RIM -REAL, DIMENSION(:), INTENT(INOUT) :: P_RS_RIM -REAL, DIMENSION(:), INTENT(INOUT) :: P_CS_RIM -REAL, DIMENSION(:), INTENT(INOUT) :: P_RG_RIM ! cloud droplet riming (RIM) : rc, Nc, rs, Ns, rg, Ng=-Ns, th -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_RI_HMS -REAL, DIMENSION(:), INTENT(INOUT) :: P_CI_HMS -REAL, DIMENSION(:), INTENT(INOUT) :: P_RS_HMS ! hallett mossop snow (HMS) : ri, Ni, rs -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_TH_ACC -REAL, DIMENSION(:), INTENT(INOUT) :: P_RR_ACC -REAL, DIMENSION(:), INTENT(INOUT) :: P_CR_ACC -REAL, DIMENSION(:), INTENT(INOUT) :: P_RS_ACC -REAL, DIMENSION(:), INTENT(INOUT) :: P_CS_ACC -REAL, DIMENSION(:), INTENT(INOUT) :: P_RG_ACC ! rain accretion on aggregates (ACC) : rr, Nr, rs, Ns, rg, Ng=-Ns, th -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_RS_CMEL -REAL, DIMENSION(:), INTENT(INOUT) :: P_CS_CMEL ! conversion-melting (CMEL) : rs, Ns, rg=-rs, Ng=-Ns -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_TH_CFRZ -REAL, DIMENSION(:), INTENT(INOUT) :: P_RR_CFRZ -REAL, DIMENSION(:), INTENT(INOUT) :: P_CR_CFRZ -REAL, DIMENSION(:), INTENT(INOUT) :: P_RI_CFRZ -REAL, DIMENSION(:), INTENT(INOUT) :: P_CI_CFRZ ! rain freezing (CFRZ) : rr, Nr, ri, Ni, rg=-rr-ri, th -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_RI_CIBU -REAL, DIMENSION(:), INTENT(INOUT) :: P_CI_CIBU ! collisional ice break-up (CIBU) : ri, Ni, rs=-ri -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_RI_RDSF -REAL, DIMENSION(:), INTENT(INOUT) :: P_CI_RDSF ! rain drops freezing shattering (RDSF) : ri, Ni, rg=-ri -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_TH_WETG -REAL, DIMENSION(:), INTENT(INOUT) :: P_RC_WETG -REAL, DIMENSION(:), INTENT(INOUT) :: P_CC_WETG -REAL, DIMENSION(:), INTENT(INOUT) :: P_RR_WETG -REAL, DIMENSION(:), INTENT(INOUT) :: P_CR_WETG -REAL, DIMENSION(:), INTENT(INOUT) :: P_RI_WETG -REAL, DIMENSION(:), INTENT(INOUT) :: P_CI_WETG -REAL, DIMENSION(:), INTENT(INOUT) :: P_RS_WETG -REAL, DIMENSION(:), INTENT(INOUT) :: P_CS_WETG -REAL, DIMENSION(:), INTENT(INOUT) :: P_RG_WETG -REAL, DIMENSION(:), INTENT(INOUT) :: P_CG_WETG -REAL, DIMENSION(:), INTENT(INOUT) :: P_RH_WETG ! wet growth of graupel (WETG) : rc, NC, rr, Nr, ri, Ni, rs, Ns, rg, Ng, rh, Nh=-Ng, th -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_TH_DRYG -REAL, DIMENSION(:), INTENT(INOUT) :: P_RC_DRYG -REAL, DIMENSION(:), INTENT(INOUT) :: P_CC_DRYG -REAL, DIMENSION(:), INTENT(INOUT) :: P_RR_DRYG -REAL, DIMENSION(:), INTENT(INOUT) :: P_CR_DRYG -REAL, DIMENSION(:), INTENT(INOUT) :: P_RI_DRYG -REAL, DIMENSION(:), INTENT(INOUT) :: P_CI_DRYG -REAL, DIMENSION(:), INTENT(INOUT) :: P_RS_DRYG -REAL, DIMENSION(:), INTENT(INOUT) :: P_CS_DRYG -REAL, DIMENSION(:), INTENT(INOUT) :: P_RG_DRYG ! dry growth of graupel (DRYG) : rc, Nc, rr, Nr, ri, Ni, rs, Ns, rg, th -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_RI_HMG -REAL, DIMENSION(:), INTENT(INOUT) :: P_CI_HMG -REAL, DIMENSION(:), INTENT(INOUT) :: P_RG_HMG ! hallett mossop graupel (HMG) : ri, Ni, rg -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_TH_GMLT -REAL, DIMENSION(:), INTENT(INOUT) :: P_RR_GMLT -REAL, DIMENSION(:), INTENT(INOUT) :: P_CR_GMLT -REAL, DIMENSION(:), INTENT(INOUT) :: P_CG_GMLT ! graupel melting (GMLT) : rr, Nr, rg=-rr, Ng, th -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_TH_DEPH -REAL, DIMENSION(:), INTENT(INOUT) :: P_RH_DEPH ! deposition of vapor on hail (DEPH) : rv=-rh, rh, th -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_TH_WETH -REAL, DIMENSION(:), INTENT(INOUT) :: P_RC_WETH -REAL, DIMENSION(:), INTENT(INOUT) :: P_CC_WETH -REAL, DIMENSION(:), INTENT(INOUT) :: P_RR_WETH -REAL, DIMENSION(:), INTENT(INOUT) :: P_CR_WETH -REAL, DIMENSION(:), INTENT(INOUT) :: P_RI_WETH -REAL, DIMENSION(:), INTENT(INOUT) :: P_CI_WETH -REAL, DIMENSION(:), INTENT(INOUT) :: P_RS_WETH -REAL, DIMENSION(:), INTENT(INOUT) :: P_CS_WETH -REAL, DIMENSION(:), INTENT(INOUT) :: P_RG_WETH -REAL, DIMENSION(:), INTENT(INOUT) :: P_CG_WETH -REAL, DIMENSION(:), INTENT(INOUT) :: P_RH_WETH ! wet growth of hail (WETH) : rc, NC, rr, Nr, ri, Ni, rs, Ns, rg, Ng, rh, th -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_RG_COHG -REAL, DIMENSION(:), INTENT(INOUT) :: P_CG_COHG ! conversion hail -> graupel (COHG) : rg, Ng, rh=-rg; Nh=-Ng -! -REAL, DIMENSION(:), INTENT(INOUT) :: P_TH_HMLT -REAL, DIMENSION(:), INTENT(INOUT) :: P_RR_HMLT -REAL, DIMENSION(:), INTENT(INOUT) :: P_CR_HMLT -REAL, DIMENSION(:), INTENT(INOUT) :: P_CH_HMLT ! hail melting (HMLT) : rr, Nr, rh=-rr, Nh, th -! -REAL, DIMENSION(:), INTENT(INOUT) :: PA_TH -REAL, DIMENSION(:), INTENT(INOUT) :: PA_RV -REAL, DIMENSION(:), INTENT(INOUT) :: PA_RC -REAL, DIMENSION(:), INTENT(INOUT) :: PA_CC -REAL, DIMENSION(:), INTENT(INOUT) :: PA_RR -REAL, DIMENSION(:), INTENT(INOUT) :: PA_CR -REAL, DIMENSION(:), INTENT(INOUT) :: PA_RI -REAL, DIMENSION(:), INTENT(INOUT) :: PA_CI -REAL, DIMENSION(:), INTENT(INOUT) :: PA_RS -REAL, DIMENSION(:), INTENT(INOUT) :: PA_CS -REAL, DIMENSION(:), INTENT(INOUT) :: PA_RG -REAL, DIMENSION(:), INTENT(INOUT) :: PA_CG -REAL, DIMENSION(:), INTENT(INOUT) :: PA_RH -REAL, DIMENSION(:), INTENT(INOUT) :: PA_CH -! -REAL, DIMENSION(:), INTENT(INOUT) :: PEVAP3D -! -REAL, DIMENSION(:), INTENT(IN) :: PCF1D -REAL, DIMENSION(:), INTENT(IN) :: PIF1D -REAL, DIMENSION(:), INTENT(IN) :: PPF1D -! - END SUBROUTINE LIMA_TENDENCIES - END INTERFACE -END MODULE MODI_LIMA_TENDENCIES -!##################################################################### -! +MODULE MODE_LIMA_TENDENCIES + IMPLICIT NONE +CONTAINS !##################################################################### -SUBROUTINE LIMA_TENDENCIES (PTSTEP, LDCOMPUTE, & - PEXNREF, PRHODREF, PPABST, PTHT, & - PRVT, PRCT, PRRT, PRIT, PRST, PRGT, PRHT, & - PCCT, PCRT, PCIT, PCST, PCGT, PCHT, & - P_TH_HONC, P_RC_HONC, P_CC_HONC, & - P_CC_SELF, & - P_RC_AUTO, P_CC_AUTO, P_CR_AUTO, & - P_RC_ACCR, P_CC_ACCR, & - P_CR_SCBU, & - P_TH_EVAP, P_RR_EVAP, P_CR_EVAP, & - P_RI_CNVI, P_CI_CNVI, & - P_TH_DEPS, P_RS_DEPS, & - P_TH_DEPI, P_RI_DEPI, & - P_RI_CNVS, P_CI_CNVS, & - P_CS_SSC, & - P_RI_AGGS, P_CI_AGGS, & - P_TH_DEPG, P_RG_DEPG, & - P_TH_BERFI, P_RC_BERFI, & - P_TH_RIM, P_RC_RIM, P_CC_RIM, P_RS_RIM, P_CS_RIM, P_RG_RIM, & - P_RI_HMS, P_CI_HMS, P_RS_HMS, & - P_TH_ACC, P_RR_ACC, P_CR_ACC, P_RS_ACC, P_CS_ACC, P_RG_ACC, & - P_RS_CMEL, P_CS_CMEL, & - P_TH_CFRZ, P_RR_CFRZ, P_CR_CFRZ, P_RI_CFRZ, P_CI_CFRZ, & - P_RI_CIBU, P_CI_CIBU, & - P_RI_RDSF, P_CI_RDSF, & - P_TH_WETG, P_RC_WETG, P_CC_WETG, P_RR_WETG, P_CR_WETG, & - P_RI_WETG, P_CI_WETG, P_RS_WETG, P_CS_WETG, P_RG_WETG, P_CG_WETG, P_RH_WETG, & - P_TH_DRYG, P_RC_DRYG, P_CC_DRYG, P_RR_DRYG, P_CR_DRYG, & - P_RI_DRYG, P_CI_DRYG, P_RS_DRYG, P_CS_DRYG, P_RG_DRYG, & - P_RI_HMG, P_CI_HMG, P_RG_HMG, & - P_TH_GMLT, P_RR_GMLT, P_CR_GMLT, P_CG_GMLT, & - P_TH_DEPH, P_RH_DEPH, & - P_TH_WETH, P_RC_WETH, P_CC_WETH, P_RR_WETH, P_CR_WETH, & - P_RI_WETH, P_CI_WETH, P_RS_WETH, P_CS_WETH, P_RG_WETH, P_CG_WETH, P_RH_WETH, & - P_RG_COHG, P_CG_COHG, & - P_TH_HMLT, P_RR_HMLT, P_CR_HMLT, P_CH_HMLT, & - PA_TH, PA_RV, PA_RC, PA_CC, PA_RR, PA_CR, & - PA_RI, PA_CI, PA_RS, PA_CS, PA_RG, PA_CG, PA_RH, PA_CH, & - PEVAP3D, & - PCF1D, PIF1D, PPF1D ) + SUBROUTINE LIMA_TENDENCIES (PTSTEP, LDCOMPUTE, & + PEXNREF, PRHODREF, PPABST, PTHT, & + PRVT, PRCT, PRRT, PRIT, PRST, PRGT, PRHT, & + PCCT, PCRT, PCIT, PCST, PCGT, PCHT, & + P_TH_HONC, P_RC_HONC, P_CC_HONC, & + P_CC_SELF, & + P_RC_AUTO, P_CC_AUTO, P_CR_AUTO, & + P_RC_ACCR, P_CC_ACCR, & + P_CR_SCBU, & + P_TH_EVAP, P_RR_EVAP, P_CR_EVAP, & + P_RI_CNVI, P_CI_CNVI, & + P_TH_DEPS, P_RS_DEPS, & + P_TH_DEPI, P_RI_DEPI, & + P_RI_CNVS, P_CI_CNVS, & + P_CS_SSC, & + P_RI_AGGS, P_CI_AGGS, & + P_TH_DEPG, P_RG_DEPG, & + P_TH_BERFI, P_RC_BERFI, & + P_TH_RIM, P_RC_RIM, P_CC_RIM, P_RS_RIM, P_CS_RIM, P_RG_RIM, & + P_RI_HMS, P_CI_HMS, P_RS_HMS, & + P_TH_ACC, P_RR_ACC, P_CR_ACC, P_RS_ACC, P_CS_ACC, P_RG_ACC, & + P_RS_CMEL, P_CS_CMEL, & + P_TH_CFRZ, P_RR_CFRZ, P_CR_CFRZ, P_RI_CFRZ, P_CI_CFRZ, & + P_RI_CIBU, P_CI_CIBU, & + P_RI_RDSF, P_CI_RDSF, & + P_TH_WETG, P_RC_WETG, P_CC_WETG, P_RR_WETG, P_CR_WETG, & + P_RI_WETG, P_CI_WETG, P_RS_WETG, P_CS_WETG, P_RG_WETG, P_CG_WETG, P_RH_WETG, & + P_TH_DRYG, P_RC_DRYG, P_CC_DRYG, P_RR_DRYG, P_CR_DRYG, & + P_RI_DRYG, P_CI_DRYG, P_RS_DRYG, P_CS_DRYG, P_RG_DRYG, & + P_RI_HMG, P_CI_HMG, P_RG_HMG, & + P_TH_GMLT, P_RR_GMLT, P_CR_GMLT, P_CG_GMLT, & + P_TH_DEPH, P_RH_DEPH, & + P_TH_WETH, P_RC_WETH, P_CC_WETH, P_RR_WETH, P_CR_WETH, & + P_RI_WETH, P_CI_WETH, P_RS_WETH, P_CS_WETH, P_RG_WETH, P_CG_WETH, P_RH_WETH, & + P_RG_COHG, P_CG_COHG, & + P_TH_HMLT, P_RR_HMLT, P_CR_HMLT, P_CH_HMLT, & + PA_TH, PA_RV, PA_RC, PA_CC, PA_RR, PA_CR, & + PA_RI, PA_CI, PA_RS, PA_CS, PA_RG, PA_CG, PA_RH, PA_CH, & + PEVAP3D, & + PCF1D, PIF1D, PPF1D ) ! ###################################################################### !! !! PURPOSE @@ -303,28 +80,28 @@ USE MODD_PARAM_LIMA_MIXED, ONLY : XLBG, XLBEXG, XCCG, XCXG, XLBH, XLBEXH, XCCH, USE MODD_PARAM_LIMA_COLD, ONLY : XSCFAC, XLBI, XLBEXI, XLBS, XLBEXS, XLBDAS_MAX, XTRANS_MP_GAMMAS, & XFVELOS, XLBDAS_MIN, XCCS, XCXS, XBS, XNS ! -USE MODI_LIMA_DROPLETS_HOM_FREEZING -USE MODI_LIMA_DROPLETS_SELF_COLLECTION -USE MODI_LIMA_DROPLETS_AUTOCONVERSION -USE MODI_LIMA_DROPLETS_ACCRETION -USE MODI_LIMA_DROPS_SELF_COLLECTION -USE MODI_LIMA_RAIN_EVAPORATION -USE MODI_LIMA_ICE_DEPOSITION -USE MODI_LIMA_SNOW_DEPOSITION -USE MODI_LIMA_SNOW_SELF_COLLECTION -USE MODI_LIMA_ICE_AGGREGATION_SNOW -USE MODI_LIMA_GRAUPEL_DEPOSITION -USE MODI_LIMA_DROPLETS_RIMING_SNOW -USE MODI_LIMA_RAIN_ACCR_SNOW -USE MODI_LIMA_CONVERSION_MELTING_SNOW -USE MODI_LIMA_RAIN_FREEZING -USE MODI_LIMA_COLLISIONAL_ICE_BREAKUP -USE MODI_LIMA_RAINDROP_SHATTERING_FREEZING -USE MODI_LIMA_GRAUPEL -USE MODI_LIMA_HAIL_DEPOSITION -USE MODI_LIMA_HAIL -! -USE MODI_LIMA_BERGERON +USE MODE_LIMA_DROPLETS_HOM_FREEZING, ONLY: LIMA_DROPLETS_HOM_FREEZING +USE MODE_LIMA_DROPLETS_SELF_COLLECTION, ONLY: LIMA_DROPLETS_SELF_COLLECTION +USE MODE_LIMA_DROPLETS_AUTOCONVERSION, ONLY: LIMA_DROPLETS_AUTOCONVERSION +USE MODE_LIMA_DROPLETS_ACCRETION, ONLY: LIMA_DROPLETS_ACCRETION +USE MODE_LIMA_DROPS_SELF_COLLECTION, ONLY: LIMA_DROPS_SELF_COLLECTION +USE MODE_LIMA_RAIN_EVAPORATION, ONLY: LIMA_RAIN_EVAPORATION +USE MODE_LIMA_ICE_DEPOSITION, ONLY: LIMA_ICE_DEPOSITION +USE MODE_LIMA_SNOW_DEPOSITION, ONLY: LIMA_SNOW_DEPOSITION +USE MODE_LIMA_SNOW_SELF_COLLECTION, ONLY: LIMA_SNOW_SELF_COLLECTION +USE MODE_LIMA_ICE_AGGREGATION_SNOW, ONLY: LIMA_ICE_AGGREGATION_SNOW +USE MODE_LIMA_GRAUPEL_DEPOSITION, ONLY: LIMA_GRAUPEL_DEPOSITION +USE MODE_LIMA_DROPLETS_RIMING_SNOW, ONLY: LIMA_DROPLETS_RIMING_SNOW +USE MODE_LIMA_RAIN_ACCR_SNOW, ONLY: LIMA_RAIN_ACCR_SNOW +USE MODE_LIMA_CONVERSION_MELTING_SNOW, ONLY: LIMA_CONVERSION_MELTING_SNOW +USE MODE_LIMA_RAIN_FREEZING, ONLY: LIMA_RAIN_FREEZING +USE MODE_LIMA_COLLISIONAL_ICE_BREAKUP, ONLY: LIMA_COLLISIONAL_ICE_BREAKUP +USE MODE_LIMA_RAINDROP_SHATTERING_FREEZING, ONLY: LIMA_RAINDROP_SHATTERING_FREEZING +USE MODE_LIMA_GRAUPEL, ONLY: LIMA_GRAUPEL +USE MODE_LIMA_HAIL_DEPOSITION, ONLY: LIMA_HAIL_DEPOSITION +USE MODE_LIMA_HAIL, ONLY: LIMA_HAIL +! +USE MODE_LIMA_BERGERON, ONLY: LIMA_BERGERON ! IMPLICIT NONE ! @@ -1087,3 +864,4 @@ IF (NMOM_H.GE.1) THEN END IF ! END SUBROUTINE LIMA_TENDENCIES +END MODULE MODE_LIMA_TENDENCIES diff --git a/src/common/micro/nrcolss.f90 b/src/common/micro/mode_nrcolss.f90 similarity index 77% rename from src/common/micro/nrcolss.f90 rename to src/common/micro/mode_nrcolss.f90 index d21be2bd3b12000a5c5871c47e9ba5faa22d84f5..3da87d0a49abb048b03c968b8334228ac906dd62 100644 --- a/src/common/micro/nrcolss.f90 +++ b/src/common/micro/mode_nrcolss.f90 @@ -3,60 +3,14 @@ !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$ $Revision$ -! MASDEV4_7 init 2006/11/23 10:39:56 -!----------------------------------------------------------------- -! ################### - MODULE MODI_NRCOLSS -! ################### -! -INTERFACE -! - SUBROUTINE NRCOLSS( KND, PALPHAS, PNUS, PALPHAR, PNUR, & - PESR, PFALLS, PEXFALLS, PFALLEXPS, PFALLR, PEXFALLR,& - PLBDASMAX, PLBDARMAX, PLBDASMIN, PLBDARMIN, & - PDINFTY, PNRCOLSS, PAG, PBS, PAS ) -! -INTEGER, INTENT(IN) :: KND ! Number of discrete size intervals in DS and DR -! -REAL, INTENT(IN) :: PALPHAS ! First shape parameter of the aggregates - ! size distribution (generalized gamma law) -REAL, INTENT(IN) :: PNUS ! Second shape parameter of the aggregates - ! size distribution (generalized gamma law) -REAL, INTENT(IN) :: PALPHAR ! First shape parameter of the rain - ! size distribution (generalized gamma law) -REAL, INTENT(IN) :: PNUR ! Second shape parameter of the rain - ! size distribution (generalized gamma law) -REAL, INTENT(IN) :: PESR ! Efficiency of aggregates collecting rain -REAL, INTENT(IN) :: PFALLS ! Fall speed constant of aggregates -REAL, INTENT(IN) :: PEXFALLS ! Fall speed exponent of aggregates -REAL, INTENT(IN) :: PFALLEXPS ! Fall speed exponential of aggregates (Thompson 2008) -REAL, INTENT(IN) :: PFALLR ! Fall speed constant of rain -REAL, INTENT(IN) :: PEXFALLR ! Fall speed exponent of rain -REAL, INTENT(IN) :: PLBDASMAX ! Maximun slope of size distribution of aggregates -REAL, INTENT(IN) :: PLBDARMAX ! Maximun slope of size distribution of rain -REAL, INTENT(IN) :: PLBDASMIN ! Minimun slope of size distribution of aggregates -REAL, INTENT(IN) :: PLBDARMIN ! Minimun slope of size distribution of rain -REAL, INTENT(IN) :: PDINFTY ! Factor to define the largest diameter up to - ! which the diameter integration is performed -REAL, INTENT(IN) :: PAG, PBS, PAS -! -REAL, DIMENSION(:,:), INTENT(INOUT) :: PNRCOLSS! Scaled fall speed difference in - ! the mass collection kernel as a - ! function of LAMBDAX and LAMBDAZ -! - END SUBROUTINE NRCOLSS -! -END INTERFACE -! - END MODULE MODI_NRCOLSS +MODULE MODE_NRCOLSS + IMPLICIT NONE +CONTAINS ! ######################################################################## - SUBROUTINE NRCOLSS( KND, PALPHAS, PNUS, PALPHAR, PNUR, & - PESR, PFALLS, PEXFALLS, PFALLEXPS, PFALLR, PEXFALLR,& - PLBDASMAX, PLBDARMAX, PLBDASMIN, PLBDARMIN, & - PDINFTY, PNRCOLSS, PAG, PBS, PAS ) + SUBROUTINE NRCOLSS( KND, PALPHAS, PNUS, PALPHAR, PNUR, & + PESR, PFALLS, PEXFALLS, PFALLEXPS, PFALLR, PEXFALLR,& + PLBDASMAX, PLBDARMAX, PLBDASMIN, PLBDARMIN, & + PDINFTY, PNRCOLSS, PAG, PBS, PAS ) ! ######################################################################## ! ! @@ -314,3 +268,4 @@ DO JLBDAS = 1,SIZE(PNRCOLSS(:,:),1) END DO ! END SUBROUTINE NRCOLSS +END MODULE MODE_NRCOLSS diff --git a/src/common/micro/nscolrg.f90 b/src/common/micro/mode_nscolrg.f90 similarity index 78% rename from src/common/micro/nscolrg.f90 rename to src/common/micro/mode_nscolrg.f90 index 790a01f76a32fef7603ff99d7ad1339a657fbb80..593d838d6951769c140653ea40fecdaac2352948 100644 --- a/src/common/micro/nscolrg.f90 +++ b/src/common/micro/mode_nscolrg.f90 @@ -3,60 +3,14 @@ !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$ $Revision$ -! MASDEV4_7 init 2006/11/23 10:43:02 -!----------------------------------------------------------------- -! ################### - MODULE MODI_NSCOLRG -! ################### -! -INTERFACE -! - SUBROUTINE NSCOLRG( KND, PALPHAS, PZNUS, PALPHAR, PNUR, & - PESR, PFALLS, PEXFALLS, PFALLEXPS, PFALLR, PEXFALLR,& - PLBDASMAX, PLBDARMAX, PLBDASMIN, PLBDARMIN, & - PDINFTY, PNSCOLRG,PAG, PBS, PAS ) -! -INTEGER, INTENT(IN) :: KND ! Number of discrete size intervals in DS and DR -! -REAL, INTENT(IN) :: PALPHAS ! First shape parameter of the aggregates - ! size distribution (generalized gamma law) -REAL, INTENT(IN) :: PZNUS ! Second shape parameter of the aggregates - ! size distribution (generalized gamma law) -REAL, INTENT(IN) :: PALPHAR ! First shape parameter of the rain - ! size distribution (generalized gamma law) -REAL, INTENT(IN) :: PNUR ! Second shape parameter of the rain - ! size distribution (generalized gamma law) -REAL, INTENT(IN) :: PESR ! Efficiency of the aggregates collecting rain -REAL, INTENT(IN) :: PFALLS ! Fall speed constant of the aggregates -REAL, INTENT(IN) :: PEXFALLS ! Fall speed exponent of the aggregates -REAL, INTENT(IN) :: PFALLEXPS ! Fall speed exponential constant of the aggregates -REAL, INTENT(IN) :: PFALLR ! Fall speed constant of rain -REAL, INTENT(IN) :: PEXFALLR ! Fall speed exponent of rain -REAL, INTENT(IN) :: PLBDASMAX ! Maximun slope of size distribution of the aggregates -REAL, INTENT(IN) :: PLBDARMAX ! Maximun slope of size distribution of rain -REAL, INTENT(IN) :: PLBDASMIN ! Minimun slope of size distribution of the aggregates -REAL, INTENT(IN) :: PLBDARMIN ! Minimun slope of size distribution of rain -REAL, INTENT(IN) :: PDINFTY ! Factor to define the largest diameter up to - ! which the diameter integration is performed -REAL, INTENT(IN) :: PAG, PBS, PAS -! -REAL, DIMENSION(:,:), INTENT(INOUT) :: PNSCOLRG! Scaled fall speed difference in - ! the mass collection kernel as a - ! function of LAMBDAX and LAMBDAZ -! - END SUBROUTINE NSCOLRG -! -END INTERFACE -! - END MODULE MODI_NSCOLRG +MODULE MODE_NSCOLRG + IMPLICIT NONE +CONTAINS ! ######################################################################## - SUBROUTINE NSCOLRG( KND, PALPHAS, PZNUS, PALPHAR, PNUR, & - PESR, PFALLS, PEXFALLS, PFALLEXPS, PFALLR, PEXFALLR,& - PLBDASMAX, PLBDARMAX, PLBDASMIN, PLBDARMIN, & - PDINFTY, PNSCOLRG,PAG, PBS, PAS ) + SUBROUTINE NSCOLRG( KND, PALPHAS, PZNUS, PALPHAR, PNUR, & + PESR, PFALLS, PEXFALLS, PFALLEXPS, PFALLR, PEXFALLR,& + PLBDASMAX, PLBDARMAX, PLBDASMIN, PLBDARMIN, & + PDINFTY, PNSCOLRG,PAG, PBS, PAS ) ! ######################################################################## ! ! @@ -315,3 +269,4 @@ DO JLBDAR = 1,SIZE(PNSCOLRG(:,:),1) END DO ! END SUBROUTINE NSCOLRG +END MODULE MODE_NSCOLRG diff --git a/src/common/micro/nzcolx.f90 b/src/common/micro/mode_nzcolx.f90 similarity index 75% rename from src/common/micro/nzcolx.f90 rename to src/common/micro/mode_nzcolx.f90 index e4493c2e60f617e81998e2466d534e887891feaf..5a3932bf461543d85ba4226d0c1d02531cd242fe 100644 --- a/src/common/micro/nzcolx.f90 +++ b/src/common/micro/mode_nzcolx.f90 @@ -3,62 +3,15 @@ !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$ $Revision$ -! MASDEV4_7 init 2006/05/18 13:07:25 -!----------------------------------------------------------------- -! ################## - MODULE MODI_NZCOLX -! ################## -! -INTERFACE -! - SUBROUTINE NZCOLX( KND, PALPHAX, PNUX, PALPHAZ, PNUZ, & - PEXZ, PFALLX, PEXFALLX, PFALLEXPX, & - PFALLZ, PEXFALLZ, PFALLEXPZ, & - PLBDAXMAX, PLBDAZMAX, PLBDAXMIN, PLBDAZMIN, & - PDINFTY, PNZCOLX ) -! -INTEGER, INTENT(IN) :: KND ! Number of discrete size intervals in DX and DZ -! -! -REAL, INTENT(IN) :: PALPHAX ! First shape parameter of the specy X - ! size distribution (generalized gamma law) -REAL, INTENT(IN) :: PNUX ! Second shape parameter of the specy X - ! size distribution (generalized gamma law) -REAL, INTENT(IN) :: PALPHAZ ! First shape parameter of the specy Z - ! size distribution (generalized gamma law) -REAL, INTENT(IN) :: PNUZ ! Second shape parameter of the specy Z -REAL, INTENT(IN) :: PEXZ ! Efficiency of specy X collecting specy Z -REAL, INTENT(IN) :: PFALLX ! Fall speed constant of specy X -REAL, INTENT(IN) :: PEXFALLX ! Fall speed exponent of specy X -REAL, INTENT(IN) :: PFALLEXPX ! Fall speed exponential constant of specy X -REAL, INTENT(IN) :: PFALLZ ! Fall speed constant of specy Z -REAL, INTENT(IN) :: PEXFALLZ ! Fall speed exponent of specy Z -REAL, INTENT(IN) :: PFALLEXPZ ! Fall speed exponential constant of specy Z -REAL, INTENT(IN) :: PLBDAXMAX ! Maximun slope of size distribution of specy X -REAL, INTENT(IN) :: PLBDAZMAX ! Maximun slope of size distribution of specy Z -REAL, INTENT(IN) :: PLBDAXMIN ! Minimun slope of size distribution of specy X -REAL, INTENT(IN) :: PLBDAZMIN ! Minimun slope of size distribution of specy Z -REAL, INTENT(IN) :: PDINFTY ! Factor to define the largest diameter up to - ! which the diameter integration is performed -! -REAL, DIMENSION(:,:), INTENT(INOUT) :: PNZCOLX ! Scaled fall speed difference in - ! the mass collection kernel as a - ! function of LAMBDAX and LAMBDAZ -! - END SUBROUTINE NZCOLX -! -END INTERFACE -! - END MODULE MODI_NZCOLX +MODULE MODE_NZCOLX + IMPLICIT NONE +CONTAINS ! ################################################################ - SUBROUTINE NZCOLX( KND, PALPHAX, PNUX, PALPHAZ, PNUZ, & - PEXZ, PFALLX, PEXFALLX, PFALLEXPX, & - PFALLZ, PEXFALLZ, PFALLEXPZ, & - PLBDAXMAX, PLBDAZMAX, PLBDAXMIN, PLBDAZMIN, & - PDINFTY, PNZCOLX ) + SUBROUTINE NZCOLX( KND, PALPHAX, PNUX, PALPHAZ, PNUZ, & + PEXZ, PFALLX, PEXFALLX, PFALLEXPX, & + PFALLZ, PEXFALLZ, PFALLEXPZ, & + PLBDAXMAX, PLBDAZMAX, PLBDAXMIN, PLBDAZMIN, & + PDINFTY, PNZCOLX ) ! ################################################################ ! ! @@ -276,3 +229,4 @@ DO JLBDAX = 1,SIZE(PNZCOLX(:,:),1) END DO ! END SUBROUTINE NZCOLX +END MODULE MODE_NZCOLX diff --git a/src/common/micro/set_conc_lima.f90 b/src/common/micro/mode_set_conc_lima.f90 similarity index 100% rename from src/common/micro/set_conc_lima.f90 rename to src/common/micro/mode_set_conc_lima.f90 diff --git a/src/common/micro/modi_lima.F90 b/src/common/micro/modi_lima.F90 new file mode 100644 index 0000000000000000000000000000000000000000..6cd5fa338a4bde2175fa985d0e14d370718c9ec7 --- /dev/null +++ b/src/common/micro/modi_lima.F90 @@ -0,0 +1,65 @@ +MODULE MODI_LIMA +! +INTERFACE +! + SUBROUTINE LIMA ( D, CST, BUCONF, TBUDGETS, KBUDGETS, & + PTSTEP, & + PRHODREF, PEXNREF, PDZZ, & + PRHODJ, PPABST, & + NCCN, NIFN, NIMM, & + PDTHRAD, PTHT, PRT, PSVT, PW_NU, & + PTHS, PRS, PSVS, & + PINPRC, PINDEP, PINPRR, PINPRI, PINPRS, PINPRG, PINPRH, & + PEVAP3D, PCLDFR, PICEFR, PPRCFR, PFPR ) +! +USE MODD_IO, ONLY: TFILEDATA +USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t +USE MODD_BUDGET, ONLY: TBUDGETDATA, TBUDGETCONF_t +USE MODD_CST, ONLY: CST_t +! +TYPE(DIMPHYEX_t), INTENT(IN) :: D +TYPE(CST_t), INTENT(IN) :: CST +TYPE(TBUDGETCONF_t), INTENT(IN) :: BUCONF +TYPE(TBUDGETDATA), DIMENSION(KBUDGETS), INTENT(INOUT) :: TBUDGETS +INTEGER, INTENT(IN) :: KBUDGETS +! +REAL, INTENT(IN) :: PTSTEP ! Time step +! +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF ! Reference density +REAL, DIMENSION(:,:,:), INTENT(IN) :: PEXNREF ! Reference Exner function +REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! Layer thikness (m) +! +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! Dry density * Jacobian +REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABST ! absolute pressure at t +! +INTEGER, INTENT(IN) :: NCCN ! for array size declarations +INTEGER, INTENT(IN) :: NIFN ! for array size declarations +INTEGER, INTENT(IN) :: NIMM ! for array size declarations +! +REAL, DIMENSION(:,:,:), INTENT(IN) :: PDTHRAD ! dT/dt due to radiation +REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHT ! Theta at time t +REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRT ! Mixing ratios at time t +REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PSVT ! Concentrations at time t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PW_NU ! w for CCN activation +! +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PTHS ! Theta source +REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRS ! Mixing ratios sources +REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PSVS ! Concentration sources +! +REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRC ! Cloud instant precip +REAL, DIMENSION(:,:), INTENT(OUT) :: PINDEP ! Cloud droplets deposition +REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRR ! Rain instant precip +REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRI ! Rain instant precip +REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRS ! Snow instant precip +REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRG ! Graupel instant precip +REAL, DIMENSION(:,:), INTENT(OUT) :: PINPRH ! Rain instant precip +REAL, DIMENSION(:,:,:), INTENT(OUT) :: PEVAP3D ! Rain evap profile +! +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCLDFR ! Cloud fraction +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PICEFR ! Cloud fraction +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PPRCFR ! Cloud fraction +REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PFPR ! Precipitation fluxes in altitude +! +END SUBROUTINE LIMA +END INTERFACE +END MODULE MODI_LIMA diff --git a/src/common/micro/modi_lima_adjust_split.F90 b/src/common/micro/modi_lima_adjust_split.F90 new file mode 100644 index 0000000000000000000000000000000000000000..aeb84748a1a24cd73f99e9c042969df03f645deb --- /dev/null +++ b/src/common/micro/modi_lima_adjust_split.F90 @@ -0,0 +1,71 @@ +! ############################# + MODULE MODI_LIMA_ADJUST_SPLIT +! ############################# +! +INTERFACE +! + SUBROUTINE LIMA_ADJUST_SPLIT(D, CST, BUCONF, TBUDGETS, KBUDGETS, & + KRR, KMI, HCONDENS, HLAMBDA3, & + OSUBG_COND, OSIGMAS, PTSTEP, PSIGQSAT, & + PRHODREF, PRHODJ, PEXNREF, PSIGS, PMFCONV, & + PPABST, PPABSTT, PZZ, PDTHRAD, PW_NU, & + PRT, PRS, PSVT, PSVS, & + PTHS, PSRCS, PCLDFR, PICEFR, PRC_MF, PRI_MF, PCF_MF) +! +!USE MODD_IO, ONLY: TFILEDATA +USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t +USE MODD_BUDGET, ONLY: TBUDGETDATA, TBUDGETCONF_t +USE MODD_CST, ONLY: CST_t +! +TYPE(DIMPHYEX_t), INTENT(IN) :: D +TYPE(CST_t), INTENT(IN) :: CST +TYPE(TBUDGETCONF_t), INTENT(IN) :: BUCONF +TYPE(TBUDGETDATA), DIMENSION(KBUDGETS), INTENT(INOUT) :: TBUDGETS +INTEGER, INTENT(IN) :: KBUDGETS +! +INTEGER, INTENT(IN) :: KRR ! Number of moist variables +INTEGER, INTENT(IN) :: KMI ! Model index +CHARACTER(len=80), INTENT(IN) :: HCONDENS +CHARACTER(len=4), INTENT(IN) :: HLAMBDA3 ! formulation for lambda3 coeff +LOGICAL, INTENT(IN) :: OSUBG_COND ! Switch for Subgrid + ! Condensation +LOGICAL, INTENT(IN) :: OSIGMAS ! Switch for Sigma_s: + ! use values computed in CONDENSATION + ! or that from turbulence scheme +REAL, INTENT(IN) :: PTSTEP ! Time step +REAL, INTENT(IN) :: PSIGQSAT ! coeff applied to qsat variance contribution +! +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF ! Dry density of the + ! reference state +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! Dry density * Jacobian +REAL, DIMENSION(:,:,:), INTENT(IN) :: PEXNREF ! Reference Exner function +REAL, DIMENSION(:,:,:), INTENT(IN) :: PSIGS ! Sigma_s at time t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PMFCONV ! +REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABST ! Absolute Pressure at t +REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABSTT ! Absolute Pressure at t+dt +REAL, DIMENSION(:,:,:), INTENT(IN) :: PZZ ! +REAL, DIMENSION(:,:,:), INTENT(IN) :: PDTHRAD ! Radiative temperature tendency +REAL, DIMENSION(:,:,:), INTENT(IN) :: PW_NU ! updraft velocity used for +! +REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRT ! m.r. at t +! +REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRS ! m.r. source +! +REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PSVT ! Concentrations at time t +! +REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PSVS ! Concentration sources +! +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PTHS ! Theta source +! +REAL, DIMENSION(:,:,:), INTENT(OUT) :: PSRCS ! Second-order flux + ! s'rc'/2Sigma_s2 at time t+1 + ! multiplied by Lambda_3 +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCLDFR ! Cloud fraction +REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PICEFR ! Cloud fraction +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRC_MF! Convective Mass Flux liquid mixing ratio +REAL, DIMENSION(:,:,:), INTENT(IN) :: PRI_MF! Convective Mass Flux ice mixing ratio +REAL, DIMENSION(:,:,:), INTENT(IN) :: PCF_MF! Convective Mass Flux Cloud fraction +! +END SUBROUTINE LIMA_ADJUST_SPLIT +END INTERFACE +END MODULE MODI_LIMA_ADJUST_SPLIT