diff --git a/docs/TODO b/docs/TODO index e54e32fb486bb3bcae760c4c5452ab0d4d3448dd..0faeb9d6f7a2dcd844e1510bc2c67ac44429cbff 100644 --- a/docs/TODO +++ b/docs/TODO @@ -24,8 +24,6 @@ Merge pb: - shallow_mf (appels dans aro_shallow et arp_shallow): Dans Méso-NH: shallow_mf doit être appelé avec PDX=XDXHAT(1) et PDY=XDYHAT(1) Dans AROME/ARP: où trouver la taille de maille? - Pour l'instant 2 versions à cause de l'interface à compute_uprfat_rhcj10 -- compute_updraft_rhcj10: en attente retour de Rachel et/ou Yves pour faire le merge Etape 2: array syntax -> loop - en profiter pour supprimer args PA/PB des routines appelées depuis ice4_tendencies, comme pour nucleation diff --git a/src/arome/chem/module/modd_aunifacparam.mod b/src/arome/chem/module/modd_aunifacparam.mod deleted file mode 100644 index 91bcad93f116f7c72f3176c9fab70a92ac2cf64a..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modd_aunifacparam.mod and /dev/null differ diff --git a/src/arome/chem/module/modd_binsolu.mod b/src/arome/chem/module/modd_binsolu.mod deleted file mode 100644 index cf7e6d5ec4f9dbdaf450c64242385d5d158d3522..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modd_binsolu.mod and /dev/null differ diff --git a/src/arome/chem/module/modd_bunifacparam.mod b/src/arome/chem/module/modd_bunifacparam.mod deleted file mode 100644 index 5dc14f24e3cf4c94fc5ed24755911c05be73bd10..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modd_bunifacparam.mod and /dev/null differ diff --git a/src/arome/chem/module/modd_ch_aero_n.mod b/src/arome/chem/module/modd_ch_aero_n.mod deleted file mode 100644 index 0813d91e137dae6c70c176b52aed976d45062c08..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modd_ch_aero_n.mod and /dev/null differ diff --git a/src/arome/chem/module/modd_ch_aerosol.mod b/src/arome/chem/module/modd_ch_aerosol.mod deleted file mode 100644 index 0a5f2c72614e68928e38d0e950a74456ebfead27..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modd_ch_aerosol.mod and /dev/null differ diff --git a/src/arome/chem/module/modd_ch_aerosol0d.mod b/src/arome/chem/module/modd_ch_aerosol0d.mod deleted file mode 100644 index 6819f122293aa5e748ffe54f80edf052f7df1a27..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modd_ch_aerosol0d.mod and /dev/null differ diff --git a/src/arome/chem/module/modd_ch_const.mod b/src/arome/chem/module/modd_ch_const.mod deleted file mode 100644 index 996e9fce64a37793ff29a936320d8e4ecff9e7ad..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modd_ch_const.mod and /dev/null differ diff --git a/src/arome/chem/module/modd_ch_dep_n.mod b/src/arome/chem/module/modd_ch_dep_n.mod deleted file mode 100644 index 800bd7ac4f8cf8e77b9702ea7aaf580f84385f77..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modd_ch_dep_n.mod and /dev/null differ diff --git a/src/arome/chem/module/modd_ch_init_jvalues.mod b/src/arome/chem/module/modd_ch_init_jvalues.mod deleted file mode 100644 index ac08d73b31794782780d0e8d8a77cbd9b6c59b05..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modd_ch_init_jvalues.mod and /dev/null differ diff --git a/src/arome/chem/module/modd_ch_jvalues_n.mod b/src/arome/chem/module/modd_ch_jvalues_n.mod deleted file mode 100644 index fe1e7e4e80906c646745c8a65fc18515c07663ae..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modd_ch_jvalues_n.mod and /dev/null differ diff --git a/src/arome/chem/module/modd_ch_m9.mod b/src/arome/chem/module/modd_ch_m9.mod deleted file mode 100644 index 6beb1980e96a2c90812a1b4e807c6909d8077da8..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modd_ch_m9.mod and /dev/null differ diff --git a/src/arome/chem/module/modd_ch_m9_scheme.mod b/src/arome/chem/module/modd_ch_m9_scheme.mod deleted file mode 100644 index d86d6d56bf6055bf9a07795ac36fd887dc449b0b..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modd_ch_m9_scheme.mod and /dev/null differ diff --git a/src/arome/chem/module/modd_ch_meteo.mod b/src/arome/chem/module/modd_ch_meteo.mod deleted file mode 100644 index f391f1a26fc0023ef26fffac6847fe2dcbe50616..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modd_ch_meteo.mod and /dev/null differ diff --git a/src/arome/chem/module/modd_ch_mnhc_n.mod b/src/arome/chem/module/modd_ch_mnhc_n.mod deleted file mode 100644 index 79f37d408ace81078fe75db7316c80ef81112eec..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modd_ch_mnhc_n.mod and /dev/null differ diff --git a/src/arome/chem/module/modd_ch_model0d.mod b/src/arome/chem/module/modd_ch_model0d.mod deleted file mode 100644 index 2e0ab963078698286e20ec714547f0eee2e7d6dd..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modd_ch_model0d.mod and /dev/null differ diff --git a/src/arome/chem/module/modd_ch_solver_n.mod b/src/arome/chem/module/modd_ch_solver_n.mod deleted file mode 100644 index 39473590903381317f1c2c9412e3322444c9e7b1..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modd_ch_solver_n.mod and /dev/null differ diff --git a/src/arome/chem/module/modd_csts_dust.mod b/src/arome/chem/module/modd_csts_dust.mod deleted file mode 100644 index 291816dd2967784448803091674dc91c73446846..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modd_csts_dust.mod and /dev/null differ diff --git a/src/arome/chem/module/modd_csts_salt.mod b/src/arome/chem/module/modd_csts_salt.mod deleted file mode 100644 index 4970439510922d5568e23727c37511a255ce8489..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modd_csts_salt.mod and /dev/null differ diff --git a/src/arome/chem/module/modd_dust.mod b/src/arome/chem/module/modd_dust.mod deleted file mode 100644 index 15da824a3952e1cbe50ca5ec3c2440687e9a5fb8..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modd_dust.mod and /dev/null differ diff --git a/src/arome/chem/module/modd_dust_opt_lkt.mod b/src/arome/chem/module/modd_dust_opt_lkt.mod deleted file mode 100644 index fe09dc6407fe9d00546999aad9371c0e947fa6d3..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modd_dust_opt_lkt.mod and /dev/null differ diff --git a/src/arome/chem/module/modd_glo.mod b/src/arome/chem/module/modd_glo.mod deleted file mode 100644 index ff3649c8c85a46a45cbc231a50d675c1e413cc65..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modd_glo.mod and /dev/null differ diff --git a/src/arome/chem/module/modd_indref_aer.mod b/src/arome/chem/module/modd_indref_aer.mod deleted file mode 100644 index 53e4bbe87942389d089b0bd02cd8c63fc0011aae..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modd_indref_aer.mod and /dev/null differ diff --git a/src/arome/chem/module/modd_parameters_dep.mod b/src/arome/chem/module/modd_parameters_dep.mod deleted file mode 100644 index c203a8024ecc0d7a422376c6f1cde7ac5936229a..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modd_parameters_dep.mod and /dev/null differ diff --git a/src/arome/chem/module/modd_salt.mod b/src/arome/chem/module/modd_salt.mod deleted file mode 100644 index e135212ab7b61121f52f2fa333028c5dfebf4747..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modd_salt.mod and /dev/null differ diff --git a/src/arome/chem/module/modd_sub_ch_field_value_n.mod b/src/arome/chem/module/modd_sub_ch_field_value_n.mod deleted file mode 100644 index 9e5911147c386512e3962fecebd4644e876bad7c..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modd_sub_ch_field_value_n.mod and /dev/null differ diff --git a/src/arome/chem/module/modd_sub_ch_monitor_n.mod b/src/arome/chem/module/modd_sub_ch_monitor_n.mod deleted file mode 100644 index 3b67ab4cd3557d1746d749ad9131a25ca0b09882..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modd_sub_ch_monitor_n.mod and /dev/null differ diff --git a/src/arome/chem/module/modd_unifacparam.mod b/src/arome/chem/module/modd_unifacparam.mod deleted file mode 100644 index 37636401e0a6d1d16a67f5cb0ba9727d5ae54b52..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modd_unifacparam.mod and /dev/null differ diff --git a/src/arome/chem/module/modd_wet_dep_descr.mod b/src/arome/chem/module/modd_wet_dep_descr.mod deleted file mode 100644 index 9bc5d995b774bbd24bae2af612873861bf949a81..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modd_wet_dep_descr.mod and /dev/null differ diff --git a/src/arome/chem/module/modd_wet_dep_param.mod b/src/arome/chem/module/modd_wet_dep_param.mod deleted file mode 100644 index 3171763c87b386adb4fd76f26fe6a48090a76c62..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modd_wet_dep_param.mod and /dev/null differ diff --git a/src/arome/chem/module/mode_aero_psd.mod b/src/arome/chem/module/mode_aero_psd.mod deleted file mode 100644 index 6c8106f380af935645bcd3eebfe98ead3ac5d146..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/mode_aero_psd.mod and /dev/null differ diff --git a/src/arome/chem/module/mode_amain.mod b/src/arome/chem/module/mode_amain.mod deleted file mode 100644 index 1ace17cccbeab5c23d9f2fb1f7cab6882580368c..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/mode_amain.mod and /dev/null differ diff --git a/src/arome/chem/module/mode_bmain.mod b/src/arome/chem/module/mode_bmain.mod deleted file mode 100644 index 5a235fa6bb20a7ab76806fd82b7e5ee6d37b28c9..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/mode_bmain.mod and /dev/null differ diff --git a/src/arome/chem/module/mode_dust_psd.mod b/src/arome/chem/module/mode_dust_psd.mod deleted file mode 100644 index 826323fc409381a08c60da7249077bd806365d42..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/mode_dust_psd.mod and /dev/null differ diff --git a/src/arome/chem/module/mode_dustopt.mod b/src/arome/chem/module/mode_dustopt.mod deleted file mode 100644 index e9f16d7d4db9b7cd7a7927ef2473d18a8e8fb27b..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/mode_dustopt.mod and /dev/null differ diff --git a/src/arome/chem/module/mode_firstguess.mod b/src/arome/chem/module/mode_firstguess.mod deleted file mode 100644 index 5ad3ee332dfb119fe4bc802f3874198d3758c3d7..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/mode_firstguess.mod and /dev/null differ diff --git a/src/arome/chem/module/mode_modeln_handler.mod b/src/arome/chem/module/mode_modeln_handler.mod deleted file mode 100644 index 50307289393c97ea286dbe74b245f9b667861551..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/mode_modeln_handler.mod and /dev/null differ diff --git a/src/arome/chem/module/mode_oamain.mod b/src/arome/chem/module/mode_oamain.mod deleted file mode 100644 index a45f7339c96d486dbb6b8bd7d5dd54b12c3b4544..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/mode_oamain.mod and /dev/null differ diff --git a/src/arome/chem/module/mode_salt_psd.mod b/src/arome/chem/module/mode_salt_psd.mod deleted file mode 100644 index 3e980bfb6b7b0d90ede8df147d65913c691bb645..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/mode_salt_psd.mod and /dev/null differ diff --git a/src/arome/chem/module/mode_soaeql.mod b/src/arome/chem/module/mode_soaeql.mod deleted file mode 100644 index f6bd5948e399074086e2af812d296a68b5915153..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/mode_soaeql.mod and /dev/null differ diff --git a/src/arome/chem/module/mode_soaeqlutl.mod b/src/arome/chem/module/mode_soaeqlutl.mod deleted file mode 100644 index 623551d81cb33fe0a62b29d3e729c3738a8e952d..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/mode_soaeqlutl.mod and /dev/null differ diff --git a/src/arome/chem/module/mode_soatinit.mod b/src/arome/chem/module/mode_soatinit.mod deleted file mode 100644 index 505cc8222c7169c9d4926b2ff0a9b33d439dd233..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/mode_soatinit.mod and /dev/null differ diff --git a/src/arome/chem/module/mode_typea.mod b/src/arome/chem/module/mode_typea.mod deleted file mode 100644 index 32308a2552723c5cb65e9c27897ada9bad91b96d..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/mode_typea.mod and /dev/null differ diff --git a/src/arome/chem/module/mode_typeb.mod b/src/arome/chem/module/mode_typeb.mod deleted file mode 100644 index e9b19ebf24885ca23ffd8762e669119155c38bb2..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/mode_typeb.mod and /dev/null differ diff --git a/src/arome/chem/module/mode_unifac.mod b/src/arome/chem/module/mode_unifac.mod deleted file mode 100644 index 44a02182c438cdb32d1d7776656779c8dbb094c2..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/mode_unifac.mod and /dev/null differ diff --git a/src/arome/chem/module/mode_zsrpun.mod b/src/arome/chem/module/mode_zsrpun.mod deleted file mode 100644 index 29f61e633787fcbb39f2e5c9f7d1f0705ec2c1ae..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/mode_zsrpun.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_aer_effic.mod b/src/arome/chem/module/modi_aer_effic.mod deleted file mode 100644 index d3f0017fe290932ae8dad22a2bdd3e32b48c3844..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_aer_effic.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_aer_effic_dep.mod b/src/arome/chem/module/modi_aer_effic_dep.mod deleted file mode 100644 index e89e59a68a6ad9a9cabf29d1ee17cbf0eef90ad6..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_aer_effic_dep.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_aer_velgrav.mod b/src/arome/chem/module/modi_aer_velgrav.mod deleted file mode 100644 index fe656a00fcb06f605889c6966e9fc8cefc28d749..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_aer_velgrav.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_aer_wet_dep.mod b/src/arome/chem/module/modi_aer_wet_dep.mod deleted file mode 100644 index 4586c848026ec93d702803caf7cd788e484bec78..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_aer_wet_dep.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_aer_wet_dep_kmt_warm.mod b/src/arome/chem/module/modi_aer_wet_dep_kmt_warm.mod deleted file mode 100644 index 2b91bfb67fcf8e64d8156fa659b92afb4a500356..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_aer_wet_dep_kmt_warm.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_aer_coag.mod b/src/arome/chem/module/modi_ch_aer_coag.mod deleted file mode 100644 index ea62bd33d3daa631031c7f97e6abc8a7bfe60b98..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_aer_coag.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_aer_driver.mod b/src/arome/chem/module/modi_ch_aer_driver.mod deleted file mode 100644 index 05e8b036bf71d8f43536e74d5b87b6c781fed080..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_aer_driver.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_aer_eqm_cormass.mod b/src/arome/chem/module/modi_ch_aer_eqm_cormass.mod deleted file mode 100644 index 9fdff192aa7545fb058b771a674fb29c9cb68b72..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_aer_eqm_cormass.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_aer_eqm_init0d.mod b/src/arome/chem/module/modi_ch_aer_eqm_init0d.mod deleted file mode 100644 index 0283abd11af281d8ee2e44a3cd5ce083e89b826d..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_aer_eqm_init0d.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_aer_eqm_init_n.mod b/src/arome/chem/module/modi_ch_aer_eqm_init_n.mod deleted file mode 100644 index 69bcd73109385e9cdbb49b75df5ed1d3070e35e8..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_aer_eqm_init_n.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_aer_eqsam.mod b/src/arome/chem/module/modi_ch_aer_eqsam.mod deleted file mode 100644 index bc95d986a0545d9d9477f927030f610e504d313b..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_aer_eqsam.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_aer_growth.mod b/src/arome/chem/module/modi_ch_aer_growth.mod deleted file mode 100644 index bf894def4039a921e0dd9ae8b4709c72aab655a8..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_aer_growth.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_aer_init.mod b/src/arome/chem/module/modi_ch_aer_init.mod deleted file mode 100644 index ed2b0ddbe12a8ad0a656367ed77550c998bc4fbc..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_aer_init.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_aer_init_soa.mod b/src/arome/chem/module/modi_ch_aer_init_soa.mod deleted file mode 100644 index 5eee0233bdd4df963a41c3c6f4b5767c172da64d..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_aer_init_soa.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_aer_intermin.mod b/src/arome/chem/module/modi_ch_aer_intermin.mod deleted file mode 100644 index 51f25ea7aadaf1d0084dbddd99cca9e79260def8..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_aer_intermin.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_aer_mineral.mod b/src/arome/chem/module/modi_ch_aer_mineral.mod deleted file mode 100644 index 4c5208ba7f7a6e6bc6be36fd5a200ec9cc6f3c66..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_aer_mineral.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_aer_mod_init.mod b/src/arome/chem/module/modi_ch_aer_mod_init.mod deleted file mode 100644 index 7d99a34633e1559dfd3359c10d816a4e1ffb87d0..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_aer_mod_init.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_aer_mpmpo.mod b/src/arome/chem/module/modi_ch_aer_mpmpo.mod deleted file mode 100644 index 4d0a0c5ce8ac4b4cc7769d30acca9ef72d880da1..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_aer_mpmpo.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_aer_nucl.mod b/src/arome/chem/module/modi_ch_aer_nucl.mod deleted file mode 100644 index 2cdef9236cfa56c309f83dfd9d40f825b5d8cba9..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_aer_nucl.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_aer_organic.mod b/src/arome/chem/module/modi_ch_aer_organic.mod deleted file mode 100644 index 93913aa512d3ac6871648f091b23abb280425fd8..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_aer_organic.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_aer_pun.mod b/src/arome/chem/module/modi_ch_aer_pun.mod deleted file mode 100644 index e497ad07abb1e1f7e814849f8f91763ffdc45bbf..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_aer_pun.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_aer_reallfi_n.mod b/src/arome/chem/module/modi_ch_aer_reallfi_n.mod deleted file mode 100644 index 5d647c7f0bd271c10f7dcfb124b577ac3652f061..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_aer_reallfi_n.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_aer_sedim_n.mod b/src/arome/chem/module/modi_ch_aer_sedim_n.mod deleted file mode 100644 index b322e955353c5fbbb579666375612a556d3d74bd..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_aer_sedim_n.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_aer_solv.mod b/src/arome/chem/module/modi_ch_aer_solv.mod deleted file mode 100644 index 739056625de509880f44c782712bbf4ec7ba1f2e..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_aer_solv.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_aer_surf.mod b/src/arome/chem/module/modi_ch_aer_surf.mod deleted file mode 100644 index 2d8a91d1ed53537ebba477d16741e76c67fb4145..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_aer_surf.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_aer_thermo.mod b/src/arome/chem/module/modi_ch_aer_thermo.mod deleted file mode 100644 index e7af9e7dd4c227828a5d2cd09ba36723a0c9fd65..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_aer_thermo.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_aer_trans.mod b/src/arome/chem/module/modi_ch_aer_trans.mod deleted file mode 100644 index be3dad19e48d55a3a602ba43845bb2c8a55c7eff..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_aer_trans.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_aer_velgrav_n.mod b/src/arome/chem/module/modi_ch_aer_velgrav_n.mod deleted file mode 100644 index 38f33f3fe0eb3cce7a93b78334e85a658dfc2942..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_aer_velgrav_n.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_allocate_taccs.mod b/src/arome/chem/module/modi_ch_allocate_taccs.mod deleted file mode 100644 index 7ddd9dbfeaedb645b049bd6e879b31d736af7a58..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_allocate_taccs.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_aqua.mod b/src/arome/chem/module/modi_ch_aqua.mod deleted file mode 100644 index 94da6bd5c580cc0aa06287521e60bfa0ebbad57d..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_aqua.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_ares.mod b/src/arome/chem/module/modi_ch_ares.mod deleted file mode 100644 index 4c3a6d5843d1dfdc32f50c3900840d7d5c45397e..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_ares.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_boundaries.mod b/src/arome/chem/module/modi_ch_boundaries.mod deleted file mode 100644 index 12f4bc83e66d49f0df13561af12cd4a934ac1b6a..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_boundaries.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_convect_linox.mod b/src/arome/chem/module/modi_ch_convect_linox.mod deleted file mode 100644 index 4444edc73b747edc3d11e6ba5f429fcf5b205e1f..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_convect_linox.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_cranck.mod b/src/arome/chem/module/modi_ch_cranck.mod deleted file mode 100644 index 5533c10da36a24c2bbbe81814c02a80dc93fedf2..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_cranck.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_deallocate_taccs.mod b/src/arome/chem/module/modi_ch_deallocate_taccs.mod deleted file mode 100644 index bd0e88397300f24a76a0e7f082b9b292d82efe68..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_deallocate_taccs.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_diagnostics.mod b/src/arome/chem/module/modi_ch_diagnostics.mod deleted file mode 100644 index 7da13a5c7eed2ff9f134292bc857312b342607a0..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_diagnostics.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_emission_flux0d.mod b/src/arome/chem/module/modi_ch_emission_flux0d.mod deleted file mode 100644 index 7fcad6a90dd10b120780d8f27c8e9b845d21fc42..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_emission_flux0d.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_exqssa.mod b/src/arome/chem/module/modi_ch_exqssa.mod deleted file mode 100644 index c18f771e6de0992bdd39fd1ef0231364ba85c81e..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_exqssa.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_fcn.mod b/src/arome/chem/module/modi_ch_fcn.mod deleted file mode 100644 index 71fc1a791fbc88ba747511c24350ae62582b1730..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_fcn.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_field_value_n.mod b/src/arome/chem/module/modi_ch_field_value_n.mod deleted file mode 100644 index 4418ba844a3cbbbd285efb81c565c99c875cb578..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_field_value_n.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_gauss.mod b/src/arome/chem/module/modi_ch_gauss.mod deleted file mode 100644 index ce113c0b5f261fa338226223f6fd91222db85954..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_gauss.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_get_cnames.mod b/src/arome/chem/module/modi_ch_get_cnames.mod deleted file mode 100644 index 75192f28c2b5f3de554b1244b22ee9101526513c..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_get_cnames.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_get_rates.mod b/src/arome/chem/module/modi_ch_get_rates.mod deleted file mode 100644 index 77cf308dea90d32e9e22e9246734b22a9ae1497b..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_get_rates.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_ini_orilam.mod b/src/arome/chem/module/modi_ch_ini_orilam.mod deleted file mode 100644 index 2e93f1f007c75ddf9b4b481f0ec6b22e0231f14b..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_ini_orilam.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_init_ccs.mod b/src/arome/chem/module/modi_ch_init_ccs.mod deleted file mode 100644 index eee7db5ac9e4eb9cea7863b62fcac00d2d7c57cc..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_init_ccs.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_init_const_n.mod b/src/arome/chem/module/modi_ch_init_const_n.mod deleted file mode 100644 index 63aeedbe9b0b60556b6f19b72e8465de450b6e4e..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_init_const_n.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_init_jvalues.mod b/src/arome/chem/module/modi_ch_init_jvalues.mod deleted file mode 100644 index 69d9cc01876e5eb4a11348fd6adab4086ec8a6be..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_init_jvalues.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_init_meteo.mod b/src/arome/chem/module/modi_ch_init_meteo.mod deleted file mode 100644 index a556290d3f58e41050817386b0b9b5a4bd677e7a..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_init_meteo.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_init_model0d.mod b/src/arome/chem/module/modi_ch_init_model0d.mod deleted file mode 100644 index 0f81fcd449ba704532bc6824837cece36a5107d2..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_init_model0d.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_init_output.mod b/src/arome/chem/module/modi_ch_init_output.mod deleted file mode 100644 index 553aca39fb45e03e746bf0be287b692715a1dea0..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_init_output.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_init_scheme.mod b/src/arome/chem/module/modi_ch_init_scheme.mod deleted file mode 100644 index 339dbcfc7e191d7c0a563ac67b5cbe2ac1450b91..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_init_scheme.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_interp_jvalues.mod b/src/arome/chem/module/modi_ch_interp_jvalues.mod deleted file mode 100644 index bb6318e864a135cb0c789311456b9a6596e23768..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_interp_jvalues.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_interp_jvalues_n.mod b/src/arome/chem/module/modi_ch_interp_jvalues_n.mod deleted file mode 100644 index 1cd44c64b1acc204876be182af8ecec80271714c..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_interp_jvalues_n.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_isoropia.mod b/src/arome/chem/module/modi_ch_isoropia.mod deleted file mode 100644 index 1ace36110db0b6a803167db58733b13af5688706..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_isoropia.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_jac.mod b/src/arome/chem/module/modi_ch_jac.mod deleted file mode 100644 index 6db0180bf568e37b5eee34b44df04f305c9e86cc..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_jac.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_jvalues_clouds.mod b/src/arome/chem/module/modi_ch_jvalues_clouds.mod deleted file mode 100644 index be9b9ab7a27789971bad14e57174c72e2f153c40..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_jvalues_clouds.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_jvalues_clouds_n.mod b/src/arome/chem/module/modi_ch_jvalues_clouds_n.mod deleted file mode 100644 index 7ea0c37a7783779e60ea6603197b436d55bc86cf..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_jvalues_clouds_n.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_jvalues_n.mod b/src/arome/chem/module/modi_ch_jvalues_n.mod deleted file mode 100644 index 579acc1a4443d945754fd0eea1f9c5a0403ca53c..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_jvalues_n.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_linssa.mod b/src/arome/chem/module/modi_ch_linssa.mod deleted file mode 100644 index 701c4473c84fb9059930a101e44455499ec7d376..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_linssa.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_meteo_trans.mod b/src/arome/chem/module/modi_ch_meteo_trans.mod deleted file mode 100644 index 2c18d3797868d4647fe83a10e245cfa3e817755c..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_meteo_trans.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_monitor_n.mod b/src/arome/chem/module/modi_ch_monitor_n.mod deleted file mode 100644 index b0e62a9a8cad0b21da3673188e85348399d15fe7..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_monitor_n.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_nnares.mod b/src/arome/chem/module/modi_ch_nnares.mod deleted file mode 100644 index c0534a9a2520278b8e0cadb850dac72fb079a563..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_nnares.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_nonzeroterms.mod b/src/arome/chem/module/modi_ch_nonzeroterms.mod deleted file mode 100644 index 0ee3b366f14c90bf533a2789b25c41d4ed044d2c..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_nonzeroterms.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_open_input.mod b/src/arome/chem/module/modi_ch_open_input.mod deleted file mode 100644 index b7a8881f092a49a9aa54b1f89418a888be95de3b..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_open_input.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_orilam.mod b/src/arome/chem/module/modi_ch_orilam.mod deleted file mode 100644 index c9ff79c4a9e343bfc686288e2372ce5439e82f74..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_orilam.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_output.mod b/src/arome/chem/module/modi_ch_output.mod deleted file mode 100644 index ae1a294a0fe5442f523148995a5b954f4268ffac..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_output.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_prodloss.mod b/src/arome/chem/module/modi_ch_prodloss.mod deleted file mode 100644 index 70a8c95fdd69f7d18352644dc7a53f4912ccc11d..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_prodloss.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_qssa.mod b/src/arome/chem/module/modi_ch_qssa.mod deleted file mode 100644 index aa23a99fe73724eba33f5e50bb1a7aa0c930077e..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_qssa.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_read_chem.mod b/src/arome/chem/module/modi_ch_read_chem.mod deleted file mode 100644 index e7b426c0d21d719b3d997fd15f00995d0eb1830b..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_read_chem.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_read_meteo.mod b/src/arome/chem/module/modi_ch_read_meteo.mod deleted file mode 100644 index f78e7a3ae8cc0485f6a9cf79b7ee6837d5decfaf..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_read_meteo.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_read_vector.mod b/src/arome/chem/module/modi_ch_read_vector.mod deleted file mode 100644 index d9c5684913dd14e33644b5871cfa24d97820117f..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_read_vector.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_set_photo_rates.mod b/src/arome/chem/module/modi_ch_set_photo_rates.mod deleted file mode 100644 index ec66dbc2c56c1dfb4cc351d11cb2735ff3dab05b..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_set_photo_rates.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_set_rates.mod b/src/arome/chem/module/modi_ch_set_rates.mod deleted file mode 100644 index dc051de4c6ddf4bbd6cf38563dc00d70e8fde6b9..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_set_rates.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_show_chem.mod b/src/arome/chem/module/modi_ch_show_chem.mod deleted file mode 100644 index 0c58d9a91ccd4452a4ab7b5e6a556e19a050ac9c..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_show_chem.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_sis.mod b/src/arome/chem/module/modi_ch_sis.mod deleted file mode 100644 index f27b9e1e484a922729ff5d1d26247f81ca6c245c..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_sis.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_solver_n.mod b/src/arome/chem/module/modi_ch_solver_n.mod deleted file mode 100644 index bb34dc16778085e44327f142186cd621f3fa0e5e..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_solver_n.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_sparse.mod b/src/arome/chem/module/modi_ch_sparse.mod deleted file mode 100644 index cb4d78cf8348da6eb4d1e768e7fc28c054b08491..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_sparse.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_svode.mod b/src/arome/chem/module/modi_ch_svode.mod deleted file mode 100644 index 3c340b1ae0c567897a5f9d8ee48a7d7cd6463d08..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_svode.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_terms.mod b/src/arome/chem/module/modi_ch_terms.mod deleted file mode 100644 index cdc96655b1253e871a66582698641c4a28452287..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_terms.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_update_jvalues.mod b/src/arome/chem/module/modi_ch_update_jvalues.mod deleted file mode 100644 index cf5feae2c642f26ce9659fe4508e7c2530ddbb02..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_update_jvalues.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_update_jvalues_n.mod b/src/arome/chem/module/modi_ch_update_jvalues_n.mod deleted file mode 100644 index f5c482f0e55174963ae332aaec45f1ee6028b1b5..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_update_jvalues_n.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_update_meteo.mod b/src/arome/chem/module/modi_ch_update_meteo.mod deleted file mode 100644 index 6a8d0c4c70dba53cfe140c7d7cb5ab94456f3c5b..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_update_meteo.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ch_write_chem.mod b/src/arome/chem/module/modi_ch_write_chem.mod deleted file mode 100644 index 4a1295f2db17b651c48d7c0d351a5782c615500a..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ch_write_chem.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_dust_filter.mod b/src/arome/chem/module/modi_dust_filter.mod deleted file mode 100644 index 1f7a571a822bb3a0952fdf0812a1da61620f98bf..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_dust_filter.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_dust_velgrav.mod b/src/arome/chem/module/modi_dust_velgrav.mod deleted file mode 100644 index 10103a562077c3967ffff166a94be7c2c7759250..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_dust_velgrav.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_dustlfi_n.mod b/src/arome/chem/module/modi_dustlfi_n.mod deleted file mode 100644 index 3ba552e731a87022bfef0acdf8fca2f203ab883b..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_dustlfi_n.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_eqsam_v03d_sub.mod b/src/arome/chem/module/modi_eqsam_v03d_sub.mod deleted file mode 100644 index fa8110881602c82bac0c97770931a894ade424ad..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_eqsam_v03d_sub.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_ini_wet_dep.mod b/src/arome/chem/module/modi_ini_wet_dep.mod deleted file mode 100644 index 64a1e96a283c4bdbc55b67df916b5c1498ee31d3..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_ini_wet_dep.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_init_dust.mod b/src/arome/chem/module/modi_init_dust.mod deleted file mode 100644 index 957b57c0953f870e992632a0fd3822d2b1b14eae..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_init_dust.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_inv_levels.mod b/src/arome/chem/module/modi_inv_levels.mod deleted file mode 100644 index cc0132bfa3481e70aa21a0c8c9df455c158e203c..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_inv_levels.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_mpdata_scalar.mod b/src/arome/chem/module/modi_mpdata_scalar.mod deleted file mode 100644 index 202e390974ae8f067a2f7dfb655d416a949daf37..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_mpdata_scalar.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_salt_filter.mod b/src/arome/chem/module/modi_salt_filter.mod deleted file mode 100644 index 66d09aba4b4b43750b87b6d5b347f2a23e9ddf2f..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_salt_filter.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_salt_velgrav.mod b/src/arome/chem/module/modi_salt_velgrav.mod deleted file mode 100644 index 5e5dd06a7f6b2fea3b07bad12a2bb9708f6ae69c..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_salt_velgrav.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_saltlfi_n.mod b/src/arome/chem/module/modi_saltlfi_n.mod deleted file mode 100644 index f2389bd9adb2a2baed4769fde4e13f675aa1088d..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_saltlfi_n.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_sedim_dust.mod b/src/arome/chem/module/modi_sedim_dust.mod deleted file mode 100644 index 09a6bc907dbb860b11b2c8b2114915dd6de0856e..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_sedim_dust.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_sedim_salt.mod b/src/arome/chem/module/modi_sedim_salt.mod deleted file mode 100644 index 12f36f5d32556f49c551dd272290b2c26f4b1dca..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_sedim_salt.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_troe.mod b/src/arome/chem/module/modi_troe.mod deleted file mode 100644 index c4b9e6f8237fcdba57a2259464d50dde1de80a19..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_troe.mod and /dev/null differ diff --git a/src/arome/chem/module/modi_troe_equil.mod b/src/arome/chem/module/modi_troe_equil.mod deleted file mode 100644 index 0d27ba0def4af36d285941f7b9926c427c381eef..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modi_troe_equil.mod and /dev/null differ diff --git a/src/arome/chem/module/modn_ch_orilam.mod b/src/arome/chem/module/modn_ch_orilam.mod deleted file mode 100644 index 6c88f81ebb75ab511aff17e925c487ed4ecf3988..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modn_ch_orilam.mod and /dev/null differ diff --git a/src/arome/chem/module/modn_dust.mod b/src/arome/chem/module/modn_dust.mod deleted file mode 100644 index f2178cb6b2bd56dad047c1140cf7d41e1845cb28..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modn_dust.mod and /dev/null differ diff --git a/src/arome/chem/module/modn_salt.mod b/src/arome/chem/module/modn_salt.mod deleted file mode 100644 index 601380330471149755338757d1a95088ebee5414..0000000000000000000000000000000000000000 Binary files a/src/arome/chem/module/modn_salt.mod and /dev/null differ diff --git a/src/arome/turb/modi_updraft_sope.F90 b/src/arome/turb/modi_updraft_sope.F90 deleted file mode 100644 index 5fb81013f97ace2f68f41079baaff78d25a04234..0000000000000000000000000000000000000000 --- a/src/arome/turb/modi_updraft_sope.F90 +++ /dev/null @@ -1,54 +0,0 @@ -! ######spl - MODULE MODI_UPDRAFT_SOPE -! ################################# -! -INTERFACE -! - SUBROUTINE UPDRAFT_SOPE(KRR,KRRL,KRRI,OMIXUV, & - PZZ,PDZZ,PSFTH,PSFRV,PPABSM,PRHODREF, & - PTKEM,PTHM,PRM,PTHLM,PRTM,PUM,PVM,PSVM, & - PTHL_UP,PRT_UP,PRV_UP,PU_UP,PV_UP,PSV_UP, & - PRC_UP,PRI_UP,PTHV_UP,PW_UP,PFRAC_UP,PEMF,& - PDETR,PENTR,KKLCL,KKETL,KKCTL ) -! -! -! -INTEGER, INTENT(IN) :: KRR ! number of moist var. -INTEGER, INTENT(IN) :: KRRL ! number of liquid water var. -INTEGER, INTENT(IN) :: KRRI ! number of ice water var. -LOGICAL, INTENT(IN) :: OMIXUV ! True if mixing of momentum - -REAL, DIMENSION(:,:,:), INTENT(IN) :: PZZ ! Height at the flux point - -REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! depth between mass levels - -REAL, DIMENSION(:,:), INTENT(IN) :: PSFTH,PSFRV - ! normal surface fluxes of theta,rv -! -! prognostic variables at t- deltat -REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABSM ! Pressure at time t-1 -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF ! dry density of the - ! reference state -REAL, DIMENSION(:,:,:), INTENT(IN) :: PTKEM ! TKE -REAL, DIMENSION(:,:,:), INTENT(IN) :: PUM,PVM ! momentum -! -REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PSVM ! Scalar variables -! -! thermodynamical variables which are transformed in conservative var. -REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHM ! pot. temp. = PTHLM in turb.f90 -REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRM ! water species -REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHLM,PRTM !cons. var. -REAL, DIMENSION(:,:,:), INTENT(OUT) :: PTHL_UP,PRT_UP ! updraft properties -REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRV_UP,PRC_UP,PRI_UP,&!Thl,Rt,Rv,Rc,Ri - PW_UP,PFRAC_UP,PEMF, &!w,Updraft Fraction, Mass Flux - PDETR,PENTR,PTHV_UP, &!entrainment, detrainment, ThV - PU_UP, PV_UP !updraft wind component -REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PSV_UP ! updraft scalar variables -INTEGER, DIMENSION(:,:), INTENT(OUT) :: KKLCL,KKETL,KKCTL !index for LCL,ETL,CTL -! -! -END SUBROUTINE UPDRAFT_SOPE - -END INTERFACE -! -END MODULE MODI_UPDRAFT_SOPE diff --git a/src/common/micro/condensation.F90 b/src/common/micro/condensation.F90 index 9becdd2b4d315a3762ed2884595c2c48c8060c84..3eef2682601081ba396e9ff07f1e7d7aec4196a7 100644 --- a/src/common/micro/condensation.F90 +++ b/src/common/micro/condensation.F90 @@ -296,7 +296,7 @@ DO JK=IKTB,IKTE JKM=MAX(MIN(JK-KKL,IKTE),IKTB) DO JJ=KJB,KJE IF (OCND2) THEN - ZDZ(KIB:KIE) = PZZ(KIB:KIE,JJ,JKP) - PZZ(KIB:KIE,JJ,JKP+1) + ZDZ(KIB:KIE) = PZZ(KIB:KIE,JJ,JKP) - PZZ(KIB:KIE,JJ,JKP-KKL) CALL ICECLOUD(KIE-KIB+1,PPABS(KIB,JJ,JK),PZZ(KIB,JJ,JK),ZDZ(KIB), & & PT(KIB,JJ,JK),PRV_IN(KIB,JJ,JK),1.,-1., & & ZCLDUM,1.,TCLD(KIB,JJ,JK), & diff --git a/src/common/micro/mode_ice4_sedimentation_stat.F90 b/src/common/micro/mode_ice4_sedimentation_stat.F90 index 22d76575dac5b87e81803f5ccd27b49c0e853c64..d682049ad4b79f51738e773b2328ee0d8133e16b 100644 --- a/src/common/micro/mode_ice4_sedimentation_stat.F90 +++ b/src/common/micro/mode_ice4_sedimentation_stat.F90 @@ -107,8 +107,8 @@ FWSED2(PWSEDW,PTSTEP1,PDZZ1,PWSEDWSUP)=MAX(0.,1.-PDZZ1/(PTSTEP1*PWSEDW))*PWSEDWS IF (LHOOK) CALL DR_HOOK('ICE4_SEDIMENTATION_STAT',0,ZHOOK_HANDLE) IF ( PRESENT( PFPR ) ) THEN !Set to 0. to avoid undefined values (in files) - PFPR(:, :, : KKTB - 1, :) = 0. - PFPR(:, :, KKTE + 1 :, :) = 0. + PFPR(:, :, : KKTB, :) = 0. + PFPR(:, :, KKTE :, :) = 0. END IF !------------------------------------------------------------------------------- diff --git a/src/arome/turb/mode_compute_updraft_rhcj10.F90 b/src/common/turb/mode_compute_updraft_rhcj10.F90 similarity index 89% rename from src/arome/turb/mode_compute_updraft_rhcj10.F90 rename to src/common/turb/mode_compute_updraft_rhcj10.F90 index 33f032fb0171347c04c7849b9387751fbedaef69..0392012db244776f3720593fba148057f7a72a29 100644 --- a/src/arome/turb/mode_compute_updraft_rhcj10.F90 +++ b/src/common/turb/mode_compute_updraft_rhcj10.F90 @@ -16,7 +16,7 @@ SUBROUTINE COMPUTE_UPDRAFT_RHCJ10(KKA,KKB,KKE,KKU,KKL,HFRAC_ICE, & PZZ,PDZZ, & PSFTH,PSFRV, & PPABSM,PRHODREF,PUM,PVM, PTKEM, & - PEXNM,PTHM,PRVM,PTHLM,PRTM, & + PTHM,PRVM,PTHLM,PRTM, & PSVM,PTHL_UP,PRT_UP, & PRV_UP,PRC_UP,PRI_UP,PTHV_UP, & PW_UP,PU_UP, PV_UP, PSV_UP, & @@ -100,7 +100,7 @@ REAL, DIMENSION(:,:), INTENT(IN) :: PUM ! u mean wind REAL, DIMENSION(:,:), INTENT(IN) :: PVM ! v mean wind REAL, DIMENSION(:,:), INTENT(IN) :: PTKEM ! TKE at t-dt ! -REAL, DIMENSION(:,:), INTENT(IN) :: PEXNM ! Exner function at t-dt +!REAL, DIMENSION(:,:), INTENT(IN) :: PEXNM ! Exner function at t-dt REAL, DIMENSION(:,:), INTENT(IN) :: PTHM ! pot. temp. at t-dt REAL, DIMENSION(:,:), INTENT(IN) :: PRVM ! vapor mixing ratio at t-dt REAL, DIMENSION(:,:), INTENT(IN) :: PTHLM,PRTM ! cons. var. at t-dt @@ -139,11 +139,11 @@ REAL, DIMENSION(SIZE(PSVM,1),SIZE(PTHM,2),SIZE(PSVM,3)) :: ZSVM_F ! scalar varia REAL, DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2)) :: ZTH_UP ! updraft THETA -REAL, DIMENSION(SIZE(PTHM,1)) :: ZT_UP ! updraft T -REAL, DIMENSION(SIZE(PTHM,1)) :: ZLVOCPEXN ! updraft L -REAL, DIMENSION(SIZE(PTHM,1)) :: ZCP ! updraft cp +!REAL, DIMENSION(SIZE(PTHM,1)) :: ZT_UP ! updraft T +!REAL, DIMENSION(SIZE(PTHM,1)) :: ZLVOCPEXN ! updraft L +!REAL, DIMENSION(SIZE(PTHM,1)) :: ZCP ! updraft cp REAL, DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2)) :: ZBUO ! Buoyancy -REAL, DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2)) :: ZTHS_UP,ZTHSM +!REAL, DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2)) :: ZTHS_UP,ZTHSM REAL, DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2)) :: ZCOEF ! diminution coefficient for too high clouds @@ -178,7 +178,7 @@ REAL, DIMENSION(SIZE(PTHM,1)) :: ZCOE,ZWCOE,ZBUCOE REAL, DIMENSION(SIZE(PTHM,1)) :: ZDETR_BUO, ZDETR_RT REAL, DIMENSION(SIZE(PTHM,1)) :: ZW_MAX ! w**2 max of the updraft REAL, DIMENSION(SIZE(PTHM,1)) :: ZZTOP ! Top of the updraft -REAL, DIMENSION(SIZE(PTHM,1)) :: ZQTM,ZQT_UP +!REAL, DIMENSION(SIZE(PTHM,1)) :: ZQTM,ZQT_UP REAL :: ZDEPTH_MAX1, ZDEPTH_MAX2 ! control auto-extinction process @@ -276,11 +276,12 @@ PSV_UP(:,:,:)=0. ! thetal_up,rt_up,thetaV_up, w,Buoyancy term and mass flux (PEMF) DO JI=1,IIJU - PTHL_UP(JI,KKB)= ZTHLM_F(JI,KKB)+MAX(0.,MIN(ZTMAX,(PSFTH(JI)/SQRT(ZTKEM_F(JI,KKB)))*XALP_PERT)) - PRT_UP(JI,KKB) = ZRTM_F(JI,KKB)+MAX(0.,MIN(ZRMAX,(PSFRV(JI)/SQRT(ZTKEM_F(JI,KKB)))*XALP_PERT)) - - ZQT_UP(JI) = PRT_UP(JI,KKB)/(1.+PRT_UP(JI,KKB)) - ZTHS_UP(JI,KKB)=PTHL_UP(JI,KKB)*(1.+XLAMBDA_MF*ZQT_UP(JI)) + !PTHL_UP(JI,KKB)= ZTHLM_F(JI,KKB)+MAX(0.,MIN(ZTMAX,(PSFTH(JI)/SQRT(ZTKEM_F(JI,KKB)))*XALP_PERT)) + !PRT_UP(JI,KKB) = ZRTM_F(JI,KKB)+MAX(0.,MIN(ZRMAX,(PSFRV(JI)/SQRT(ZTKEM_F(JI,KKB)))*XALP_PERT)) + PTHL_UP(JI,KKB)= ZTHLM_F(JI,KKB) + PRT_UP(JI,KKB) = ZRTM_F(JI,KKB) + !ZQT_UP(JI) = PRT_UP(JI,KKB)/(1.+PRT_UP(JI,KKB)) + !ZTHS_UP(JI,KKB)=PTHL_UP(JI,KKB)*(1.+XLAMBDA_MF*ZQT_UP(JI)) ENDDO ZTHM_F (:,:) = MZM_MF(PTHM (:,:), KKA, KKU, KKL) @@ -299,7 +300,8 @@ PTHV_UP(:,:)= ZTHVM_F(:,:) PRV_UP (:,:)= ZRVM_F (:,:) ZW_UP2(:,:)=ZEPS -ZW_UP2(:,KKB) = MAX(0.0001,(1./6.)*ZTKEM_F(:,KKB)) +!ZW_UP2(:,KKB) = MAX(0.0001,(3./6.)*ZTKEM_F(:,KKB)) +ZW_UP2(:,KKB) = MAX(0.0001,(2./3.)*ZTKEM_F(:,KKB)) ! Computation of non conservative variable for the KKB level of the updraft ! (all or nothing ajustement) @@ -338,15 +340,12 @@ IF(CTURBLEN=='RM17') THEN ZDUDZ = MZF_MF(GZ_M_W_MF(PUM,PDZZ, KKA, KKU, KKL), KKA, KKU, KKL) ZDVDZ = MZF_MF(GZ_M_W_MF(PVM,PDZZ, KKA, KKU, KKL), KKA, KKU, KKL) ZSHEAR = SQRT(ZDUDZ*ZDUDZ + ZDVDZ*ZDVDZ) - PRINT*, 'phasage bete sans controle' - CALL ABORT - STOP ELSE ZSHEAR = 0. !no shear in bl89 mixing length END IF ! CALL COMPUTE_BL89_ML(KKA,KKB,KKE,KKU,KKL,PDZZ,ZTKEM_F(:,KKB),ZG_O_THVREF(:,KKB), & - ZTHVM_F,KKB,GLMIX,.FALSE.,ZSHEAR,ZLUP) + ZTHVM_F,KKB,GLMIX,.TRUE.,ZSHEAR,ZLUP) ZLUP(:)=MAX(ZLUP(:),1.E-10) DO JI=1,IIJU @@ -358,8 +357,8 @@ DO JI=1,IIJU IF (ZWTHVSURF>0.010) THEN ! <== Not 0 Important to have stratocumulus !!!!! PEMF(JI,KKB) = XCMF * ZRHO_F(JI,KKB) * ((ZG_O_THVREF(JI,KKB))*ZWTHVSURF*ZLUP(JI))**(1./3.) PFRAC_UP(JI,KKB)=MIN(PEMF(JI,KKB)/(SQRT(ZW_UP2(JI,KKB))*ZRHO_F(JI,KKB)),XFRAC_UP_MAX) - PEMF(JI,KKB) = ZRHO_F(JI,KKB)*PFRAC_UP(JI,KKB)*SQRT(ZW_UP2(JI,KKB)) - ! ZW_UP2(JI,KKB)=(PEMF(JI,KKB)/(PFRAC_UP(JI,KKB)*ZRHO_F(JI,KKB)))**2 + !PEMF(JI,KKB) = ZRHO_F(JI,KKB)*PFRAC_UP(JI,KKB)*SQRT(ZW_UP2(JI,KKB)) + ZW_UP2(JI,KKB)=(PEMF(JI,KKB)/(PFRAC_UP(JI,KKB)*ZRHO_F(JI,KKB)))**2 GTEST(JI)=.TRUE. ELSE PEMF(JI,KKB) =0. @@ -439,7 +438,6 @@ DO JK=KKB,KKE-KKL,KKL ZBUCOE(JI) = 2.*ZCOE(JI)/(1.+XB*ZCOE(JI)) ! Second Rachel bug correction (XA1 has been forgotten) - ZW_UP2(JI,JK+KKL) = MAX(ZEPS,ZW_UP2(JI,JK)*ZWCOE(JI) + XA1*ZBUO(JI,JK)*ZBUCOE(JI) ) ZW_MAX(JI) = MAX(ZW_MAX(JI), SQRT(ZW_UP2(JI,JK+KKL))) ZWUP_MEAN(JI) = MAX(ZEPS,0.5*(ZW_UP2(JI,JK+KKL)+ZW_UP2(JI,JK))) @@ -455,16 +453,17 @@ DO JK=KKB,KKE-KKL,KKL ! If the updraft did not stop, compute cons updraft characteritics at jk+1 ZZTOP(JI) = MAX(ZZTOP(JI),PZZ(JI,JK+KKL)) ZMIX2(JI) = (PZZ(JI,JK+KKL)-PZZ(JI,JK))*PENTR(JI,JK) !& - - ! Utilisation de thetaS - ZQTM(JI) = PRTM(JI,JK)/(1.+PRTM(JI,JK)) - ZTHSM(JI,JK) = PTHLM(JI,JK)*(1.+XLAMBDA_MF*ZQTM(JI)) - ZTHS_UP(JI,JK+KKL)=(ZTHS_UP(JI,JK)*(1.-0.5*ZMIX2(JI)) + ZTHSM(JI,JK)*ZMIX2(JI)) & - /(1.+0.5*ZMIX2(JI)) + + !ZQTM(JI) = PRTM(JI,JK)/(1.+PRTM(JI,JK)) + !ZTHSM(JI,JK) = PTHLM(JI,JK)*(1.+XLAMBDA_MF*ZQTM(JI)) + !ZTHS_UP(JI,JK+KKL)=(ZTHS_UP(JI,JK)*(1.-0.5*ZMIX2(JI)) + ZTHSM(JI,JK)*ZMIX2(JI)) & + ! /(1.+0.5*ZMIX2(JI)) PRT_UP(JI,JK+KKL) =(PRT_UP (JI,JK)*(1.-0.5*ZMIX2(JI)) + PRTM(JI,JK)*ZMIX2(JI)) & /(1.+0.5*ZMIX2(JI)) - ZQT_UP(JI) = PRT_UP(JI,JK+KKL)/(1.+PRT_UP(JI,JK+KKL)) - PTHL_UP(JI,JK+KKL)=ZTHS_UP(JI,JK+KKL)/(1.+XLAMBDA_MF*ZQT_UP(JI)) + !ZQT_UP(JI) = PRT_UP(JI,JK+KKL)/(1.+PRT_UP(JI,JK+KKL)) + !PTHL_UP(JI,JK+KKL)=ZTHS_UP(JI,JK+KKL)/(1.+XLAMBDA_MF*ZQT_UP(JI)) + PTHL_UP(JI,JK+KKL)=(PTHL_UP(JI,JK)*(1.-0.5*ZMIX2(JI)) + PTHLM(JI,JK)*ZMIX2(JI)) & + /(1.+0.5*ZMIX2(JI)) ENDIF ! GTEST ENDDO @@ -521,20 +520,23 @@ DO JK=KKB,KKE-KKL,KKL DO JI=1,IIJU IF(GTEST(JI)) THEN - ZT_UP(JI) = ZTH_UP(JI,JK+KKL)*PEXNM(JI,JK+KKL) - ZCP(JI) = XCPD + XCL * ZRC_UP(JI) - ZLVOCPEXN(JI)=(XLVTT + (XCPV-XCL) * (ZT_UP(JI)-XTT) ) / ZCP(JI) / PEXNM(JI,JK+KKL) - PRC_UP(JI,JK+KKL)=MIN(0.5E-3,ZRC_UP(JI)) ! On ne peut depasser 0.5 g/kg (autoconversion donc elimination !) - PTHL_UP(JI,JK+KKL) = PTHL_UP(JI,JK+KKL)+ZLVOCPEXN(JI)*(ZRC_UP(JI)-PRC_UP(JI,JK+KKL)) + !ZT_UP(JI) = ZTH_UP(JI,JK+KKL)*PEXNM(JI,JK+KKL) + !ZCP(JI) = XCPD + XCL * ZRC_UP(JI) + !ZLVOCPEXN(JI)=(XLVTT + (XCPV-XCL) * (ZT_UP(JI)-XTT) ) / ZCP(JI) / PEXNM(JI,JK+KKL) + !PRC_UP(JI,JK+KKL)=MIN(0.5E-3,ZRC_UP(JI)) ! On ne peut depasser 0.5 g/kg (autoconversion donc elimination !) + !PTHL_UP(JI,JK+KKL) = PTHL_UP(JI,JK+KKL)+ZLVOCPEXN(JI)*(ZRC_UP(JI)-PRC_UP(JI,JK+KKL)) + PRC_UP(JI,JK+KKL)=ZRC_UP(JI) PRV_UP(JI,JK+KKL)=ZRV_UP(JI) PRI_UP(JI,JK+KKL)=ZRI_UP(JI) - PRT_UP(JI,JK+KKL) = PRC_UP(JI,JK+KKL) + PRV_UP(JI,JK+KKL) + !PRT_UP(JI,JK+KKL) = PRC_UP(JI,JK+KKL) + PRV_UP(JI,JK+KKL) PRSAT_UP(JI,JK+KKL) = ZRSATW(JI)*(1-PFRAC_ICE_UP(JI,JK+KKL)) + ZRSATI(JI)*PFRAC_ICE_UP(JI,JK+KKL) ! Compute the updraft theta_v, buoyancy and w**2 for level JK+1 !PTHV_UP(:,JK+KKL) = PTH_UP(:,JK+KKL)*((1+ZRVORD*PRV_UP(:,JK+KKL))/(1+PRT_UP(:,JK+KKL))) - PTHV_UP(JI,JK+KKL) = ZTH_UP(JI,JK+KKL)*(1.+0.608*PRV_UP(JI,JK+KKL) - PRC_UP(JI,JK+KKL)) - ! A corriger pour utiliser q et non r !!!! + !PTHV_UP(JI,JK+KKL) = ZTH_UP(JI,JK+KKL)*(1.+0.608*PRV_UP(JI,JK+KKL) - PRC_UP(JI,JK+KKL)) + !! A corriger pour utiliser q et non r !!!! + !ZMIX1(JI)=ZZDZ(JI,JK)*(PENTR(JI,JK)-PDETR(JI,JK)) + PTHV_UP(JI,JK+KKL) = ZTH_UP(JI,JK+KKL)*((1+ZRVORD*PRV_UP(JI,JK+KKL))/(1+PRT_UP(JI,JK+KKL))) ZMIX1(JI)=ZZDZ(JI,JK)*(PENTR(JI,JK)-PDETR(JI,JK)) ENDIF ENDDO @@ -550,7 +552,7 @@ DO JK=KKB,KKE-KKL,KKL ! Updraft fraction must be smaller than XFRAC_UP_MAX PFRAC_UP(JI,JK+KKL)=MIN(XFRAC_UP_MAX, & &PEMF(JI,JK+KKL)/(SQRT(ZW_UP2(JI,JK+KKL))*ZRHO_F(JI,JK+KKL))) - PEMF(JI,JK+KKL) = ZRHO_F(JI,JK+KKL)*PFRAC_UP(JI,JK+KKL)*SQRT(ZW_UP2(JI,JK+KKL)) + !PEMF(JI,JK+KKL) = ZRHO_F(JI,JK+KKL)*PFRAC_UP(JI,JK+KKL)*SQRT(ZW_UP2(JI,JK+KKL)) ENDIF ENDDO diff --git a/src/common/turb/shallow_mf.F90 b/src/common/turb/shallow_mf.F90 index b042f80a0670bdd5e045fa09af8f8a856450ec4a..a1d1c0e06ecb75602b3483fb0900c3fb2e5fdc9c 100644 --- a/src/common/turb/shallow_mf.F90 +++ b/src/common/turb/shallow_mf.F90 @@ -235,7 +235,7 @@ ELSEIF (HMF_UPDRAFT == 'RHCJ') THEN PZZ,PDZZ, & PSFTH,PSFRV,PPABSM,PRHODREF, & PUM,PVM,PTKEM, & - PEXNM,PTHM,PRM(:,:,1),ZTHLM,ZRTM,PSVM, & + PTHM,PRM(:,:,1),ZTHLM,ZRTM,PSVM, & PTHL_UP,PRT_UP,PRV_UP,PRC_UP,PRI_UP, & PTHV_UP, PW_UP, PU_UP, PV_UP, ZSV_UP, & PFRAC_UP,ZFRAC_ICE_UP,ZRSAT_UP,PEMF,PDETR,& diff --git a/src/mesonh/turb/mode_compute_updraft_rhcj10.f90 b/src/mesonh/turb/mode_compute_updraft_rhcj10.f90 deleted file mode 100644 index 8ddc56ae42a579613520c865b476a196672e7c55..0000000000000000000000000000000000000000 --- a/src/mesonh/turb/mode_compute_updraft_rhcj10.f90 +++ /dev/null @@ -1,590 +0,0 @@ -!MNH_LIC Copyright 2012-2019 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!----------------------------------------------------------------- -! ######spl - MODULE MODE_COMPUTE_UPDRAFT_RHCJ10 -! ########################### -! -IMPLICIT NONE -CONTAINS -! -SUBROUTINE COMPUTE_UPDRAFT_RHCJ10(KKA,KKB,KKE,KKU,KKL,HFRAC_ICE, & - OENTR_DETR,OMIXUV, & - ONOMIXLG,KSV_LGBEG,KSV_LGEND, & - PZZ,PDZZ, & - PSFTH,PSFRV, & - PPABSM,PRHODREF,PUM,PVM, PTKEM, & - PTHM,PRVM,PTHLM,PRTM, & - PSVM,PTHL_UP,PRT_UP, & - PRV_UP,PRC_UP,PRI_UP,PTHV_UP, & - PW_UP,PU_UP, PV_UP, PSV_UP, & - PFRAC_UP,PFRAC_ICE_UP,PRSAT_UP, & - PEMF,PDETR,PENTR, & - PBUO_INTEG,KKLCL,KKETL,KKCTL, & - PDEPTH ) -! ################################################################# -!! -!!**** *COMPUTE_UPDRAFT_RHCJ10* - calculates caracteristics of the updraft -!! -!! -!! PURPOSE -!! ------- -!!**** The purpose of this routine is to build the updraft following Rio et al (2010) -!! -! -!!** METHOD -!! ------ -!! -!! EXTERNAL -!! -------- -!! -!! IMPLICIT ARGUMENTS -!! ------------------ -!! -!! !! REFERENCE -!! --------- -!! Rio et al (2010) (Boundary Layer Meteorol 135:469-483) -!! -!! AUTHOR -!! ------ -!! Y. Bouteloup (2012) -!! R. Honert Janv 2013 ==> corection of some bugs -!! R. El Khatib 15-Oct-2014 Optimization -!! Q.Rodier 01/2019 : support RM17 mixing length -!! -------------------------------------------------------------------------- - -! WARNING ==> This updraft is not yet ready to use scalar variables - -!* 0. DECLARATIONS -! ------------ -! -USE MODD_CST -USE MODD_PARAM_MFSHALL_n -USE MODD_TURB_n, ONLY : CTURBLEN -USE MODI_TH_R_FROM_THL_RT_1D -USE MODI_SHUMAN_MF, ONLY: MZF_MF, MZM_MF, GZ_M_W_MF - -USE MODE_COMPUTE_BL89_ML, ONLY: COMPUTE_BL89_ML -USE PARKIND1, ONLY : JPRB -USE YOMHOOK , ONLY : LHOOK, DR_HOOK - - -IMPLICIT NONE - -!* 1.1 Declaration of Arguments -! -! -INTEGER, INTENT(IN) :: KKA ! near ground array index -INTEGER, INTENT(IN) :: KKB ! near ground physical index -INTEGER, INTENT(IN) :: KKE ! uppest atmosphere physical index -INTEGER, INTENT(IN) :: KKU ! uppest atmosphere array index -INTEGER, INTENT(IN) :: KKL ! +1 if grid goes from ground to atmosphere top, -1 otherwise -CHARACTER(LEN=1), INTENT(IN) :: HFRAC_ICE ! partition liquid/ice scheme -LOGICAL, INTENT(IN) :: OENTR_DETR! flag to recompute entrainment, detrainment and mass flux -LOGICAL, INTENT(IN) :: OMIXUV ! True if mixing of momentum -LOGICAL, INTENT(IN) :: ONOMIXLG ! False if mixing of lagrangian tracer -INTEGER, INTENT(IN) :: KSV_LGBEG ! first index of lag. tracer -INTEGER, INTENT(IN) :: KSV_LGEND ! last index of lag. tracer -REAL, DIMENSION(:,:), INTENT(IN) :: PZZ ! Height at the flux point -REAL, DIMENSION(:,:), INTENT(IN) :: PDZZ ! Metrics coefficient - -REAL, DIMENSION(:), INTENT(IN) :: PSFTH,PSFRV -! normal surface fluxes of theta,rv,(u,v) parallel to the orography - -REAL, DIMENSION(:,:), INTENT(IN) :: PPABSM ! Pressure at t-dt -REAL, DIMENSION(:,:), INTENT(IN) :: PRHODREF ! dry density of the - ! reference state -REAL, DIMENSION(:,:), INTENT(IN) :: PUM ! u mean wind -REAL, DIMENSION(:,:), INTENT(IN) :: PVM ! v mean wind -REAL, DIMENSION(:,:), INTENT(IN) :: PTKEM ! TKE at t-dt -! -REAL, DIMENSION(:,:), INTENT(IN) :: PTHM ! pot. temp. at t-dt -REAL, DIMENSION(:,:), INTENT(IN) :: PRVM ! vapor mixing ratio at t-dt -REAL, DIMENSION(:,:), INTENT(IN) :: PTHLM,PRTM ! cons. var. at t-dt - -REAL, DIMENSION(:,:,:), INTENT(IN) :: PSVM ! scalar var. at t-dt - -REAL, DIMENSION(:,:), INTENT(OUT) :: PTHL_UP,PRT_UP ! updraft properties -REAL, DIMENSION(:,:), INTENT(OUT) :: PU_UP, PV_UP ! updraft wind components -REAL, DIMENSION(:,:), INTENT(INOUT):: PRV_UP,PRC_UP ! updraft rv, rc -REAL, DIMENSION(:,:), INTENT(INOUT):: PRI_UP ! updraft ri -REAL, DIMENSION(:,:), INTENT(INOUT):: PTHV_UP ! updraft THv -REAL, DIMENSION(:,:), INTENT(INOUT):: PW_UP,PFRAC_UP ! updraft w, fraction -REAL, DIMENSION(:,:), INTENT(INOUT):: PFRAC_ICE_UP ! liquid/solid fraction in updraft -REAL, DIMENSION(:,:), INTENT(INOUT):: PRSAT_UP ! Rsat - -REAL, DIMENSION(:,:,:), INTENT(OUT) :: PSV_UP ! updraft scalar var. - -REAL, DIMENSION(:,:), INTENT(INOUT):: PEMF,PDETR,PENTR ! Mass_flux, - ! detrainment,entrainment -REAL, DIMENSION(:,:), INTENT(INOUT) :: PBUO_INTEG ! Integrated Buoyancy -INTEGER, DIMENSION(:), INTENT(INOUT):: KKLCL,KKETL,KKCTL! LCL, ETL, CTL -REAL, DIMENSION(:), INTENT(OUT) :: PDEPTH ! Deepness of cloud -! 1.2 Declaration of local variables -! -! Mean environment variables at t-dt at flux point -REAL, DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2)) :: ZTHM_F,ZRVM_F ! Theta,rv of - ! updraft environnement -REAL, DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2)) :: ZRTM_F, ZTHLM_F, ZTKEM_F ! rt, thetal,TKE,pressure, -REAL, DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2)) :: ZUM_F,ZVM_F,ZRHO_F ! density,momentum -REAL, DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2)) :: ZPRES_F,ZTHVM_F ! interpolated at the flux point -REAL, DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2)) :: ZG_O_THVREF ! g*ThetaV ref -REAL, DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2)) :: ZW_UP2 ! w**2 of the updraft - -REAL, DIMENSION(SIZE(PSVM,1),SIZE(PTHM,2),SIZE(PSVM,3)) :: ZSVM_F ! scalar variables - - - -REAL, DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2)) :: ZTH_UP ! updraft THETA -REAL, DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2)) :: ZBUO ! Buoyancy - -REAL, DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2)) :: ZCOEF ! diminution coefficient for too high clouds - -REAL :: ZWTHVSURF ! Surface w'thetav' - -REAL :: ZRVORD ! RV/RD - - -REAL, DIMENSION(SIZE(PTHM,1)) :: ZMIX1,ZMIX2 - -REAL, DIMENSION(SIZE(PTHM,1)) :: ZLUP ! Upward Mixing length from the ground - -INTEGER :: ISV ! Number of scalar variables -INTEGER :: IKU,IIJU ! array size in k -INTEGER :: JK,JI,JSV ! loop counters - -LOGICAL, DIMENSION(SIZE(PTHM,1)) :: GTEST,GTESTLCL - ! Test if the ascent continue, if LCL or ETL is reached -LOGICAL :: GLMIX - ! To choose upward or downward mixing length -LOGICAL, DIMENSION(SIZE(PTHM,1)) :: GWORK1 -LOGICAL, DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2)) :: GWORK2 - -INTEGER :: ITEST - -REAL, DIMENSION(SIZE(PTHM,1)) :: ZRC_UP, ZRI_UP, ZRV_UP, ZRSATW, ZRSATI - -REAL, DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2)) :: ZZDZ - -REAL, DIMENSION(SIZE(PTHM,1)) :: ZTEST,ZDZ,ZWUP_MEAN ! -REAL, DIMENSION(SIZE(PTHM,1)) :: ZCOE,ZWCOE,ZBUCOE -REAL, DIMENSION(SIZE(PTHM,1)) :: ZDETR_BUO, ZDETR_RT -REAL, DIMENSION(SIZE(PTHM,1)) :: ZW_MAX ! w**2 max of the updraft -REAL, DIMENSION(SIZE(PTHM,1)) :: ZZTOP ! Top of the updraft - -REAL :: ZDEPTH_MAX1, ZDEPTH_MAX2 ! control auto-extinction process - -REAL :: ZTMAX,ZRMAX, ZEPS ! control value - -REAL, DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2)) :: ZSHEAR,ZDUDZ,ZDVDZ ! vertical wind shear -REAL(KIND=JPRB) :: ZHOOK_HANDLE -IF (LHOOK) CALL DR_HOOK('COMPUTE_UPDRAFT_RHCJ10',0,ZHOOK_HANDLE) - -! Thresholds for the perturbation of -! theta_l and r_t at the first level of the updraft - -ZTMAX=2.0 -ZRMAX=1.E-3 -ZEPS=1.E-15 -!------------------------------------------------------------------------ -! INITIALISATION - -! Initialisation of the constants -ZRVORD = (XRV / XRD) - -! depth are different in compute_updraft (3000. and 4000.) ==> impact is small -ZDEPTH_MAX1=4500. ! clouds with depth infeRIOr to this value are keeped untouched -ZDEPTH_MAX2=5000. ! clouds with depth superior to this value are suppressed - - -! Local variables, internal domain -! Internal Domain - -IKU=SIZE(PTHM,2) -IIJU =SIZE(PTHM,1) -!number of scalar variables -ISV=SIZE(PSVM,3) - -! Initialisation of intersesting Level :LCL,ETL,CTL -KKLCL(:)=KKE -KKETL(:)=KKE -KKCTL(:)=KKE - -! -! Initialisation -!* udraft governing variables -PEMF(:,:)=0. -PDETR(:,:)=0. -PENTR(:,:)=0. - -! Initialisation -!* updraft core variables -PRC_UP(:,:)=0. - -PW_UP(:,:)=0. -ZTH_UP(:,:)=0. -PFRAC_UP(:,:)=0. -PTHV_UP(:,:)=0. - -PBUO_INTEG=0. -ZBUO =0. - -!no ice cloud coded yet -PRI_UP(:,:)=0. -PFRAC_ICE_UP(:,:)=0. -PRSAT_UP(:,:)=PRVM(:,:) ! should be initialised correctly but is (normaly) not used - -! Initialisation of environment variables at t-dt - -! variables at flux level -ZTHLM_F(:,:) = MZM_MF(PTHLM(:,:), KKA, KKU, KKL) -ZRTM_F (:,:) = MZM_MF(PRTM(:,:), KKA, KKU, KKL) -ZUM_F (:,:) = MZM_MF(PUM(:,:), KKA, KKU, KKL) -ZVM_F (:,:) = MZM_MF(PVM(:,:), KKA, KKU, KKL) -ZTKEM_F(:,:) = MZM_MF(PTKEM(:,:), KKA, KKU, KKL) - -! This updraft is not yet ready to use scalar variables -!DO JSV=1,ISV -! IF (ONOMIXLG .AND. JSV >= KSV_LGBEG .AND. JSV<= KSV_LGEND) CYCLE -! *** SR merge AROME/Meso-nh: following two lines come from the AROME version -! ZSVM_F(:,KKB:IKU,JSV) = 0.5*(PSVM(:,KKB:IKU,JSV)+PSVM(:,1:IKU-1,JSV)) -! ZSVM_F(:,1,JSV) = ZSVM_F(:,KKB,JSV) -! *** the following single line comes from the Meso-NH version -! ZSVM_F(:,:,JSV) = MZM_MF(KKA,KKU,KKL,PSVM(:,:,JSV)) -!END DO - -! Initialisation of updraft characteristics -PTHL_UP(:,:)=ZTHLM_F(:,:) -PRT_UP(:,:)=ZRTM_F(:,:) -PU_UP(:,:)=ZUM_F(:,:) -PV_UP(:,:)=ZVM_F(:,:) -PSV_UP(:,:,:)=0. -! This updraft is not yet ready to use scalar variables -!IF (ONOMIXLG .AND. JSV >= KSV_LGBEG .AND. JSV<= KSV_LGEND) then -! PSV_UP(:,:,:)=ZSVM_F(:,:,:) -!ENDIF - -! Computation or initialisation of updraft characteristics at the KKB level -! thetal_up,rt_up,thetaV_up, w,Buoyancy term and mass flux (PEMF) - -DO JI=1,IIJU - !PTHL_UP(JI,KKB)= ZTHLM_F(JI,KKB)+MAX(0.,MIN(ZTMAX,(PSFTH(JI)/SQRT(ZTKEM_F(JI,KKB)))*XALP_PERT)) - !PRT_UP(JI,KKB) = ZRTM_F(JI,KKB)+MAX(0.,MIN(ZRMAX,(PSFRV(JI)/SQRT(ZTKEM_F(JI,KKB)))*XALP_PERT)) - PTHL_UP(JI,KKB)= ZTHLM_F(JI,KKB) - PRT_UP(JI,KKB) = ZRTM_F(JI,KKB) -ENDDO - -ZTHM_F (:,:) = MZM_MF(PTHM (:,:), KKA, KKU, KKL) -ZPRES_F(:,:) = MZM_MF(PPABSM(:,:), KKA, KKU, KKL) -ZRHO_F (:,:) = MZM_MF(PRHODREF(:,:), KKA, KKU, KKL) -ZRVM_F (:,:) = MZM_MF(PRVM(:,:), KKA, KKU, KKL) - -! thetav at mass and flux levels -DO JK=1,IKU - DO JI=1,IIJU - ZTHVM_F(JI,JK)=ZTHM_F(JI,JK)*((1.+ZRVORD*ZRVM_F(JI,JK))/(1.+ZRTM_F(JI,JK))) - ENDDO -ENDDO - -PTHV_UP(:,:)= ZTHVM_F(:,:) -PRV_UP (:,:)= ZRVM_F (:,:) - -ZW_UP2(:,:)=ZEPS -ZW_UP2(:,KKB) = MAX(0.0001,(2./3.)*ZTKEM_F(:,KKB)) - -! Computation of non conservative variable for the KKB level of the updraft -! (all or nothing ajustement) - -PRC_UP(:,KKB)=0. -PRI_UP(:,KKB)=0. -CALL TH_R_FROM_THL_RT_1D(HFRAC_ICE,PFRAC_ICE_UP(:,KKB),ZPRES_F(:,KKB), & - PTHL_UP(:,KKB),PRT_UP(:,KKB),ZTH_UP(:,KKB), & - PRV_UP(:,KKB),PRC_UP(:,KKB),PRI_UP(:,KKB),ZRSATW(:),ZRSATI(:),OOCEAN=.FALSE.) - -DO JI=1,IIJU - ! compute updraft thevav and buoyancy term at KKB level - PTHV_UP(JI,KKB) = ZTH_UP(JI,KKB)*((1+ZRVORD*PRV_UP(JI,KKB))/(1+PRT_UP(JI,KKB))) - ! compute mean rsat in updraft - PRSAT_UP(JI,KKB) = ZRSATW(JI)*(1-PFRAC_ICE_UP(JI,KKB)) + ZRSATI(JI)*PFRAC_ICE_UP(JI,KKB) -ENDDO - -!Tout est commente pour tester dans un premier temps la separation en deux de la -! boucle verticale, une pour w et une pour PEMF - -ZG_O_THVREF=XG/ZTHVM_F - -! Calcul de la fermeture de Julien Pergaut comme limite max de PHY - -DO JK=KKB,KKE-KKL,KKL ! Vertical loop - DO JI=1,IIJU - ZZDZ(JI,JK) = MAX(ZEPS,PZZ(JI,JK+KKL)-PZZ(JI,JK)) ! <== Delta Z between two flux level - ENDDO -ENDDO - -! compute L_up -GLMIX=.TRUE. -ZTKEM_F(:,KKB)=0. -! -IF(CTURBLEN=='RM17') THEN - ZDUDZ = MZF_MF(GZ_M_W_MF(PUM,PDZZ, KKA, KKU, KKL), KKA, KKU, KKL) - ZDVDZ = MZF_MF(GZ_M_W_MF(PVM,PDZZ, KKA, KKU, KKL), KKA, KKU, KKL) - ZSHEAR = SQRT(ZDUDZ*ZDUDZ + ZDVDZ*ZDVDZ) -ELSE - ZSHEAR = 0. !no shear in bl89 mixing length -END IF -! -CALL COMPUTE_BL89_ML(KKA,KKB,KKE,KKU,KKL,PDZZ,ZTKEM_F(:,KKB),ZG_O_THVREF(:,KKB), & - ZTHVM_F,KKB,GLMIX,.TRUE.,ZSHEAR,ZLUP) -ZLUP(:)=MAX(ZLUP(:),1.E-10) - -DO JI=1,IIJU - ! Compute Buoyancy flux at the ground - ZWTHVSURF = (ZTHVM_F(JI,KKB)/ZTHM_F(JI,KKB))*PSFTH(JI)+ & - (0.61*ZTHM_F(JI,KKB))*PSFRV(JI) - - ! Mass flux at KKB level (updraft triggered if PSFTH>0.) - IF (ZWTHVSURF>0.010) THEN ! <== Not 0 Important to have stratocumulus !!!!! - PEMF(JI,KKB) = XCMF * ZRHO_F(JI,KKB) * ((ZG_O_THVREF(JI,KKB))*ZWTHVSURF*ZLUP(JI))**(1./3.) - PFRAC_UP(JI,KKB)=MIN(PEMF(JI,KKB)/(SQRT(ZW_UP2(JI,KKB))*ZRHO_F(JI,KKB)),XFRAC_UP_MAX) - - ZW_UP2(JI,KKB)=(PEMF(JI,KKB)/(PFRAC_UP(JI,KKB)*ZRHO_F(JI,KKB)))**2 - GTEST(JI)=.TRUE. - ELSE - PEMF(JI,KKB) =0. - GTEST(JI)=.FALSE. - ENDIF -ENDDO - - -!-------------------------------------------------------------------------- - -! 3. Vertical ascending loop -! ----------------------- -! -! If GTEST = T the updraft starts from the KKB level and stops when GTEST becomes F -! -! -GTESTLCL(:)=.FALSE. - - -! Loop on vertical level to compute W - -ZW_MAX(:) = 0. -ZZTOP(:) = 0. - -DO JK=KKB,KKE-KKL,KKL - -! IF the updraft top is reached for all column, stop the loop on levels - - !ITEST=COUNT(GTEST) - !IF (ITEST==0) CYCLE ! <== I do not remember why I removed this ... - -! Computation of entrainment and detrainment with KF90 -! parameterization in clouds and LR01 in subcloud layer - - -! to find the LCL (check if JK is LCL or not) - - DO JI=1,IIJU - IF ((PRC_UP(JI,JK)+PRI_UP(JI,JK)>0.).AND.(.NOT.(GTESTLCL(JI)))) THEN - KKLCL(JI) = JK - GTESTLCL(JI)=.TRUE. - ENDIF - ENDDO - - -! COMPUTE PENTR and PDETR at mass level JK - - -! Buoyancy is computed on "flux" levels where updraft variables are known - - ! Compute theta_v of updraft at flux level JK - - ZRC_UP(:) =PRC_UP(:,JK) ! guess - ZRI_UP(:) =PRI_UP(:,JK) ! guess - ZRV_UP(:) =PRV_UP(:,JK) - CALL TH_R_FROM_THL_RT_1D(HFRAC_ICE,PFRAC_ICE_UP(:,JK),& - PPABSM(:,JK),PTHL_UP(:,JK),PRT_UP(:,JK),& - ZTH_UP(:,JK),ZRV_UP,ZRC_UP,ZRI_UP,ZRSATW(:),ZRSATI(:),OOCEAN=.FALSE.) - - DO JI=1,IIJU - IF (GTEST(JI)) THEN - PTHV_UP (JI,JK) = ZTH_UP(JI,JK)*(1.+ZRVORD*ZRV_UP(JI))/(1.+PRT_UP(JI,JK)) - ZBUO (JI,JK) = ZG_O_THVREF(JI,JK)*(PTHV_UP(JI,JK) - ZTHVM_F(JI,JK)) - PBUO_INTEG(JI,JK) = ZBUO(JI,JK)*(PZZ(JI,JK+KKL)-PZZ(JI,JK)) - - ZDZ(JI) = MAX(ZEPS,PZZ(JI,JK+KKL)-PZZ(JI,JK)) - ZTEST(JI) = XA1*ZBUO(JI,JK) - XB*ZW_UP2(JI,JK) - - ! Ancien calcul de la vitesse - ZCOE(JI) = ZDZ(JI) - IF (ZTEST(JI)>0.) THEN - ZCOE(JI) = ZDZ(JI)/(1.+ XBETA1) - ENDIF - - ! Convective Vertical speed computation - ZWCOE(JI) = (1.-XB*ZCOE(JI))/(1.+XB*ZCOE(JI)) - ZBUCOE(JI) = 2.*ZCOE(JI)/(1.+XB*ZCOE(JI)) - - ! Second Rachel bug correction (XA1 has been forgotten ... not yet tested ...) - !ZW_UP2(JI,JK+KKL) = MAX(ZEPS,ZW_UP2(JI,JK)*ZWCOE(JI) + ZBUO(JI,JK)*ZBUCOE(JI) ) - ZW_UP2(JI,JK+KKL) = MAX(ZEPS,ZW_UP2(JI,JK)*ZWCOE(JI) + XA1*ZBUO(JI,JK)*ZBUCOE(JI) ) - ZW_MAX(JI) = MAX(ZW_MAX(JI), SQRT(ZW_UP2(JI,JK+KKL))) - ZWUP_MEAN(JI) = MAX(ZEPS,0.5*(ZW_UP2(JI,JK+KKL)+ZW_UP2(JI,JK))) - - ! Entrainement and detrainement - - ! First Rachel bug correction (Parenthesis around 1+beta1 ==> impact is small) - PENTR(JI,JK) = MAX(0.,(XBETA1/(1.+XBETA1))*(XA1*ZBUO(JI,JK)/ZWUP_MEAN(JI)-XB)) - ZDETR_BUO(JI) = MAX(0., -(XBETA1/(1.+XBETA1))*XA1*ZBUO(JI,JK)/ZWUP_MEAN(JI)) - ZDETR_RT(JI) = XC*SQRT(MAX(0.,(PRT_UP(JI,JK) - ZRTM_F(JI,JK))) / MAX(ZEPS,ZRTM_F(JI,JK)) / ZWUP_MEAN(JI)) - PDETR(JI,JK) = ZDETR_RT(JI)+ZDETR_BUO(JI) - - ! If the updraft did not stop, compute cons updraft characteritics at jk+1 - ZZTOP(JI) = MAX(ZZTOP(JI),PZZ(JI,JK+KKL)) - ZMIX2(JI) = (PZZ(JI,JK+KKL)-PZZ(JI,JK))*PENTR(JI,JK) !& - - PTHL_UP(JI,JK+KKL)=(PTHL_UP(JI,JK)*(1.-0.5*ZMIX2(JI)) + PTHLM(JI,JK)*ZMIX2(JI)) & - /(1.+0.5*ZMIX2(JI)) - PRT_UP(JI,JK+KKL) =(PRT_UP (JI,JK)*(1.-0.5*ZMIX2(JI)) + PRTM(JI,JK)*ZMIX2(JI)) & - /(1.+0.5*ZMIX2(JI)) - ENDIF ! GTEST - ENDDO - - - IF(OMIXUV) THEN - IF(JK/=KKB) THEN - DO JI=1,IIJU - IF(GTEST(JI)) THEN - PU_UP(JI,JK+KKL) = (PU_UP (JI,JK)*(1-0.5*ZMIX2(JI)) + PUM(JI,JK)*ZMIX2(JI)+ & - 0.5*XPRES_UV*(PZZ(JI,JK+KKL)-PZZ(JI,JK))*& - ((PUM(JI,JK+KKL)-PUM(JI,JK))/PDZZ(JI,JK+KKL)+& - (PUM(JI,JK)-PUM(JI,JK-KKL))/PDZZ(JI,JK)) ) & - /(1+0.5*ZMIX2(JI)) - PV_UP(JI,JK+KKL) = (PV_UP (JI,JK)*(1-0.5*ZMIX2(JI)) + PVM(JI,JK)*ZMIX2(JI)+ & - 0.5*XPRES_UV*(PZZ(JI,JK+KKL)-PZZ(JI,JK))*& - ((PVM(JI,JK+KKL)-PVM(JI,JK))/PDZZ(JI,JK+KKL)+& - (PVM(JI,JK)-PVM(JI,JK-KKL))/PDZZ(JI,JK)) ) & - /(1+0.5*ZMIX2(JI)) - ENDIF - ENDDO - ELSE - DO JI=1,IIJU - IF(GTEST(JI)) THEN - PU_UP(JI,JK+KKL) = (PU_UP (JI,JK)*(1-0.5*ZMIX2(JI)) + PUM(JI,JK)*ZMIX2(JI)+ & - 0.5*XPRES_UV*(PZZ(JI,JK+KKL)-PZZ(JI,JK))*& - ((PUM(JI,JK+KKL)-PUM(JI,JK))/PDZZ(JI,JK+KKL)) ) & - /(1+0.5*ZMIX2(JI)) - PV_UP(JI,JK+KKL) = (PV_UP (JI,JK)*(1-0.5*ZMIX2(JI)) + PVM(JI,JK)*ZMIX2(JI)+ & - 0.5*XPRES_UV*(PZZ(JI,JK+KKL)-PZZ(JI,JK))*& - ((PVM(JI,JK+KKL)-PVM(JI,JK))/PDZZ(JI,JK+KKL)) ) & - /(1+0.5*ZMIX2(JI)) - ENDIF - ENDDO - ENDIF - ENDIF - -! This updraft is not yet ready to use scalar variables -! DO JSV=1,ISV -! IF (ONOMIXLG .AND. JSV >= KSV_LGBEG .AND. JSV<= KSV_LGEND) CYCLE -! WHERE(GTEST) -! PSV_UP(:,JK+KKL,JSV) = (PSV_UP (:,JK,JSV)*(1-0.5*ZMIX2(:)) + & -! PSVM(:,JK,JSV)*ZMIX2(:)) /(1+0.5*ZMIX2(:)) -! ENDWHERE -! ENDDO - - -! Compute non cons. var. at level JK+KKL - ZRC_UP(:)=PRC_UP(:,JK) ! guess = level just below - ZRI_UP(:)=PRI_UP(:,JK) ! guess = level just below - ZRV_UP(:)=PRV_UP(:,JK) - CALL TH_R_FROM_THL_RT_1D(HFRAC_ICE,PFRAC_ICE_UP(:,JK+KKL),ZPRES_F(:,JK+KKL), & - PTHL_UP(:,JK+KKL),PRT_UP(:,JK+KKL),ZTH_UP(:,JK+KKL), & - ZRV_UP(:),ZRC_UP(:),ZRI_UP(:),ZRSATW(:),ZRSATI(:),OOCEAN=.FALSE.) - - DO JI=1,IIJU - IF(GTEST(JI)) THEN - PRC_UP(JI,JK+KKL)=ZRC_UP(JI) - PRV_UP(JI,JK+KKL)=ZRV_UP(JI) - PRI_UP(JI,JK+KKL)=ZRI_UP(JI) - PRSAT_UP(JI,JK+KKL) = ZRSATW(JI)*(1-PFRAC_ICE_UP(JI,JK+KKL)) + ZRSATI(JI)*PFRAC_ICE_UP(JI,JK+KKL) - - ! Compute the updraft theta_v, buoyancy and w**2 for level JK+1 - PTHV_UP(JI,JK+KKL) = ZTH_UP(JI,JK+KKL)*((1+ZRVORD*PRV_UP(JI,JK+KKL))/(1+PRT_UP(JI,JK+KKL))) - ZMIX1(JI)=ZZDZ(JI,JK)*(PENTR(JI,JK)-PDETR(JI,JK)) - ENDIF - ENDDO - - DO JI=1,IIJU - IF(GTEST(JI)) THEN - PEMF(JI,JK+KKL)=PEMF(JI,JK)*EXP(ZMIX1(JI)) - ENDIF - ENDDO - - DO JI=1,IIJU - IF(GTEST(JI)) THEN - ! Updraft fraction must be smaller than XFRAC_UP_MAX - PFRAC_UP(JI,JK+KKL)=MIN(XFRAC_UP_MAX, & - &PEMF(JI,JK+KKL)/(SQRT(ZW_UP2(JI,JK+KKL))*ZRHO_F(JI,JK+KKL))) - ENDIF - ENDDO - -! Test if the updraft has reach the ETL - DO JI=1,IIJU - IF (GTEST(JI) .AND. (PBUO_INTEG(JI,JK)<=0.)) THEN - KKETL(JI) = JK+KKL - ENDIF - ENDDO - - -! Test is we have reached the top of the updraft - DO JI=1,IIJU - IF (GTEST(JI) .AND. ((ZW_UP2(JI,JK+KKL)<=ZEPS).OR.(PEMF(JI,JK+KKL)<=ZEPS))) THEN - ZW_UP2 (JI,JK+KKL)=ZEPS - PEMF (JI,JK+KKL)=0. - GTEST (JI) =.FALSE. - PTHL_UP (JI,JK+KKL)=ZTHLM_F(JI,JK+KKL) - PRT_UP (JI,JK+KKL)=ZRTM_F(JI,JK+KKL) - PRC_UP (JI,JK+KKL)=0. - PRI_UP (JI,JK+KKL)=0. - PRV_UP (JI,JK+KKL)=ZRVM_F (JI,JK+KKL) - PTHV_UP (JI,JK+KKL)=ZTHVM_F(JI,JK+KKL) - PFRAC_UP (JI,JK+KKL)=0. - KKCTL (JI) =JK+KKL - ENDIF - ENDDO - -ENDDO ! Fin de la boucle verticale - -PW_UP(:,:)=SQRT(ZW_UP2(:,:)) -PEMF(:,KKB) =0. - -! Limits the shallow convection scheme when cloud heigth is higher than 3000m. -! To do this, mass flux is multiplied by a coefficient decreasing linearly -! from 1 (for clouds of 3000m of depth) to 0 (for clouds of 4000m of depth). -! This way, all MF fluxes are diminished by this amount. -! Diagnosed cloud fraction is also multiplied by the same coefficient. -! -DO JI=1,IIJU - PDEPTH(JI) = MAX(0., PZZ(JI,KKCTL(JI)) - PZZ(JI,KKLCL(JI)) ) -ENDDO - -GWORK1(:)= (GTESTLCL(:) .AND. (PDEPTH(:) > ZDEPTH_MAX1) ) -GWORK2(:,:) = SPREAD( GWORK1(:), DIM=2, NCOPIES=IKU ) -ZCOEF(:,:) = SPREAD( (1.-(PDEPTH(:)-ZDEPTH_MAX1)/(ZDEPTH_MAX2-ZDEPTH_MAX1)), DIM=2, NCOPIES=IKU) -ZCOEF(:,:)=MIN(MAX(ZCOEF(:,:),0.),1.) -DO JK=1, IKU - DO JI=1,IIJU - IF (GWORK2(JI,JK)) THEN - PEMF(JI,JK) = PEMF(JI,JK) * ZCOEF(JI,JK) - PFRAC_UP(JI,JK) = PFRAC_UP(JI,JK) * ZCOEF(JI,JK) - ENDIF - ENDDO -ENDDO - -IF (LHOOK) CALL DR_HOOK('COMPUTE_UPDRAFT_RHCJ10',1,ZHOOK_HANDLE) - -END SUBROUTINE COMPUTE_UPDRAFT_RHCJ10 -END MODULE MODE_COMPUTE_UPDRAFT_RHCJ10 diff --git a/src/mesonh/turb/shallow_mf.f90 b/src/mesonh/turb/shallow_mf.f90 deleted file mode 100644 index 91a8a93972bcfcefa02c5455bd81a7fe901d4b27..0000000000000000000000000000000000000000 --- a/src/mesonh/turb/shallow_mf.f90 +++ /dev/null @@ -1,319 +0,0 @@ -!MNH_LIC Copyright 1994-2021 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!----------------------------------------------------------------- -! ################################################################ - SUBROUTINE SHALLOW_MF(KKA,KKU,KKL,KRR,KRRL,KRRI, & - HMF_UPDRAFT, HMF_CLOUD, HFRAC_ICE, OMIXUV, & - ONOMIXLG,KSV_LGBEG,KSV_LGEND, & - PIMPL_MF, PTSTEP, & - PDZZ, PZZ, & - PRHODJ, PRHODREF, & - PPABSM, PEXNM, & - PSFTH,PSFRV, & - PTHM,PRM,PUM,PVM,PTKEM,PSVM, & - PDUDT_MF,PDVDT_MF, & - PDTHLDT_MF,PDRTDT_MF,PDSVDT_MF, & - PSIGMF,PRC_MF,PRI_MF,PCF_MF,PFLXZTHVMF, & - PFLXZTHMF,PFLXZRMF,PFLXZUMF,PFLXZVMF, & - PTHL_UP,PRT_UP,PRV_UP,PRC_UP,PRI_UP, & - PU_UP, PV_UP, PTHV_UP, PW_UP, & - PFRAC_UP,PEMF,PDETR,PENTR, & - KKLCL,KKETL,KKCTL,PDX,PDY ) - -! ################################################################# -!! -!!**** *SHALLOW_MF* - -!! -!! -!! PURPOSE -!! ------- -!!**** The purpose of this routine is -!! -! -!!** METHOD -!! ------ -!! -!! EXTERNAL -!! -------- -!! -!! IMPLICIT ARGUMENTS -!! ------------------ -!! -!! REFERENCE -!! --------- -!! -!! -!! AUTHOR -!! ------ -!! J.Pergaud -!! -!! MODIFICATIONS -!! ------------- -!! Original -!! V.Masson 09/2010 : optimization -!! S. Riette 18 May 2010 interface changed due to ice correction -!! S.Riette DUAL case -!! S. Riette Jan 2012: support for both order of vertical levels -!! R.Honnert 07/2012 : elemnts of Rio according to Bouteloup -!! R.Honnert 07/2012 : MF gray zone -!! R.Honnert 10/2016 : SURF=gray zone initilisation + EDKF -!! R.Honnert 10/2016 : Update with Arome -!! S. Riette Nov 2016: HFRAC_ICE support -!! Philippe Wautelet 28/05/2018: corrected truncated integer division (2/3 -> 2./3.) -!! Q.Rodier 01/2019 : support RM17 mixing length -!! R.Honnert 1/2019 : remove SURF -! P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg -! R. Honnert 04/2021: remove HRIO and BOUT schemes -!! -------------------------------------------------------------------------- -! -!* 0. DECLARATIONS -! ------------ -! -USE MODD_CST -USE MODD_PARAMETERS, ONLY: JPVEXT -USE MODD_PARAM_MFSHALL_n - -USE MODI_THL_RT_FROM_TH_R_MF -USE MODE_COMPUTE_UPDRAFT, ONLY: COMPUTE_UPDRAFT -USE MODE_COMPUTE_UPDRAFT_RHCJ10, ONLY: COMPUTE_UPDRAFT_RHCJ10 -USE MODE_COMPUTE_UPDRAFT_RAHA, ONLY: COMPUTE_UPDRAFT_RAHA -USE MODE_MF_TURB, ONLY: MF_TURB -USE MODE_MF_TURB_EXPL, ONLY: MF_TURB_EXPL -USE MODE_COMPUTE_MF_CLOUD, ONLY: COMPUTE_MF_CLOUD -USE MODE_COMPUTE_FRAC_ICE, ONLY : COMPUTE_FRAC_ICE -USE MODE_MSG, ONLY: PRINT_MSG, NVERB_FATAL -USE PARKIND1, ONLY : JPRB -USE YOMHOOK , ONLY : LHOOK, DR_HOOK -! -IMPLICIT NONE - -!* 0.1 Declaration of Arguments -! -! -! -INTEGER, INTENT(IN) :: KKA ! near ground array index -INTEGER, INTENT(IN) :: KKU ! uppest atmosphere array index -INTEGER, INTENT(IN) :: KKL ! +1 if grid goes from ground to atmosphere top, -1 otherwise -INTEGER, INTENT(IN) :: KRR ! number of moist var. -INTEGER, INTENT(IN) :: KRRL ! number of liquid water var. -INTEGER, INTENT(IN) :: KRRI ! number of ice water var. -CHARACTER(LEN=4), INTENT(IN) :: HMF_UPDRAFT ! Type of Mass Flux Scheme - ! 'NONE' if no parameterization -CHARACTER(LEN=4), INTENT(IN) :: HMF_CLOUD ! Type of statistical cloud - ! scheme -CHARACTER(LEN=1), INTENT(IN) :: HFRAC_ICE ! partition liquid/ice scheme -LOGICAL, INTENT(IN) :: OMIXUV ! True if mixing of momentum -LOGICAL, INTENT(IN) :: ONOMIXLG ! False if mixing of lagrangian tracer -INTEGER, INTENT(IN) :: KSV_LGBEG ! first index of lag. tracer -INTEGER, INTENT(IN) :: KSV_LGEND ! last index of lag. tracer -REAL, INTENT(IN) :: PIMPL_MF ! degre of implicitness -REAL, INTENT(IN) :: PTSTEP ! Dynamical timestep - -REAL, DIMENSION(:,:), INTENT(IN) :: PZZ ! Height of flux point -REAL, DIMENSION(:,:), INTENT(IN) :: PDZZ ! Metric coefficients -REAL, DIMENSION(:,:), INTENT(IN) :: PRHODJ ! dry density * Grid size -REAL, DIMENSION(:,:), INTENT(IN) :: PRHODREF ! dry density of the - ! reference state -REAL, DIMENSION(:,:), INTENT(IN) :: PPABSM ! Pressure at time t-1 -REAL, DIMENSION(:,:), INTENT(IN) :: PEXNM ! Exner function at t-dt - -REAL, DIMENSION(:), INTENT(IN) :: PSFTH,PSFRV ! normal surface fluxes of theta and Rv -REAL, DIMENSION(:,:), INTENT(IN) :: PTHM ! Theta at t-dt -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRM ! water var. at t-dt -REAL, DIMENSION(:,:), INTENT(IN) :: PUM,PVM ! wind components at t-dt -REAL, DIMENSION(:,:), INTENT(IN) :: PTKEM ! tke at t-dt - -REAL, DIMENSION(:,:,:), INTENT(IN) :: PSVM ! scalar variable a t-dt - -REAL, DIMENSION(:,:), INTENT(OUT):: PDUDT_MF ! tendency of U by massflux scheme -REAL, DIMENSION(:,:), INTENT(OUT):: PDVDT_MF ! tendency of V by massflux scheme -REAL, DIMENSION(:,:), INTENT(OUT):: PDTHLDT_MF ! tendency of thl by massflux scheme -REAL, DIMENSION(:,:), INTENT(OUT):: PDRTDT_MF ! tendency of rt by massflux scheme -REAL, DIMENSION(:,:,:), INTENT(OUT):: PDSVDT_MF ! tendency of Sv by massflux scheme - -REAL, DIMENSION(:,:), INTENT(OUT) :: PSIGMF,PRC_MF,PRI_MF,PCF_MF ! cloud info for the cloud scheme -REAL, DIMENSION(:,:), INTENT(OUT) :: PFLXZTHVMF ! Thermal production for TKE scheme -REAL, DIMENSION(:,:), INTENT(OUT) :: PFLXZTHMF -REAL, DIMENSION(:,:), INTENT(OUT) :: PFLXZRMF -REAL, DIMENSION(:,:), INTENT(OUT) :: PFLXZUMF -REAL, DIMENSION(:,:), INTENT(OUT) :: PFLXZVMF -REAL, DIMENSION(:,:), INTENT(INOUT) :: PTHL_UP ! Thl updraft characteristics -REAL, DIMENSION(:,:), INTENT(INOUT) :: PRT_UP ! Rt updraft characteristics -REAL, DIMENSION(:,:), INTENT(INOUT) :: PRV_UP ! Vapor updraft characteristics -REAL, DIMENSION(:,:), INTENT(INOUT) :: PU_UP ! U wind updraft characteristics -REAL, DIMENSION(:,:), INTENT(INOUT) :: PV_UP ! V wind updraft characteristics -REAL, DIMENSION(:,:), INTENT(INOUT) :: PRC_UP ! cloud content updraft characteristics -REAL, DIMENSION(:,:), INTENT(INOUT) :: PRI_UP ! ice content updraft characteristics -REAL, DIMENSION(:,:), INTENT(INOUT) :: PTHV_UP ! Thv updraft characteristics -REAL, DIMENSION(:,:), INTENT(INOUT) :: PW_UP ! vertical speed updraft characteristics -REAL, DIMENSION(:,:), INTENT(INOUT) :: PFRAC_UP ! updraft fraction -REAL, DIMENSION(:,:), INTENT(INOUT) :: PEMF ! updraft mass flux -REAL, DIMENSION(:,:), INTENT(OUT) :: PDETR ! updraft detrainment -REAL, DIMENSION(:,:), INTENT(OUT) :: PENTR ! updraft entrainment -INTEGER,DIMENSION(:), INTENT(OUT) :: KKLCL,KKETL,KKCTL ! level of LCL,ETL and CTL -REAL, INTENT(IN) :: PDX, PDY -! -! 0.2 Declaration of local variables -! -REAL, DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2)) :: & - ZTHLM, & ! - ZRTM, & ! - ZTHVM, & ! - ZEMF_O_RHODREF, & ! entrainment/detrainment - ZBUO_INTEG ! integrated buoyancy -REAL, DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2)) :: ZFRAC_ICE - -REAL, DIMENSION(SIZE(PSVM,1),SIZE(PSVM,2),SIZE(PSVM,3)) :: & - ZSV_UP,& ! updraft scalar var. - ZFLXZSVMF ! Flux -REAL, DIMENSION(SIZE(PTHM,1)) :: ZDEPTH ! Deepness of cloud -REAL, DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2)) :: ZFRAC_ICE_UP ! liquid/solid fraction in updraft -REAL, DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2)) :: ZRSAT_UP ! Rsat in updraft - -LOGICAL :: GENTR_DETR ! flag to recompute entrainment, detrainment and mass flux -INTEGER :: IKB ! near ground physical index -INTEGER :: IKE ! uppest atmosphere physical index -INTEGER, DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2)) :: IERR -! -REAL(KIND=JPRB) :: ZHOOK_HANDLE -!------------------------------------------------------------------------ - -!!! 1. Initialisation -IF (LHOOK) CALL DR_HOOK('SHALLOW_MF',0,ZHOOK_HANDLE) - -! vertical boundaries -IKB=KKA+KKL*JPVEXT -IKE=KKU-KKL*JPVEXT - -! updraft governing variables -IF (HMF_UPDRAFT == 'EDKF' .OR. HMF_UPDRAFT == 'RHCJ') THEN - PENTR = 1.E20 - PDETR = 1.E20 - PEMF = 1.E20 - ZBUO_INTEG = 1.E20 -ENDIF - -! Thermodynamics functions -ZFRAC_ICE(:,:) = 0. -IF (SIZE(PRM,3).GE.4) THEN - WHERE(PRM(:,:,2)+PRM(:,:,4) > 1.E-20) - ZFRAC_ICE(:,:) = PRM(:,:,4) / (PRM(:,:,2)+PRM(:,:,4)) - ENDWHERE -ENDIF -CALL COMPUTE_FRAC_ICE(HFRAC_ICE,ZFRAC_ICE(:,:),PTHM(:,:)*PEXNM(:,:), IERR(:,:)) - -! Conservative variables at t-dt -CALL THL_RT_FROM_TH_R_MF(KRR,KRRL,KRRI, & - PTHM, PRM, PEXNM, & - ZTHLM, ZRTM ) - -! Virtual potential temperature at t-dt -ZTHVM(:,:) = PTHM(:,:)*((1.+XRV / XRD *PRM(:,:,1))/(1.+ZRTM(:,:))) - -! -!!! 2. Compute updraft -!!! --------------- -! -IF (HMF_UPDRAFT == 'EDKF') THEN - GENTR_DETR = .TRUE. - CALL COMPUTE_UPDRAFT(KKA,IKB,IKE,KKU,KKL,HFRAC_ICE,GENTR_DETR,OMIXUV,& - ONOMIXLG,KSV_LGBEG,KSV_LGEND, & - PZZ,PDZZ, & - PSFTH,PSFRV,PPABSM,PRHODREF, & - PUM,PVM,PTKEM, & - PTHM,PRM(:,:,1),ZTHLM,ZRTM,PSVM, & - PTHL_UP,PRT_UP,PRV_UP,PRC_UP,PRI_UP, & - PTHV_UP, PW_UP, PU_UP, PV_UP, ZSV_UP, & - PFRAC_UP,ZFRAC_ICE_UP,ZRSAT_UP,PEMF,PDETR,& - PENTR,ZBUO_INTEG,KKLCL,KKETL,KKCTL,ZDEPTH,& - PDX,PDY) -ELSEIF (HMF_UPDRAFT == 'RHCJ') THEN - GENTR_DETR = .TRUE. - CALL COMPUTE_UPDRAFT_RHCJ10(KKA,IKB,IKE,KKU,KKL,HFRAC_ICE,GENTR_DETR,OMIXUV,& - ONOMIXLG,KSV_LGBEG,KSV_LGEND, & - PZZ,PDZZ, & - PSFTH,PSFRV,PPABSM,PRHODREF, & - PUM,PVM,PTKEM, & - PTHM,PRM(:,:,1),ZTHLM,ZRTM,PSVM, & - PTHL_UP,PRT_UP,PRV_UP,PRC_UP,PRI_UP, & - PTHV_UP, PW_UP, PU_UP, PV_UP, ZSV_UP, & - PFRAC_UP,ZFRAC_ICE_UP,ZRSAT_UP,PEMF,PDETR,& - PENTR,ZBUO_INTEG,KKLCL,KKETL,KKCTL,ZDEPTH ) -ELSEIF (HMF_UPDRAFT == 'RAHA') THEN - CALL COMPUTE_UPDRAFT_RAHA(KKA,IKB,IKE,KKU,KKL,HFRAC_ICE, & - GENTR_DETR,OMIXUV, & - ONOMIXLG,KSV_LGBEG,KSV_LGEND, & - PZZ,PDZZ, & - PSFTH,PSFRV, & - PPABSM,PRHODREF,PUM,PVM,PTKEM, & - PEXNM,PTHM,PRM(:,:,1),ZTHLM,ZRTM, & - PSVM,PTHL_UP,PRT_UP, & - PRV_UP,PRC_UP,PRI_UP, PTHV_UP, & - PW_UP, PU_UP, PV_UP, ZSV_UP, & - PFRAC_UP,ZFRAC_ICE_UP,ZRSAT_UP, & - PEMF,PDETR,PENTR, & - ZBUO_INTEG,KKLCL,KKETL,KKCTL, & - ZDEPTH ) -ELSEIF (HMF_UPDRAFT == 'DUAL') THEN - !Updraft characteristics are already computed and received by interface -ELSE - CALL PRINT_MSG( NVERB_FATAL, 'GEN', 'SHALLOW_MF', 'no updraft model for EDKF: CMF_UPDRAFT='//TRIM(HMF_UPDRAFT) ) -ENDIF - -!!! 5. Compute diagnostic convective cloud fraction and content -!!! -------------------------------------------------------- -! -CALL COMPUTE_MF_CLOUD(KKA,IKB,IKE,KKU,KKL,KRR,KRRL,KRRI,& - HMF_CLOUD,ZFRAC_ICE, & - PRC_UP,PRI_UP,PEMF, & - PTHL_UP,PRT_UP,PFRAC_UP, & - PTHV_UP,ZFRAC_ICE_UP, & - ZRSAT_UP,PEXNM,ZTHLM,ZRTM, & - PTHM, ZTHVM, PRM, & - PDZZ,PZZ,KKLCL, & - PPABSM,PRHODREF, & - PRC_MF,PRI_MF,PCF_MF,PSIGMF,ZDEPTH) - - -!!! 3. Compute fluxes of conservative variables and their divergence = tendency -!!! ------------------------------------------------------------------------ -! -ZEMF_O_RHODREF=PEMF/PRHODREF - -IF ( PIMPL_MF > 1.E-10 ) THEN - CALL MF_TURB(KKA, IKB, IKE, KKU, KKL, OMIXUV, & - ONOMIXLG,KSV_LGBEG,KSV_LGEND, & - PIMPL_MF, PTSTEP, & - PDZZ, & - PRHODJ, & - ZTHLM,ZTHVM,ZRTM,PUM,PVM,PSVM, & - PDTHLDT_MF,PDRTDT_MF,PDUDT_MF,PDVDT_MF,PDSVDT_MF, & - ZEMF_O_RHODREF,PTHL_UP,PTHV_UP,PRT_UP,PU_UP,PV_UP,ZSV_UP,& - PFLXZTHMF,PFLXZTHVMF,PFLXZRMF,PFLXZUMF,PFLXZVMF, & - ZFLXZSVMF ) -ELSE - CALL MF_TURB_EXPL(KKA, IKB, IKE, KKU, KKL, OMIXUV, & - PRHODJ, & - ZTHLM,ZTHVM,ZRTM,PUM,PVM, & - PDTHLDT_MF,PDRTDT_MF,PDUDT_MF,PDVDT_MF, & - ZEMF_O_RHODREF,PTHL_UP,PTHV_UP,PRT_UP,PU_UP,PV_UP, & - PFLXZTHMF,PFLXZTHVMF,PFLXZRMF,PFLXZUMF,PFLXZVMF) -ENDIF - -! security in the case HMF_UPDRAFT = 'DUAL' -! to be modified if 'DUAL' is evolving (momentum mixing for example) -IF( HMF_UPDRAFT == 'DUAL') THEN - ! Now thetav_up from vdfhghtnn is used! - PFLXZTHVMF=0. - ! Yes/No UV mixing! -! PDUDT_MF=0. -! PDVDT_MF=0. -ENDIF -! -IF (LHOOK) CALL DR_HOOK('SHALLOW_MF',1,ZHOOK_HANDLE) -CONTAINS -INCLUDE "compute_frac_ice.func.h" -! -END SUBROUTINE SHALLOW_MF diff --git a/src/mesonh/turb/th_r_from_thl_rt_1d.f90 b/src/mesonh/turb/th_r_from_thl_rt_1d.f90 deleted file mode 100644 index 09aa2610d1630375293fd956daeb03e829ec244a..0000000000000000000000000000000000000000 --- a/src/mesonh/turb/th_r_from_thl_rt_1d.f90 +++ /dev/null @@ -1,203 +0,0 @@ -!MNH_LIC Copyright 2006-2021 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!----------------------------------------------------------------- -! ######spl - MODULE MODI_TH_R_FROM_THL_RT_1D -! ############################### -! - INTERFACE - SUBROUTINE TH_R_FROM_THL_RT_1D(HFRAC_ICE,PFRAC_ICE,PP, & - PTHL, PRT, PTH, PRV, PRL, PRI, & - PRSATW, PRSATI, PRR, PRS, PRG, PRH ) -CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE -REAL, DIMENSION(:), INTENT(INOUT) :: PFRAC_ICE -REAL, DIMENSION(:), INTENT(IN) :: PP ! Pressure -REAL, DIMENSION(:), INTENT(IN) :: PTHL ! Liquid pot. temp. -REAL, DIMENSION(:), INTENT(IN) :: PRT ! Total mixing ratios -REAL, DIMENSION(:),OPTIONAL,INTENT(IN) :: PRR, PRS, PRG, PRH -REAL, DIMENSION(:), INTENT(OUT):: PTH ! Potential temp. -REAL, DIMENSION(:), INTENT(OUT):: PRV ! vapor mixing ratio -REAL, DIMENSION(:), INTENT(INOUT):: PRL ! cloud mixing ratio -REAL, DIMENSION(:), INTENT(INOUT):: PRI ! ice mixing ratio -REAL, DIMENSION(:), INTENT(OUT) :: PRSATW ! estimated mixing ration at saturation over water -REAL, DIMENSION(:), INTENT(OUT) :: PRSATI ! estimated mixing ration at saturation over ice - - END SUBROUTINE TH_R_FROM_THL_RT_1D - END INTERFACE - END MODULE MODI_TH_R_FROM_THL_RT_1D -! ######spl - SUBROUTINE TH_R_FROM_THL_RT_1D(HFRAC_ICE,PFRAC_ICE,PP, & - PTHL, PRT, PTH, PRV, PRL, PRI, & - PRSATW, PRSATI, PRR, PRS, PRG, PRH ) -! ################################################################# -! -! -!!**** *TH_R_FROM_THL_RT_1D* - computes the non-conservative variables -!! from conservative variables -!! -!! PURPOSE -!! ------- -!! -!!** METHOD -!! ------ -!! -!! -!! EXTERNAL -!! -------- -!! -!! IMPLICIT ARGUMENTS -!! ------------------ -!! -!! -!! REFERENCE -!! --------- -!! -!! AUTHOR -!! ------ -!! Julien PERGAUD * Meteo-France * -!! -!! MODIFICATIONS -!! ------------- -!! Original 13/03/06 -!! S. Riette April 2011 : ice added, allow ZRLTEMP to be negative -!! we use dQsat/dT to help convergence -!! use of optional PRR, PRS, PRG, PRH -!! S. Riette Nov 2016: support for HFRAC_ICE='S' -!! -!! -------------------------------------------------------------------------- -! -!* 0. DECLARATIONS -! ------------ -! -USE MODI_COMPUTE_FRAC_ICE -USE MODD_CST -USE MODD_DYN_n, ONLY : LOCEAN -USE MODE_THERMO -! -IMPLICIT NONE -! -! -!* 0.1 declarations of arguments -! -CHARACTER(LEN=1), INTENT(IN) :: HFRAC_ICE -REAL, DIMENSION(:), INTENT(INOUT) :: PFRAC_ICE -REAL, DIMENSION(:), INTENT(IN) :: PP ! Pressure -REAL, DIMENSION(:), INTENT(IN) :: PTHL ! thetal to transform into th -REAL, DIMENSION(:),INTENT(IN) :: PRT ! Total mixing ratios to transform into rv,rc and ri -REAL, DIMENSION(:),OPTIONAL,INTENT(IN) :: PRR, PRS, PRG, PRH -REAL, DIMENSION(:), INTENT(OUT):: PTH ! th -REAL, DIMENSION(:), INTENT(OUT):: PRV ! vapor mixing ratio -REAL, DIMENSION(:), INTENT(INOUT):: PRL ! vapor mixing ratio -REAL, DIMENSION(:), INTENT(INOUT):: PRI ! vapor mixing ratio -REAL, DIMENSION(:), INTENT(OUT) :: PRSATW ! estimated mixing ration at saturation over water -REAL, DIMENSION(:), INTENT(OUT) :: PRSATI ! estimated mixing ration at saturation over ice -! -!------------------------------------------------------------------------------- -! -! 0.2 declaration of local variables -INTEGER :: II ! Loop control -INTEGER :: JITER ! number of iterations -REAL, DIMENSION(SIZE(PTHL,1)) :: ZEXN -REAL, DIMENSION(SIZE(PTHL,1)) :: ZRVSAT,ZCPH,ZRLTEMP,ZCPH2 -REAL, DIMENSION(SIZE(PTHL,1)) :: ZT,ZLVOCPEXN,ZLSOCPEXN -REAL, DIMENSION(SIZE(PTHL,1)) :: ZDRSATODT,ZDRSATODTW,ZDRSATODTI -REAL, DIMENSION(SIZE(PTHL,1)) :: ZFOESW, ZFOESI -!---------------------------------------------------------------------------- -! -!* 1 Initialisation -! -------------- -! -! -! -!Number of iterations -JITER=2 -! -!Computation of ZCPH2 depending on dummy arguments received -ZCPH2(:)=0 -IF(PRESENT(PRR)) ZCPH2(:)=ZCPH2(:) + XCL*PRR(:) -IF(PRESENT(PRS)) ZCPH2(:)=ZCPH2(:) + XCI*PRS(:) -IF(PRESENT(PRG)) ZCPH2(:)=ZCPH2(:) + XCI*PRG(:) -IF(PRESENT(PRH)) ZCPH2(:)=ZCPH2(:) + XCI*PRH(:) -! -!Computation of an approximate state thanks to PRL and PRI guess -ZEXN(:)=(PP(:)/XP00) ** (XRD/XCPD) -ZT(:)=PTHL(:)*ZEXN(:) -PRV(:)=PRT(:)-PRL(:)-PRI(:) -ZCPH(:)=XCPD+ XCPV * PRV(:)+ XCL * PRL(:) + XCI * PRI(:) + ZCPH2(:) -ZLVOCPEXN(:) = (XLVTT + (XCPV-XCL) * (ZT(:)-XTT)) & - /(ZCPH(:)*ZEXN(:)) -ZLSOCPEXN(:) = (XLSTT + (XCPV-XCI) * (ZT(:)-XTT)) & - /(ZCPH(:)*ZEXN(:)) -PTH(:)=PTHL(:)+ZLVOCPEXN(:)*PRL(:)+ZLSOCPEXN(:)*PRI(:) -! -! -! 2 Iteration -! --------- - -DO II=1,JITER - IF (LOCEAN) THEN - ZT=PTH - ELSE - ZT(:)=PTH(:)*ZEXN(:) - END IF - !Computation of liquid/ice fractions - PFRAC_ICE(:) = 0. - WHERE(PRL(:)+PRI(:) > 1.E-20) - PFRAC_ICE(:) = PRI(:) / (PRL(:)+PRI(:)) - ENDWHERE - CALL COMPUTE_FRAC_ICE(HFRAC_ICE,PFRAC_ICE(:),ZT(:)) - - !Computation of Rvsat and dRsat/dT - !In this version QSAT, QSATI, DQSAT and DQASATI functions are not used - !due to performance issue - ZFOESW(:) = MIN(EXP( XALPW - XBETAW/ZT(:) - XGAMW*LOG(ZT(:)) ), 0.99*PP(:)) - ZFOESI(:) = MIN(EXP( XALPI - XBETAI/ZT(:) - XGAMI*LOG(ZT(:)) ), 0.99*PP(:)) - PRSATW(:) = XRD/XRV*ZFOESW(:)/PP(:) / (1.+(XRD/XRV-1.)*ZFOESW(:)/PP(:)) - PRSATI(:) = XRD/XRV*ZFOESI(:)/PP(:) / (1.+(XRD/XRV-1.)*ZFOESI(:)/PP(:)) - ZDRSATODTW(:) = PRSATW(:) / (1.+(XRD/XRV-1.)*ZFOESW(:)/PP(:) ) & - * (XBETAW/ZT(:)**2 - XGAMW/ZT(:))*(1+PRT(:)) - ZDRSATODTI(:) = PRSATI(:) / (1.+(XRD/XRV-1.)*ZFOESI(:)/PP(:) ) & - * (XBETAI/ZT(:)**2 - XGAMI/ZT(:))*(1+PRT(:)) - !PRSATW(:) = QSAT(ZT(:),PP(:)) !qsatw - !PRSATI(:) = QSATI(ZT(:),PP(:)) !qsati - !ZDRSATODTW(:) = DQSAT(ZT(:),PP(:),PRSATW(:))*(1+PRT(:)) - !ZDRSATODTI(:) = DQSATI(ZT(:),PP(:),PRSATI(:))*(1+PRT(:)) - PRSATW(:) = PRSATW(:)*(1+PRT(:)) - PRSATI(:) = PRSATI(:)*(1+PRT(:)) - ZRVSAT(:) = PRSATW(:)*(1-PFRAC_ICE(:)) + PRSATI(:)*PFRAC_ICE(:) - ZDRSATODT(:) = (ZDRSATODTW(:)*(1-PFRAC_ICE(:))+ & - & ZDRSATODTI(:)*PFRAC_ICE(:)) - - !Computation of new PRL, PRI and PRV - !Correction term applied to (PRV(:)-ZRVSAT(:)) is computed assuming that - !ZLVOCPEXN, ZLSOCPEXN and ZCPH don't vary to much with T. It takes into account - !the variation (estimated linear) of Qsat with T - ZRLTEMP(:)=(PRV(:)-ZRVSAT(:))/ & - &(1 + ZDRSATODT(:)*ZEXN(:)* & - & (ZLVOCPEXN(:)*(1-PFRAC_ICE(:))+ZLSOCPEXN(:)*PFRAC_ICE(:))) - ZRLTEMP(:)=MIN(MAX(-PRL(:)-PRI(:), ZRLTEMP(:)),PRV(:)) - PRV(:)=PRV(:)-ZRLTEMP(:) - PRL(:)=PRL(:)+PRI(:)+ZRLTEMP(:) - PRI(:)=PFRAC_ICE(:) * (PRL(:)) - PRL(:)=(1-PFRAC_ICE(:)) * (PRT(:) - PRV(:)) - - !Computation of Cph (as defined in Meso-NH doc, equation 2.2, to be used with mixing ratios) - ZCPH(:)=XCPD+ XCPV * PRV(:)+ XCL * PRL(:) + XCI * PRI(:) + ZCPH2(:) - - !Computation of L/Cph/EXN, then new PTH - ZLVOCPEXN(:) = (XLVTT + (XCPV-XCL) * (ZT(:)-XTT)) & - /(ZCPH(:)*ZEXN(:)) - ZLSOCPEXN(:) = (XLSTT + (XCPV-XCI) * (ZT(:)-XTT)) & - /(ZCPH(:)*ZEXN(:)) - PTH(:)=PTHL(:)+ZLVOCPEXN(:)*PRL(:)+ZLSOCPEXN(:)*PRI(:) - - !Computation of estimated mixing ration at saturation - !To compute the adjustement a first order development was used - PRSATW(:)=PRSATW(:) + ZDRSATODTW(:)*(PTH(:)*ZEXN(:)-ZT(:)) - PRSATI(:)=PRSATI(:) + ZDRSATODTI(:)*(PTH(:)*ZEXN(:)-ZT(:)) -ENDDO - - -END SUBROUTINE TH_R_FROM_THL_RT_1D diff --git a/src/mesonh/turb/th_r_from_thl_rt_2d.f90 b/src/mesonh/turb/th_r_from_thl_rt_2d.f90 deleted file mode 100644 index d610a72bda073171f6154bdc8e6a6f1e6763300f..0000000000000000000000000000000000000000 --- a/src/mesonh/turb/th_r_from_thl_rt_2d.f90 +++ /dev/null @@ -1,128 +0,0 @@ -!MNH_LIC Copyright 2006-2019 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!----------------------------------------------------------------- -! ######spl - MODULE MODI_TH_R_FROM_THL_RT_2D - INTERFACE - SUBROUTINE TH_R_FROM_THL_RT_2D(HFRAC_ICE,PFRAC_ICE,PP, & - PTHL, PRT, PTH, PRV, PRL, PRI, & - PRSATW, PRSATI, PRR, PRS, PRG, PRH ) -CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE -REAL, DIMENSION(:,:), INTENT(INOUT) :: PFRAC_ICE -REAL, DIMENSION(:,:), INTENT(IN) :: PP ! Pressure -REAL, DIMENSION(:,:), INTENT(IN) :: PTHL ! thetal to transform into th -REAL, DIMENSION(:,:),INTENT(IN) :: PRT ! Total mixing ratios to transform into rv,rc and ri -REAL, DIMENSION(:),OPTIONAL,INTENT(IN) :: PRR, PRS, PRG, PRH -REAL, DIMENSION(:,:), INTENT(OUT):: PTH ! th -REAL, DIMENSION(:,:), INTENT(OUT):: PRV ! vapor mixing ratio -REAL, DIMENSION(:,:), INTENT(INOUT):: PRL ! vapor mixing ratio -REAL, DIMENSION(:,:), INTENT(INOUT):: PRI ! vapor mixing ratio -REAL, DIMENSION(:,:), INTENT(OUT) :: PRSATW ! estimated mixing ration at saturation over water -REAL, DIMENSION(:,:), INTENT(OUT) :: PRSATI ! estimated mixing ration at saturation over ice - - END SUBROUTINE TH_R_FROM_THL_RT_2D - - END INTERFACE - - END MODULE MODI_TH_R_FROM_THL_RT_2D - -! ######spl - SUBROUTINE TH_R_FROM_THL_RT_2D(HFRAC_ICE,PFRAC_ICE,PP, & - PTHL, PRT, PTH, PRV, PRL, PRI, & - PRSATW, PRSATI, PRR, PRS, PRG, PRH ) -! ################################################################# -! -! -!!**** *TH_R_FROM_THL_RT_2D* - computes the non-conservative variables -!! from conservative variables -!! -!! PURPOSE -!! ------- -!! -!!** METHOD -!! ------ -!! -!! -!! EXTERNAL -!! -------- -!! -!! IMPLICIT ARGUMENTS -!! ------------------ -!! -!! -!! REFERENCE -!! --------- -!! -!! AUTHOR -!! ------ -!! Julien PERGAUD * Meteo-France * -!! -!! MODIFICATIONS -!! ------------- -!! Original 13/03/06 -!! Sébastien Riette April 2011: code moved in th_r_from_thl_rt_3D -!! -!! -------------------------------------------------------------------------- -! -!* 0. DECLARATIONS -! ------------ -! -! -USE MODI_TH_R_FROM_THL_RT_3D - -IMPLICIT NONE -! -! -!* 0.1 declarations of arguments -! -CHARACTER(LEN=1), INTENT(IN) :: HFRAC_ICE -REAL, DIMENSION(:,:), INTENT(INOUT) :: PFRAC_ICE -REAL, DIMENSION(:,:), INTENT(IN) :: PP ! Pressure -REAL, DIMENSION(:,:), INTENT(IN) :: PTHL ! Liquid pot. temp. -REAL, DIMENSION(:,:), INTENT(IN) :: PRT ! Total mixing ratios -REAL, DIMENSION(:,:),OPTIONAL,INTENT(IN) :: PRR, PRS, PRG, PRH -REAL, DIMENSION(:,:), INTENT(OUT):: PTH ! Potential temp. -REAL, DIMENSION(:,:), INTENT(OUT):: PRV ! vapor mixing ratio -REAL, DIMENSION(:,:), INTENT(INOUT):: PRL ! cloud mixing ratio -REAL, DIMENSION(:,:), INTENT(INOUT):: PRI ! ice mixing ratio -REAL, DIMENSION(:,:), INTENT(OUT) :: PRSATW ! estimated mixing ration at saturation over water -REAL, DIMENSION(:,:), INTENT(OUT) :: PRSATI ! estimated mixing ration at saturation over ice - -! -!------------------------------------------------------------------------------- -! -! 0.2 declaration of local variables -! -!---------------------------------------------------------------------------- -! -REAL, DIMENSION(SIZE(PP,1),SIZE(PP,2)) :: ZRR, ZRS, ZRG, ZRH -INTEGER :: JK -!---------------------------------------------------------------------------- -! -!* 1 Initialisation -! -------------- -! -ZRR(:,:)=0. -ZRS(:,:)=0. -ZRG(:,:)=0. -ZRH(:,:)=0. -IF(PRESENT(PRR)) ZRR(:,:)=PRR(:,:) -IF(PRESENT(PRS)) ZRS(:,:)=PRS(:,:) -IF(PRESENT(PRG)) ZRG(:,:)=PRG(:,:) -IF(PRESENT(PRH)) ZRH(:,:)=PRH(:,:) -! -! -! 2 Call of 1d version -! ------------------ -DO JK=1, SIZE(PTHL,2) - CALL TH_R_FROM_THL_RT_1D(HFRAC_ICE,PFRAC_ICE(:,JK),PP(:,JK), & - PTHL(:,JK), PRT(:,JK), PTH(:,JK), & - PRV(:,JK), PRL(:,JK), PRI(:,JK), & - PRSATW(:,JK), PRSATI(:,JK), & - ZRR(:,JK), ZRS(:,JK), ZRG(:,JK), ZRH(:,JK)) -ENDDO - - -END SUBROUTINE TH_R_FROM_THL_RT_2D diff --git a/src/mesonh/turb/th_r_from_thl_rt_3d.f90 b/src/mesonh/turb/th_r_from_thl_rt_3d.f90 deleted file mode 100644 index 0591be50c12cee5be78a7522530ddfa5617a35f1..0000000000000000000000000000000000000000 --- a/src/mesonh/turb/th_r_from_thl_rt_3d.f90 +++ /dev/null @@ -1,126 +0,0 @@ -!MNH_LIC Copyright 2011-2019 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!----------------------------------------------------------------- -! ######spl - MODULE MODI_TH_R_FROM_THL_RT_3D -! ############################### -INTERFACE -! - SUBROUTINE TH_R_FROM_THL_RT_3D(HFRAC_ICE,PFRAC_ICE,PP, & - PTHL, PRT, PTH, PRV, PRL, PRI, & - PRSATW, PRSATI, PRR, PRS, PRG, PRH ) - -CHARACTER(len=1), INTENT(IN) :: HFRAC_ICE -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFRAC_ICE -REAL, DIMENSION(:,:,:), INTENT(IN) :: PP ! Pressure -REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHL ! thetal to transform into th -REAL, DIMENSION(:,:,:),INTENT(IN) :: PRT ! Total mixing ratios to transform into rv,rc and ri -REAL, DIMENSION(:,:,:),OPTIONAL,INTENT(IN) :: PRR, PRS, PRG, PRH -REAL, DIMENSION(:,:,:), INTENT(OUT):: PTH ! th -REAL, DIMENSION(:,:,:), INTENT(OUT):: PRV ! vapor mixing ratio -REAL, DIMENSION(:,:,:), INTENT(INOUT):: PRL ! vapor mixing ratio -REAL, DIMENSION(:,:,:), INTENT(INOUT):: PRI ! vapor mixing ratio -REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRSATW ! estimated mixing ration at saturation over water -REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRSATI ! estimated mixing ration at saturation over ice -! -END SUBROUTINE TH_R_FROM_THL_RT_3D -! -END INTERFACE -! -END MODULE MODI_TH_R_FROM_THL_RT_3D -! ######spl - SUBROUTINE TH_R_FROM_THL_RT_3D(HFRAC_ICE,PFRAC_ICE,PP, & - PTHL, PRT, PTH, PRV, PRL, PRI, & - PRSATW, PRSATI, PRR, PRS, PRG, PRH ) -! ################################################################# -! -! -!!**** *TH_R_FROM_THL_RT_3D* - computes the non-conservative variables -!! from conservative variables -!! -!! PURPOSE -!! ------- -!! -!!** METHOD -!! ------ -!! -!! -!! EXTERNAL -!! -------- -!! -!! IMPLICIT ARGUMENTS -!! ------------------ -!! -!! -!! REFERENCE -!! --------- -!! -!! AUTHOR -!! ------ -!! Julien PERGAUD * Meteo-France * -!! -!! MODIFICATIONS -!! ------------- -!! Original 15/03/2011 -!! S. Riette April 2011 : code moved in th_r_from_thl_rt_1d -!! -!! -------------------------------------------------------------------------- -! -!* 0. DECLARATIONS -! ------------ -! -USE MODI_TH_R_FROM_THL_RT_1D -! -IMPLICIT NONE -! -! -!* 0.1 declarations of arguments -! -CHARACTER(LEN=1), INTENT(IN) :: HFRAC_ICE -REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFRAC_ICE -REAL, DIMENSION(:,:,:), INTENT(IN) :: PP ! Pressure -REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHL ! thetal to transform into th -REAL, DIMENSION(:,:,:),INTENT(IN) :: PRT ! Total mixing ratios to transform into rv,rc and ri -REAL, DIMENSION(:,:,:),OPTIONAL,INTENT(IN) :: PRR, PRS, PRG, PRH -REAL, DIMENSION(:,:,:), INTENT(OUT):: PTH ! th -REAL, DIMENSION(:,:,:), INTENT(OUT):: PRV ! vapor mixing ratio -REAL, DIMENSION(:,:,:), INTENT(INOUT):: PRL ! vapor mixing ratio -REAL, DIMENSION(:,:,:), INTENT(INOUT):: PRI ! vapor mixing ratio -REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRSATW ! estimated mixing ration at saturation over water -REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRSATI ! estimated mixing ration at saturation over ice -! -!------------------------------------------------------------------------------- -! -! 0.2 declaration of local variables -REAL, DIMENSION(SIZE(PTHL,1),SIZE(PTHL,2),SIZE(PTHL,3)) :: ZRR, ZRS, ZRG, ZRH -INTEGER :: JJ, JK -!---------------------------------------------------------------------------- -! -!* 1 Initialisation -! -------------- -! -ZRR(:,:,:)=0. -ZRS(:,:,:)=0. -ZRG(:,:,:)=0. -ZRH(:,:,:)=0. -IF(PRESENT(PRR)) ZRR(:,:,:)=PRR(:,:,:) -IF(PRESENT(PRS)) ZRS(:,:,:)=PRS(:,:,:) -IF(PRESENT(PRG)) ZRG(:,:,:)=PRG(:,:,:) -IF(PRESENT(PRH)) ZRH(:,:,:)=PRH(:,:,:) -! -! -! 2 Call of 1d version -! ------------------ -DO JK=1, SIZE(PTHL,3) - DO JJ=1, SIZE(PTHL,2) - CALL TH_R_FROM_THL_RT_1D(HFRAC_ICE,PFRAC_ICE(:,JJ,JK),PP(:,JJ,JK), & - PTHL(:,JJ,JK), PRT(:,JJ,JK), PTH(:,JJ,JK), & - PRV(:,JJ,JK), PRL(:,JJ,JK), PRI(:,JJ,JK), & - PRSATW(:,JJ,JK), PRSATI(:,JJ,JK), & - ZRR(:,JJ,JK), ZRS(:,JJ,JK), ZRG(:,JJ,JK), ZRH(:,JJ,JK)) - ENDDO -ENDDO - -END SUBROUTINE TH_R_FROM_THL_RT_3D diff --git a/src/mesonh/turb/thl_rt_from_th_r_mf.f90 b/src/mesonh/turb/thl_rt_from_th_r_mf.f90 deleted file mode 100644 index 1fb982a1a082c9812051d3242c7c92387cef8354..0000000000000000000000000000000000000000 --- a/src/mesonh/turb/thl_rt_from_th_r_mf.f90 +++ /dev/null @@ -1,146 +0,0 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -! ######spl - MODULE MODI_THL_RT_FROM_TH_R_MF -! ############################### -! -INTERFACE -! ################################################################# - SUBROUTINE THL_RT_FROM_TH_R_MF( KRR,KRRL,KRRI, & - PTH, PR, PEXN, & - PTHL, PRT ) -! ################################################################# -! -! -!* 1.1 Declaration of Arguments -! -! -INTEGER, INTENT(IN) :: KRR ! number of moist var. -INTEGER, INTENT(IN) :: KRRL ! number of liquid water var. -INTEGER, INTENT(IN) :: KRRI ! number of ice water var. - -REAL, DIMENSION(:,:), INTENT(IN) :: PTH ! theta -REAL, DIMENSION(:,:,:), INTENT(IN) :: PR ! water species -REAL, DIMENSION(:,:), INTENT(IN) :: PEXN ! exner function - -REAL, DIMENSION(:,:), INTENT(OUT) :: PTHL ! th_l -REAL, DIMENSION(:,:), INTENT(OUT) :: PRT ! total non precip. water -! -END SUBROUTINE THL_RT_FROM_TH_R_MF - -END INTERFACE -! -END MODULE MODI_THL_RT_FROM_TH_R_MF -! ################################################################# - SUBROUTINE THL_RT_FROM_TH_R_MF( KRR,KRRL,KRRI, & - PTH, PR, PEXN, & - PTHL, PRT ) -! ################################################################# -! -!! -!!**** *THL_RT_FROM_TH_R* - computes the conservative variables THL and RT -!! from TH and the non precipitating water species -!! -!! PURPOSE -!! ------- -!! -!!** METHOD -!! ------ -!! -!! -!! EXTERNAL -!! -------- -!! -!! IMPLICIT ARGUMENTS -!! ------------------ -!! -!! -!! REFERENCE -!! --------- -!! -!! AUTHOR -!! ------ -!! V. Masson * Meteo-France * -!! -!! MODIFICATIONS -!! ------------- -!! Original 20/09/02 -!! Externalisation of computations done in TURB and MF_TURB (Malardel and Pergaud, fev. 2007) -!! V.Masson : Optimization -!! S. Riette 2011 suppression of PLVOCPEXN and PLSOCPEXN -!! -!! -------------------------------------------------------------------------- -! -!* 0. DECLARATIONS -! ------------ -! -USE MODD_CST -! -IMPLICIT NONE -! -! -!* 0.1 declarations of arguments -! -INTEGER, INTENT(IN) :: KRR ! number of moist var. -INTEGER, INTENT(IN) :: KRRL ! number of liquid water var. -INTEGER, INTENT(IN) :: KRRI ! number of ice water var. - -REAL, DIMENSION(:,:), INTENT(IN) :: PTH ! theta -REAL, DIMENSION(:,:,:), INTENT(IN) :: PR ! water species -REAL, DIMENSION(:,:), INTENT(IN) :: PEXN ! exner function - -REAL, DIMENSION(:,:), INTENT(OUT) :: PTHL ! th_l -REAL, DIMENSION(:,:), INTENT(OUT) :: PRT ! total non precip. water -! -!------------------------------------------------------------------------------- -! -! 0.2 declaration of local variables -! - -!---------------------------------------------------------------------------- -REAL, DIMENSION(SIZE(PTH,1),SIZE(PTH,2)) :: ZCP, ZT -REAL, DIMENSION(SIZE(PTH,1),SIZE(PTH,2)) :: ZLVOCPEXN, ZLSOCPEXN -INTEGER :: JRR -!---------------------------------------------------------------------------- -! -! -!temperature -ZT(:,:) = PTH(:,:) * PEXN(:,:) - -!Cp -ZCP=XCPD -IF (KRR > 0) ZCP(:,:) = ZCP(:,:) + XCPV * PR(:,:,1) -DO JRR = 2,1+KRRL ! loop on the liquid components - ZCP(:,:) = ZCP(:,:) + XCL * PR(:,:,JRR) -END DO -DO JRR = 2+KRRL,1+KRRL+KRRI ! loop on the solid components - ZCP(:,:) = ZCP(:,:) + XCI * PR(:,:,JRR) -END DO - -IF ( KRRL >= 1 ) THEN - IF ( KRRI >= 1 ) THEN - !ZLVOCPEXN and ZLSOCPEXN - ZLVOCPEXN(:,:)=(XLVTT + (XCPV-XCL) * (ZT(:,:)-XTT) ) / ZCP(:,:) / PEXN(:,:) - ZLSOCPEXN(:,:)=(XLSTT + (XCPV-XCI) * (ZT(:,:)-XTT) ) / ZCP(:,:) / PEXN(:,:) - ! Rnp - PRT(:,:) = PR(:,:,1) + PR(:,:,2) + PR(:,:,4) - ! Theta_l - PTHL(:,:) = PTH(:,:) - ZLVOCPEXN(:,:) * PR(:,:,2) & - - ZLSOCPEXN(:,:) * PR(:,:,4) - ELSE - !ZLVOCPEXN - ZLVOCPEXN(:,:)=(XLVTT + (XCPV-XCL) * (ZT(:,:)-XTT) ) / ZCP(:,:) / PEXN(:,:) - ! Rnp - PRT(:,:) = PR(:,:,1) + PR(:,:,2) - ! Theta_l - PTHL(:,:) = PTH(:,:) - ZLVOCPEXN(:,:) * PR(:,:,2) - END IF -ELSE - ! Rnp = rv - PRT(:,:) = PR(:,:,1) - ! Theta_l = Theta - PTHL(:,:) = PTH(:,:) -END IF -END SUBROUTINE THL_RT_FROM_TH_R_MF