Changeset 4535
- Timestamp:
- May 13, 2023, 2:12:05 PM (20 months ago)
- Location:
- LMDZ6/trunk/libf
- Files:
-
- 2 deleted
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/cloudth_mod.F90
r4380 r4535 1 1 MODULE cloudth_mod 2 2 3 3 4 IMPLICIT NONE … … 10 11 & ratqs,zqs,t) 11 12 13 14 use lscp_ini_mod, only: iflag_cloudth_vert 12 15 13 16 IMPLICIT NONE … … 24 27 #include "YOETHF.h" 25 28 #include "FCTTRE.h" 26 #include "nuage.h"27 29 28 30 INTEGER itap,ind1,ind2 … … 262 264 263 265 USE ioipsl_getin_p_mod, ONLY : getin_p 266 use lscp_ini_mod, only: iflag_cloudth_vert 264 267 265 268 IMPLICIT NONE … … 268 271 #include "YOETHF.h" 269 272 #include "FCTTRE.h" 270 #include "nuage.h"271 273 272 274 INTEGER itap,ind1,ind2 … … 593 595 & ratqs,zqs,t) 594 596 597 use lscp_ini_mod, only: iflag_cloudth_vert 595 598 596 599 IMPLICIT NONE … … 607 610 #include "YOETHF.h" 608 611 #include "FCTTRE.h" 609 #include "nuage.h"610 612 611 613 INTEGER itap,ind1,ind2 … … 820 822 !=========================================================================== 821 823 822 824 use lscp_ini_mod, only: iflag_cloudth_vert 823 825 USE ioipsl_getin_p_mod, ONLY : getin_p 824 826 USE phys_output_var_mod, ONLY : cloudth_sth,cloudth_senv, & … … 830 832 #include "YOETHF.h" 831 833 #include "FCTTRE.h" 832 #include "nuage.h"833 834 834 835 INTEGER itap,ind1,ind2 … … 1283 1284 & ratqs,zqs,T) 1284 1285 1285 1286 use lscp_ini_mod, only: iflag_cloudth_vert 1286 1287 USE ioipsl_getin_p_mod, ONLY : getin_p 1287 1288 USE phys_output_var_mod, ONLY : cloudth_sth,cloudth_senv, & … … 1293 1294 #include "YOETHF.h" 1294 1295 #include "FCTTRE.h" 1295 #include "nuage.h"1296 1296 1297 1297 … … 1550 1550 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1551 1551 1552 1552 use lscp_ini_mod, only: iflag_cloudth_vert 1553 1553 USE ioipsl_getin_p_mod, ONLY : getin_p 1554 1554 USE phys_output_var_mod, ONLY : cloudth_sth,cloudth_senv,cloudth_sigmath,cloudth_sigmaenv … … 1561 1561 #include "YOETHF.h" 1562 1562 #include "FCTTRE.h" 1563 #include "nuage.h"1564 1563 1565 1564 … … 2321 2320 2322 2321 INCLUDE "YOMCST.h" 2323 INCLUDE "nuage.h"2324 2322 2325 2323 INTEGER, INTENT(IN) :: ind1,ind2, klev ! horizontal and vertical indices and dimensions -
LMDZ6/trunk/libf/phylmd/conf_phys_m.F90
r4523 r4535 35 35 36 36 INCLUDE "conema3.h" 37 INCLUDE "fisrtilp.h"38 37 INCLUDE "nuage.h" 39 38 INCLUDE "YOMCST.h" … … 171 170 LOGICAL,SAVE :: ok_adj_ema_omp 172 171 INTEGER,SAVE :: iflag_clw_omp 173 REAL,SAVE :: cld_lc_lsc_omp,cld_lc_con_omp,cld_tau_lsc_omp,cld_tau_con_omp174 REAL,SAVE :: ffallv_lsc_omp, ffallv_con_omp,coef_eva_omp,coef_eva_i_omp175 LOGICAL,SAVE :: reevap_ice_omp176 INTEGER,SAVE :: iflag_pdf_omp177 172 INTEGER,SAVE :: iflag_ice_thermo_omp 178 173 LOGICAL,SAVE :: ok_ice_sursat_omp 179 174 LOGICAL,SAVE :: ok_plane_h2o_omp, ok_plane_contrail_omp 180 INTEGER,SAVE :: iflag_t_glace_omp 181 INTEGER,SAVE :: iflag_cloudth_vert_omp 182 INTEGER,SAVE :: iflag_rain_incloud_vol_omp 183 INTEGER,SAVE :: iflag_vice_omp, iflag_rei_omp 175 INTEGER,SAVE :: iflag_rei_omp 184 176 REAL,SAVE :: rad_froid_omp, rad_chau1_omp, rad_chau2_omp 185 REAL,SAVE :: t_glace_min_omp, t_glace_max_omp186 REAL,SAVE :: exposant_glace_omp187 INTEGER,SAVE :: iflag_gammasat_omp188 177 REAL,SAVE :: rei_min_omp, rei_max_omp 189 178 INTEGER,SAVE :: iflag_sic_omp, iflag_inertie_omp … … 234 223 INTEGER, SAVE :: iflag_ener_conserv_omp 235 224 LOGICAL, SAVE :: ok_conserv_q_omp 236 INTEGER, SAVE :: iflag_fisrtilp_qsat_omp237 INTEGER, SAVE :: iflag_bergeron_omp238 225 LOGICAL,SAVE :: ok_strato_omp 239 226 LOGICAL,SAVE :: ok_hines_omp, ok_gwd_rando_omp … … 993 980 CALL getin('ok_conserv_q',ok_conserv_q_omp) 994 981 995 !Config Key = iflag_fisrtilp_qsat996 !Config Desc = Flag de fisrtilp997 !Config Def = 0998 !Config Help = Flag pour la pluie grande-échelle les options suivantes existent :999 !Config >1 nb iterations pour converger dans le calcul de qsat1000 iflag_fisrtilp_qsat_omp = 01001 CALL getin('iflag_fisrtilp_qsat',iflag_fisrtilp_qsat_omp)1002 1003 !Config Key = iflag_bergeron1004 !Config Desc = Flag de fisrtilp1005 !Config Def = 01006 !Config Help = Flag pour la pluie grande-échelle les options suivantes existent :1007 !Config 0 pas d effet Bergeron1008 !Config 1 effet Bergeron pour T<01009 iflag_bergeron_omp = 01010 CALL getin('iflag_bergeron',iflag_bergeron_omp)1011 1012 982 ! 1013 983 ! … … 1068 1038 iflag_clw_omp = 0 1069 1039 CALL getin('iflag_clw',iflag_clw_omp) 1070 ! 1071 !Config Key = cld_lc_lsc 1072 !Config Desc = 1073 !Config Def = 2.6e-4 1074 !Config Help = 1075 ! 1076 cld_lc_lsc_omp = 2.6e-4 1077 CALL getin('cld_lc_lsc',cld_lc_lsc_omp) 1078 ! 1079 !Config Key = cld_lc_con 1080 !Config Desc = 1081 !Config Def = 2.6e-4 1082 !Config Help = 1083 ! 1084 cld_lc_con_omp = 2.6e-4 1085 CALL getin('cld_lc_con',cld_lc_con_omp) 1086 ! 1087 !Config Key = cld_tau_lsc 1088 !Config Desc = 1089 !Config Def = 3600. 1090 !Config Help = 1091 ! 1092 cld_tau_lsc_omp = 3600. 1093 CALL getin('cld_tau_lsc',cld_tau_lsc_omp) 1094 ! 1095 !Config Key = cld_tau_con 1096 !Config Desc = 1097 !Config Def = 3600. 1098 !Config Help = 1099 ! 1100 cld_tau_con_omp = 3600. 1101 CALL getin('cld_tau_con',cld_tau_con_omp) 1102 ! 1103 !Config Key = ffallv_lsc 1104 !Config Desc = 1105 !Config Def = 1. 1106 !Config Help = 1107 ! 1108 ffallv_lsc_omp = 1. 1109 CALL getin('ffallv_lsc',ffallv_lsc_omp) 1110 ! 1111 !Config Key = ffallv_con 1112 !Config Desc = 1113 !Config Def = 1. 1114 !Config Help = 1115 ! 1116 ffallv_con_omp = 1. 1117 CALL getin('ffallv_con',ffallv_con_omp) 1118 ! 1119 !Config Key = coef_eva 1120 !Config Desc = 1121 !Config Def = 2.e-5 1122 !Config Help = 1123 ! 1124 coef_eva_omp = 2.e-5 1125 CALL getin('coef_eva',coef_eva_omp) 1126 ! 1127 !Config Key = coef_eva_i 1128 !Config Desc = 1129 !Config Def = 2.e-5 1130 !Config Help = 1131 ! 1132 coef_eva_i_omp = coef_eva_omp 1133 CALL getin('coef_eva_i',coef_eva_i_omp) 1134 ! 1135 !Config Key = reevap_ice 1136 !Config Desc = 1137 !Config Def = .FALSE. 1138 !Config Help = 1139 ! 1140 reevap_ice_omp = .FALSE. 1141 CALL getin('reevap_ice',reevap_ice_omp) 1040 1142 1041 1143 1042 !Config Key = iflag_ratqs … … 1255 1154 1256 1155 ! 1257 !Config Key = iflag_pdf1258 !Config Desc =1259 !Config Def = 01260 !Config Help =1261 !1262 iflag_pdf_omp = 01263 CALL getin('iflag_pdf',iflag_pdf_omp)1264 !1265 1156 !Config Key = fact_cldcon 1266 1157 !Config Desc = … … 1413 1304 CALL getin('rad_chau2',rad_chau2_omp) 1414 1305 1415 !1416 !Config Key = t_glace_min1417 !Config Desc =1418 !Config Def = 258.1419 !Config Help =1420 !1421 t_glace_min_omp = 258.1422 CALL getin('t_glace_min',t_glace_min_omp)1423 1424 !1425 !Config Key = t_glace_max1426 !Config Desc =1427 !Config Def = 273.131428 !Config Help =1429 !1430 t_glace_max_omp = 273.131431 CALL getin('t_glace_max',t_glace_max_omp)1432 1433 !1434 !Config Key = exposant_glace1435 !Config Desc =1436 !Config Def = 2.1437 !Config Help =1438 !1439 exposant_glace_omp = 1.1440 CALL getin('exposant_glace',exposant_glace_omp)1441 1442 !1443 !Config Key = iflag_gammasat1444 !Config Desc =1445 !Config Def = 01446 !Config Help =1447 !1448 iflag_gammasat_omp=01449 CALL getin('iflag_gammasat',iflag_gammasat_omp)1450 1451 1452 !1453 !Config Key = iflag_t_glace1454 !Config Desc =1455 !Config Def = 01456 !Config Help =1457 !1458 iflag_t_glace_omp = 01459 CALL getin('iflag_t_glace',iflag_t_glace_omp)1460 1461 !1462 !Config Key = iflag_cloudth_vert1463 !Config Desc =1464 !Config Def = 01465 !Config Help =1466 !1467 iflag_cloudth_vert_omp = 01468 CALL getin('iflag_cloudth_vert',iflag_cloudth_vert_omp)1469 1470 !1471 !Config Key = iflag_rain_incloud_vol1472 !Config Desc =1473 !Config Def = 01474 !Config Help =1475 !1476 iflag_rain_incloud_vol_omp = 01477 CALL getin('iflag_rain_incloud_vol',iflag_rain_incloud_vol_omp)1478 1479 !1480 !Config Key = iflag_vice1481 !Config Desc =1482 !Config Def = 01483 !Config Help =1484 !1485 iflag_vice_omp = 01486 CALL getin('iflag_vice',iflag_vice_omp)1487 1306 1488 1307 !Config Key = iflag_rei … … 2465 2284 iflag_ener_conserv = iflag_ener_conserv_omp 2466 2285 ok_conserv_q = ok_conserv_q_omp 2467 iflag_fisrtilp_qsat = iflag_fisrtilp_qsat_omp2468 iflag_bergeron = iflag_bergeron_omp2469 2470 2286 epmax = epmax_omp 2471 2287 coef_epmax_cape = coef_epmax_cape_omp 2472 2288 ok_adj_ema = ok_adj_ema_omp 2473 2289 iflag_clw = iflag_clw_omp 2474 cld_lc_lsc = cld_lc_lsc_omp2475 cld_lc_con = cld_lc_con_omp2476 cld_tau_lsc = cld_tau_lsc_omp2477 cld_tau_con = cld_tau_con_omp2478 ffallv_lsc = ffallv_lsc_omp2479 ffallv_con = ffallv_con_omp2480 coef_eva = coef_eva_omp2481 coef_eva_i = coef_eva_i_omp2482 reevap_ice = reevap_ice_omp2483 iflag_pdf = iflag_pdf_omp2484 2290 solarlong0 = solarlong0_omp 2485 2291 qsol0 = qsol0_omp … … 2497 2303 rad_chau1 = rad_chau1_omp 2498 2304 rad_chau2 = rad_chau2_omp 2499 t_glace_min = t_glace_min_omp2500 t_glace_max = t_glace_max_omp2501 exposant_glace = exposant_glace_omp2502 iflag_gammasat=iflag_gammasat_omp2503 iflag_t_glace = iflag_t_glace_omp2504 iflag_cloudth_vert=iflag_cloudth_vert_omp2505 iflag_rain_incloud_vol=iflag_rain_incloud_vol_omp2506 iflag_vice=iflag_vice_omp2507 2305 iflag_rei=iflag_rei_omp 2508 2306 iflag_ice_thermo = iflag_ice_thermo_omp … … 2893 2691 WRITE(lunout,*) ' iflag_ener_conserv=',iflag_ener_conserv 2894 2692 WRITE(lunout,*) ' ok_conserv_q=',ok_conserv_q 2895 WRITE(lunout,*) ' iflag_fisrtilp_qsat=',iflag_fisrtilp_qsat2896 WRITE(lunout,*) ' iflag_bergeron=',iflag_bergeron2897 2693 WRITE(lunout,*) ' epmax = ', epmax 2898 2694 WRITE(lunout,*) ' coef_epmax_cape = ', coef_epmax_cape 2899 2695 WRITE(lunout,*) ' ok_adj_ema = ', ok_adj_ema 2900 2696 WRITE(lunout,*) ' iflag_clw = ', iflag_clw 2901 WRITE(lunout,*) ' cld_lc_lsc = ', cld_lc_lsc2902 WRITE(lunout,*) ' cld_lc_con = ', cld_lc_con2903 WRITE(lunout,*) ' cld_tau_lsc = ', cld_tau_lsc2904 WRITE(lunout,*) ' cld_tau_con = ', cld_tau_con2905 WRITE(lunout,*) ' ffallv_lsc = ', ffallv_lsc2906 WRITE(lunout,*) ' ffallv_con = ', ffallv_con2907 WRITE(lunout,*) ' coef_eva = ', coef_eva2908 WRITE(lunout,*) ' coef_eva_i = ', coef_eva_i2909 WRITE(lunout,*) ' reevap_ice = ', reevap_ice2910 WRITE(lunout,*) ' iflag_pdf = ', iflag_pdf2911 2697 WRITE(lunout,*) ' iflag_cld_th = ', iflag_cld_th 2912 2698 WRITE(lunout,*) ' iflag_cld_cv = ', iflag_cld_cv … … 2930 2716 WRITE(lunout,*) ' rad_chau1 = ',rad_chau1 2931 2717 WRITE(lunout,*) ' rad_chau2 = ',rad_chau2 2932 WRITE(lunout,*) ' t_glace_min = ',t_glace_min2933 WRITE(lunout,*) ' t_glace_max = ',t_glace_max2934 WRITE(lunout,*) ' exposant_glace = ',exposant_glace2935 WRITE(lunout,*) ' iflag_gammasat = ',iflag_gammasat2936 WRITE(lunout,*) ' iflag_t_glace = ',iflag_t_glace2937 WRITE(lunout,*) ' iflag_cloudth_vert = ',iflag_cloudth_vert2938 WRITE(lunout,*) ' iflag_rain_incloud_vol = ',iflag_rain_incloud_vol2939 WRITE(lunout,*) ' iflag_vice = ',iflag_vice2940 2718 WRITE(lunout,*) ' iflag_rei = ',iflag_rei 2941 2719 WRITE(lunout,*) ' iflag_ice_thermo = ',iflag_ice_thermo -
LMDZ6/trunk/libf/phylmd/fisrtilp.F90
r4380 r4535 20 20 ! flag to include modifications to ensure energy conservation (if flag >0) 21 21 USE add_phys_tend_mod, only : fl_cor_ebil 22 USE lscp_ini_mod, ONLY: iflag_t_glace,t_glace_min, t_glace_max, exposant_glace 23 USE lscp_ini_mod, ONLY: iflag_cloudth_vert, iflag_rain_incloud_vol 24 USE lscp_ini_mod, ONLY: coef_eva, coef_eva_i, ffallv_lsc, ffallv_con 25 USE lscp_ini_mod, ONLY: cld_tau_lsc, cld_tau_con, cld_lc_lsc, cld_lc_con 26 USE lscp_ini_mod, ONLY: reevap_ice, iflag_bergeron, iflag_fisrtilp_qsat, iflag_pdf 27 28 22 29 IMPLICIT none 23 30 !====================================================================== … … 47 54 !====================================================================== 48 55 include "YOMCST.h" 49 include "fisrtilp.h"50 include "nuage.h" ! JBM (3/14)51 52 56 ! 53 57 ! Principaux inputs: … … 228 232 ! (Heymsfield & Donner, 1990) 229 233 REAL zzz 230 231 234 include "YOETHF.h" 232 235 include "FCTTRE.h" -
LMDZ6/trunk/libf/phylmd/ice_sursat_mod.F90
r4260 r4535 308 308 INCLUDE "YOETHF.h" 309 309 INCLUDE "FCTTRE.h" 310 INCLUDE "fisrtilp.h"311 310 INCLUDE "clesphys.h" 312 311 -
LMDZ6/trunk/libf/phylmd/icefrac_lsc_mod.F90
r3102 r4535 17 17 18 18 USE print_control_mod, ONLY: lunout, prt_level 19 INCLUDE "nuage.h" 20 21 ! nuage.h contains: 19 USE lscp_ini_mod, ONLY: t_glace_min, t_glace_max, exposant_glace, iflag_t_glace 20 ! lscp_ini contains: 22 21 ! t_glace_min: if T < Tmin, the cloud is only made of water ice 23 22 ! t_glace_max: if T > Tmax, the cloud is only made of liquid water -
LMDZ6/trunk/libf/phylmd/lscp_ini_mod.F90
r4420 r4535 5 5 ! PARAMETERS for lscp: 6 6 !-------------------- 7 7 8 REAL RCPD, RLSTT, RLVTT, RLMLT, RVTMP2, RTT, RD, RG 9 !$OMP THREADPRIVATE(RCPD, RLSTT, RLVTT, RLMLT, RVTMP2, RTT, RD, RG) 10 8 11 REAL, SAVE :: seuil_neb=0.001 ! cloud fraction threshold: a cloud really exists when exceeded 9 12 !$OMP THREADPRIVATE(seuil_neb) … … 41 44 !$OMP THREADPRIVATE(ok_debug_autoconversion) 42 45 46 REAL, SAVE :: t_glace_min=258.0 ! lower-bound temperature parameter for cloud phase determination 47 !$OMP THREADPRIVATE(t_glace_min) 48 49 REAL, SAVE :: t_glace_max=273.15 ! upper-bound temperature parameter for cloud phase determination 50 !$OMP THREADPRIVATE(t_glace_max) 51 52 REAL, SAVE :: exposant_glace=1.0 ! parameter for cloud phase determination 53 !$OMP THREADPRIVATE(exposant_glace) 54 55 INTEGER, SAVE :: iflag_vice=0 ! which expression for ice crystall fall velocity 56 !$OMP THREADPRIVATE(iflag_vice) 57 58 INTEGER, SAVE :: iflag_t_glace=0 ! which expression for cloud phase partitioning 59 !$OMP THREADPRIVATE(iflag_t_glace) 60 61 INTEGER, SAVE :: iflag_cloudth_vert=0 ! option for determining cloud fraction and content in convective boundary layers 62 !$OMP THREADPRIVATE(iflag_cloudth_vert) 63 64 INTEGER, SAVE :: iflag_gammasat=0 ! which threshold for homogeneous nucleation below -40oC 65 !$OMP THREADPRIVATE(iflag_gammasat) 66 67 INTEGER, SAVE :: iflag_rain_incloud_vol=0 ! use of volume cloud fraction for rain autoconversion 68 !$OMP THREADPRIVATE(iflag_rain_incloud_vol) 69 70 INTEGER, SAVE :: iflag_bergeron=0 ! bergeron effect for liquid precipitation treatment 71 !$OMP THREADPRIVATE(iflag_bergeron) 72 73 INTEGER, SAVE :: iflag_fisrtilp_qsat=0 ! qsat adjustment (iterative) during autoconversion 74 !$OMP THREADPRIVATE(iflag_fisrtilp_qsat) 75 76 INTEGER, SAVE :: iflag_pdf=0 ! type of subgrid scale qtot pdf 77 !$OMP THREADPRIVATE(iflag_pdf) 78 79 LOGICAL, SAVE :: reevap_ice=.false. ! no liquid precip for T< threshold 80 !$OMP THREADPRIVATE(reevap_ice) 81 82 REAL, SAVE :: cld_lc_lsc=2.6e-4 ! liquid autoconversion coefficient, stratiform rain 83 !$OMP THREADPRIVATE(cld_lc_lsc) 84 85 REAL, SAVE :: cld_lc_con=2.6e-4 ! liquid autoconversion coefficient, convective rain 86 !$OMP THREADPRIVATE(cld_lc_con) 87 88 REAL, SAVE :: cld_tau_lsc=3600. ! liquid autoconversion timescale, stratiform rain 89 !$OMP THREADPRIVATE(cld_tau_lsc) 90 91 REAL, SAVE :: cld_tau_con=3600. ! liquid autoconversion timescale, convective rain 92 !$OMP THREADPRIVATE(cld_tau_con) 93 94 REAL, SAVE :: ffallv_lsc=1. ! tuning coefficient crystal fall velocity, stratiform 95 !$OMP THREADPRIVATE(ffallv_lsc) 96 97 REAL, SAVE :: ffallv_con=1. ! tuning coefficient crystal fall velocity, convective 98 !$OMP THREADPRIVATE(ffallv_con) 99 100 REAL, SAVE :: coef_eva=2e-5 ! tuning coefficient liquid precip evaporation 101 !$OMP THREADPRIVATE(coef_eva) 102 103 REAL, SAVE :: coef_eva_i ! tuning coefficient ice precip sublimation 104 !$OMP THREADPRIVATE(coef_eva_i) 105 106 107 43 108 44 109 CONTAINS 45 110 46 SUBROUTINE lscp_ini(dtime,ok_ice_sursat) 111 SUBROUTINE lscp_ini(dtime,ok_ice_sursat, RCPD_in, RLSTT_in, RLVTT_in, RLMLT_in, & 112 RVTMP2_in, RTT_in,RD_in,RG_in) 47 113 48 114 … … 53 119 REAL, INTENT(IN) :: dtime 54 120 LOGICAL, INTENT(IN) :: ok_ice_sursat 121 122 REAL, INTENT(IN) :: RCPD_in, RLSTT_in, RLVTT_in, RLMLT_in 123 REAL, INTENT(IN) :: RVTMP2_in, RTT_in, RD_in, RG_in 124 125 126 RG=RG_in 127 RD=RD_in 128 RCPD=RCPD_in 129 RLVTT=RLVTT_in 130 RLSTT=RLSTT_in 131 RLMLT=RLMLT_in 132 RTT=RTT_in 133 RG=RG_in 134 RVTMP2=RVTMP2_in 135 136 55 137 56 138 CALL getin_p('ninter',ninter) … … 61 143 CALL getin_p('ok_radocond_snow',ok_radocond_snow) 62 144 CALL getin_p('ok_debug_autoconversion',ok_debug_autoconversion) 145 CALL getin_p('t_glace_max',t_glace_max) 146 CALL getin_p('t_glace_min',t_glace_min) 147 CALL getin_p('exposant_glace',exposant_glace) 148 CALL getin_p('iflag_vice',iflag_vice) 149 CALL getin_p('iflag_t_glace',iflag_t_glace) 150 CALL getin_p('iflag_cloudth_vert',iflag_cloudth_vert) 151 CALL getin_p('iflag_gammasat',iflag_gammasat) 152 CALL getin_p('iflag_rain_incloud_vol',iflag_rain_incloud_vol) 153 CALL getin_p('iflag_bergeron',iflag_bergeron) 154 CALL getin_p('iflag_fisrtilp_qsat',iflag_fisrtilp_qsat) 155 CALL getin_p('iflag_pdf',iflag_pdf) 156 CALL getin_p('reevap_ice',reevap_ice) 157 CALL getin_p('cld_lc_lsc',cld_lc_lsc) 158 CALL getin_p('cld_lc_con',cld_lc_con) 159 CALL getin_p('cld_tau_lsc',cld_tau_lsc) 160 CALL getin_p('cld_tau_con',cld_tau_con) 161 CALL getin_p('ffallv_lsc',ffallv_lsc) 162 CALL getin_p('ffallv_lsc',ffallv_con) 163 CALL getin_p('coef_eva',coef_eva) 164 coef_eva_i=coef_eva 165 CALL getin_p('coef_eva_i',coef_eva_i) 166 167 168 169 63 170 WRITE(lunout,*) 'lscp, ninter:', ninter 64 171 WRITE(lunout,*) 'lscp, iflag_evap_prec:', iflag_evap_prec … … 68 175 WRITE(lunout,*) 'lscp, ok_radocond_snow:', ok_radocond_snow 69 176 WRITE(lunout,*) 'lscp, ok_debug_autoconversion:', ok_debug_autoconversion 177 WRITE(lunout,*) 'lscp, t_glace_max:', t_glace_max 178 WRITE(lunout,*) 'lscp, t_glace_min:', t_glace_min 179 WRITE(lunout,*) 'lscp, exposant_glace:', exposant_glace 180 WRITE(lunout,*) 'lscp, iflag_vice:', iflag_vice 181 WRITE(lunout,*) 'lscp, iflag_t_glace:', iflag_t_glace 182 WRITE(lunout,*) 'lscp, iflag_cloudth_vert:', iflag_cloudth_vert 183 WRITE(lunout,*) 'lscp, iflag_gammasat:', iflag_gammasat 184 WRITE(lunout,*) 'lscp, iflag_rain_incloud_vol:', iflag_rain_incloud_vol 185 WRITE(lunout,*) 'lscp, iflag_bergeron:', iflag_bergeron 186 WRITE(lunout,*) 'lscp, iflag_fisrtilp_qsat:', iflag_fisrtilp_qsat 187 WRITE(lunout,*) 'lscp, iflag_pdf', iflag_pdf 188 WRITE(lunout,*) 'lscp, reevap_ice', reevap_ice 189 WRITE(lunout,*) 'lscp, cld_lc_lsc', cld_lc_lsc 190 WRITE(lunout,*) 'lscp, cld_lc_con', cld_lc_con 191 WRITE(lunout,*) 'lscp, cld_tau_lsc', cld_tau_lsc 192 WRITE(lunout,*) 'lscp, cld_tau_con', cld_tau_con 193 WRITE(lunout,*) 'lscp, ffallv_lsc', ffallv_lsc 194 WRITE(lunout,*) 'lscp, ffallv_con', ffallv_con 195 WRITE(lunout,*) 'lscp, coef_eva', coef_eva 196 WRITE(lunout,*) 'lscp, coef_eva_i', coef_eva_i 197 198 199 200 70 201 71 202 ! check for precipitation sub-time steps -
LMDZ6/trunk/libf/phylmd/lscp_mod.F90
r4530 r4535 95 95 USE lscp_ini_mod, ONLY : seuil_neb, ninter, iflag_evap_prec, t_coup, DDT0, ztfondue, rain_int_min 96 96 USE lscp_ini_mod, ONLY : iflag_mpc_bl, ok_radocond_snow, a_tr_sca, ok_debug_autoconversion 97 97 USE lscp_ini_mod, ONLY : iflag_cloudth_vert, iflag_rain_incloud_vol, iflag_t_glace, t_glace_min 98 USE lscp_ini_mod, ONLY : coef_eva, coef_eva_i,cld_tau_lsc, cld_tau_con, cld_lc_lsc, cld_lc_con 99 USE lscp_ini_mod, ONLY : iflag_bergeron, iflag_fisrtilp_qsat 100 USE lscp_ini_mod, ONLY : RCPD, RLSTT, RLVTT, RLMLT, RVTMP2, RTT, RD, RG 98 101 99 102 IMPLICIT NONE … … 102 105 ! VARIABLES DECLARATION 103 106 !=============================================================================== 104 105 include "YOMCST.h"106 include "YOETHF.h"107 include "fisrtilp.h"108 include "nuage.h"109 107 110 108 ! INPUT VARIABLES: … … 726 724 ! saturation may occur at a humidity different from qsat (gamma qsat), so gamma correction for dqs 727 725 zdqs(:) = gammasat(:)*zdqs(:)+zqs(:)*dgammasatdt(:) 728 CALL icefrac_lscp(klon, zt(:), pplay(:,k)/paprs(:,1),zfice(:),dzfice(:))726 CALL icefrac_lscp(klon, zt(:), iflag_ice_thermo, pplay(:,k)/paprs(:,1),zfice(:),dzfice(:)) 729 727 730 728 DO i=1,klon !todoan : check if loop in i is needed … … 821 819 822 820 ! Partition function in stratiform clouds (will be overwritten in boundary-layer MPCs) 823 CALL icefrac_lscp(klon,zt(:), pplay(:,k)/paprs(:,1),zfice(:), dzfice(:))821 CALL icefrac_lscp(klon,zt(:),iflag_ice_thermo,pplay(:,k)/paprs(:,1),zfice(:), dzfice(:)) 824 822 825 823 DO i=1, klon -
LMDZ6/trunk/libf/phylmd/lscp_tools_mod.F90
r4072 r4535 16 16 ! 3212–3234. https://doi.org/10.1029/2019MS001642 17 17 18 19 IMPLICIT NONE 20 21 INCLUDE "nuage.h" 22 INCLUDE "fisrtilp.h" 18 use lscp_ini_mod, only: iflag_vice, ffallv_con, ffallv_lsc 19 20 IMPLICIT NONE 23 21 24 22 INTEGER, INTENT(IN) :: klon … … 109 107 110 108 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 111 SUBROUTINE ICEFRAC_LSCP(klon, temp, sig, icefrac, dicefracdT)109 SUBROUTINE ICEFRAC_LSCP(klon, temp, iflag_ice_thermo, sig, icefrac, dicefracdT) 112 110 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 113 111 … … 120 118 121 119 USE print_control_mod, ONLY: lunout, prt_level 122 123 IMPLICIT NONE 124 125 126 INCLUDE "YOMCST.h" 127 INCLUDE "nuage.h" 128 INCLUDE "clesphys.h" 129 130 131 ! nuage.h contains: 132 ! t_glace_min: if T < Tmin, the cloud is only made of water ice 133 ! t_glace_max: if T > Tmax, the cloud is only made of liquid water 134 ! exposant_glace: controls the sharpness of the transition 120 USE lscp_ini_mod, ONLY: t_glace_min, t_glace_max, exposant_glace, iflag_t_glace 121 USE lscp_ini_mod, ONLY : RTT 122 123 IMPLICIT NONE 124 135 125 136 126 INTEGER, INTENT(IN) :: klon ! number of horizontal grid points 137 127 REAL, INTENT(IN), DIMENSION(klon) :: temp ! temperature 138 128 REAL, INTENT(IN), DIMENSION(klon) :: sig 129 INTEGER, INTENT(IN) :: iflag_ice_thermo 139 130 REAL, INTENT(OUT), DIMENSION(klon) :: icefrac 140 131 REAL, INTENT(OUT), DIMENSION(klon) :: dicefracdT … … 276 267 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 277 268 278 279 IMPLICIT NONE 280 281 include "YOMCST.h" 282 include "YOETHF.h" 283 include "FCTTRE.h" 284 include "nuage.h" 269 use lscp_ini_mod, only: iflag_gammasat, t_glace_min, RTT 270 271 IMPLICIT NONE 272 285 273 286 274 INTEGER, INTENT(IN) :: klon ! number of horizontal grid points -
LMDZ6/trunk/libf/phylmd/newmicro.F90
r4119 r4535 12 12 USE phys_state_var_mod, ONLY: rnebcon, clwcon 13 13 USE icefrac_lsc_mod ! computes ice fraction (JBM 3/14) 14 USE lscp_ini_mod, only: iflag_t_glace 14 15 USE ioipsl_getin_p_mod, ONLY : getin_p 15 16 USE print_control_mod, ONLY: lunout … … 241 242 242 243 IF (ok_new_lscp) THEN 243 CALL icefrac_lscp(klon,t(:,k), pplay(:,k)/paprs(:,1),zfice(:,k),dzfice(:,k))244 CALL icefrac_lscp(klon,t(:,k),iflag_ice_thermo,pplay(:,k)/paprs(:,1),zfice(:,k),dzfice(:,k)) 244 245 ELSE 245 246 CALL icefrac_lsc(klon,t(:,k),pplay(:,k)/paprs(:,1),zfice(:,k)) -
LMDZ6/trunk/libf/phylmd/nuage.F90
r3999 r4535 7 7 USE lscp_tools_mod, only: icefrac_lscp 8 8 USE icefrac_lsc_mod ! computes ice fraction (JBM 3/14) 9 USE lscp_ini_mod, only : iflag_t_glace 9 10 USE phys_local_var_mod, ONLY: ptconv 10 11 IMPLICIT NONE … … 112 113 ! t_glace_max, exposant_glace) 113 114 IF (ok_new_lscp) THEN 114 CALL icefrac_lscp(klon,t(:,k), pplay(:,k)/paprs(:,1),zfice(:),dzfice(:))115 CALL icefrac_lscp(klon,t(:,k),iflag_ice_thermo,pplay(:,k)/paprs(:,1),zfice(:),dzfice(:)) 115 116 ELSE 116 117 CALL icefrac_lsc(klon,t(:,k),pplay(:,k)/paprs(:,1),zfice(:)) -
LMDZ6/trunk/libf/phylmd/nuage.h
r4380 r4535 2 2 ! $Id$ 3 3 ! 4 REAL rad_froid, rad_chau1, rad_chau2, t_glace_max, t_glace_min 5 REAL exposant_glace 4 REAL rad_froid, rad_chau1, rad_chau2 6 5 REAL rei_min,rei_max 7 6 REAL tau_cld_cv,coefw_cld_cv 8 9 7 REAL tmax_fonte_cv 10 11 INTEGER iflag_t_glace, iflag_cloudth_vert, iflag_cld_cv 12 INTEGER iflag_rain_incloud_vol 13 14 INTEGER iflag_gammasat, iflag_vice, iflag_rei 8 INTEGER iflag_cld_cv 9 INTEGER iflag_rei 15 10 LOGICAL ok_icefra_lscp 16 11 17 common /nuagecom/ rad_froid,rad_chau1, rad_chau2, t_glace_max,&18 & t_glace_min,exposant_glace,rei_min,rei_max,&12 common /nuagecom/ rad_froid,rad_chau1, rad_chau2, & 13 & rei_min,rei_max, & 19 14 & tau_cld_cv,coefw_cld_cv, & 20 15 & tmax_fonte_cv, & 21 & iflag_t_glace,iflag_cloudth_vert,iflag_cld_cv, & 22 & iflag_rain_incloud_vol, & 23 & ok_icefra_lscp, & 24 & iflag_gammasat, iflag_vice, & 16 & iflag_cld_cv, & 17 & ok_icefra_lscp, & 25 18 & iflag_rei 26 19 !$OMP THREADPRIVATE(/nuagecom/) -
LMDZ6/trunk/libf/phylmd/physiq_mod.F90
r4530 r4535 1148 1148 !IM 100106 BEG : pouvoir sortir les ctes de la physique 1149 1149 include "conema3.h" 1150 include "fisrtilp.h"1151 1150 include "nuage.h" 1152 1151 include "compbl.h" … … 1766 1765 CALL thermcell_ini(iflag_thermals,prt_level,tau_thermals,lunout, & 1767 1766 & RG,RD,RCPD,RKAPPA,RLVTT,RETV) 1768 IF (ok_new_lscp) then 1769 CALL lscp_ini(pdtphys,ok_ice_sursat) 1770 endif 1767 CALL lscp_ini(pdtphys,ok_ice_sursat, RCPD, RLSTT, RLVTT, RLMLT, RVTMP2, RTT,RD,RG) 1771 1768 CALL blowing_snow_ini(prt_level,lunout, & 1772 1769 RCPD, RLSTT, RLVTT, RLMLT, & -
LMDZ6/trunk/libf/phylmdiso/fisrtilp.F90
r4491 r4535 26 26 ! flag to include modifications to ensure energy conservation (if flag >0) 27 27 USE add_phys_tend_mod, only : fl_cor_ebil 28 USE lscp_ini_mod, ONLY: iflag_t_glace,t_glace_min, t_glace_max, exposant_glace 29 USE lscp_ini_mod, ONLY: iflag_cloudth_vert, iflag_rain_incloud_vol 30 USE lscp_ini_mod, ONLY: coef_eva, coef_eva_i, ffallv_lsc, ffallv_con 31 USE lscp_ini_mod, ONLY: cld_tau_lsc, cld_tau_con, cld_lc_lsc, cld_lc_con 32 USE lscp_ini_mod, ONLY: reevap_ice, iflag_bergeron, iflag_fisrtilp_qsat, iflag_pdf 33 34 35 28 36 #ifdef ISO 29 37 USE infotrac_phy, ONLY: ntraciso=>ntiso,niso,itZonIso … … 82 90 !====================================================================== 83 91 include "YOMCST.h" 84 include "fisrtilp.h"85 include "nuage.h" ! JBM (3/14)86 87 92 ! 88 93 ! Principaux inputs: -
LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90
r4530 r4535 1909 1909 CALL thermcell_ini(iflag_thermals,prt_level,tau_thermals,lunout, & 1910 1910 & RG,RD,RCPD,RKAPPA,RLVTT,RETV) 1911 IF (ok_new_lscp) then 1912 CALL lscp_ini(pdtphys,ok_ice_sursat) 1913 endif 1911 CALL lscp_ini(pdtphys,ok_ice_sursat,RCPD, RLSTT, RLVTT, RLMLT, RVTMP2, RTT,RD,RG) 1914 1912 CALL blowing_snow_ini(prt_level,lunout, & 1915 1913 RCPD, RLSTT, RLVTT, RLMLT, &
Note: See TracChangeset
for help on using the changeset viewer.