From d827f4c9461392b6162cc123647b9e5f9ae13b22 Mon Sep 17 00:00:00 2001 From: Man Zhang Date: Mon, 13 May 2024 10:18:05 -0600 Subject: [PATCH 01/29] initiate SciDoc for CCPP-SCM v7 --- physics/docs/ccpp_doxyfile | 170 +++------------------ physics/docs/pdftxt/GFS_RRTMG.txt | 2 +- physics/docs/pdftxt/GFS_RRTMGP.txt | 2 +- physics/docs/pdftxt/GFS_ugwpv1_gsldrag.txt | 6 +- physics/docs/pdftxt/GFS_v16_suite.txt | 2 +- physics/docs/pdftxt/GFS_v17_p8_RRTMGP.txt | 32 ++++ physics/docs/pdftxt/GFS_v17_p8_suite.txt | 18 +-- physics/docs/pdftxt/RRFS_v1_suite.txt | 35 +++++ physics/docs/pdftxt/WoFS_v0_suite.txt | 2 +- physics/docs/pdftxt/all_schemes_list.txt | 34 +++-- physics/docs/pdftxt/mainpage.txt | 36 ++--- physics/docs/pdftxt/rad_cld.txt | 2 +- physics/docs/pdftxt/suite_input.nml.txt | 39 ++++- 13 files changed, 178 insertions(+), 202 deletions(-) create mode 100644 physics/docs/pdftxt/GFS_v17_p8_RRTMGP.txt create mode 100644 physics/docs/pdftxt/RRFS_v1_suite.txt diff --git a/physics/docs/ccpp_doxyfile b/physics/docs/ccpp_doxyfile index b4ca66424..2b7d345b5 100644 --- a/physics/docs/ccpp_doxyfile +++ b/physics/docs/ccpp_doxyfile @@ -2,7 +2,7 @@ DOXYFILE_ENCODING = UTF-8 PROJECT_NAME = "CCPP SciDoc" -PROJECT_NUMBER = "v6.0.0" +PROJECT_NUMBER = "v7.0.0" PROJECT_BRIEF = "Common Community Physics Package Developed at DTC" PROJECT_LOGO = img/dtc_logo.png OUTPUT_DIRECTORY = doc @@ -118,13 +118,12 @@ INPUT = pdftxt/mainpage.txt \ pdftxt/all_schemes_list.txt \ pdftxt/GFS_v16_suite.txt \ pdftxt/GFS_v17_p8_suite.txt \ - pdftxt/RAP_suite.txt \ - pdftxt/HRRR_suite.txt \ - pdftxt/RE6/FV3_HRRR_input.nml \ - pdftxt/RRFS_v1beta_suite.txt \ + pdftxt/GFS_v17_p8_RRTMGP.txt \ + pdftxt/RRFS_v1_suite.txt \ pdftxt/WoFS_v0_suite.txt \ pdftxt/RRFS_SGSCLOUD.txt \ pdftxt/GFS_RRTMG.txt \ + pdftxt/GFS_RRTMGP.txt \ pdftxt/GFS_SFCLYR.txt \ pdftxt/MYNN_SFCLAYER.txt \ pdftxt/GFS_NSST.txt \ @@ -135,6 +134,7 @@ INPUT = pdftxt/mainpage.txt \ pdftxt/GFS_NOAHMP.txt \ pdftxt/GFS_UGWPv0.txt \ pdftxt/GFS_unified_ugwp.txt \ + pdftxt/GFS_ugwpv1_gsldrag.txt \ pdftxt/GFS_drag_suite.txt \ pdftxt/GFS_GWDPS.txt \ pdftxt/GFS_OZPHYS.txt \ @@ -146,151 +146,23 @@ INPUT = pdftxt/mainpage.txt \ pdftxt/MYNN_EDMF.txt \ pdftxt/CU_GF_deep.txt \ pdftxt/RUCLSM.txt \ + pdftxt/CLM_LAKE.txt \ pdftxt/THOMPSON.txt \ pdftxt/suite_input.nml.txt \ pdftxt/GFS_SPP.txt \ - ../fv_sat_adj.F90 \ - ../GFS_time_vary_pre.fv3.F90 \ - ../GFS_rad_time_vary.fv3.F90 \ - ../GFS_phys_time_vary.fv3.F90 \ - ../get_prs_fv3.F90 \ - ../get_phi_fv3.F90 \ - ../ozne_def.f \ - ../ozinterp.f90 \ - ../h2o_def.f \ - ../h2ointerp.f90 \ - ../aerclm_def.F \ - ../aerinterp.F90 \ - ../iccn_def.F \ - ../iccninterp.F90 \ - ../sfcsub.F \ - ../gcycle.F90 \ - ../GFS_suite_interstitial_1.F90 \ - ../GFS_suite_interstitial_2.F90 \ - ../GFS_suite_interstitial_3.F90 \ - ../GFS_suite_interstitial_4.F90 \ - ../GFS_suite_interstitial_5.F90 \ - ../GFS_suite_interstitial_phys_reset.F90 \ - ../GFS_suite_interstitial_rad_reset.F90 \ - ../GFS_suite_stateout_reset.F90 \ - ../GFS_suite_stateout_update.F90 \ - ../GFS_surface_composites_inter.F90 \ - ../GFS_surface_composites_pre.F90 \ - ../GFS_surface_composites_post.F90 \ - ../GFS_surface_loop_control_part1.F90 \ - ../GFS_surface_loop_control_part2.F90 \ - ../GFS_radiation_surface.F90 \ - ../GFS_rrtmg_pre.F90 \ - ../GFS_rrtmg_post.F90 \ - ../GFS_rrtmg_setup.F90 \ - ../rad_sw_pre.F90 \ - ../sgscloud_radpre.F90 \ - ../sgscloud_radpost.F90 \ - ../radsw_main.F90 \ - ../rrtmg_sw_post.F90 \ - ../rrtmg_lw_pre.F90 \ - ../radlw_main.F90 \ - ../rrtmg_lw_post.F90 \ - ../radiation_aerosols.f \ - ../radiation_astronomy.f \ - ../radiation_clouds.f \ - ../radiation_cloud_overlap.F90 \ - ../radiation_gases.f \ - ../radiation_surface.f \ - ../radlw_param.f \ - ../radlw_datatb.f \ - ../radsw_param.f \ - ../radsw_datatb.f \ - ../GFS_cloud_diagnostics.F90 \ - ../dcyc2t3.f \ - ../sfc_diff.f \ - ../sfc_diag.f \ - ../sfc_diag_post.F90 \ - ../sfc_nst.f \ - ../sfc_nst_pre.f \ - ../sfc_nst_post.f \ - ../sfc_ocean.F \ - ../module_nst_model.f90 \ - ../module_nst_parameters.f90 \ - ../module_nst_water_prop.f90 \ - ../lsm_noah.f \ - ../sflx.f \ - ../namelist_soilveg.f \ - ../set_soilveg.f \ - ../noahmpdrv.F90 \ - ../module_sf_noahmplsm.f90 \ - ../module_sf_noahmp_glacier.f90 \ - ../noahmp_tables.f90 \ - ../GFS_surface_generic_pre.F90 \ - ../GFS_surface_generic_post.F90 \ - ../surface_perturbation.F90 \ - ../GFS_DCNV_generic_pre.F90 \ - ../GFS_DCNV_generic_post.F90 \ - ../GFS_SCNV_generic_pre.F90 \ - ../GFS_SCNV_generic_post.F90 \ - ../sfc_sice.f \ - ../satmedmfvdifq.F \ - ../mfpbltq.f \ - ../mfscuq.f \ - ../tridi.f \ - ../GFS_GWD_generic_pre.F90 \ - ../GFS_GWD_generic_post.F90 \ - ../unified_ugwp.F90 \ - ../drag_suite.F90 \ - ../cires_tauamf_data.F90 \ - ../cires_orowam2017.f \ - ../cires_ugwp.F90 \ - ../cires_ugwp_initialize.F90 \ - ../cires_ugwp_module.F90 \ - ../cires_ugwp_post.F90 \ - ../cires_ugwp_triggers.F90 \ - ../cires_ugwp_module.F90 \ - ../gwdps.f \ - ../ugwp_driver_v0.F \ - ../ozphys_2015.f \ - ../h2ophys.f \ - ../samfdeepcnv.f \ - ../samfshalcnv.f \ - ../cnvc90.f \ - ../module_bfmicrophysics.f \ - ../gfdl_cloud_microphys.F90 \ - ../module_gfdl_cloud_microphys.F90 \ - ../GFS_MP_generic_pre.F90 \ - ../GFS_MP_generic_post.F90 \ - ../GFS_PBL_generic_common.F90 \ - ../GFS_PBL_generic_pre.F90 \ - ../GFS_PBL_generic_post.F90 \ - ../calpreciptype.f90 \ - ../GFS_stochastics.F90 \ - ../cu_gf_driver.F90 \ - ../cu_gf_driver_pre.F90 \ - ../cu_gf_deep.F90 \ - ../cu_gf_sh.F90 \ - ../cu_gf_driver_post.F90 \ - ../mynnedmf_wrapper.F90 \ - ../module_bl_mynn.F90 \ - ../mynnsfc_wrapper.F90 \ - ../module_sf_mynn.F90 \ - ../lsm_ruc.F90 \ - ../module_sf_ruclsm.F90 \ - ../namelist_soilveg_ruc.F90 \ - ../set_soilveg_ruc.F90 \ - ../module_soil_pre.F90 \ - ../mp_thompson_pre.F90 \ - ../module_mp_thompson_make_number_concentrations.F90 \ - ../mp_thompson.F90 \ - ../module_mp_thompson.F90 \ - ../module_mp_radar.F90 \ - ../mp_thompson_post.F90 \ - ../mp_nssl.F90 \ - ../module_mp_nssl_2mom.F90 \ - ../funcphys.f90 \ - ../physparam.f \ - ../physcons.F90 \ - ../radcons.f90 \ - ../mersenne_twister.f \ - ../maximum_hourly_diagnostics.F90 \ - ../phys_tend.F90 + pdftxt/rad_cld.txt \ + ../MP \ + ../CONV \ + ../GWD \ + ../SFC_Layer \ + ../PBL \ + ../SFC_Models \ + ../photochem \ + ../Radiation \ + ../smoke_dust \ + ../hooks \ + ../tools \ + ../Interstitials INPUT_ENCODING = UTF-8 FILE_PATTERNS = *.f \ @@ -415,7 +287,7 @@ EXTRA_SEARCH_MAPPINGS = # Configuration options related to the LaTeX output #--------------------------------------------------------------------------- -GENERATE_LATEX = YES +GENERATE_LATEX = NO LATEX_OUTPUT = latex LATEX_CMD_NAME = latex MAKEINDEX_CMD_NAME = makeindex @@ -541,7 +413,7 @@ DIRECTORY_GRAPH = YES DIR_GRAPH_MAX_DEPTH = 1 DOT_IMAGE_FORMAT = SVG INTERACTIVE_SVG = NO -DOT_PATH = +DOT_PATH = /Users/man.zhang/homebrew/bin/dot DOTFILE_DIRS = MSCFILE_DIRS = DIAFILE_DIRS = diff --git a/physics/docs/pdftxt/GFS_RRTMG.txt b/physics/docs/pdftxt/GFS_RRTMG.txt index c8881a3c3..13d9201a3 100644 --- a/physics/docs/pdftxt/GFS_RRTMG.txt +++ b/physics/docs/pdftxt/GFS_RRTMG.txt @@ -1,5 +1,5 @@ /** -\page GFS_RRTMG GFS RRTMG Shortwave/Longwave Radiation Scheme +\page GFS_RRTMG_page GFS RRTMG Shortwave/Longwave Radiation Scheme \section des_rrtmg Description Radiative processes are among the most complex and diff --git a/physics/docs/pdftxt/GFS_RRTMGP.txt b/physics/docs/pdftxt/GFS_RRTMGP.txt index 4f2ebaddd..891dd6565 100644 --- a/physics/docs/pdftxt/GFS_RRTMGP.txt +++ b/physics/docs/pdftxt/GFS_RRTMGP.txt @@ -1,5 +1,5 @@ /** -\page GFS_RRTMGP GFS RRTMGP Shortwave/Longwave Radiation Scheme +\page GFS_RRTMGP_page GFS RRTMGP Shortwave/Longwave Radiation Scheme \section des_rrtmgp Description diff --git a/physics/docs/pdftxt/GFS_ugwpv1_gsldrag.txt b/physics/docs/pdftxt/GFS_ugwpv1_gsldrag.txt index ea817ce7c..7c96bbb2e 100644 --- a/physics/docs/pdftxt/GFS_ugwpv1_gsldrag.txt +++ b/physics/docs/pdftxt/GFS_ugwpv1_gsldrag.txt @@ -1,5 +1,7 @@ -UGWPv1_gsldrag scheme. +/** +\page GFS_ugwpv1_gsldrag GFS Unified UGWP Version 1 Scheme +\section des_ugwpv1 Description The "ugwpv1_gsldrag" combines the orographic gravity wave drag (GWD) parameterizations of the GSL drag suite with the version 1 UGWP non-stationary gravity wave drag (NGW) scheme of \cite yudin_et_al_2020. For information on the GSL drag suite, click here. @@ -45,4 +47,4 @@ the effects of unresolved GWs in global forecast models, the representation of subgrid OGWs and NGWs has been implemented in the self-consistent manner using the UGWP framework. - +*/ diff --git a/physics/docs/pdftxt/GFS_v16_suite.txt b/physics/docs/pdftxt/GFS_v16_suite.txt index 8966d6be8..175a474f1 100644 --- a/physics/docs/pdftxt/GFS_v16_suite.txt +++ b/physics/docs/pdftxt/GFS_v16_suite.txt @@ -5,7 +5,7 @@ Version 16 of the Global Forecast System (GFS) was implemented operationally by the NOAA National Centers for Environmental Prediction (NCEP) in 2021. The GFS_v16 suite uses the parameterizations in the following order: - - \ref GFS_RRTMG + - \ref GFS_RRTMG_page - \ref GFS_SFCLYR - \ref GFS_NSST - \ref GFS_OCEAN diff --git a/physics/docs/pdftxt/GFS_v17_p8_RRTMGP.txt b/physics/docs/pdftxt/GFS_v17_p8_RRTMGP.txt new file mode 100644 index 000000000..29fa38222 --- /dev/null +++ b/physics/docs/pdftxt/GFS_v17_p8_RRTMGP.txt @@ -0,0 +1,32 @@ +/** +\page GFS_v17_gp_page GFS_v17_RRTMGP Suite + +\section gfsv_17_p8_gp_overview Overview + + +The GFS_v17_RRTMGP suite uses the parameterizations in the following order: + - \ref GFS_RRTMGP_page + - \ref GFS_SFCLYR + - \ref GFS_NSST + - \ref NoahMP + - \ref GFS_SFCSICE + - \ref GFS_SATMEDMFVDIFQ + - \ref GFS_UNIFIED_UGWP + - \ref GFS_OZPHYS + - \ref GFS_H2OPHYS + - \ref GFS_SAMFdeep + - \ref GFS_SAMFshal + - \ref THOMPSON + + +\section sdf_gfsv17p8gp Suite Definition File +\include suite_SCM_GFS_v17_p8_RRTMGP.xml + +\section gfs17_nml_opt_des Namelist +- General physics options +\snippet SCM_GFS_v17_p8_gp_input.nml GFS_PHYSICS_NML +- \ref GFS_UNIFIED_UGWP related options +\snippet SCM_GFS_v17_p8_gp_input.nml CIRES_UGWP_NML + + +*/ diff --git a/physics/docs/pdftxt/GFS_v17_p8_suite.txt b/physics/docs/pdftxt/GFS_v17_p8_suite.txt index 3a9592b5d..0d8917c74 100644 --- a/physics/docs/pdftxt/GFS_v17_p8_suite.txt +++ b/physics/docs/pdftxt/GFS_v17_p8_suite.txt @@ -1,25 +1,25 @@ /** -\page GFS_v17_p8_page GFS_v17_p8 Suite +\page GFS_v17_page GFS_v17 Suite -\section gfsv_17_p8_suite_overview Overview +\section gfsv_17_suite_overview Overview Version 17 of the Global Forecast System (GFS) is scheduled for operational implementation by the NOAA -National Centers for Environmental Prediction (NCEP) in 2024. The GFS_v17_p8 suite is a prototype of +National Centers for Environmental Prediction (NCEP) in 2024. The GFS_v17 suite is a prototype of the GFS_v17 suite, and is expected to evolve before the implementation. It is available for use -with the CCPP SCM. The primary differences between the GFS_v16 and GFS_v17_p8 suites are: +with the CCPP SCM. The primary differences between the GFS_v16 and GFS_v17 suites are: - \b Microphysics: The replacement of \ref GFDL_cloud with \ref THOMPSON -- \b Deep \b Cumulus: Add \ref ca_page -- \b Gravity \b Wave \b Drag: The replacement of \ref GFS_UGWP_v0 with \ref GFS_UNIFIED_UGWP +- PBL and Convection updates +- \b Gravity \b Wave \b Drag: The replacement of \ref GFS_UGWP_v0 with \ref GFS_ugwpv1_gsldrag - \b Land \b Surface \b Model: The replacement of \ref GFS_NOAH with \ref NoahMP -The GFS_v17_p8 suite uses the parameterizations in the following order: - - \ref GFS_RRTMG +The GFS_v17 suite uses the parameterizations in the following order: + - \ref GFS_RRTMG_page - \ref GFS_SFCLYR - \ref GFS_NSST - \ref NoahMP - \ref GFS_SFCSICE - \ref GFS_SATMEDMFVDIFQ - - \ref GFS_UNIFIED_UGWP + - \ref GFS_ugwpv1_gsldrag - \ref GFS_OZPHYS - \ref GFS_H2OPHYS - \ref GFS_SAMFdeep diff --git a/physics/docs/pdftxt/RRFS_v1_suite.txt b/physics/docs/pdftxt/RRFS_v1_suite.txt new file mode 100644 index 000000000..bcee82e7d --- /dev/null +++ b/physics/docs/pdftxt/RRFS_v1_suite.txt @@ -0,0 +1,35 @@ +/** +\page RRFS_v1_page RRFS_v1 Suite + +\section RRFS_v1_suite_overview Overview + +The RRFS_v1 suite is one of the candidates for the future operational implementation of +the Rapid Refresh Forecast System (RRFS), which can be configured using the UFS SRW App. This suite is most +applicable for runs at 3-km resolution since it does not parameterize +deep convection. + +The RRFS_v1beta suite uses the parameterizations in the following order: + - \ref SGSCLOUD_page + - \ref GFS_RRTMG_page + - \ref SFC_MYNNSFL + - \ref GFS_NSST + - \ref NoahMP + - \ref GFS_SFCSICE + - \ref MYNNEDMF + - \ref GFS_UGWP_v0 + - \ref GFS_OZPHYS + - \ref GFS_H2OPHYS + - \ref THOMPSON + +\section sdf_rrfsv1suite Suite Definition File +\include suite_FV3_RRFS_v1.xml + +\section rrfs_nml_option Namelist +- General physics options +\snippet FV3_RRFS_v1_input.nml GFS_PHYSICS_NML +- \ref GFS_UGWP_v0 related options +\snippet FV3_RRFS_v1_input.nml CIRES_UGWP_NML + + + +*/ diff --git a/physics/docs/pdftxt/WoFS_v0_suite.txt b/physics/docs/pdftxt/WoFS_v0_suite.txt index bf868a461..8e5a6e6c2 100644 --- a/physics/docs/pdftxt/WoFS_v0_suite.txt +++ b/physics/docs/pdftxt/WoFS_v0_suite.txt @@ -10,7 +10,7 @@ not parameterize deep convection. The WoFS suite uses the parameterizations in the following order: - \ref SGSCLOUD_page - - \ref GFS_RRTMG + - \ref GFS_RRTMG_page - \ref SFC_MYNNSFL - \ref GFS_NSST - \ref GFS_NOAH diff --git a/physics/docs/pdftxt/all_schemes_list.txt b/physics/docs/pdftxt/all_schemes_list.txt index 138310b61..45ea516ac 100644 --- a/physics/docs/pdftxt/all_schemes_list.txt +++ b/physics/docs/pdftxt/all_schemes_list.txt @@ -9,7 +9,8 @@ which facilitates model development and code maintenance. While some individual \b Radiation - - \subpage GFS_RRTMG + - \subpage GFS_RRTMG_page + - \subpage GFS_RRTMGP_page \b PBL \b and \b Turbulence - \subpage GFS_SATMEDMFVDIFQ @@ -19,6 +20,7 @@ which facilitates model development and code maintenance. While some individual - \subpage GFS_NOAH - \subpage RUCLSM - \subpage NoahMP + - \subpage CLM_LAKE_model \b Cumulus \b Parameterizations - \subpage GFS_SAMFdeep @@ -41,6 +43,7 @@ which facilitates model development and code maintenance. While some individual - \subpage GFS_UGWP_v0 - \subpage GFS_UNIFIED_UGWP - \subpage GFS_drag_suite + - \subpage GFS_ugwpv1_gsldrag \b Surface \b Layer - \subpage GFS_SFCLYR @@ -52,7 +55,6 @@ which facilitates model development and code maintenance. While some individual - \subpage GFS_SFCSICE \b Others - - \ref ca_page - \subpage GFS_SPP The input information for the parameterizations includes the values of the gridbox mean prognostic variables (wind components, temperature, @@ -74,26 +76,26 @@ to the parameterization. \section allsuite_overview Physics Suites -There are two publicly supported host models that use CCPP v6: the UFS Weather Model and the CCPP Single Column Model (SCM). +There are two publicly supported host models that use CCPP v7: the UFS Weather Model and the CCPP Single Column Model (SCM). The UFS Weather Model is included in the UFS Short Range Weather Application (SRW App) v2. The forcing datasets included in the CCPP SCM v6.0.0 public release were created by averaging observations and large-eddy simulations over areas that are too coarse to resolve convection. Therefore, best results will be obtained with the CCPP SCM v6.0 when using suites that include parameterized convection. -Table 1. Physics suites and primary schemes supported in CCPP v6.0.0 +Table 1. Physics suites and primary schemes supported in CCPP v7.0.0 \tableofcontents -| Physics suites | GFS_v16 | GFS_v17_p8 | RAP | HRRR | RRFS_v1beta | WoFS_v0 | -|------------------|--------------------|-------------------------|------------------|-----------------------------|--------------------|---------------| -|\b Host | SCM \n SRWv2 | SCM | SCM | SCM \n SRWv2 | SCM \n SRWv2 | SCM \n SRWv2 | -|\b Deep \b Cu | \ref GFS_SAMFdeep | \ref GFS_SAMFdeep + \ref ca_page | \ref CU_GF | \a off | \a off | \a off | -|\b Shallow \b Cu | \ref GFS_SAMFshal | \ref GFS_SAMFshal | \ref CU_GF | \ref MYNNEDMF | \ref MYNNEDMF | \ref MYNNEDMF | -|\b Microphysics | \ref GFDL_cloud | \ref THOMPSON w/o aerosol-aware | \ref THOMPSON | \ref THOMPSON | \ref THOMPSON | \ref NSSLMICRO_page | -|\b PBL/TURB | \ref GFS_SATMEDMFVDIFQ | \ref GFS_SATMEDMFVDIFQ | \ref MYNNEDMF | \ref MYNNEDMF | \ref MYNNEDMF | \ref MYNNEDMF | -|\b Radiation | \ref GFS_RRTMG | \ref GFS_RRTMG | \ref GFS_RRTMG | \ref GFS_RRTMG | \ref GFS_RRTMG | \ref GFS_RRTMG | -|\b Surface \b Layer | \ref GFS_SFCLYR | \ref GFS_SFCLYR | \ref SFC_MYNNSFL | \ref SFC_MYNNSFL | \ref SFC_MYNNSFL | \ref SFC_MYNNSFL | -|\b LSM | \ref GFS_NOAH | \ref NoahMP | \ref RUCLSM | \ref RUCLSM | \ref NoahMP | \ref GFS_NOAH | -|\b Gravity \b Wave \b Drag| \ref GFS_UGWP_v0 | \ref GFS_UNIFIED_UGWP | \ref GFS_drag_suite | \ref GFS_drag_suite | \ref GFS_UGWP_v0 | \ref GFS_UGWP_v0 | -|\b Sea \b Ice | \ref GFS_SFCSICE | \ref GFS_SFCSICE | \ref RUCLSM | \ref RUCLSM | \ref GFS_SFCSICE | \ref GFS_SFCSICE | +| Physics suites | GFS_v16 | GFS_v17 | GFS_v17_RRTMGP | RRFS_v1 | WoFS_v0 | +|------------------|--------------------|----------------------|-----------------------------|-----------------------|------------------| +|\b Host | SCM \n SRWv2 | SCM \n MWR | SCM | SCM \n RRFS | SCM \n WoFS | +|\b Deep \b Cu | \ref GFS_SAMFdeep | \ref GFS_SAMFdeep | \ref GFS_SAMFdeep | \ref CU_GF | \a off | +|\b Shallow \b Cu | \ref GFS_SAMFshal | \ref GFS_SAMFshal | \ref GFS_SAMFshal | \ref CU_GF | \ref MYNNEDMF | +|\b Microphysics | \ref GFDL_cloud | \ref THOMPSON w/o aerosol-aware | \ref THOMPSON w/o aerosol-aware | \ref THOMPSON | \ref NSSLMICRO_page | +|\b PBL/TURB | \ref GFS_SATMEDMFVDIFQ | \ref GFS_SATMEDMFVDIFQ | \ref GFS_SATMEDMFVDIFQ | \ref MYNNEDMF | \ref MYNNEDMF | +|\b Radiation | \ref GFS_RRTMG_page | \ref GFS_RRTMG_page | \ref GFS_RRTMGP_page | \ref GFS_RRTMG_page | \ref GFS_RRTMG_page | +|\b Surface \b Layer | \ref GFS_SFCLYR | \ref GFS_SFCLYR | \ref GFS_SFCLYR | \ref SFC_MYNNSFL | \ref SFC_MYNNSFL | +|\b LSM | \ref GFS_NOAH | \ref NoahMP | \ref NoahMP | \ref RUCLSM | \ref GFS_NOAH | +|\b Gravity \b Wave \b Drag| \ref GFS_UGWP_v0 | \ref GFS_ugwpv1_gsldrag | \ref GFS_ugwpv1_gsldrag | \ref GFS_drag_suite | \ref GFS_UGWP_v0 | +|\b Sea \b Ice | \ref GFS_SFCSICE | \ref GFS_SFCSICE | \ref GFS_SFCSICE | \ref RUCLSM | \ref GFS_SFCSICE | \tableofcontents diff --git a/physics/docs/pdftxt/mainpage.txt b/physics/docs/pdftxt/mainpage.txt index 7881161b5..63233af31 100644 --- a/physics/docs/pdftxt/mainpage.txt +++ b/physics/docs/pdftxt/mainpage.txt @@ -2,7 +2,7 @@ \mainpage Introduction Welcome to the scientific documentation for the parameterizations available in the Common -Community Physics Package (CCPP) v6.0.0 and the suites that can be configured using them. +Community Physics Package (CCPP) v7.0.0 and the suites that can be configured using them. The CCPP-Physics (available through https://github.com/NCAR/ccpp-physics/) is envisioned to contain parameterizations used in the Unified Forecast System (UFS) @@ -18,21 +18,17 @@ behavior out to about two weeks. The CCPP parameterizations are aggregated in suites by the host models. In this release, the CCPP Single Column Model (SCM), developed by the Development Testbed Center (DTC), supports suites: - \ref GFS_v16_page -- \ref GFS_v17_p8_page -- \ref HRRR_suite_page -- \ref RRFS_v1beta_page +- \ref GFS_v17_page +- \ref GFS_v17_gp_page +- \ref RRFS_v1_page - \ref WoFS_v0_page -- \ref rap_suite_page -while the UFS Short-Range Weather Application 2.0 supports suites \ref GFS_v16_page, \ref HRRR_suite_page, \ref RRFS_v1beta_page and -\ref WoFS_v0_page. New schemes and capability highlights in this release: -- \ref NSSLMICRO_page -- \ref GFS_UNIFIED_UGWP and \ref GFS_drag_suite -- \ref SFC_MYNNSFL -- \ref ca_page -- \ref GFS_SPP +- \ref GFS_ugwpv1_gsldrag +- \ref GFS_RRTMGP_page +- \ref CLM_LAKE_model +- \ref RAD_CLD In this website you will find documentation on various aspects of each parameterization, including a high-level overview of its function, the input/output argument list, @@ -48,18 +44,18 @@ CCPP team would like to express our deepest gratitude for UFS physics developers development of CCPP-Physics. \n We would also like to give special thanks to: -- \b NOAA \b Global \b Systems \b Laboratory: Hannah Barnes, Jeff Beck, Georg Grell, Joseph Olson, Tanya Smirnova, Michael Toy -- \b NOAA \b Physical \b Sciences \b Laboratory: Jian-Wen Bao, Lisa Bengtsson, Song-You Hong -- \b NOAA \b National \b Severe \b Storms \b Laboratory: Ted Mansell -- \b NOAA \b Environmental \b Modeling \b Center: Jongil Han, Qingfu Liu, Ruiyu Sun -- \b Atmospheric \b and \b Environmental \b Research, \b Inc.: Michael Iacono -- \b Joint \b Center \b for \b Satellite \b Data \b Assimilation: Greg Thompson -- \b NASA \b Goddard \b Space \b Flight \b Center: Valery Yudin +- \b NOAA \b Global \b Systems \b Laboratory: +- \b NOAA \b Physical \b Sciences \b Laboratory: +- \b NOAA \b National \b Severe \b Storms \b Laboratory: +- \b NOAA \b Environmental \b Modeling \b Center: +- \b Atmospheric \b and \b Environmental \b Research, \b Inc.: +- \b Joint \b Center \b for \b Satellite \b Data \b Assimilation: +- \b NASA \b Goddard \b Space \b Flight \b Center: as a whole for their support and contribution for this CCPP scientific documentation (SciDoc). -\b CCPP \b SciDoc \b Team: Man Zhang, Ligia Bernardet, Grant Firl, Dom Heinzeller, and Weiwei Li +\b CCPP \b SciDoc \b Team: \n Developmental Testbed Center */ diff --git a/physics/docs/pdftxt/rad_cld.txt b/physics/docs/pdftxt/rad_cld.txt index 82bd37855..787764ee6 100644 --- a/physics/docs/pdftxt/rad_cld.txt +++ b/physics/docs/pdftxt/rad_cld.txt @@ -1,5 +1,5 @@ /** -\page RAD_CLD GFS Cloud-Radiation Interaction +\page RAD_CLD UFS Cloud-Radiation Interaction \section des_radcld Description The cloud-radiation interaction in the CCPP-Physics can be grouped in terms of three processes: diff --git a/physics/docs/pdftxt/suite_input.nml.txt b/physics/docs/pdftxt/suite_input.nml.txt index c4bb5003b..4bbf02752 100644 --- a/physics/docs/pdftxt/suite_input.nml.txt +++ b/physics/docs/pdftxt/suite_input.nml.txt @@ -36,9 +36,16 @@ show some variables in the namelist that must match the SDF. qdiag3d see \a GFS_typedefs.F90 flag for 3D tracer diagnostic fields .false. lssav see \a GFS_typedefs.F90 flag for storing diagnostics .false. cplflx see \a GFS_typedefs.F90 flag for using fluxes provided by an external model .false. +cplice +cplocn2atm cplwav see \a GFS_typedefs.F90 flag for using information produced by an external ocean wave model .false. -cplchm see \a GFS_typedefs.F90 flag for coupled chemistry diagnostics .false. cplwav2atm see \a GFS_typedefs.F90 flag for wave to atm coupling .false. +cplaqm +cplchm see \a GFS_typedefs.F90 flag for coupled chemistry diagnostics .false. +cpllnd +cpllnd2atm +rrfs_sd +use_cice_alb oz_phys_2015 ozphys_2015 flag for new (2015) ozone physics .false. fhcyc gfs_phys_time_vary frequency for surface data cycling in hours 0.0 use_ufo gfs_phys_time_vary flag for using unfiltered orography surface option .false. @@ -178,6 +185,36 @@ show some variables in the namelist that must match the SDF. lwhtr rrtmg_lw flag for output of longwave heating rate .true. swhtr rrtmg_sw flag for output of shortwave heating rate .true. nhfrad gfs_time_vary_pre number of timesteps for which to call radiation on physics timestep (coldstarts) 0 +\b Parameters \b related \b to \b RRTMGP \b schemes +do_RRTMGP GFS_rrtmgp_setup use RRTMGP .false. +active_gases GFS_rrtmgp_pre,rrtmgp_lw_main,rrtmgp_lw_gas_optics,rrtmgp_sw_main,rrtmgp_sw_gas_optics character list of active gases used in RRTMGP '' +nGases GFS_rrtmgp_pre,rrtmgp_lw_main,rrtmgp_sw_main number of active gases 0 +rrtmgp_root rrtmgp_lw_cloud_optics,rrtmgp_lw_main,rrtmgp_sw_cloud_optics,rrtmgp_lw_gas_optics,rrtmgp_sw_main directory of rte+rrtmgp source code '' +lw_file_gas rrtmgp_lw_main,rrtmgp_lw_gas_optics RRTMGP K-distribution file, coefficients to compute optics for gaseous atmosphere '' +lw_file_clouds RRTMGP file containing coefficients used to compute clouds optical properties '' +sw_file_gas RRTMGP K-distribution file, coefficients to compute optics for gaseous atmosphere '' +sw_file_clouds RRTMGP file containing coefficents used to compute clouds optical properties '' +rrtmgp_nBandsSW number of RRTMGP SW bands -999 +rrtmgp_nGptsSW number of RRTMGP SW spectral points -999 +rrtmgp_nBandsLW number of RRTMGP LW bands -999 +rrtmgp_nGptsLW number of RRTMGP LW spectral points -999 +doG_cldoptics use legacy RRTMG cloud optics .false. +doGP_cldoptics_PADE use RRTMGP cloud optics: PADE approximation .false. +doGP_cldoptics_LUT use RRTMGP cloud optics: LUTs .false. +iovr_convcld cloud-overlap assumption for convective cloud 1 +rrtmgp_nrghice number of ice-roughness categories 3 +rrtmgp_nGauss_ang number of angles used in Gaussian quadrature 1 +do_GPsw_Glw .false. +use_LW_jacobian use Jacobian of LW to update LW radiation tendencies .false. +damp_LW_fluxadj Damp LW Jacobian flux adjustment with height .false. +lfnc_k dcyc2t3 depth of transition layer in logistic function for LW flux adjustment damping -999 +lfnc_p0 dcyc2t3 transition pressure for LW flux adjustment damping -999 +doGP_lwscat rrtmgp_lw_main if true, include scattering in longwave cloud-optics, only compatible w/ GP cloud-optics .false. +doGP_sgs_cnv rrtmgp_lw_main, rrtmgp_sw_main if true, include SubGrdiScale convective cloud in RRTMGP +#doGP_sgs_mynn if true, include SubGridScale MYNN-EDMF cloud in RRTMGP +#rrtmgp_lw_phys_blksz number of columns for RRTMGP LW scheme to process at each instance 1 +#rrtmgp_sw_phys_blksz number of columns for RRTMGP SW scheme to process at each instance 1 +doGP_smearclds GFS_rrtmgp_cloud_mp if true, include implicit SubGridScale clouds in RRTMGP \b Parameters \b related \b to \b cumulus \b schemes imfshalcnv choice of shallow convective scheme flag for mass flux shallow convective scheme:\n 1 -gfs_typedefs::gfs_control_type::iovr rrtmg_sw control flag for cloud overlap in SW & LW radiation \n +iovr rrtmg_sw control flag for cloud overlap in SW & LW radiation \n 1 -crick_proof gfs_rrtmg_setup control flag for eliminating CRICK \n +lcrick gfs_rrtmg_setup control flag for eliminating CRICK \n .false. -ccnorm gfs_rrtmg_setup control flag for in-cloud condensate mixing ratio \n +lcnorm gfs_rrtmg_setup control flag for in-cloud condensate mixing ratio \n .false. -norad_precip gfs_rrtmg_setup control flag for not using precip in radiation (Ferrier scheme) \n - - .false. ialb gfs_rrtmg_setup SW surface albedo control flag: \n 0 iems gfs_rrtmg_setup LW surface emissivity control flag (ab 2-digit integer) : \n @@ -172,6 +172,13 @@ show some variables in the namelist that must match the SDF.
  • 2: use McICA with randomly generated permutation seeds 0 +iswmode GFS_rrtmg_setup, radsw_main SW control flag for scattering process approximation: \n + + 2 isol gfs_rrtmg_setup solar constant scheme control flag: \n 0 -bl_mynn_edmf_part mynnedmf_wrapper flag to partitioning the MF and ED areas 0 bl_mynn_tkeadvect mynnedmf_wrapper activate computation of TKE advection (not yet in use for FV3) \n 0 +icplocn2atm satmedmfvdifq, sfc_diff, sfc_diag, sfc_nst, sfc_ocean air-sea flux options over ocean \n + + 0 redrag sfc_diff flag for applying reduced drag coefficient for high wind over sea in GFS surface layer scheme .false. lheatstrg gfs_surface_generic_post flag for canopy heat storage parameterization .false. z0fac gfs_surface_generic_post surface roughness fraction factor 0.3 @@ -722,6 +740,31 @@ show some variables in the namelist that must match the SDF. iz0tlnd mynnsfc_wrapper flag for thermal roughness lengths over land in MYNN-SFCLAY 0 sfclay_compute_flux mynnsfc_wrapper flag for computing surface scalar fluxes in MYNN-SFCLAY .false. sfclay_compute_diag mynnsfc_wrapper flag for computing surface diagnostics in MYNN-SFCLAY .false. +thsfc_loc GFS_surface_composites_post, sfc_diff, sfc_diag, sfc_nst, noahmpdrv, sfc_sice flag for local .vs. standard potential temperature .true. +diag_flux sfc_diag flag for flux method in 2-m diagnostics .false. +diag_log sfc_diag flag for log method in 2-m diagnostics (for stable conditions): \n + + .false. +h0facu +h0facs +fscav_aero +lightning_threat +do_ccpp_suite_sim +fh_dfi_radar +radar_tten_limits +do_cap_suppress +\b RRFS-SD \b parameters +dust_drylimit_factor +dust_moist_correction +dust_moist_opt +dust_alpha +dust_gamma +wetdep_ls_alpha +ebb_dcycle +seas_opt diff --git a/physics/smoke_dust/rrfs_smoke_wrapper.F90 b/physics/smoke_dust/rrfs_smoke_wrapper.F90 index 37ffccb35..0e3ddda2a 100755 --- a/physics/smoke_dust/rrfs_smoke_wrapper.F90 +++ b/physics/smoke_dust/rrfs_smoke_wrapper.F90 @@ -36,7 +36,6 @@ module rrfs_smoke_wrapper contains !>\defgroup rrfs_smoke_wrapper rrfs-sd emission driver Module -!> \ingroup gsd_chem_group !! This is the rrfs-sd emission driver Module !> \section arg_table_rrfs_smoke_wrapper_init Argument Table From 1be281d7eae8d5dd479745a67fa30e7744273932 Mon Sep 17 00:00:00 2001 From: Man Zhang Date: Fri, 21 Jun 2024 11:08:16 -0600 Subject: [PATCH 05/29] save progress --- physics/CONV/SAMF/samfaerosols.F | 2 + physics/CONV/SAS/shalcnv.F | 15 +-- physics/CONV/progsigma_calc.f90 | 11 +- physics/GWD/drag_suite.F90 | 2 - physics/GWD/ugwpv1_gsldrag_post.F90 | 2 - physics/PBL/MYNN_EDMF/module_bl_mynn.F90 | 12 +- physics/PBL/SATMEDMF/satmedmfvdif.F | 3 - physics/Radiation/RRTMG/radlw_main.F90 | 114 +++++++++--------- .../RRTMGP/rrtmgp_lw_cloud_optics.F90 | 6 +- .../Radiation/RRTMGP/rrtmgp_lw_gas_optics.F90 | 5 +- physics/Radiation/RRTMGP/rrtmgp_lw_main.F90 | 8 +- physics/Radiation/RRTMGP/rrtmgp_sampling.F90 | 27 ++--- .../RRTMGP/rrtmgp_sw_cloud_optics.F90 | 3 + physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 | 39 +++--- physics/Radiation/radiation_aerosols.f | 8 ++ physics/Radiation/radiation_cloud_overlap.F90 | 7 -- physics/Radiation/radiation_clouds.f | 4 +- physics/Radiation/radiation_tools.F90 | 7 +- physics/SFC_Layer/GFDL/module_sf_exchcoef.f90 | 3 +- physics/SFC_Layer/MYNN/module_sf_mynn.F90 | 35 +++--- physics/SFC_Layer/UFS/date_def.f | 2 + physics/SFC_Layer/UFS/sfc_diag.f | 5 +- physics/SFC_Models/Land/RUC/lsm_ruc.F90 | 2 +- .../SFC_Models/Land/RUC/module_sf_ruclsm.F90 | 2 +- physics/SFC_Models/Land/sfc_land.F90 | 13 -- physics/SFC_Models/SeaIce/CICE/sfc_cice.f | 13 -- physics/docs/ccpp_doxyfile | 40 +++--- physics/docs/pdftxt/CU_GF_deep.txt | 2 +- physics/docs/pdftxt/GFS_NOAHMP.txt | 2 +- physics/docs/pdftxt/GFS_OZPHYS.txt | 4 +- physics/docs/pdftxt/GFS_SATMEDMFVDIFQ.txt | 2 +- physics/docs/pdftxt/GFS_UGWPv0.txt | 2 +- physics/docs/pdftxt/THOMPSON.txt | 4 +- physics/photochem/h2o_def.f | 4 - physics/photochem/h2ointerp.f90 | 5 +- physics/photochem/module_ozphys.F90 | 44 +++---- 36 files changed, 195 insertions(+), 264 deletions(-) diff --git a/physics/CONV/SAMF/samfaerosols.F b/physics/CONV/SAMF/samfaerosols.F index 66faf1fb9..ade8f1b5a 100644 --- a/physics/CONV/SAMF/samfaerosols.F +++ b/physics/CONV/SAMF/samfaerosols.F @@ -1,3 +1,5 @@ +!>\file samfaerosols.F +!! module samfcnv_aerosols implicit none diff --git a/physics/CONV/SAS/shalcnv.F b/physics/CONV/SAS/shalcnv.F index 548ad8380..49d64a164 100644 --- a/physics/CONV/SAS/shalcnv.F +++ b/physics/CONV/SAS/shalcnv.F @@ -1,16 +1,12 @@ -!> \defgroup SASHAL Mass-Flux Shallow Convection -!! @{ -!! \brief The Mass-Flux shallow convection scheme parameterizes the effect of shallow convection on the environment much like the \ref SAS scheme with a few key modifications. Perhaps most importantly, no quasi-equilibrium assumption is necessary since the shallow cloud base mass flux is parameterized from the surface buoyancy flux. Further, there are no convective downdrafts, the entrainment rate is greater than for deep convection, and the shallow convection is limited to not extend over the level where \f$p=0.7p_{sfc}\f$. +!> \file shalcnv.F +!! Contains the entire SAS shallow convection scheme. + +!> \brief The Mass-Flux shallow convection scheme parameterizes the effect of shallow convection on the environment much like the \ref SAS scheme with a few key modifications. Perhaps most importantly, no quasi-equilibrium assumption is necessary since the shallow cloud base mass flux is parameterized from the surface buoyancy flux. Further, there are no convective downdrafts, the entrainment rate is greater than for deep convection, and the shallow convection is limited to not extend over the level where \f$p=0.7p_{sfc}\f$. !! !! This scheme was designed to replace the previous eddy-diffusivity approach to shallow convection with a mass-flux based approach as it is used for deep convection. Differences between the shallow and deep SAS schemes are presented in Han and Pan (2011) \cite han_and_pan_2011 . Like the deep scheme, it uses the working concepts put forth in Arakawa and Schubert (1974) \cite arakawa_and_schubert_1974 but includes modifications and simplifications from Grell (1993) \cite grell_1993 such as only one cloud type (the deepest possible, up to \f$p=0.7p_{sfc}\f$), rather than a spectrum based on cloud top heights or assumed entrainment rates, although it assumes no convective downdrafts. It contains many modifications associated with deep scheme as discussed in Han and Pan (2011) \cite han_and_pan_2011 , including the calculation of cloud top, a greater CFL-criterion-based maximum cloud base mass flux, and the inclusion of convective overshooting. !! !! \section diagram_sashal Calling Hierarchy Diagram !! \image html Shallow_SAS_Flowchart.png "Diagram depicting how the SAS shallow convection scheme is called from the GSM physics time loop" height=2cm -!! \section intraphysics Intraphysics Communication -!! This space is reserved for a description of how this scheme uses information from other scheme types and/or how information calculated in this scheme is used in other scheme types. - -!> \file shalcnv.F -!! Contains the entire SAS shallow convection scheme. module shalcnv implicit none @@ -90,7 +86,7 @@ end subroutine shalcnv_init !! \section arg_table_shalcnv_run Argument Table !! \htmlinclude shalcnv_run.html !! -!! @{ +!> @{ subroutine shalcnv_run( & & grav,cp,hvap,rv,fv,t0c,rd,cvap,cliq,eps,epsm1, & & im,km,jcap,delt,delp,prslp,psp,phil,qlc,qli, & @@ -1340,4 +1336,3 @@ end subroutine shalcnv_run end module shalcnv !> @} -!! @} diff --git a/physics/CONV/progsigma_calc.f90 b/physics/CONV/progsigma_calc.f90 index 469df49f6..76e01987c 100644 --- a/physics/CONV/progsigma_calc.f90 +++ b/physics/CONV/progsigma_calc.f90 @@ -1,3 +1,8 @@ +!>\file progsigma_calc.f90 +!! This file contains the subroutine that calculates the prognostic +!! updraft area fraction that is used for closure computations in +!! saSAS deep and shallow convection, based on a moisture budget +!! as described in Bengtsson et al. 2022 \cite Bengtsson_2022. module progsigma implicit none @@ -6,12 +11,6 @@ module progsigma contains -!>\file progsigma_calc.f90 -!! This file contains the subroutine that calculates the prognostic -!! updraft area fraction that is used for closure computations in -!! saSAS deep and shallow convection, based on a moisture budget -!! as described in Bengtsson et al. 2022 \cite Bengtsson_2022. - !>\ingroup SAMFdeep !>\ingroup SAMF_shal !> This subroutine computes a prognostic updraft area fraction diff --git a/physics/GWD/drag_suite.F90 b/physics/GWD/drag_suite.F90 index ff68f4216..7a9403939 100644 --- a/physics/GWD/drag_suite.F90 +++ b/physics/GWD/drag_suite.F90 @@ -6,9 +6,7 @@ module drag_suite contains -!> \defgroup gfs_drag_suite_mod GSL drag_suite Module !> This module contains the CCPP-compliant GSL orographic gravity wave drag scheme. -!> @{ !! !> \brief This subroutine initializes the orographic gravity wave drag scheme. !! diff --git a/physics/GWD/ugwpv1_gsldrag_post.F90 b/physics/GWD/ugwpv1_gsldrag_post.F90 index 8c6704dc5..fc1d0f622 100644 --- a/physics/GWD/ugwpv1_gsldrag_post.F90 +++ b/physics/GWD/ugwpv1_gsldrag_post.F90 @@ -5,7 +5,6 @@ module ugwpv1_gsldrag_post contains !>\defgroup ugwpv1_gsldrag_post ugwpv1_gsldrag Scheme Post -!! @{ !> \section arg_table_ugwpv1_gsldrag_post_run Argument Table !! \htmlinclude ugwpv1_gsldrag_post_run.html !! @@ -141,5 +140,4 @@ subroutine ugwpv1_gsldrag_post_run ( im, levs, ldiag_ugwp, & !===================================================================== end subroutine ugwpv1_gsldrag_post_run -!! @} end module ugwpv1_gsldrag_post diff --git a/physics/PBL/MYNN_EDMF/module_bl_mynn.F90 b/physics/PBL/MYNN_EDMF/module_bl_mynn.F90 index 9f90860c5..177bc05a8 100644 --- a/physics/PBL/MYNN_EDMF/module_bl_mynn.F90 +++ b/physics/PBL/MYNN_EDMF/module_bl_mynn.F90 @@ -351,11 +351,11 @@ MODULE module_bl_mynn ! ================================================================== !>\ingroup gp_mynnedmf -!! This subroutine is the GSD MYNN-EDNF PBL driver routine,which +!! This subroutine is the MYNN-EDNF PBL driver routine,which !! encompassed the majority of the subroutines that comprise the !! procedures that ultimately solve for tendencies of !! \f$U, V, \theta, q_v, q_c, and q_i\f$. -!!\section gen_mynn_bl_driver GSD mynn_bl_driver General Algorithm +!!\section gen_mynn_bl_driver mynn_bl_driver General Algorithm !> @{ SUBROUTINE mynn_bl_driver( & &initflag,restart,cycling, & @@ -1508,7 +1508,7 @@ END SUBROUTINE mynn_bl_driver !>\ingroup gp_mynnedmf !! This subroutine initializes the mixing length, TKE, \f$\theta^{'2}\f$, !! \f$q^{'2}\f$, and \f$\theta^{'}q^{'}\f$. -!!\section gen_mym_ini GSD MYNN-EDMF mym_initialize General Algorithm +!!\section gen_mym_ini MYNN-EDMF mym_initialize General Algorithm !> @{ SUBROUTINE mym_initialize ( & & kts,kte,xland, & @@ -1712,7 +1712,7 @@ END SUBROUTINE mym_initialize !!\param gh \f$G_H\f$ divided by \f$L^{2}/q^{2}\f$ (\f$s^{-2}\f$) !!\param sm stability function for momentum, at Level 2 !!\param sh stability function for heat, at Level 2 -!!\section gen_mym_level2 GSD MYNN-EDMF mym_level2 General Algorithm +!!\section gen_mym_level2 MYNN-EDMF mym_level2 General Algorithm !! @ { SUBROUTINE mym_level2 (kts,kte, & & dz, & @@ -2599,7 +2599,7 @@ END SUBROUTINE boulac_length !>\ingroup gp_mynnedmf !! This subroutine calculates the vertical diffusivity coefficients and the !! production terms for the turbulent quantities. -!>\section gen_mym_turbulence GSD mym_turbulence General Algorithm +!>\section gen_mym_turbulence mym_turbulence General Algorithm !! Two subroutines mym_level2() and mym_length() are called within this !!subrouine to collect variable to carry out successive calculations: !! - mym_level2() calculates the level 2 nondimensional wind shear \f$G_M\f$ @@ -5512,7 +5512,7 @@ end subroutine tridiag3 !!the TKE-method more during stable conditions (PBLH < 400 m). !!A variable tke threshold (TKEeps) is used since no hard-wired !!value could be found to work best in all conditions. -!>\section gen_get_pblh GSD get_pblh General Algorithm +!>\section gen_get_pblh get_pblh General Algorithm !> @{ SUBROUTINE GET_PBLH(KTS,KTE,zi,thetav1D,qke1D,zw1D,dz1D,landsea,kzi) diff --git a/physics/PBL/SATMEDMF/satmedmfvdif.F b/physics/PBL/SATMEDMF/satmedmfvdif.F index 79f7bbea1..77944cfb1 100644 --- a/physics/PBL/SATMEDMF/satmedmfvdif.F +++ b/physics/PBL/SATMEDMF/satmedmfvdif.F @@ -42,7 +42,6 @@ subroutine satmedmfvdif_init (satmedmf, end subroutine satmedmfvdif_init !> \defgroup satmedmf GFS Scale-aware TKE-based Moist Eddy-Diffusivity Mass-flux (TKE-EDMF) Scheme Module -!! @{ !! \brief This subroutine contains all of the logic for the !! scale-aware TKE-based moist eddy-diffusion mass-flux (TKE-EDMF) scheme. !! @@ -60,7 +59,6 @@ end subroutine satmedmfvdif_init !! -# A mass-flux approach is also used to represent the stratocumulus-top-induced turbulence !! (mfscu.f). !! \section detail_satmedmfvidf GFS satmedmfvdif Detailed Algorithm -!> @{ subroutine satmedmfvdif_run(im,km,ntrac,ntcw,ntiw,ntke, & & grav,rd,cp,rv,hvap,hfus,fv,eps,epsm1, & & dv,du,tdt,rtg,u1,v1,t1,q1,swh,hlw,xmu,garea, & @@ -1542,6 +1540,5 @@ subroutine satmedmfvdif_run(im,km,ntrac,ntcw,ntiw,ntke, & !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! return end subroutine satmedmfvdif_run -!> @} end module satmedmfvdif diff --git a/physics/Radiation/RRTMG/radlw_main.F90 b/physics/Radiation/RRTMG/radlw_main.F90 index 7bc1ea80c..ed87f40fa 100644 --- a/physics/Radiation/RRTMG/radlw_main.F90 +++ b/physics/Radiation/RRTMG/radlw_main.F90 @@ -759,7 +759,7 @@ subroutine rrtmg_lw_run & end if endif ! end if_ilwcliq -!> -# Change random number seed value for each radiation invocation +!> - Change random number seed value for each radiation invocation !! (isubclw =1 or 2). if ( isubclw == 1 ) then ! advance prescribed permutation seed @@ -781,7 +781,7 @@ subroutine rrtmg_lw_run & lab_do_iplon : do iplon = 1, npts -!> -# Read surface emissivity. +!> - Read surface emissivity. if (sfemis(iplon) > eps .and. sfemis(iplon) <= 1.0) then ! input surface emissivity do j = 1, nbands semiss(j) = sfemis(iplon) @@ -795,7 +795,7 @@ subroutine rrtmg_lw_run & stemp = sfgtmp(iplon) ! surface ground temp if (iovr == iovr_dcorr) delgth= de_lgth(iplon) ! clouds decorr-length -!> -# Prepare atmospheric profile for use in rrtm. +!> - Prepare atmospheric profile for use in rrtm. ! the vertical index of internal array is from surface to top ! --- ... molecular amounts are input or converted to volume mixing ratio @@ -819,7 +819,7 @@ subroutine rrtmg_lw_run & dz(k) = dzlyr(iplon,k1) if (iovr == iovr_exp .or. iovr == iovr_exprand) alph(k) = alpha(iplon,k) ! alpha decorrelation -!> -# Set absorber amount for h2o, co2, and o3. +!> - Set absorber amount for h2o, co2, and o3. !test use ! h2ovmr(k)= max(f_zero,qlyr(iplon,k1)*amdw) ! input mass mixing ratio @@ -840,7 +840,7 @@ subroutine rrtmg_lw_run & colamt(k,3) = max(temcol(k), coldry(k)*o3vmr(k)) ! o3 enddo -!> -# Set up column amount for rare gases n2o,ch4,o2,co,ccl4,cf11,cf12, +!> - Set up column amount for rare gases n2o,ch4,o2,co,ccl4,cf11,cf12, !! cf22, convert from volume mixing ratio to molec/cm2 based on !! coldry (scaled to 1.0e-20). @@ -871,7 +871,7 @@ subroutine rrtmg_lw_run & enddo endif -!> -# Set aerosol optical properties. +!> - Set aerosol optical properties. do k = 1, nlay k1 = nlp1 - k @@ -881,7 +881,7 @@ subroutine rrtmg_lw_run & enddo enddo -!> -# Read cloud optical properties. +!> - Read cloud optical properties. if (ilwcliq > 0) then ! use prognostic cloud method do k = 1, nlay k1 = nlp1 - k @@ -906,7 +906,7 @@ subroutine rrtmg_lw_run & cldfrc(0) = f_one ! padding value only cldfrc(nlp1) = f_zero ! padding value only -!> -# Compute precipitable water vapor for diffusivity angle adjustments. +!> - Compute precipitable water vapor for diffusivity angle adjustments. tem1 = f_zero tem2 = f_zero @@ -1026,7 +1026,7 @@ subroutine rrtmg_lw_run & endif ! top_at_1 -!> -# Compute column amount for broadening gases. +!> - Compute column amount for broadening gases. do k = 1, nlay summol = f_zero @@ -1036,7 +1036,7 @@ subroutine rrtmg_lw_run & colbrd(k) = coldry(k) - summol enddo -!> -# Compute diffusivity angle adjustments. +!> - Compute diffusivity angle adjustments. tem1 = 1.80 tem2 = 1.50 @@ -1064,7 +1064,7 @@ subroutine rrtmg_lw_run & ! print *,' o3vmr ',o3vmr ! endif -!> -# For cloudy atmosphere, call cldprop() to set cloud optical +!> - For cloudy atmosphere, call cldprop() to set cloud optical !! properties. lcf1 = .false. @@ -1115,7 +1115,7 @@ subroutine rrtmg_lw_run & ! print *,' cldfrac',cldfrc ! endif -!> -# Calling setcoef() to compute various coefficients needed in +!> - Calling setcoef() to compute various coefficients needed in !! radiative transfer calculations. call setcoef & ! --- inputs: @@ -1150,7 +1150,7 @@ subroutine rrtmg_lw_run & ! print *,'indfor',indfor ! endif -!> -# Call taumol() to calculte the gaseous optical depths and Plank +!> - Call taumol() to calculte the gaseous optical depths and Plank !! fractions for each longwave spectral band. call taumol & @@ -1177,7 +1177,7 @@ subroutine rrtmg_lw_run & ! enddo ! endif -!> -# Call the radiative transfer routine based on cloud scheme +!> - Call the radiative transfer routine based on cloud scheme !! selection. Compute the upward/downward radiative fluxes, and !! heating rates for both clear or cloudy atmosphere. !!\n - call rtrn(): clouds are assumed as randomly overlaping in a @@ -1223,7 +1223,7 @@ subroutine rrtmg_lw_run & endif ! end if_isubclw_block -!> -# Save outputs. +!> - Save outputs. topflx(iplon)%upfxc = totuflux(nlay) topflx(iplon)%upfx0 = totuclfl(nlay) @@ -1441,11 +1441,11 @@ subroutine rlwinit( me, rad_hr_units, inc_minor_gas, ilwcliq, & endif endif -!> -# Setup default surface emissivity for each band. +!> - Setup default surface emissivity for each band. semiss0(:) = f_one -!> -# Setup constant factors for flux and heating rate +!> - Setup constant factors for flux and heating rate !! the 1.0e-2 is to convert pressure from mb to \f$N/m^2\f$. pival = 2.0 * asin(f_one) @@ -1460,7 +1460,7 @@ subroutine rlwinit( me, rad_hr_units, inc_minor_gas, ilwcliq, & heatfac = con_g * 1.0e-2 / con_cp ! (in k/second) endif -!> -# Compute lookup tables for transmittance, tau transition +!> - Compute lookup tables for transmittance, tau transition !! function, and clear sky tau (for the cloudy sky radiative !! transfer). tau is computed as a function of the tau !! transition function, transmittance is calculated as a @@ -1668,7 +1668,7 @@ subroutine cldprop & enddo enddo -!> -# Compute cloud radiative properties for a cloudy column: +!> - Compute cloud radiative properties for a cloudy column: !!\n - Compute cloud radiative properties for rain and snow (tauran,tausnw) !!\n - Calculation of absorption coefficients due to water clouds(tauliq) !!\n - Calculation of absorption coefficients due to ice clouds (tauice). @@ -1796,7 +1796,7 @@ subroutine cldprop & endif lab_if_ilwcliq -!> -# if GFS_typedefs::isubclw > 0, call mcica_subcol() to distribute +!> - if GFS_typedefs::isubclw > 0, call mcica_subcol() to distribute !! cloud properties to each g-point. if ( isubclw > 0 ) then ! mcica sub-col clouds approx @@ -1894,7 +1894,7 @@ subroutine mcica_subcol & ! !===> ... begin here ! -!> -# Call random_setseed() to advance randum number generator by ipseed values. +!> - Call random_setseed() to advance randum number generator by ipseed values. call random_setseed & ! --- inputs: @@ -1903,7 +1903,7 @@ subroutine mcica_subcol & & stat & & ) -!> -# Sub-column set up according to overlapping assumption: +!> - Sub-column set up according to overlapping assumption: !! - For random overlap, pick a random value at every level !! - For max-random overlap, pick a random value at every level !! - For maximum overlap, pick same random numebr at every level @@ -2092,7 +2092,7 @@ subroutine mcica_subcol & end select -!> -# Generate subcolumns for homogeneous clouds. +!> - Generate subcolumns for homogeneous clouds. do k = 1, nlay tem1 = f_one - cldf(k) @@ -2243,7 +2243,7 @@ subroutine setcoef & ! !===> ... begin here ! -!> -# Calculate information needed by the radiative transfer routine +!> - Calculate information needed by the radiative transfer routine !! that is specific to this atmosphere, especially some of the !! coefficients and indices needed to compute the optical depths !! by interpolating data from stored reference atmospheres. @@ -2260,7 +2260,7 @@ subroutine setcoef & enddo ! --- ... begin layer loop -!> -# Calculate the integrated Planck functions for each band at the +!> - Calculate the integrated Planck functions for each band at the !! surface, level, and layer temperatures. laytrop = 0 @@ -2282,7 +2282,7 @@ subroutine setcoef & & * (totplnk(indlev+1,i) - totplnk(indlev,i)) ) enddo -!> -# Find the two reference pressures on either side of the +!> - Find the two reference pressures on either side of the !! layer pressure. store them in jp and jp1. store in fp the !! fraction of the difference (in ln(pressure)) between these !! two values that the layer pressure lies. @@ -2294,7 +2294,7 @@ subroutine setcoef & fp = max(f_zero, min(f_one, 5.0*(preflog(jp(k))-plog) )) !org fp = 5.0 * (preflog(jp(k)) - plog) -!> -# Determine, for each reference pressure (jp and jp1), which +!> - Determine, for each reference pressure (jp and jp1), which !! reference temperature (these are different for each !! reference pressure) is nearest the layer temperature but does !! not exceed it. store these indices in jt and jt1, resp. @@ -2312,7 +2312,7 @@ subroutine setcoef & !org ft = tem1 - float(jt (k) - 3) !org ft1 = tem2 - float(jt1(k) - 3) -!> -# We have now isolated the layer ln pressure and temperature, +!> - We have now isolated the layer ln pressure and temperature, !! between two reference pressures and two reference temperatures !!(for each reference pressure). we multiply the pressure !! fraction fp with the appropriate temperature fractions to get @@ -2328,7 +2328,7 @@ subroutine setcoef & forfac(k) = pavel(k)*stpfac / (tavel(k)*(1.0 + h2ovmr(k))) selffac(k) = h2ovmr(k) * forfac(k) -!> -# Set up factors needed to separately include the minor gases +!> - Set up factors needed to separately include the minor gases !! in the calculation of absorption coefficient. scaleminor(k) = pavel(k) / tavel(k) @@ -2338,7 +2338,7 @@ subroutine setcoef & indminor(k) = min(18, max(1, int(tem1))) minorfrac(k) = tem1 - float(indminor(k)) -!> -# If the pressure is less than ~100mb, perform a different +!> - If the pressure is less than ~100mb, perform a different !! set of species interpolations. if (plog > 4.56) then @@ -2349,14 +2349,14 @@ subroutine setcoef & indfor(k) = min(2, max(1, int(tem1))) forfrac(k) = tem1 - float(indfor(k)) -!> -# Set up factors needed to separately include the water vapor +!> - Set up factors needed to separately include the water vapor !! self-continuum in the calculation of absorption coefficient. tem1 = (tavel(k) - 188.0) / 7.2 indself(k) = min(9, max(1, int(tem1)-7)) selffrac(k) = tem1 - float(indself(k) + 7) -!> -# Setup reference ratio to be used in calculation of binary +!> - Setup reference ratio to be used in calculation of binary !! species parameter in lower atmosphere. rfrate(k,1,1) = chi_mls(1,jp(k)) / chi_mls(2,jp(k)) @@ -2383,7 +2383,7 @@ subroutine setcoef & indself(k) = 0 selffrac(k) = f_zero -!> -# Setup reference ratio to be used in calculation of binary +!> - Setup reference ratio to be used in calculation of binary !! species parameter in upper atmosphere. rfrate(k,1,1) = chi_mls(1,jp(k)) / chi_mls(2,jp(k)) @@ -2394,7 +2394,7 @@ subroutine setcoef & endif -!> -# Rescale \a selffac and \a forfac for use in taumol. +!> - Rescale \a selffac and \a forfac for use in taumol. selffac(k) = colamt(k,1) * selffac(k) forfac(k) = colamt(k,1) * forfac(k) @@ -2613,7 +2613,7 @@ subroutine rtrn & radtotd = f_zero radclrd = f_zero -!> -# Downward radiative transfer loop. +!> - Downward radiative transfer loop. do k = nlay, 1, -1 @@ -2692,7 +2692,7 @@ subroutine rtrn & enddo ! end do_k_loop -!> -# Compute spectral emissivity & reflectance, include the +!> - Compute spectral emissivity & reflectance, include the !! contribution of spectrally varying longwave emissivity and !! reflection from the surface to the upward radiative transfer. @@ -2702,15 +2702,15 @@ subroutine rtrn & reflct = f_one - semiss(ib) rad0 = semiss(ib) * fracs(ig,1) * pklay(ib,0) -!> -# Compute total sky radiance. +!> - Compute total sky radiance. radtotu = rad0 + reflct*radtotd toturad(0,ib) = toturad(0,ib) + radtotu -!> -# Compute clear sky radiance +!> - Compute clear sky radiance radclru = rad0 + reflct*radclrd clrurad(0,ib) = clrurad(0,ib) + radclru -!> -# Upward radiative transfer loop. +!> - Upward radiative transfer loop. do k = 1, nlay clfr = cldfrc(k) @@ -2746,7 +2746,7 @@ subroutine rtrn & enddo ! end do_ig_loop -!> -# Process longwave output from band for total and clear streams. +!> - Process longwave output from band for total and clear streams. !! Calculate upward, downward, and net flux. flxfac = wtdiff * fluxfac @@ -2999,7 +2999,7 @@ subroutine rtrnmr & if (cldfrc(k) > eps) then -!> -# Setup maximum/random cloud overlap. +!> - Setup maximum/random cloud overlap. if (cldfrc(k+1) >= cldfrc(k)) then if (lstcldu(k)) then @@ -3143,7 +3143,7 @@ subroutine rtrnmr & enddo -!> -# Initialize for radiative transfer +!> - Initialize for radiative transfer do ib = 1, NBANDS do k = 0, NLAY @@ -3169,7 +3169,7 @@ subroutine rtrnmr & radtotd = f_zero radclrd = f_zero -!> -# Downward radiative transfer loop: +!> - Downward radiative transfer loop: do k = nlay, 1, -1 @@ -3266,7 +3266,7 @@ subroutine rtrnmr & enddo ! end do_k_loop -!> -# Compute spectral emissivity & reflectance, include the +!> - Compute spectral emissivity & reflectance, include the !! contribution of spectrally varying longwave emissivity and !! reflection from the surface to the upward radiative transfer. @@ -3276,15 +3276,15 @@ subroutine rtrnmr & reflct = f_one - semiss(ib) rad0 = semiss(ib) * fracs(ig,1) * pklay(ib,0) -!> -# Compute total sky radiance. +!> - Compute total sky radiance. radtotu = rad0 + reflct*radtotd toturad(0,ib) = toturad(0,ib) + radtotu -!> -# Compute clear sky radiance. +!> - Compute clear sky radiance. radclru = rad0 + reflct*radclrd clrurad(0,ib) = clrurad(0,ib) + radclru -!> -# Upward radiative transfer loop: +!> - Upward radiative transfer loop: do k = 1, nlay @@ -3338,7 +3338,7 @@ subroutine rtrnmr & enddo ! end do_ig_loop -!> -# Process longwave output from band for total and clear streams. +!> - Process longwave output from band for total and clear streams. !! calculate upward, downward, and net flux. flxfac = wtdiff * fluxfac @@ -3588,7 +3588,7 @@ subroutine rtrnmc & radtotd = f_zero radclrd = f_zero -!> -# Downward radiative transfer loop. +!> - Downward radiative transfer loop. !!\n - Clear sky, gases contribution !!\n - Total sky, gases+clouds contribution !!\n - Cloudy layer @@ -3672,7 +3672,7 @@ subroutine rtrnmc & enddo ! end do_k_loop -!> -# Compute spectral emissivity & reflectance, include the +!> - Compute spectral emissivity & reflectance, include the !! contribution of spectrally varying longwave emissivity and !! reflection from the surface to the upward radiative transfer. @@ -3682,15 +3682,15 @@ subroutine rtrnmc & reflct = f_one - semiss(ib) rad0 = semiss(ib) * fracs(ig,1) * pklay(ib,0) -!> -# Compute total sky radiance. +!> - Compute total sky radiance. radtotu = rad0 + reflct*radtotd toturad(0,ib) = toturad(0,ib) + radtotu -!> -# Compute clear sky radiance. +!> - Compute clear sky radiance. radclru = rad0 + reflct*radclrd clrurad(0,ib) = clrurad(0,ib) + radclru -!> -# Upward radiative transfer loop. +!> - Upward radiative transfer loop. !!\n - Compute total sky radiance !!\n - Compute clear sky radiance @@ -3731,7 +3731,7 @@ subroutine rtrnmc & enddo ! end do_ig_loop -!> -# Process longwave output from band for total and clear streams. +!> - Process longwave output from band for total and clear streams. !! Calculate upward, downward, and net flux. flxfac = wtdiff * fluxfac @@ -3750,7 +3750,7 @@ subroutine rtrnmc & totdclfl(k) = totdclfl(k) * flxfac enddo -!> -# Calculate net fluxes and heating rates. +!> - Calculate net fluxes and heating rates. fnet(0) = totuflux(0) - totdflux(0) do k = 1, nlay @@ -3759,7 +3759,7 @@ subroutine rtrnmc & htr (k) = (fnet(k-1) - fnet(k)) * rfdelp(k) enddo -!> -# Optional clear sky heating rates. +!> - Optional clear sky heating rates. if ( lhlw0 ) then fnetc(0) = totuclfl(0) - totdclfl(0) @@ -3769,7 +3769,7 @@ subroutine rtrnmc & enddo endif -!> -# Optional spectral band heating rates. +!> - Optional spectral band heating rates. if ( lhlwb ) then do ib = 1, nbands fnet(0) = (toturad(0,ib) - totdrad(0,ib)) * flxfac diff --git a/physics/Radiation/RRTMGP/rrtmgp_lw_cloud_optics.F90 b/physics/Radiation/RRTMGP/rrtmgp_lw_cloud_optics.F90 index 059086a97..bcac97595 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_lw_cloud_optics.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_lw_cloud_optics.F90 @@ -1,8 +1,5 @@ !> \file rrtmgp_lw_cloud_optics.F90 -!! -!> \defgroup rrtmgp_lw_cloud_optics rrtmgp_lw_cloud_optics.F90 -!! -!! \brief This module contains two routines: The first initializes data and functions +!! This module contains two routines: The first initializes data and functions !! needed to compute the longwave cloud radiative properteis in RRTMGP. The second routine !! is a ccpp scheme within the "radiation loop", where the shortwave optical prperties !! (optical-depth, single-scattering albedo, asymmetry parameter) are computed for ALL @@ -75,6 +72,7 @@ module rrtmgp_lw_cloud_optics ! ###################################################################################### ! SUBROUTINE rrtmgp_lw_cloud_optics_init() ! ###################################################################################### +!> subroutine rrtmgp_lw_cloud_optics_init(rrtmgp_root_dir, rrtmgp_lw_file_clouds, & doGP_cldoptics_PADE, doGP_cldoptics_LUT, nrghice, mpicomm, mpirank, mpiroot, & errmsg, errflg) diff --git a/physics/Radiation/RRTMGP/rrtmgp_lw_gas_optics.F90 b/physics/Radiation/RRTMGP/rrtmgp_lw_gas_optics.F90 index 7cf80e3f3..81c4687f3 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_lw_gas_optics.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_lw_gas_optics.F90 @@ -1,8 +1,5 @@ !> \file rrtmgp_lw_gas_optics.F90 -!! -!> \defgroup rrtmgp_lw_gas_optics rrtmgp_lw_gas_optics.F90 -!! -!! \brief This module contains two routines: One to initialize the k-distribution data +!! This module contains two routines: One to initialize the k-distribution data !! and functions needed to compute the longwave gaseous optical properties in RRTMGP. !! The second routine is a ccpp scheme within the "radiation loop", where the longwave !! optical prperties (optical-depth) are computed for clear-sky conditions (no aerosols). diff --git a/physics/Radiation/RRTMGP/rrtmgp_lw_main.F90 b/physics/Radiation/RRTMGP/rrtmgp_lw_main.F90 index c471f89c5..39792eab7 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_lw_main.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_lw_main.F90 @@ -1,9 +1,5 @@ -! ########################################################################################### !> \file rrtmgp_lw_main.F90 -!! -!> \defgroup rrtmgp_lw_main rrtmgp_lw_main.F90 -!! -!! \brief This module contains the longwave RRTMGP radiation scheme. +!! This file contains the longwave RRTMGP radiation scheme. !! ! ########################################################################################### module rrtmgp_lw_main @@ -29,7 +25,6 @@ module rrtmgp_lw_main public rrtmgp_lw_main_init, rrtmgp_lw_main_run contains - ! ######################################################################################### !! \section arg_table_rrtmgp_lw_main_init !! \htmlinclude rrtmgp_lw_main_int.html !! @@ -39,7 +34,6 @@ module rrtmgp_lw_main !! !! \section rrtmgp_lw_main_init !> @{ - ! ######################################################################################### subroutine rrtmgp_lw_main_init(rrtmgp_root_dir, rrtmgp_lw_file_gas, rrtmgp_lw_file_clouds,& active_gases_array, doGP_cldoptics_PADE, doGP_cldoptics_LUT, doGP_sgs_pbl, & doGP_sgs_cnv, nrghice, mpicomm, mpirank, mpiroot, nLay, rrtmgp_phys_blksz, & diff --git a/physics/Radiation/RRTMGP/rrtmgp_sampling.F90 b/physics/Radiation/RRTMGP/rrtmgp_sampling.F90 index 9e2360083..b2f37f219 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_sampling.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_sampling.F90 @@ -1,4 +1,5 @@ -! This code is part of RRTM for GCM Applications - Parallel (RRTMGP) +!>\file rrtmgp_sampling.F90 +!! This code is part of RRTM for GCM Applications - Parallel (RRTMGP) ! ! Contacts: Robert Pincus and Eli Mlawer ! email: rrtmgp@aer.com @@ -30,12 +31,8 @@ module rrtmgp_sampling private public :: draw_samples, sampled_mask contains - ! ------------------------------------------------------------------------------------------------- - ! - ! Apply a T/F sampled cloud mask to cloud optical properties defined by band to produce - ! McICA-sampled cloud optical properties - ! - ! ------------------------------------------------------------------------------------------------- +!> Apply a T/F sampled cloud mask to cloud optical properties defined by band to produce +!! McICA-sampled cloud optical properties function draw_samples(cloud_mask,do_twostream,clouds,clouds_sampled) result(error_msg) ! Inputs logical, dimension(:,:,:), intent(in ) :: cloud_mask ! Dimensions ncol,nlay,ngpt @@ -76,11 +73,8 @@ function draw_samples(cloud_mask,do_twostream,clouds,clouds_sampled) result(erro end select end select end function draw_samples - ! ------------------------------------------------------------------------------------------------- - ! - ! Generate a McICA-sampled cloud mask - ! - ! ------------------------------------------------------------------------------------------------- + +!> Generate a McICA-sampled cloud mask subroutine sampled_mask(randoms, cloud_frac, cloud_mask, overlap_param, randoms2) ! Inputs real(wp), dimension(:,:,:), intent(in ) :: randoms ! ngpt,nlay,ncol @@ -180,12 +174,9 @@ subroutine sampled_mask(randoms, cloud_frac, cloud_mask, overlap_param, randoms2 end do ! END LOOP: Columns end subroutine sampled_mask - ! ------------------------------------------------------------------------------------------------- - ! - ! Apply a true/false cloud mask to a homogeneous field - ! This could be a kernel - ! - ! ------------------------------------------------------------------------------------------------- + +!> Apply a true/false cloud mask to a homogeneous field +!! This could be a kernel subroutine apply_cloud_mask(ncol,nlay,nbnd,ngpt,band_lims_gpt,cloud_mask,input_field,sampled_field) integer, intent(in ) :: ncol,nlay,nbnd,ngpt integer, dimension(2,nbnd), intent(in ) :: band_lims_gpt diff --git a/physics/Radiation/RRTMGP/rrtmgp_sw_cloud_optics.F90 b/physics/Radiation/RRTMGP/rrtmgp_sw_cloud_optics.F90 index 552fda295..f3bc656fc 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_sw_cloud_optics.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_sw_cloud_optics.F90 @@ -1,3 +1,6 @@ +!>\file rrtmgp_sw_cloud_optics.F90 +!! + module rrtmgp_sw_cloud_optics use machine, only: kind_phys use mo_rte_kind, only: wl diff --git a/physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 b/physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 index b350334a3..ab379cc9e 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 @@ -1,5 +1,6 @@ -! ########################################################################################### -! ########################################################################################### +!>\file rrtmgp_sw_main.F90 +!! + module rrtmgp_sw_main use mpi_f08 use machine, only: kind_phys, kind_dbl_prec @@ -28,7 +29,7 @@ module rrtmgp_sw_main ! ######################################################################################### ! SUBROUTINE rrtmgp_sw_main_init ! ######################################################################################### -!! \section arg_table_rrtmgp_sw_main_init +!> \section arg_table_rrtmgp_sw_main_init !! \htmlinclude rrtmgp_sw_main_init.html !! subroutine rrtmgp_sw_main_init(rrtmgp_root_dir, rrtmgp_sw_file_gas, rrtmgp_sw_file_clouds,& @@ -38,30 +39,30 @@ subroutine rrtmgp_sw_main_init(rrtmgp_root_dir, rrtmgp_sw_file_gas, rrtmgp_sw_fi ! Inputs character(len=128),intent(in) :: & - rrtmgp_root_dir, & ! RTE-RRTMGP root directory - rrtmgp_sw_file_clouds, & ! RRTMGP file containing K-distribution data - rrtmgp_sw_file_gas ! RRTMGP file containing cloud-optics data + rrtmgp_root_dir, & !< RTE-RRTMGP root directory + rrtmgp_sw_file_clouds, & !< RRTMGP file containing K-distribution data + rrtmgp_sw_file_gas !< RRTMGP file containing cloud-optics data character(len=*), dimension(:), intent(in) :: & - active_gases_array ! List of active gases from namelist as array) + active_gases_array !< List of active gases from namelist as array) logical, intent(in) :: & - doGP_cldoptics_PADE, & ! Use RRTMGP cloud-optics: PADE approximation? - doGP_cldoptics_LUT, & ! Use RRTMGP cloud-optics: LUTs? - doGP_sgs_pbl, & ! Flag to include sgs PBL clouds - doGP_sgs_cnv ! Flag to include sgs convective clouds + doGP_cldoptics_PADE, & !< Use RRTMGP cloud-optics: PADE approximation? + doGP_cldoptics_LUT, & !< Use RRTMGP cloud-optics: LUTs? + doGP_sgs_pbl, & !< Flag to include sgs PBL clouds + doGP_sgs_cnv !< Flag to include sgs convective clouds integer, intent(inout) :: & - nrghice ! Number of ice-roughness categories + nrghice !< Number of ice-roughness categories type(MPI_Comm),intent(in) :: & - mpicomm ! MPI communicator + mpicomm !< MPI communicator integer,intent(in) :: & - mpirank, & ! Current MPI rank - mpiroot, & ! Master MPI rank - rrtmgp_phys_blksz, & ! Number of horizontal points to process at once. + mpirank, & !< Current MPI rank + mpiroot, & !< Master MPI rank + rrtmgp_phys_blksz, & !< Number of horizontal points to process at once. nLay ! Outputs character(len=*), intent(out) :: & - errmsg ! CCPP error message + errmsg !< CCPP error message integer, intent(out) :: & - errflg ! CCPP error code + errflg !< CCPP error code ! Initialize CCPP error handling variables errmsg = '' @@ -81,7 +82,7 @@ end subroutine rrtmgp_sw_main_init ! ######################################################################################### ! SUBROUTINE rrtmgp_sw_main_run ! ######################################################################################### -!! \section arg_table_rrtmgp_sw_main_run +!> \section arg_table_rrtmgp_sw_main_run !! \htmlinclude rrtmgp_sw_main_run.html !! subroutine rrtmgp_sw_main_run(doSWrad, doSWclrsky, top_at_1, doGP_sgs_cnv, doGP_sgs_pbl, & diff --git a/physics/Radiation/radiation_aerosols.f b/physics/Radiation/radiation_aerosols.f index bbd2f25cb..0a906fcf3 100644 --- a/physics/Radiation/radiation_aerosols.f +++ b/physics/Radiation/radiation_aerosols.f @@ -3871,6 +3871,8 @@ subroutine gocart_aerinit & ! ================= !----------------------------- +!> read GMAO pre-tabultaed aerosol optical data for dust, seasalt, ! +!! sulfate, black carbon, and organic carbon aerosols subroutine rd_gocart_luts !............................. ! --- inputs: (in scope variables, module variables) @@ -4073,6 +4075,10 @@ end subroutine rd_gocart_luts !----------------------------------- !-------------------------------- +!> compute mean aerosol optical properties over each sw radiation +!! spectral band for each of the species components. This program +!! follows optavg routine (in turn follows gfdl's approach for thick +!! cloud opertical property in sw radiation scheme (2000). subroutine optavg_gocart !................................ ! --- inputs: (in-scope variables, module variables) @@ -4527,6 +4533,8 @@ subroutine aer_property_gocart & ! ================= !-------------------------------- +!> compute aerosols optical properties in NSWLWBD bands for gocart +!! aerosol species subroutine aeropt !................................ diff --git a/physics/Radiation/radiation_cloud_overlap.F90 b/physics/Radiation/radiation_cloud_overlap.F90 index 737b9be61..e69adcb7f 100644 --- a/physics/Radiation/radiation_cloud_overlap.F90 +++ b/physics/Radiation/radiation_cloud_overlap.F90 @@ -15,9 +15,6 @@ module module_radiation_cloud_overlap contains -!>\defgroup rad_cld_ovr_mod Radiation Cloud Overlap Module -!! This module contains the calculation of cloud overlap parameters for both RRTMG and RRTMGP. -!>@{ ! ###################################################################################### ! Hogan et al. (2010) ! "Effect of improving representation of horizontal and vertical cloud structure on the @@ -92,9 +89,6 @@ subroutine cmp_dcorr_lgth_oreopoulos(nCol, lat, juldat, yearlength, dcorr_lgth) end subroutine cmp_dcorr_lgth_oreopoulos - ! ###################################################################################### - ! - ! ###################################################################################### !>This subroutine provides the alpha cloud overlap parameter for both RRTMG and RRTMGP subroutine get_alpha_exper(nCol, nLay, iovr, iovr_exprand, dzlay, & dcorr_lgth, cld_frac, alpha) @@ -143,5 +137,4 @@ subroutine get_alpha_exper(nCol, nLay, iovr, iovr_exprand, dzlay, & return end subroutine get_alpha_exper -!>@} end module module_radiation_cloud_overlap diff --git a/physics/Radiation/radiation_clouds.f b/physics/Radiation/radiation_clouds.f index 979405cdb..286b2535b 100644 --- a/physics/Radiation/radiation_clouds.f +++ b/physics/Radiation/radiation_clouds.f @@ -1712,7 +1712,7 @@ end subroutine progcld_gfdl_lin !----------------------------------- !----------------------------------- -!! This subroutine computes cloud related quantities using +!> This subroutine computes cloud related quantities using !! Ferrier-Aligo cloud microphysics scheme. subroutine progcld_fer_hires & & ( plyr,plvl,tlyr,tvly,qlyr,qstl,rhly,clw, & ! --- inputs: @@ -1960,7 +1960,7 @@ end subroutine progcld_fer_hires !................................... -! This subroutine is used by Thompson/WSM6/NSSL cloud microphysics (EMC) +!> This subroutine is used by Thompson/WSM6/NSSL cloud microphysics (EMC) subroutine progcld_thompson_wsm6 & & ( plyr,plvl,tlyr,qlyr,qstl,rhly,clw, & ! --- inputs: & xlat,xlon,slmsk,dz,delp, & diff --git a/physics/Radiation/radiation_tools.F90 b/physics/Radiation/radiation_tools.F90 index 28384f32a..bc7a81db8 100644 --- a/physics/Radiation/radiation_tools.F90 +++ b/physics/Radiation/radiation_tools.F90 @@ -11,8 +11,7 @@ module radiation_tools rrtmgp_minT ! Minimum temperature allowed in RRTMGP contains - ! ######################################################################################### - ! ######################################################################################### +!> subroutine cmp_tlev(nCol,nLev,minP,p_lay,t_lay,p_lev,tsfc,t_lev) ! Inputs integer, intent(in) :: & @@ -83,9 +82,7 @@ subroutine cmp_tlev(nCol,nLev,minP,p_lay,t_lay,p_lev,tsfc,t_lev) end subroutine cmp_tlev - ! ######################################################################################### - ! SUBROUTINE check_error_msg - ! ######################################################################################### +!> subroutine check_error_msg(routine_name, error_msg) character(len=*), intent(in) :: & error_msg, routine_name diff --git a/physics/SFC_Layer/GFDL/module_sf_exchcoef.f90 b/physics/SFC_Layer/GFDL/module_sf_exchcoef.f90 index 6ec9ed835..e82fd4371 100644 --- a/physics/SFC_Layer/GFDL/module_sf_exchcoef.f90 +++ b/physics/SFC_Layer/GFDL/module_sf_exchcoef.f90 @@ -1,4 +1,5 @@ -! This MODULE holds the routines that calculate air-sea exchange coefficients +!>\file module_sf_exchcoef.f90 +!! This MODULE holds the routines that calculate air-sea exchange coefficients MODULE module_sf_exchcoef CONTAINS diff --git a/physics/SFC_Layer/MYNN/module_sf_mynn.F90 b/physics/SFC_Layer/MYNN/module_sf_mynn.F90 index 3d847348d..6a3eab8b6 100644 --- a/physics/SFC_Layer/MYNN/module_sf_mynn.F90 +++ b/physics/SFC_Layer/MYNN/module_sf_mynn.F90 @@ -3167,19 +3167,18 @@ SUBROUTINE znot_m_v6(uref, znotm) END SUBROUTINE znot_m_v6 !-------------------------------------------------------------------- !>\ingroup mynn_sfc -!! - SUBROUTINE znot_t_v6(uref, znott) - - !$acc routine seq - IMPLICIT NONE -!> Calculate scalar roughness over water with input 10-m wind +!> Calculate scalar roughness over water with input 10-m wind !! For low-to-moderate winds, try to match the Ck-U10 relationship from COARE algorithm !! For high winds, try to retain the Ck-U10 relationship of FY2015 HWRF !! !!\author Bin Liu, NOAA/NCEP/EMC 2017 -! +! ! uref(m/s) : wind speed at 10-m height ! znott(meter): scalar roughness scale over water + SUBROUTINE znot_t_v6(uref, znott) + + !$acc routine seq + IMPLICIT NONE ! REAL(kind_phys), INTENT(IN) :: uref REAL(kind_phys), INTENT(OUT):: znott @@ -3234,17 +3233,16 @@ END SUBROUTINE znot_t_v6 !------------------------------------------------------------------- !>\ingroup mynn_sfc -!! - SUBROUTINE znot_m_v7(uref, znotm) - - !$acc routine seq - IMPLICIT NONE !> Calculate areodynamical roughness over water with input 10-m wind !! For low-to-moderate winds, try to match the Cd-U10 relationship from COARE V3.5 (Edson et al. 2013) !! For high winds, try to fit available observational data !! Comparing to znot_t_v6, slightly decrease Cd for higher wind speed -!! +!! !!\author Bin Liu, NOAA/NCEP/EMC 2018 + SUBROUTINE znot_m_v7(uref, znotm) + + !$acc routine seq + IMPLICIT NONE ! ! uref(m/s) : wind speed at 10-m height ! znotm(meter): areodynamical roughness scale over water @@ -3284,17 +3282,16 @@ SUBROUTINE znot_m_v7(uref, znotm) END SUBROUTINE znot_m_v7 !-------------------------------------------------------------------- !>\ingroup mynn_sfc -!! - SUBROUTINE znot_t_v7(uref, znott) - - !$acc routine seq - IMPLICIT NONE !> Calculate scalar roughness over water with input 10-m wind !! For low-to-moderate winds, try to match the Ck-U10 relationship from COARE algorithm !! For high winds, try to retain the Ck-U10 relationship of FY2015 HWRF !! To be compatible with the slightly decreased Cd for higher wind speed -!! +!! !!\author Bin Liu, NOAA/NCEP/EMC 2018 + SUBROUTINE znot_t_v7(uref, znott) + + !$acc routine seq + IMPLICIT NONE ! ! uref(m/s) : wind speed at 10-m height ! znott(meter): scalar roughness scale over water diff --git a/physics/SFC_Layer/UFS/date_def.f b/physics/SFC_Layer/UFS/date_def.f index fceb4334f..958d8b8b9 100644 --- a/physics/SFC_Layer/UFS/date_def.f +++ b/physics/SFC_Layer/UFS/date_def.f @@ -1,3 +1,5 @@ +!>\file date_def.f +!! module date_def use machine, ONLY: kind_phys implicit none diff --git a/physics/SFC_Layer/UFS/sfc_diag.f b/physics/SFC_Layer/UFS/sfc_diag.f index b0432df6f..2676d24db 100644 --- a/physics/SFC_Layer/UFS/sfc_diag.f +++ b/physics/SFC_Layer/UFS/sfc_diag.f @@ -6,13 +6,10 @@ module sfc_diag !> \defgroup sfc_diag_mod GFS sfc_diag module !! This module contains the land surface diagose calculation. -!> @{ !! \section arg_table_sfc_diag_run Argument Table !! \htmlinclude sfc_diag_run.html !! -!! \section general General Algorithm -!! \section detailed Detailed Algorithm -!! @{ +!> @{ subroutine sfc_diag_run (im,xlat_d,xlon_d, & & lsm,lsm_ruc,grav,cp,eps,epsm1,con_rocp, & & con_karman, & diff --git a/physics/SFC_Models/Land/RUC/lsm_ruc.F90 b/physics/SFC_Models/Land/RUC/lsm_ruc.F90 index ba1b1b4e9..c23d73e0b 100644 --- a/physics/SFC_Models/Land/RUC/lsm_ruc.F90 +++ b/physics/SFC_Models/Land/RUC/lsm_ruc.F90 @@ -321,7 +321,7 @@ end subroutine lsm_ruc_finalize !> \section arg_table_lsm_ruc_run Argument Table !! \htmlinclude lsm_ruc_run.html !! -!>\section gen_lsmruc RUC LSM General Algorithm +!>\section gen_lsm_ruc_run RUC LSM General Algorithm subroutine lsm_ruc_run & ! inputs & ( iter, me, master, delt, kdt, im, nlev, lsm_ruc, lsm, & & imp_physics, imp_physics_gfdl, imp_physics_thompson, & diff --git a/physics/SFC_Models/Land/RUC/module_sf_ruclsm.F90 b/physics/SFC_Models/Land/RUC/module_sf_ruclsm.F90 index 2d01f96c9..66e5d7d1f 100644 --- a/physics/SFC_Models/Land/RUC/module_sf_ruclsm.F90 +++ b/physics/SFC_Models/Land/RUC/module_sf_ruclsm.F90 @@ -83,7 +83,7 @@ MODULE module_sf_ruclsm !>\ingroup lsm_ruc_group !> The RUN LSM model is described in Smirnova et al.(1997) !! \cite Smirnova_1997 and Smirnova et al.(2000) \cite Smirnova_2000 -!>\section gen_lsmruc GSD RUC LSM General Algorithm +!>\section gen_lsmruc RUC LSM General Algorithm !! @{ SUBROUTINE LSMRUC(xlat,xlon, & DT,init,lsm_cold_start,KTAU,iter,NSL, & diff --git a/physics/SFC_Models/Land/sfc_land.F90 b/physics/SFC_Models/Land/sfc_land.F90 index 2b0696ed8..b37be2619 100644 --- a/physics/SFC_Models/Land/sfc_land.F90 +++ b/physics/SFC_Models/Land/sfc_land.F90 @@ -13,21 +13,9 @@ module sfc_land contains -!> \defgroup sfc_land for coupling to land -!! @{ -!! \section diagram Calling Hierarchy Diagram -!! \section intraphysics Intraphysics Communication -!! !> \brief Brief description of the subroutine -!! !! \section arg_table_sfc_land_run Arguments !! \htmlinclude sfc_land_run.html -!! - -!! -!! \section general General Algorithm -!! \section detailed Detailed Algorithm -!! @{ subroutine sfc_land_run(im, cpllnd, cpllnd2atm, flag_iter, dry, & sncovr1_lnd, qsurf_lnd, evap_lnd, hflx_lnd, & ep_lnd, t2mmp_lnd, q2mp_lnd, gflux_lnd, & @@ -104,5 +92,4 @@ subroutine sfc_land_run(im, cpllnd, cpllnd2atm, flag_iter, dry, & end subroutine sfc_land_run -!> @} end module sfc_land diff --git a/physics/SFC_Models/SeaIce/CICE/sfc_cice.f b/physics/SFC_Models/SeaIce/CICE/sfc_cice.f index 36f2bccbf..baf856b60 100644 --- a/physics/SFC_Models/SeaIce/CICE/sfc_cice.f +++ b/physics/SFC_Models/SeaIce/CICE/sfc_cice.f @@ -11,21 +11,9 @@ module sfc_cice contains -!> \defgroup sfc_sice for coupling to CICE -!! @{ -!! \section diagram Calling Hierarchy Diagram -!! \section intraphysics Intraphysics Communication -!! !> \brief Brief description of the subroutine -!! !! \section arg_table_sfc_cice_run Arguments !! \htmlinclude sfc_cice_run.html -!! - -!! -!! \section general General Algorithm -!! \section detailed Detailed Algorithm -!! @{ !! use physcons, only : hvap => con_hvap, cp => con_cp, & @@ -162,5 +150,4 @@ subroutine sfc_cice_run & end subroutine sfc_cice_run !----------------------------------- -!> @} end module sfc_cice diff --git a/physics/docs/ccpp_doxyfile b/physics/docs/ccpp_doxyfile index 9ad1fd40e..b1f079541 100644 --- a/physics/docs/ccpp_doxyfile +++ b/physics/docs/ccpp_doxyfile @@ -1,4 +1,4 @@ -# Doxyfile 1.10.0 +# Doxyfile 1.11.0 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. @@ -357,7 +357,7 @@ MARKDOWN_SUPPORT = YES # to that level are automatically included in the table of contents, even if # they do not have an id attribute. # Note: This feature currently applies only to Markdown headings. -# Minimum value: 0, maximum value: 99, default value: 5. +# Minimum value: 0, maximum value: 99, default value: 6. # This tag requires that the tag MARKDOWN_SUPPORT is set to YES. TOC_INCLUDE_HEADINGS = 5 @@ -385,8 +385,8 @@ AUTOLINK_SUPPORT = YES # to include (a tag file for) the STL sources as input, then you should set this # tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); -# versus func(std::string) {}). This also make the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. +# versus func(std::string) {}). This also makes the inheritance and +# collaboration diagrams that involve STL classes more complete and accurate. # The default value is: NO. BUILTIN_STL_SUPPORT = NO @@ -398,9 +398,9 @@ BUILTIN_STL_SUPPORT = NO CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip (see: -# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen -# will parse them like normal C++ but will assume all classes use public instead -# of private inheritance when no explicit protection keyword is present. +# https://www.riverbankcomputing.com/software) sources only. Doxygen will parse +# them like normal C++ but will assume all classes use public instead of private +# inheritance when no explicit protection keyword is present. # The default value is: NO. SIP_SUPPORT = NO @@ -1006,8 +1006,8 @@ INPUT_ENCODING = UTF-8 # character encoding on a per file pattern basis. Doxygen will compare the file # name with each pattern and apply the encoding instead of the default # INPUT_ENCODING) if there is a match. The character encodings are a list of the -# form: pattern=encoding (like *.php=ISO-8859-1). See cfg_input_encoding -# "INPUT_ENCODING" for further information on supported encodings. +# form: pattern=encoding (like *.php=ISO-8859-1). +# See also: INPUT_ENCODING for further information on supported encodings. INPUT_FILE_ENCODING = @@ -1379,11 +1379,11 @@ HTML_EXTRA_FILES = _doxygen/doxygen-awesome-darkmode-toggle.js \ # The HTML_COLORSTYLE tag can be used to specify if the generated HTML output # should be rendered with a dark or light theme. -# Possible values are: LIGHT always generate light mode output, DARK always -# generate dark mode output, AUTO_LIGHT automatically set the mode according to -# the user preference, use light mode if no preference is set (the default), -# AUTO_DARK automatically set the mode according to the user preference, use -# dark mode if no preference is set and TOGGLE allow to user to switch between +# Possible values are: LIGHT always generates light mode output, DARK always +# generates dark mode output, AUTO_LIGHT automatically sets the mode according +# to the user preference, uses light mode if no preference is set (the default), +# AUTO_DARK automatically sets the mode according to the user preference, uses +# dark mode if no preference is set and TOGGLE allows a user to switch between # light and dark mode via a button. # The default value is: AUTO_LIGHT. # This tag requires that the tag GENERATE_HTML is set to YES. @@ -1818,7 +1818,7 @@ MATHJAX_VERSION = MathJax_2 # Possible values are: HTML-CSS (which is slower, but has the best # compatibility. This is the name for Mathjax version 2, for MathJax version 3 # this will be translated into chtml), NativeMML (i.e. MathML. Only supported -# for NathJax 2. For MathJax version 3 chtml will be used instead.), chtml (This +# for MathJax 2. For MathJax version 3 chtml will be used instead.), chtml (This # is the name for Mathjax version 3, for MathJax version 2 this will be # translated into HTML-CSS) and SVG. # The default value is: HTML-CSS. @@ -2188,6 +2188,14 @@ RTF_STYLESHEET_FILE = RTF_EXTENSIONS_FILE = +# The RTF_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the RTF_OUTPUT output directory. +# Note that the files will be copied as-is; there are no commands or markers +# available. +# This tag requires that the tag GENERATE_RTF is set to YES. + +RTF_EXTRA_FILES = + #--------------------------------------------------------------------------- # Configuration options related to the man page output #--------------------------------------------------------------------------- @@ -2790,7 +2798,7 @@ PLANTUML_INCLUDE_PATH = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes # that will be shown in the graph. If the number of nodes in a graph becomes # larger than this value, doxygen will truncate the graph, which is visualized -# by representing a node as a red box. Note that doxygen if the number of direct +# by representing a node as a red box. Note that if the number of direct # children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that # the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. diff --git a/physics/docs/pdftxt/CU_GF_deep.txt b/physics/docs/pdftxt/CU_GF_deep.txt index ca06666e5..b0506e324 100644 --- a/physics/docs/pdftxt/CU_GF_deep.txt +++ b/physics/docs/pdftxt/CU_GF_deep.txt @@ -17,7 +17,7 @@ internally or with temporal and spatial correlation patterns; (c)for higher reso \section version_cugf_enh CCPP Physics Updates -\version UFS-SRW v3.0.0 +\version CCPP-SCM v7.0.0 The Implementation of GF in RRFS prototypes - Updates for aerosol-awareness (experimental) diff --git a/physics/docs/pdftxt/GFS_NOAHMP.txt b/physics/docs/pdftxt/GFS_NOAHMP.txt index e48b7cafc..537d27527 100644 --- a/physics/docs/pdftxt/GFS_NOAHMP.txt +++ b/physics/docs/pdftxt/GFS_NOAHMP.txt @@ -9,7 +9,7 @@ This implementation of the NoahMP Land Surface Model (LSM) is adapted from the v - A primary reference for the NoahMP LSM is Niu et al. (2011) \cite niu_et_al_2011. \section noahmp_update CCPP Physics Updates -\version UFS-SRW v3.0.0 +\version CCPP-SCM v7.0.0 - As part of a larger-scale effort to unify how microphysics outputs (in particular snow) are used in the land models and outputs, an additional option for using the unified frozen precipitation fraction in NoahMP was added - Diagnostic 2-meter temperature and humidity are based on vegetation and bare-ground tiles - Bug fixes for GFS-based thermal roughness length scheme diff --git a/physics/docs/pdftxt/GFS_OZPHYS.txt b/physics/docs/pdftxt/GFS_OZPHYS.txt index 6de6e2c72..8c3db97ce 100644 --- a/physics/docs/pdftxt/GFS_OZPHYS.txt +++ b/physics/docs/pdftxt/GFS_OZPHYS.txt @@ -50,11 +50,9 @@ The ozone photochemistry scheme has been upgraded recently through latest coeffi depend on the temperature and column ozone climatology (\c global_o3prdlos.f77 is replaced by \c ozprdlos_2015_new_sbuvO3_tclm15_nuchem.f77 in ozphys_2015_run). -\section intra_ozone Intraphysics Communication -- \ref arg_table_ozphys_2015_run \section gen_ozone General Algorithm -- \ref genal_ozphys_2015 +- module_ozphys::run_o3prog_2015() */ diff --git a/physics/docs/pdftxt/GFS_SATMEDMFVDIFQ.txt b/physics/docs/pdftxt/GFS_SATMEDMFVDIFQ.txt index d5bc9489c..270df521f 100644 --- a/physics/docs/pdftxt/GFS_SATMEDMFVDIFQ.txt +++ b/physics/docs/pdftxt/GFS_SATMEDMFVDIFQ.txt @@ -43,7 +43,7 @@ and tracers and a method for removing negative tracer mixing ratio values have b \section v6_pbl_enh CCPP Physics Updates -\version UFS-SRW v3.0.0 +\version CCPP-SCM v7.0.0 - To reduce the negative hurricane intensity biases, a parameterization for environmental wind shear effect is included in the GFS TKE-EDMF PBL and cumulus schemes. In addition, the entrainment rates are enhanced proportional to the sub-cloud or PBL mean TKE (turbulent kinetic energy) when TKE is larger than a threshold diff --git a/physics/docs/pdftxt/GFS_UGWPv0.txt b/physics/docs/pdftxt/GFS_UGWPv0.txt index 1b3f0166f..81b3c7018 100644 --- a/physics/docs/pdftxt/GFS_UGWPv0.txt +++ b/physics/docs/pdftxt/GFS_UGWPv0.txt @@ -109,7 +109,7 @@ and dynamical instability of waves described by the linear (Weinstock 1984 \cite weinstock_1984; Hines 1997 \cite hines_1997) saturation theories. \section ugwp_updates CCPP Physics Updates -\version UFS-SRW v3.0.0 +\version CCPP-SCM v7.0.0 We have added optional diagnostic outputs for the various tendencies supplied by the UGWP. They can be switched on by setting the two following input namelist variables equal to “.true.”: \p ldiag3d and \p ldiag_ugwp. diff --git a/physics/docs/pdftxt/THOMPSON.txt b/physics/docs/pdftxt/THOMPSON.txt index 914a95922..1e1a5414b 100644 --- a/physics/docs/pdftxt/THOMPSON.txt +++ b/physics/docs/pdftxt/THOMPSON.txt @@ -10,7 +10,7 @@ The original RAP/HRRR microphysics implementation represents the most aggressive cloud and precipitation microphysical processes in the NCEP operational forecast model suite. The RAP and HRRR are important guidance to NWS aviation forecasts, and any microphysics improvements are aimed at least in part, to improve that guidance. The scheme is particularly beneficial for aircraft icing forecasts. Recently, this scheme is now being tested -with a GFS_v17 prototype: the GFS_v17_p8 suite at Environmental Modeling Center (EMC) as a candidate for the next operational implementation. +with a GFS_v17 prototype: the GFS_v17_HR3 suite at Environmental Modeling Center (EMC) as a candidate for the next operational implementation. The microphysical processes accounted for are shown in the graphic below: \image html gsd_thompson.png "Figure 1: Complex Microphysics Model in the RAP" width=500 @@ -83,7 +83,7 @@ Two namelist variables control the usage of the semi-Lagrangian sedimentation, \ \p sedi_semi is set to ‘true’ to activate the method. \p Decfl is a parameter that needs to avoid deformation of the arriving grids, currently, "10". \section v6_enh_thompson CCPP Physics Updates -\version UFS-SRW v3.0.0 +\version CCPP-SCM v7.0.0 - The ice generation supersaturation requirement for nonaerosol option is reduced from 0.25 to 0.15. The purpose is to generate more ice in the upper level and reduce the OLR bias. diff --git a/physics/photochem/h2o_def.f b/physics/photochem/h2o_def.f index 72748a613..7602b1ffe 100644 --- a/physics/photochem/h2o_def.f +++ b/physics/photochem/h2o_def.f @@ -5,10 +5,6 @@ !! This module defines arrays in H2O scheme. module h2o_def -!> \section arg_table_h2o_def -!! \htmlinclude h2o_def.html -!! - use machine , only : kind_phys implicit none diff --git a/physics/photochem/h2ointerp.f90 b/physics/photochem/h2ointerp.f90 index f5a1f36c6..907ec84df 100644 --- a/physics/photochem/h2ointerp.f90 +++ b/physics/photochem/h2ointerp.f90 @@ -15,6 +15,7 @@ module h2ointerp contains +!> subroutine read_h2odata (h2o_phys, me, master) use machine, only: kind_phys use h2o_def @@ -85,7 +86,7 @@ subroutine read_h2odata (h2o_phys, me, master) end subroutine read_h2odata ! !********************************************************************** -! +!> subroutine setindxh2o(npts,dlat,jindx1,jindx2,ddy) ! ! May 2015 Shrinivas Moorthi - Prepare for H2O interpolation @@ -126,7 +127,7 @@ subroutine setindxh2o(npts,dlat,jindx1,jindx2,ddy) end subroutine setindxh2o ! !********************************************************************** -! +!> subroutine h2ointerpol(me,npts,idate,fhour,jindx1,jindx2,h2oplout,ddy) ! ! May 2015 Shrinivas Moorthi - Prepare for H2O interpolation diff --git a/physics/photochem/module_ozphys.F90 b/physics/photochem/module_ozphys.F90 index b66eb0a74..fcc5ac7ad 100644 --- a/physics/photochem/module_ozphys.F90 +++ b/physics/photochem/module_ozphys.F90 @@ -1,10 +1,12 @@ +!>\file module_ozphys.F90 +!! ! ######################################################################################### !> \section arg_table_module_ozphys Argument table !! \htmlinclude module_ozphys.html !! ! !> The operational GFS currently parameterizes ozone production and destruction based on -!! monthly mean coefficients (\c global_o3prdlos.f77) provided by Naval Research Laboratory +!! monthly mean coefficients ( global_o3prdlos.f77) provided by Naval Research Laboratory !! through CHEM2D chemistry model (McCormack et al. (2006) \cite mccormack_et_al_2006). !! !! There are two implementations of this parameterization within this module. @@ -33,7 +35,7 @@ !! update_o3clim() -> run_o3clim() -> radiation() -> physics... !! !!\author June 2015 - Shrinivas Moorthi -!!\modified Sep 2023 - Dustin Swales +!! - Sep 2023 - Dustin Swales !! ! ######################################################################################### module module_ozphys @@ -87,9 +89,8 @@ module module_ozphys end type ty_ozphys contains - ! ######################################################################################### - ! Procedure (type-bound) for loading data for prognostic ozone. - ! ######################################################################################### + +!> Procedure (type-bound) for loading data for prognostic ozone. function load_o3prog(this, file, fileID) result (err_message) class(ty_ozphys), intent(inout) :: this integer, intent(in) :: fileID @@ -141,11 +142,8 @@ function load_o3prog(this, file, fileID) result (err_message) end function load_o3prog - ! ######################################################################################### - ! Procedure (type-bound) for setting up interpolation indices between data-grid and - ! model-grid. - ! Called once during initialization - ! ######################################################################################### +!> Procedure (type-bound) for setting up interpolation indices between data-grid and +!! model-grid. Called once during initialization subroutine setup_o3prog(this, lat, idx1, idx2, idxh) class(ty_ozphys), intent(in) :: this real(kind_phys), intent(in) :: lat(:) @@ -172,9 +170,7 @@ subroutine setup_o3prog(this, lat, idx1, idx2, idxh) end subroutine setup_o3prog - ! ######################################################################################### - ! Procedure (type-bound) for updating data used in prognostic ozone scheme. - ! ######################################################################################### +!> Procedure (type-bound) for updating data used in prognostic ozone scheme. subroutine update_o3prog(this, idx1, idx2, idxh, rjday, idxt1, idxt2, ozpl) class(ty_ozphys), intent(in) :: this integer, intent(in) :: idx1(:), idx2(:) @@ -202,9 +198,7 @@ subroutine update_o3prog(this, idx1, idx2, idxh, rjday, idxt1, idxt2, ozpl) end subroutine update_o3prog - ! ######################################################################################### - ! Procedure (type-bound) for NRL prognostic ozone (2015). - ! ######################################################################################### +!> Procedure (type-bound) for NRL prognostic ozone (2015). subroutine run_o3prog_2015(this, con_1ovg, dt, p, t, dp, ozpl, oz, do_diag, do3_dt_prd, & do3_dt_ozmx, do3_dt_temp, do3_dt_ohoz) class(ty_ozphys), intent(in) :: this @@ -316,9 +310,7 @@ subroutine run_o3prog_2015(this, con_1ovg, dt, p, t, dp, ozpl, oz, do_diag, do3_ return end subroutine run_o3prog_2015 - ! ######################################################################################### - ! Procedure (type-bound) for NRL prognostic ozone (2006). - ! ######################################################################################### +!> Procedure (type-bound) for NRL prognostic ozone (2006). subroutine run_o3prog_2006(this, con_1ovg, dt, p, t, dp, ozpl, oz, do_diag, do3_dt_prd, & do3_dt_ozmx, do3_dt_temp, do3_dt_ohoz) class(ty_ozphys), intent(in) :: this @@ -442,9 +434,7 @@ subroutine run_o3prog_2006(this, con_1ovg, dt, p, t, dp, ozpl, oz, do_diag, do3_ return end subroutine run_o3prog_2006 - ! ######################################################################################### - ! Procedure (type-bound) for NRL updating climotological ozone. - ! ######################################################################################### +!> Procedure (type-bound) for NRL updating climotological ozone. subroutine run_o3clim(this, lat, prslk, con_pi, oz) class(ty_ozphys), intent(in) :: this real(kind_phys), intent(in) :: & @@ -522,9 +512,7 @@ subroutine run_o3clim(this, lat, prslk, con_pi, oz) return end subroutine run_o3clim - ! ######################################################################################### - ! Procedure (type-bound) for loading data for climotological ozone. - ! ######################################################################################### +!> Procedure (type-bound) for loading data for climotological ozone. function load_o3clim(this, file, fileID) result (err_message) class(ty_ozphys), intent(inout) :: this integer, intent(in) :: fileID @@ -608,10 +596,8 @@ function load_o3clim(this, file, fileID) result (err_message) end function load_o3clim - ! ######################################################################################### - ! Procedure (type-bound) for updating temporal interpolation index when using climotological - ! ozone - ! ######################################################################################### +!> Procedure (type-bound) for updating temporal interpolation index when using climotological +!! ozone subroutine update_o3clim(this, imon, iday, ihour, loz1st) class(ty_ozphys), intent(inout) :: this integer, intent(in) :: imon, iday, ihour From 8525a7e7461167a13e5b6900abf53a31c344e424 Mon Sep 17 00:00:00 2001 From: Man Zhang Date: Mon, 24 Jun 2024 13:53:36 -0600 Subject: [PATCH 06/29] save scidoc --- .../GFS_ccpp_suite_sim_pre.F90 | 6 +- .../UFS_SCM_NEPTUNE/ccpp_suite_simulator.F90 | 33 ++- .../module_ccpp_suite_simulator.F90 | 101 ++++------ physics/Radiation/RRTMG/iounitdef.f | 4 + .../Radiation/RRTMG/module_bfmicrophysics.f | 4 +- physics/Radiation/RRTMG/rad_sw_pre.F90 | 6 +- physics/Radiation/RRTMG/radcons.f90 | 4 - .../Radiation/RRTMG/rrtmg_lw_cloud_optics.F90 | 3 + physics/Radiation/RRTMGP/rrtmgp_lw_main.F90 | 189 ++++++++---------- .../Radiation/RRTMGP/rrtmgp_sw_gas_optics.F90 | 35 +--- physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 | 148 +++++++------- physics/docs/_doxygen/custom.css | 57 ++++++ physics/docs/_doxygen/doxygen-awesome.css | 2 +- physics/docs/_doxygen/header.html | 33 ++- physics/docs/ccpp_doxyfile | 9 +- physics/docs/library.bib | 51 ++++- physics/docs/pdftxt/NSSLMICRO.txt | 2 +- physics/docs/pdftxt/RE7/input_RRFS_v1.nml | 56 +++--- physics/docs/pdftxt/suite_input.nml.txt | 32 ++- physics/hooks/machine.F | 6 +- 20 files changed, 429 insertions(+), 352 deletions(-) create mode 100644 physics/docs/_doxygen/custom.css diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_ccpp_suite_sim_pre.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_ccpp_suite_sim_pre.F90 index fbaf5a1d9..2c276ca8c 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_ccpp_suite_sim_pre.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_ccpp_suite_sim_pre.F90 @@ -1,3 +1,6 @@ +!>\file GFS_ccpp_suite_sim_pre.F90 +!! Interstitial CCPP suite to couple UFS physics to CCPP suite simulator. + ! ######################################################################################## ! ! Description: Interstitial CCPP suite to couple UFS physics to ccpp_suite_simulator. @@ -22,7 +25,7 @@ module GFS_ccpp_suite_sim_pre ! SUBROUTINE GFS_ccpp_suite_sim_pre_run ! ! ###################################################################################### -!! \section arg_table_GFS_ccpp_suite_sim_pre_run +!> \section arg_table_GFS_ccpp_suite_sim_pre_run !! \htmlinclude GFS_ccpp_suite_sim_pre_run.html !! subroutine GFS_ccpp_suite_sim_pre_run(do_ccpp_suite_sim, dtend, ntqv, dtidx, dtp, & @@ -110,6 +113,7 @@ subroutine GFS_ccpp_suite_sim_pre_run(do_ccpp_suite_sim, dtend, ntqv, dtidx, dtp end subroutine GFS_ccpp_suite_sim_pre_run ! ###################################################################################### +!> subroutine load_ccpp_suite_sim(nlunit, nml_file, physics_process, iactive_T, & iactive_u, iactive_v, iactive_q, errmsg, errflg) diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/ccpp_suite_simulator.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/ccpp_suite_simulator.F90 index c1592263d..6a706456c 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/ccpp_suite_simulator.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/ccpp_suite_simulator.F90 @@ -1,20 +1,19 @@ -! ######################################################################################## -! -! Description: This suite simulates the evolution of the internal physics state -! represented by a CCPP Suite Definition File (SDF). -! -! To activate this suite it must be a) embedded within the SDF and b) activated through -! the physics namelist. -! The derived-data type "base_physics_process" contains the metadata needed to reconstruct -! the temporal evolution of the state. An array of base_physics_process, physics_process, -! is populated by the host during initialization and passed to the physics. Additionally, -! this type holds any data, or type-bound procedures, required by the suite simulator(s). -! -! For this initial demonstration we are using 2-dimensional (height, time) forcing data, -! which is on the same native vertical grid as the SCM. The dataset has a temporal -! resolution of 1-hour, created by averaging all local times from a Tropical Warm Pool -! International Cloud Experiment (TWPICE) case. This was to create a dataset with a -! (constant) diurnal cycle. +!>\file ccpp_suite_simulator.F90 +!! Description: This suite simulates the evolution of the internal physics state +!! represented by a CCPP Suite Definition File (SDF). +!! +!! To activate this suite it must be a) embedded within the SDF and b) activated through +!! the physics namelist. +!! The derived-data type "base_physics_process" contains the metadata needed to reconstruct +!! the temporal evolution of the state. An array of base_physics_process, physics_process, +!! is populated by the host during initialization and passed to the physics. Additionally, +!! this type holds any data, or type-bound procedures, required by the suite simulator(s). +!! +!! For this initial demonstration we are using 2-dimensional (height, time) forcing data, +!! which is on the same native vertical grid as the SCM. The dataset has a temporal +!! resolution of 1-hour, created by averaging all local times from a Tropical Warm Pool +!! International Cloud Experiment (TWPICE) case. This was to create a dataset with a +!! (constant) diurnal cycle. ! ! ######################################################################################## module ccpp_suite_simulator diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/module_ccpp_suite_simulator.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/module_ccpp_suite_simulator.F90 index c4f9fc4e4..e8a4188d3 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/module_ccpp_suite_simulator.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/module_ccpp_suite_simulator.F90 @@ -1,19 +1,15 @@ -! ######################################################################################## -! -! This module contains the type, base_physics_process, and supporting subroutines needed -! by the ccpp suite simulator. -! -! ######################################################################################## +!>\file module_ccpp_suite_simulator.F90 +!! This module contains the type, base_physics_process, and supporting subroutines needed +!! by the ccpp suite simulator. + module module_ccpp_suite_simulator -!> \section arg_table_module_ccpp_suite_simulator Argument table -!! \htmlinclude module_ccpp_suite_simulator.html -!! + use machine, only : kind_phys implicit none public base_physics_process - ! Type containing 1D (time) physics tendencies. +!> Type containing 1D (time) physics tendencies. type phys_tend_1d real(kind_phys), dimension(:), allocatable :: T real(kind_phys), dimension(:), allocatable :: u @@ -23,7 +19,7 @@ module module_ccpp_suite_simulator real(kind_phys), dimension(:), allocatable :: z end type phys_tend_1d - ! Type containing 2D (lev,time) physics tendencies. +!> Type containing 2D (lev,time) physics tendencies. type phys_tend_2d real(kind_phys), dimension(:), allocatable :: time real(kind_phys), dimension(:,:), allocatable :: T @@ -45,7 +41,7 @@ module module_ccpp_suite_simulator real(kind_phys), dimension(:,:,:), allocatable :: q end type phys_tend_3d - ! Type containing 4D (lon,lat,lev,time) physics tendencies. +!> Type containing 4D (lon,lat,lev,time) physics tendencies. type phys_tend_4d real(kind_phys), dimension(:), allocatable :: time real(kind_phys), dimension(:,:), allocatable :: lon @@ -56,24 +52,20 @@ module module_ccpp_suite_simulator real(kind_phys), dimension(:,:,:,:), allocatable :: q end type phys_tend_4d -! This type contains the meta information and data for each physics process. - -!> \section arg_table_base_physics_process Argument Table -!! \htmlinclude base_physics_process.html -!! +!> This type contains the meta information and data for each physics process. type base_physics_process - character(len=16) :: name ! Physics process name - logical :: time_split = .false. ! Is process time-split? - logical :: use_sim = .false. ! Is process "active"? - integer :: order ! Order of process in process-loop - type(phys_tend_1d) :: tend1d ! Instantaneous data - type(phys_tend_2d) :: tend2d ! 2-dimensional data - type(phys_tend_3d) :: tend3d ! Not used. Placeholder for 3-dimensional spatial data. - type(phys_tend_4d) :: tend4d ! Not used. Placeholder for 4-dimensional spatio-tempo data. - character(len=16) :: active_name ! "Active" scheme: Physics process name - integer :: iactive_scheme ! "Active" scheme: Order of process in process-loop - logical :: active_tsp ! "Active" scheme: Is process time-split? - integer :: nprg_active ! "Active" scheme: Number of prognostic variables + character(len=16) :: name !< Physics process name + logical :: time_split = .false. !< Is process time-split? + logical :: use_sim = .false. !< Is process "active"? + integer :: order !< Order of process in process-loop + type(phys_tend_1d) :: tend1d !< Instantaneous data + type(phys_tend_2d) :: tend2d !< 2-dimensional data + type(phys_tend_3d) :: tend3d !< Not used. Placeholder for 3-dimensional spatial data. + type(phys_tend_4d) :: tend4d !< Not used. Placeholder for 4-dimensional spatio-tempo data. + character(len=16) :: active_name !< "Active" scheme: Physics process name + integer :: iactive_scheme !< "Active" scheme: Order of process in process-loop + logical :: active_tsp !< "Active" scheme: Is process time-split? + integer :: nprg_active !< "Active" scheme: Number of prognostic variables contains generic, public :: linterp => linterp_1D, linterp_2D procedure, private :: linterp_1D @@ -84,11 +76,8 @@ module module_ccpp_suite_simulator contains - ! #################################################################################### - ! Type-bound procedure to compute tendency profile for time-of-day. - ! - ! For use with 1D data (level, time) tendencies with diurnal (24-hr) forcing. - ! #################################################################################### +!> Type-bound procedure to compute tendency profile for time-of-day. +!! For use with 1D data (level, time) tendencies with diurnal (24-hr) forcing. function linterp_1D(this, var_name, year, month, day, hour, min, sec) result(err_message) class(base_physics_process), intent(inout) :: this character(len=*), intent(in) :: var_name @@ -131,13 +120,10 @@ function linterp_1D(this, var_name, year, month, day, hour, min, sec) result(err end function linterp_1D - ! #################################################################################### - ! Type-bound procedure to compute tendency profile for time-of-day. - ! - ! For use with 2D data (location, level, time) tendencies with diurnal (24-hr) forcing. - ! This assumes that the location dimension has a [longitude, latitude] allocated with - ! each location. - ! #################################################################################### +!> Type-bound procedure to compute tendency profile for time-of-day. +!! For use with 2D data (location, level, time) tendencies with diurnal (24-hr) forcing. +!! This assumes that the location dimension has a [longitude, latitude] allocated with +!! each location. function linterp_2D(this, var_name, lon, lat, year, month, day, hour, min, sec) result(err_message) class(base_physics_process), intent(inout) :: this character(len=*), intent(in) :: var_name @@ -165,10 +151,8 @@ function linterp_2D(this, var_name, lon, lat, year, month, day, hour, min, sec) end select end function linterp_2D - ! #################################################################################### - ! Type-bound procedure to find nearest location. - ! For use with linterp_2D, NOT YET IMPLEMENTED. - ! #################################################################################### +!> Type-bound procedure to find nearest location. +!! For use with linterp_2D, NOT YET IMPLEMENTED. pure function find_nearest_loc_2d_1d(this, lon, lat) class(base_physics_process), intent(in) :: this real(kind_phys), intent(in) :: lon, lat @@ -177,10 +161,8 @@ pure function find_nearest_loc_2d_1d(this, lon, lat) find_nearest_loc_2d_1d = 1 end function find_nearest_loc_2d_1d - ! #################################################################################### - ! Type-bound procedure to compute linear interpolation weights for a diurnal (24-hour) - ! forcing. - ! #################################################################################### +!> Type-bound procedure to compute linear interpolation weights for a diurnal (24-hour) +!! forcing. subroutine cmp_time_wts(this, year, month, day, hour, minute, sec, w1, w2, ti, tf) ! Inputs class(base_physics_process), intent(in) :: this @@ -199,8 +181,7 @@ subroutine cmp_time_wts(this, year, month, day, hour, minute, sec, w1, w2, ti, t end subroutine cmp_time_wts - ! #################################################################################### - ! #################################################################################### +!> subroutine sim_LWRAD( year, month, day, hour, min, sec, process) type(base_physics_process), intent(inout) :: process integer, intent(in) :: year, month, day, hour, min, sec @@ -212,8 +193,7 @@ subroutine sim_LWRAD( year, month, day, hour, min, sec, process) end subroutine sim_LWRAD - ! #################################################################################### - ! #################################################################################### +!> subroutine sim_SWRAD( year, month, day, hour, min, sec, process) type(base_physics_process), intent(inout) :: process integer, intent(in) :: year, month, day, hour, min, sec @@ -225,8 +205,7 @@ subroutine sim_SWRAD( year, month, day, hour, min, sec, process) end subroutine sim_SWRAD - ! #################################################################################### - ! #################################################################################### +!> subroutine sim_GWD( year, month, day, hour, min, sec, process) type(base_physics_process), intent(inout) :: process integer, intent(in) :: year, month, day, hour, min, sec @@ -244,8 +223,7 @@ subroutine sim_GWD( year, month, day, hour, min, sec, process) end subroutine sim_GWD - ! #################################################################################### - ! #################################################################################### +!> subroutine sim_PBL( year, month, day, hour, min, sec, process) type(base_physics_process), intent(inout) :: process integer, intent(in) :: year, month, day, hour, min, sec @@ -266,8 +244,7 @@ subroutine sim_PBL( year, month, day, hour, min, sec, process) end subroutine sim_PBL - ! #################################################################################### - ! #################################################################################### +!> subroutine sim_DCNV( year, month, day, hour, min, sec, process) type(base_physics_process), intent(inout) :: process integer, intent(in) :: year, month, day, hour, min, sec @@ -288,8 +265,7 @@ subroutine sim_DCNV( year, month, day, hour, min, sec, process) end subroutine sim_DCNV - ! #################################################################################### - ! #################################################################################### +!> subroutine sim_SCNV( year, month, day, hour, min, sec, process) type(base_physics_process), intent(inout) :: process integer, intent(in) :: year, month, day, hour, min, sec @@ -310,8 +286,7 @@ subroutine sim_SCNV( year, month, day, hour, min, sec, process) end subroutine sim_SCNV - ! #################################################################################### - ! #################################################################################### +!> subroutine sim_cldMP( year, month, day, hour, min, sec, process) type(base_physics_process), intent(inout) :: process integer, intent(in) :: year, month, day, hour, min, sec diff --git a/physics/Radiation/RRTMG/iounitdef.f b/physics/Radiation/RRTMG/iounitdef.f index c6a4e591f..af3a700b8 100644 --- a/physics/Radiation/RRTMG/iounitdef.f +++ b/physics/Radiation/RRTMG/iounitdef.f @@ -1,3 +1,7 @@ +!>\file iounitdef.f +!! This file defines fortran unit numbers for input/output data +!! files for the NCEP GFS model. + !!!!! ========================================================== !!!!! !!!!! module "module_iounitdef description !!!!! !!!!! ========================================================== !!!!! diff --git a/physics/Radiation/RRTMG/module_bfmicrophysics.f b/physics/Radiation/RRTMG/module_bfmicrophysics.f index caff7fc61..6285653d2 100644 --- a/physics/Radiation/RRTMG/module_bfmicrophysics.f +++ b/physics/Radiation/RRTMG/module_bfmicrophysics.f @@ -1,5 +1,5 @@ -!>\file module_bfmicrophysics.f This file contains some subroutines used -!! in microphysics. +!>\file module_bfmicrophysics.f +!!This file contains some subroutines used in microphysics. !> This module contains some subroutines used in microphysics. MODULE module_microphysics diff --git a/physics/Radiation/RRTMG/rad_sw_pre.F90 b/physics/Radiation/RRTMG/rad_sw_pre.F90 index b7c3faf4c..83a0385a8 100644 --- a/physics/Radiation/RRTMG/rad_sw_pre.F90 +++ b/physics/Radiation/RRTMG/rad_sw_pre.F90 @@ -1,12 +1,11 @@ !>\file rad_sw_pre.F90 !! This file gathers the sunlit points for the shortwave radiation schemes. +!> This module gathers the sunlit points for the shortwave radiation schemes. module rad_sw_pre contains -!> \defgroup rad_sw_pre GFS Radiation-SW Pre -!! This module gathers the sunlit points for the shortwave radiation schemes. -!> @{ + !> \section arg_table_rad_sw_pre_run Argument Table !! \htmlinclude rad_sw_pre_run.html !! @@ -49,5 +48,4 @@ subroutine rad_sw_pre_run (im, lsswr, coszen, nday, idxday, errmsg, errflg) endif end subroutine rad_sw_pre_run -!> @} end module rad_sw_pre diff --git a/physics/Radiation/RRTMG/radcons.f90 b/physics/Radiation/RRTMG/radcons.f90 index 0ca7eeb19..decf79990 100644 --- a/physics/Radiation/RRTMG/radcons.f90 +++ b/physics/Radiation/RRTMG/radcons.f90 @@ -2,10 +2,6 @@ !! This file contains module radcons. -!> \defgroup radcons GFS RRTMG Constants Module -!> This module contains some of the most frequently used math and physics -!! constants for RRTMG. - !> This module contains some of the most frequently used math and physics !! constants for RRTMG. module radcons diff --git a/physics/Radiation/RRTMG/rrtmg_lw_cloud_optics.F90 b/physics/Radiation/RRTMG/rrtmg_lw_cloud_optics.F90 index 1dd225514..7477a498e 100644 --- a/physics/Radiation/RRTMG/rrtmg_lw_cloud_optics.F90 +++ b/physics/Radiation/RRTMG/rrtmg_lw_cloud_optics.F90 @@ -1,3 +1,6 @@ +!>\file rrtmg_lw_cloud_optics.F90 +!! + module mo_rrtmg_lw_cloud_optics use machine, only: kind_phys use mersenne_twister, only: random_setseed, random_number, random_stat diff --git a/physics/Radiation/RRTMGP/rrtmgp_lw_main.F90 b/physics/Radiation/RRTMGP/rrtmgp_lw_main.F90 index 39792eab7..2e22476d4 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_lw_main.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_lw_main.F90 @@ -1,7 +1,6 @@ !> \file rrtmgp_lw_main.F90 !! This file contains the longwave RRTMGP radiation scheme. !! -! ########################################################################################### module rrtmgp_lw_main use mpi_f08 use machine, only: kind_phys, kind_dbl_prec @@ -25,15 +24,10 @@ module rrtmgp_lw_main public rrtmgp_lw_main_init, rrtmgp_lw_main_run contains -!! \section arg_table_rrtmgp_lw_main_init + +!> \section arg_table_rrtmgp_lw_main_init Argument Table !! \htmlinclude rrtmgp_lw_main_int.html !! -!> \ingroup rrtmgp_lw_main -!! -!! \brief -!! -!! \section rrtmgp_lw_main_init -!> @{ subroutine rrtmgp_lw_main_init(rrtmgp_root_dir, rrtmgp_lw_file_gas, rrtmgp_lw_file_clouds,& active_gases_array, doGP_cldoptics_PADE, doGP_cldoptics_LUT, doGP_sgs_pbl, & doGP_sgs_cnv, nrghice, mpicomm, mpirank, mpiroot, nLay, rrtmgp_phys_blksz, & @@ -41,33 +35,33 @@ subroutine rrtmgp_lw_main_init(rrtmgp_root_dir, rrtmgp_lw_file_gas, rrtmgp_lw_fi ! Inputs character(len=128),intent(in) :: & - rrtmgp_root_dir, & ! RTE-RRTMGP root directory - rrtmgp_lw_file_clouds, & ! RRTMGP file containing coefficients used to compute - ! clouds optical properties - rrtmgp_lw_file_gas ! RRTMGP file containing coefficients used to compute - ! gaseous optical properties + rrtmgp_root_dir, & !< RTE-RRTMGP root directory + rrtmgp_lw_file_clouds, & !< RRTMGP file containing coefficients used to compute + !< clouds optical properties + rrtmgp_lw_file_gas !< RRTMGP file containing coefficients used to compute + !! gaseous optical properties character(len=*), dimension(:), intent(in) :: & - active_gases_array ! List of active gases from namelist as array) + active_gases_array !< List of active gases from namelist as array) logical, intent(in) :: & - doGP_cldoptics_PADE, & ! Use RRTMGP cloud-optics: PADE approximation? - doGP_cldoptics_LUT, & ! Use RRTMGP cloud-optics: LUTs? - doGP_sgs_pbl, & ! Flag to include sgs PBL clouds - doGP_sgs_cnv ! Flag to include sgs convective clouds + doGP_cldoptics_PADE, & !< Use RRTMGP cloud-optics: PADE approximation? + doGP_cldoptics_LUT, & !< Use RRTMGP cloud-optics: LUTs? + doGP_sgs_pbl, & !< Flag to include sgs PBL clouds + doGP_sgs_cnv !< Flag to include sgs convective clouds integer, intent(inout) :: & - nrghice ! Number of ice-roughness categories + nrghice !< Number of ice-roughness categories type(MPI_Comm),intent(in) :: & - mpicomm ! MPI communicator + mpicomm !< MPI communicator integer,intent(in) :: & - mpirank, & ! Current MPI rank - mpiroot, & ! Master MPI rank - rrtmgp_phys_blksz, & ! Number of horizontal points to process at once. + mpirank, & !< Current MPI rank + mpiroot, & !< Master MPI rank + rrtmgp_phys_blksz, & !< Number of horizontal points to process at once. nLay ! Outputs character(len=*), intent(out) :: & - errmsg ! CCPP error message + errmsg !< CCPP error message integer, intent(out) :: & - errflg ! CCPP error code + errflg !< CCPP error code ! Initialize CCPP error handling variables errmsg = '' @@ -83,18 +77,10 @@ subroutine rrtmgp_lw_main_init(rrtmgp_root_dir, rrtmgp_lw_file_gas, rrtmgp_lw_fi errmsg, errflg) end subroutine rrtmgp_lw_main_init -!> @} - ! ###################################################################################### -!! \section arg_table_rrtmgp_lw_main_run + +!> \section arg_table_rrtmgp_lw_main_run Argument Table !! \htmlinclude rrtmgp_lw_main_run.html !! -!> \ingroup rrtmgp_lw_main -!! -!! \brief -!! -!! \section rrtmgp_lw_main_run -!> @{ - ! ###################################################################################### subroutine rrtmgp_lw_main_run(doLWrad, doLWclrsky, top_at_1, doGP_lwscat, & use_LW_jacobian, doGP_sgs_cnv, doGP_sgs_pbl, nCol, nLay, nGases,rrtmgp_phys_blksz,& nGauss_angles, icseed_lw, iovr, iovr_convcld, iovr_max, iovr_maxrand, iovr_rand, & @@ -109,83 +95,83 @@ subroutine rrtmgp_lw_main_run(doLWrad, doLWclrsky, top_at_1, doGP_lwscat, ! Inputs logical, intent(in) :: & - doLWrad, & ! Flag to perform longwave calculation - doLWclrsky, & ! Flag to compute clear-sky fluxes - top_at_1, & ! Flag for vertical ordering convention - use_LW_jacobian, & ! Flag to compute Jacobian of longwave surface flux - doGP_sgs_pbl, & ! Flag to include sgs PBL clouds - doGP_sgs_cnv, & ! Flag to include sgs convective clouds - doGP_lwscat ! Flag to include scattering in clouds + doLWrad, & !< Flag to perform longwave calculation + doLWclrsky, & !< Flag to compute clear-sky fluxes + top_at_1, & !< Flag for vertical ordering convention + use_LW_jacobian, & !< Flag to compute Jacobian of longwave surface flux + doGP_sgs_pbl, & !< Flag to include sgs PBL clouds + doGP_sgs_cnv, & !< Flag to include sgs convective clouds + doGP_lwscat !< Flag to include scattering in clouds integer,intent(in) :: & - nCol, & ! Number of horizontal points - nLay, & ! Number of vertical grid points. - nGases, & ! Number of active gases - rrtmgp_phys_blksz, & ! Number of horizontal points to process at once. - nGauss_angles, & ! Number of gaussian quadrature angles used - iovr, & ! Choice of cloud-overlap method - iovr_convcld, & ! Choice of convective cloud-overlap - iovr_max, & ! Flag for maximum cloud overlap method - iovr_maxrand, & ! Flag for maximum-random cloud overlap method - iovr_rand, & ! Flag for random cloud overlap method - iovr_dcorr, & ! Flag for decorrelation-length cloud overlap method - iovr_exp, & ! Flag for exponential cloud overlap method - iovr_exprand, & ! Flag for exponential-random cloud overlap method - isubc_lw ! Flag for cloud-seeding (rng) for cloud-sampling + nCol, & !< Number of horizontal points + nLay, & !< Number of vertical grid points. + nGases, & !< Number of active gases + rrtmgp_phys_blksz, & !< Number of horizontal points to process at once. + nGauss_angles, & !< Number of gaussian quadrature angles used + iovr, & !< Choice of cloud-overlap method + iovr_convcld, & !< Choice of convective cloud-overlap + iovr_max, & !< Flag for maximum cloud overlap method + iovr_maxrand, & !< Flag for maximum-random cloud overlap method + iovr_rand, & !< Flag for random cloud overlap method + iovr_dcorr, & !< Flag for decorrelation-length cloud overlap method + iovr_exp, & !< Flag for exponential cloud overlap method + iovr_exprand, & !< Flag for exponential-random cloud overlap method + isubc_lw !< Flag for cloud-seeding (rng) for cloud-sampling integer,intent(in),dimension(:) :: & - icseed_lw ! Seed for random number generation for longwave radiation + icseed_lw !< Seed for random number generation for longwave radiation real(kind_phys), dimension(:), intent(in) :: & - semis, & ! Surface-emissivity (1) - tsfg ! Skin temperature (K) + semis, & !< Surface-emissivity (1) + tsfg !< Skin temperature (K) real(kind_phys), dimension(:,:), intent(in) :: & - p_lay, & ! Pressure @ model layer-centers (Pa) - t_lay, & ! Temperature (K) - p_lev, & ! Pressure @ model layer-interfaces (Pa) - t_lev, & ! Temperature @ model levels (K) - vmr_o2, & ! Molar-mixing ratio oxygen - vmr_h2o, & ! Molar-mixing ratio water vapor - vmr_o3, & ! Molar-mixing ratio ozone - vmr_ch4, & ! Molar-mixing ratio methane - vmr_n2o, & ! Molar-mixing ratio nitrous oxide - vmr_co2, & ! Molar-mixing ratio carbon dioxide - cld_frac, & ! Cloud-fraction for stratiform clouds - cld_lwp, & ! Water path for stratiform liquid cloud-particles - cld_reliq, & ! Effective radius for stratiform liquid cloud-particles - cld_iwp, & ! Water path for stratiform ice cloud-particles - cld_reice, & ! Effective radius for stratiform ice cloud-particles - cld_swp, & ! Water path for snow hydrometeors - cld_resnow, & ! Effective radius for snow hydrometeors - cld_rwp, & ! Water path for rain hydrometeors - cld_rerain, & ! Effective radius for rain hydrometeors - precip_frac, & ! Precipitation fraction (not active, currently precipitation optics uses cloud-fraction) - cld_cnv_lwp, & ! Water path for convective liquid cloud-particles - cld_cnv_reliq, & ! Effective radius for convective liquid cloud-particles - cld_cnv_iwp, & ! Water path for convective ice cloud-particles - cld_cnv_reice, & ! Effective radius for convective ice cloud-particles - cld_pbl_lwp, & ! Water path for PBL liquid cloud-particles - cld_pbl_reliq, & ! Effective radius for PBL liquid cloud-particles - cld_pbl_iwp, & ! Water path for PBL ice cloud-particles - cld_pbl_reice, & ! Effective radius for PBL ice cloud-particles - cloud_overlap_param ! Cloud overlap parameter + p_lay, & !< Pressure @ model layer-centers (Pa) + t_lay, & !< Temperature (K) + p_lev, & !< Pressure @ model layer-interfaces (Pa) + t_lev, & !< Temperature @ model levels (K) + vmr_o2, & !< Molar-mixing ratio oxygen + vmr_h2o, & !< Molar-mixing ratio water vapor + vmr_o3, & !< Molar-mixing ratio ozone + vmr_ch4, & !< Molar-mixing ratio methane + vmr_n2o, & !< Molar-mixing ratio nitrous oxide + vmr_co2, & !< Molar-mixing ratio carbon dioxide + cld_frac, & !< Cloud-fraction for stratiform clouds + cld_lwp, & !< Water path for stratiform liquid cloud-particles + cld_reliq, & !< Effective radius for stratiform liquid cloud-particles + cld_iwp, & !< Water path for stratiform ice cloud-particles + cld_reice, & !< Effective radius for stratiform ice cloud-particles + cld_swp, & !< Water path for snow hydrometeors + cld_resnow, & !< Effective radius for snow hydrometeors + cld_rwp, & !< Water path for rain hydrometeors + cld_rerain, & !< Effective radius for rain hydrometeors + precip_frac, & !< Precipitation fraction (not active, currently precipitation optics uses cloud-fraction) + cld_cnv_lwp, & !< Water path for convective liquid cloud-particles + cld_cnv_reliq, & !< Effective radius for convective liquid cloud-particles + cld_cnv_iwp, & !< Water path for convective ice cloud-particles + cld_cnv_reice, & !< Effective radius for convective ice cloud-particles + cld_pbl_lwp, & !< Water path for PBL liquid cloud-particles + cld_pbl_reliq, & !< Effective radius for PBL liquid cloud-particles + cld_pbl_iwp, & !< Water path for PBL ice cloud-particles + cld_pbl_reice, & !< Effective radius for PBL ice cloud-particles + cloud_overlap_param !< Cloud overlap parameter real(kind_phys), dimension(:,:,:), intent(in) :: & - aerlw_tau, & ! Aerosol optical depth - aerlw_ssa, & ! Aerosol single scattering albedo - aerlw_g ! Aerosol asymmetry paramter + aerlw_tau, & !< Aerosol optical depth + aerlw_ssa, & !< Aerosol single scattering albedo + aerlw_g !< Aerosol asymmetry paramter character(len=*), dimension(:), intent(in) :: & - active_gases_array ! List of active gases from namelist as array + active_gases_array !< List of active gases from namelist as array ! Outputs real(kind_phys), dimension(:,:), intent(inout) :: & - fluxlwUP_jac, & ! Jacobian of upwelling LW surface radiation (W/m2/K) - fluxlwUP_allsky, & ! All-sky flux (W/m2) - fluxlwDOWN_allsky, & ! All-sky flux (W/m2) - fluxlwUP_clrsky, & ! Clear-sky flux (W/m2) - fluxlwDOWN_clrsky, & ! All-sky flux (W/m2) - fluxlwUP_radtime, & ! Copy of fluxes (Used for coupling) - fluxlwDOWN_radtime ! + fluxlwUP_jac, & !< Jacobian of upwelling LW surface radiation (W/m2/K) + fluxlwUP_allsky, & !< All-sky flux (W/m2) + fluxlwDOWN_allsky, & !< All-sky flux (W/m2) + fluxlwUP_clrsky, & !< Clear-sky flux (W/m2) + fluxlwDOWN_clrsky, & !< All-sky flux (W/m2) + fluxlwUP_radtime, & !< Copy of fluxes (Used for coupling) + fluxlwDOWN_radtime !< character(len=*), intent(out) :: & - errmsg ! CCPP error message + errmsg !< CCPP error message integer, intent(out) :: & - errflg ! CCPP error flag + errflg !< CCPP error flag ! Local variables type(ty_fluxes_byband) :: flux_allsky, flux_clrsky @@ -605,5 +591,4 @@ subroutine rrtmgp_lw_main_run(doLWrad, doLWclrsky, top_at_1, doGP_lwscat, enddo end subroutine rrtmgp_lw_main_run -!> @} end module rrtmgp_lw_main diff --git a/physics/Radiation/RRTMGP/rrtmgp_sw_gas_optics.F90 b/physics/Radiation/RRTMGP/rrtmgp_sw_gas_optics.F90 index 5713d188d..3229d2f16 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_sw_gas_optics.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_sw_gas_optics.F90 @@ -1,10 +1,7 @@ !> \file rrtmgp_sw_gas_optics.F90 -!! -!> \defgroup rrtmgp_sw_gas_optics rrtmgp_sw_gas_optics.F90 -!! -!! \brief This module contains a routine to initialize the k-distribution data used +!! This module contains a routine to initialize the k-distribution data used !! by the RRTMGP shortwave radiation scheme. -!! + module rrtmgp_sw_gas_optics use machine, only: kind_phys use mo_rte_kind, only: wl @@ -79,43 +76,34 @@ module rrtmgp_sw_gas_optics scale_by_complement_upperSW ! Absorption is scaled by concentration of scaling_gas (F) or its complement (T) contains - ! ###################################################################################### -!>\defgroup rrtmgp_sw_gas_optics_mod GFS RRTMGP-SW Gas Optics Module -!> @{ -!! \section arg_table_rrtmgp_sw_gas_optics_init +!> \section arg_table_rrtmgp_sw_gas_optics_init Argument Table !! \htmlinclude rrtmgp_sw_gas_optics.html !! -!> \ingroup rrtmgp_sw_gas_optics -!! !! RRTMGP relies heavility on derived-data-types, which contain type-bound procedures !! that are referenced frequently throughout the RRTMGP shortwave scheme. The data needed !! for the correlated k-distribution is also contained within this type. Within this module, !! the full k-distribution data is read in, reduced by the "active gases" provided, and !! loaded into the RRTMGP DDT, ty_gas_optics_rrtmgp. -!! -!! \section rrtmgp_sw_gas_optics_init -!> @{ - ! ###################################################################################### subroutine rrtmgp_sw_gas_optics_init(rrtmgp_root_dir, rrtmgp_sw_file_gas, & active_gases_array, mpicomm, mpirank, mpiroot, errmsg, errflg) ! Inputs character(len=128),intent(in) :: & - rrtmgp_root_dir, & ! RTE-RRTMGP root directory - rrtmgp_sw_file_gas ! RRTMGP file containing K-distribution data + rrtmgp_root_dir, & !< RTE-RRTMGP root directory + rrtmgp_sw_file_gas !< RRTMGP file containing K-distribution data character(len=*), dimension(:), intent(in) :: & - active_gases_array ! List of active gases from namelist as array + active_gases_array !< List of active gases from namelist as array type(MPI_Comm),intent(in) :: & - mpicomm ! MPI communicator + mpicomm !< MPI communicator integer,intent(in) :: & - mpirank, & ! Current MPI rank - mpiroot ! Master MPI rank + mpirank, & !< Current MPI rank + mpiroot !< Master MPI rank ! Outputs character(len=*), intent(out) :: & - errmsg ! CCPP error message + errmsg !< CCPP error message integer, intent(out) :: & - errflg ! CCPP error code + errflg !< CCPP error code ! Local variables integer :: status, ncid, dimid, varID, mpierr, iChar @@ -497,6 +485,5 @@ subroutine rrtmgp_sw_gas_optics_init(rrtmgp_root_dir, rrtmgp_sw_file_gas, sb_defaultSW, rayl_lowerSW, rayl_upperSW)) end subroutine rrtmgp_sw_gas_optics_init -!> @} end module rrtmgp_sw_gas_optics diff --git a/physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 b/physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 index ab379cc9e..77691d836 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 @@ -99,95 +99,95 @@ subroutine rrtmgp_sw_main_run(doSWrad, doSWclrsky, top_at_1, doGP_sgs_cnv, doGP_ ! Inputs logical, intent(in) :: & - doSWrad, & ! Flag to perform shortwave calculation - doSWclrsky, & ! Flag to compute clear-sky fluxes - top_at_1, & ! Flag for vertical ordering convention - doGP_sgs_pbl, & ! Flag to include sgs PBL clouds - doGP_sgs_cnv ! Flag to include sgs convective clouds + doSWrad, & !< Flag to perform shortwave calculation + doSWclrsky, & !< Flag to compute clear-sky fluxes + top_at_1, & !< Flag for vertical ordering convention + doGP_sgs_pbl, & !< Flag to include sgs PBL clouds + doGP_sgs_cnv !< Flag to include sgs convective clouds integer,intent(in) :: & - nCol, & ! Number of horizontal points - nDay, & ! Number of daytime points - nLay, & ! Number of vertical grid points. - nGases, & ! Number of active gases - rrtmgp_phys_blksz, & ! Number of horizontal points to process at once. - iovr, & ! Choice of cloud-overlap method - iovr_convcld, & ! Choice of convective cloud-overlap - iovr_max, & ! Flag for maximum cloud overlap method - iovr_maxrand, & ! Flag for maximum-random cloud overlap method - iovr_rand, & ! Flag for random cloud overlap method - iovr_dcorr, & ! Flag for decorrelation-length cloud overlap method - iovr_exp, & ! Flag for exponential cloud overlap method - iovr_exprand, & ! Flag for exponential-random cloud overlap method - isubc_sw, & ! + nCol, & !< Number of horizontal points + nDay, & !< Number of daytime points + nLay, & !< Number of vertical grid points. + nGases, & !< Number of active gases + rrtmgp_phys_blksz, & !< Number of horizontal points to process at once. + iovr, & !< Choice of cloud-overlap method + iovr_convcld, & !< Choice of convective cloud-overlap + iovr_max, & !< Flag for maximum cloud overlap method + iovr_maxrand, & !< Flag for maximum-random cloud overlap method + iovr_rand, & !< Flag for random cloud overlap method + iovr_dcorr, & !< Flag for decorrelation-length cloud overlap method + iovr_exp, & !< Flag for exponential cloud overlap method + iovr_exprand, & !< Flag for exponential-random cloud overlap method + isubc_sw, & !< iSFC integer,intent(in),dimension(:) :: & - idx, & ! Index array for daytime points - icseed_sw ! Seed for random number generation for shortwave radiation + idx, & !< Index array for daytime points + icseed_sw !< Seed for random number generation for shortwave radiation real(kind_phys), dimension(:), intent(in) :: & - sfc_alb_nir_dir, & ! Surface albedo (direct) - sfc_alb_nir_dif, & ! Surface albedo (diffuse) - sfc_alb_uvvis_dir, & ! Surface albedo (direct) - sfc_alb_uvvis_dif, & ! Surface albedo (diffuse) - coszen ! Cosize of SZA + sfc_alb_nir_dir, & !< Surface albedo (direct) + sfc_alb_nir_dif, & !< Surface albedo (diffuse) + sfc_alb_uvvis_dir, & !< Surface albedo (direct) + sfc_alb_uvvis_dif, & !< Surface albedo (diffuse) + coszen !< Cosize of SZA real(kind_phys), dimension(:,:), intent(in) :: & - p_lay, & ! Pressure @ model layer-centers (Pa) - t_lay, & ! Temperature (K) - p_lev, & ! Pressure @ model layer-interfaces (Pa) - t_lev, & ! Temperature @ model levels (K) - vmr_o2, & ! Molar-mixing ratio oxygen - vmr_h2o, & ! Molar-mixing ratio water vapor - vmr_o3, & ! Molar-mixing ratio ozone - vmr_ch4, & ! Molar-mixing ratio methane - vmr_n2o, & ! Molar-mixing ratio nitrous oxide - vmr_co2, & ! Molar-mixing ratio carbon dioxide - cld_frac, & ! Cloud-fraction for stratiform clouds - cld_lwp, & ! Water path for stratiform liquid cloud-particles - cld_reliq, & ! Effective radius for stratiform liquid cloud-particles - cld_iwp, & ! Water path for stratiform ice cloud-particles - cld_reice, & ! Effective radius for stratiform ice cloud-particles - cld_swp, & ! Water path for snow hydrometeors - cld_resnow, & ! Effective radius for snow hydrometeors - cld_rwp, & ! Water path for rain hydrometeors - cld_rerain, & ! Effective radius for rain hydrometeors - precip_frac, & ! Precipitation fraction - cld_cnv_lwp, & ! Water path for convective liquid cloud-particles - cld_cnv_reliq, & ! Effective radius for convective liquid cloud-particles - cld_cnv_iwp, & ! Water path for convective ice cloud-particles - cld_cnv_reice, & ! Effective radius for convective ice cloud-particles - cld_pbl_lwp, & ! Water path for PBL liquid cloud-particles - cld_pbl_reliq, & ! Effective radius for PBL liquid cloud-particles - cld_pbl_iwp, & ! Water path for PBL ice cloud-particles - cld_pbl_reice, & ! Effective radius for PBL ice cloud-particles - cloud_overlap_param ! + p_lay, & !< Pressure @ model layer-centers (Pa) + t_lay, & !< Temperature (K) + p_lev, & !< Pressure @ model layer-interfaces (Pa) + t_lev, & !< Temperature @ model levels (K) + vmr_o2, & !< Molar-mixing ratio oxygen + vmr_h2o, & !< Molar-mixing ratio water vapor + vmr_o3, & !< Molar-mixing ratio ozone + vmr_ch4, & !< Molar-mixing ratio methane + vmr_n2o, & !< Molar-mixing ratio nitrous oxide + vmr_co2, & !< Molar-mixing ratio carbon dioxide + cld_frac, & !< Cloud-fraction for stratiform clouds + cld_lwp, & !< Water path for stratiform liquid cloud-particles + cld_reliq, & !< Effective radius for stratiform liquid cloud-particles + cld_iwp, & !< Water path for stratiform ice cloud-particles + cld_reice, & !< Effective radius for stratiform ice cloud-particles + cld_swp, & !< Water path for snow hydrometeors + cld_resnow, & !< Effective radius for snow hydrometeors + cld_rwp, & !< Water path for rain hydrometeors + cld_rerain, & !< Effective radius for rain hydrometeors + precip_frac, & !< Precipitation fraction + cld_cnv_lwp, & !< Water path for convective liquid cloud-particles + cld_cnv_reliq, & !< Effective radius for convective liquid cloud-particles + cld_cnv_iwp, & !< Water path for convective ice cloud-particles + cld_cnv_reice, & !< Effective radius for convective ice cloud-particles + cld_pbl_lwp, & !< Water path for PBL liquid cloud-particles + cld_pbl_reliq, & !< Effective radius for PBL liquid cloud-particles + cld_pbl_iwp, & !< Water path for PBL ice cloud-particles + cld_pbl_reice, & !< Effective radius for PBL ice cloud-particles + cloud_overlap_param !< real(kind_phys), dimension(:,:,:), intent(in) :: & - aersw_tau, & ! Aerosol optical depth - aersw_ssa, & ! Aerosol single scattering albedo - aersw_g ! Aerosol asymmetry paramter + aersw_tau, & !< Aerosol optical depth + aersw_ssa, & !< Aerosol single scattering albedo + aersw_g !< Aerosol asymmetry paramter character(len=*), dimension(:), intent(in) :: & - active_gases_array ! List of active gases from namelist as array + active_gases_array !< List of active gases from namelist as array real(kind_phys), intent(in) :: & - solcon ! Solar constant + solcon !< Solar constant ! Outputs character(len=*), intent(out) :: & - errmsg ! CCPP error message + errmsg !< CCPP error message integer, intent(out) :: & - errflg ! CCPP error flag + errflg !< CCPP error flag real(kind_phys), dimension(:,:), intent(inout) :: & - cldtausw ! Approx 10.mu band layer cloud optical depth + cldtausw !< Approx 10.mu band layer cloud optical depth real(kind_phys), dimension(:,:), intent(inout) :: & - fluxswUP_allsky, & ! RRTMGP upward all-sky flux profiles (W/m2) - fluxswDOWN_allsky, & ! RRTMGP downward all-sky flux profiles (W/m2) - fluxswUP_clrsky, & ! RRTMGP upward clear-sky flux profiles (W/m2) - fluxswDOWN_clrsky ! RRTMGP downward clear-sky flux profiles (W/m2) + fluxswUP_allsky, & !< RRTMGP upward all-sky flux profiles (W/m2) + fluxswDOWN_allsky, & !< RRTMGP downward all-sky flux profiles (W/m2) + fluxswUP_clrsky, & !< RRTMGP upward clear-sky flux profiles (W/m2) + fluxswDOWN_clrsky !< RRTMGP downward clear-sky flux profiles (W/m2) type(cmpfsw_type), dimension(:), intent(inout) :: & - scmpsw ! 2D surface fluxes, components: - ! uvbfc - total sky downward uv-b flux (W/m2) - ! uvbf0 - clear sky downward uv-b flux (W/m2) - ! nirbm - downward nir direct beam flux (W/m2) - ! nirdf - downward nir diffused flux (W/m2) - ! visbm - downward uv+vis direct beam flux (W/m2) - ! visdf - downward uv+vis diffused flux (W/m2) + scmpsw !< 2D surface fluxes, components: + !< uvbfc - total sky downward uv-b flux (W/m2) + !< uvbf0 - clear sky downward uv-b flux (W/m2) + !< nirbm - downward nir direct beam flux (W/m2) + !< nirdf - downward nir diffused flux (W/m2) + !< visbm - downward uv+vis direct beam flux (W/m2) + !< visdf - downward uv+vis diffused flux (W/m2) ! Local variables type(cmpfsw_type), dimension(rrtmgp_phys_blksz) :: scmpsw_clrsky, scmpsw_allsky diff --git a/physics/docs/_doxygen/custom.css b/physics/docs/_doxygen/custom.css new file mode 100644 index 000000000..ad6f35a52 --- /dev/null +++ b/physics/docs/_doxygen/custom.css @@ -0,0 +1,57 @@ +.github-corner svg { + fill: var(--primary-light-color); + color: var(--page-background-color); + width: 72px; + height: 72px; +} + +@media screen and (max-width: 767px) { + .github-corner svg { + width: 50px; + height: 50px; + } + #projectnumber { + margin-right: 22px; + } +} + +.alter-theme-button { + display: inline-block; + cursor: pointer; + background: var(--primary-color); + color: var(--page-background-color) !important; + border-radius: var(--border-radius-medium); + padding: var(--spacing-small) var(--spacing-medium); + text-decoration: none; +} + +.alter-theme-button:hover { + background: var(--primary-dark-color); +} + +html.dark-mode .darkmode_inverted_image img, /* < doxygen 1.9.3 */ +html.dark-mode .darkmode_inverted_image object[type="image/svg+xml"] /* doxygen 1.9.3 */ { + filter: brightness(89%) hue-rotate(180deg) invert(); +} + +.bordered_image { + border-radius: var(--border-radius-small); + border: 1px solid var(--separator-color); + display: inline-block; + overflow: hidden; +} + +html.dark-mode .bordered_image img, /* < doxygen 1.9.3 */ +html.dark-mode .bordered_image object[type="image/svg+xml"] /* doxygen 1.9.3 */ { + border-radius: var(--border-radius-small); +} + +.title_screenshot { + filter: drop-shadow(0px 3px 10px rgba(0,0,0,0.22)); + max-width: 500px; + margin: var(--spacing-large) 0; +} + +.title_screenshot .caption { + display: none; +} diff --git a/physics/docs/_doxygen/doxygen-awesome.css b/physics/docs/_doxygen/doxygen-awesome.css index 217fdedfc..5643749c2 100644 --- a/physics/docs/_doxygen/doxygen-awesome.css +++ b/physics/docs/_doxygen/doxygen-awesome.css @@ -894,7 +894,7 @@ div.contents p, div.contents li { } div.contents div.dyncontent { - margin: var(--spacing-medium) 0; + margin: var(--spacing-medium) 0; overflow-x: scroll; } @media (prefers-color-scheme: dark) { diff --git a/physics/docs/_doxygen/header.html b/physics/docs/_doxygen/header.html index 2e72051ea..8896efc85 100644 --- a/physics/docs/_doxygen/header.html +++ b/physics/docs/_doxygen/header.html @@ -1,22 +1,38 @@ - - + + + + + + + + + + $projectname: $title $title + + + + + + - $treeview $search $mathjax @@ -24,6 +40,13 @@ $extrastylesheet + + + + + +
    diff --git a/physics/docs/ccpp_doxyfile b/physics/docs/ccpp_doxyfile index b1f079541..2dc1ac4de 100644 --- a/physics/docs/ccpp_doxyfile +++ b/physics/docs/ccpp_doxyfile @@ -42,7 +42,7 @@ DOXYFILE_ENCODING = UTF-8 # title of most generated pages and in a few other places. # The default value is: My Project. -PROJECT_NAME = "CCPP SciDoc" +PROJECT_NAME = "CCPP SciDoc v7.0.0" # The PROJECT_NUMBER tag can be used to enter a project or revision number. This # could be handy for archiving the generated documentation or if some version @@ -168,7 +168,7 @@ INLINE_INHERITED_MEMB = NO # shortest path that makes the file name unique will be used # The default value is: YES. -FULL_PATH_NAMES = NO +FULL_PATH_NAMES = YES # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. # Stripping is only done if one of the specified strings matches the left-hand @@ -1364,7 +1364,8 @@ HTML_STYLESHEET = HTML_EXTRA_STYLESHEET = _doxygen/doxygen-awesome.css \ _doxygen/doxygen-awesome-sidebar-only.css \ _doxygen/doxygen-awesome-sidebar-only-darkmode-toggle.css \ - _doxygen/doxygen-awesome-ccpp.css + _doxygen/doxygen-awesome-ccpp.css \ + _doxygen/custom.css # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note @@ -1388,7 +1389,7 @@ HTML_EXTRA_FILES = _doxygen/doxygen-awesome-darkmode-toggle.js \ # The default value is: AUTO_LIGHT. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_COLORSTYLE = AUTO_LIGHT +HTML_COLORSTYLE = LIGHT # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen # will adjust the colors in the style sheet and background images according to diff --git a/physics/docs/library.bib b/physics/docs/library.bib index 77f167de8..d622bca48 100644 --- a/physics/docs/library.bib +++ b/physics/docs/library.bib @@ -1,13 +1,62 @@ %% This BibTeX bibliography file was created using BibDesk. %% https://bibdesk.sourceforge.io/ -%% Created for Man Zhang at 2024-06-17 12:34:22 -0600 +%% Created for Man Zhang at 2024-06-24 12:44:05 -0600 %% Saved with string encoding Unicode (UTF-8) +@article{Mansell_2020, + author = {Mansell, Edward R. and Dawson II, Daniel T. and Straka, Jerry M.}, + date-added = {2024-06-24 12:43:58 -0600}, + date-modified = {2024-06-24 12:43:58 -0600}, + doi = {10.1175/jas-d-19-0268.1}, + issn = {1520-0469}, + journal = {Journal of the Atmospheric Sciences}, + month = oct, + number = {10}, + pages = {3361{\^a}€“3385}, + publisher = {American Meteorological Society}, + title = {Bin-Emulating Hail Melting in Three-Moment Bulk Microphysics}, + url = {http://dx.doi.org/10.1175/JAS-D-19-0268.1}, + volume = {77}, + year = {2020}, + bdsk-url-1 = {http://dx.doi.org/10.1175/JAS-D-19-0268.1}} + +@article{tsiringakis_et_al_2017, + abstract = {At present atmospheric models for weather and climate use enhanced turbulent drag under stable conditions, because these empirically provide the necessary momentum drag for accurate forecast of synoptic systems. The enhanced mixing (also known as the `long tail'), introduces drag that cannot be physically justified and degrades the score for near-surface temperature, wind and boundary-layer height, and degrades fog and frost forecasting. This study hypothesizes that the insufficient representation of small-scale orographic gravity wave drag in the stable boundary layer may explain the need for the enhanced drag formulation. Hence, we introduce a new scheme in the Weather Research and Forecasting model that accounts for this drag as a superposition on the turbulent drag induced by a so-called short-tail mixing function. The latter is consistent with boundary-layer observations and large-eddy simulations. We evaluate this scheme, against a short-tail and a long-tail scheme for sixteen eight-day forecasts over the Atlantic Ocean and Europe in winter. The new scheme outperforms the short- and long-tail schemes on sea-level pressure, height of the 500 hPa field, 10 m wind and the cyclonic core pressure. Cyclonic core pressure bias is reduced by approximately 45 to 80\% compared to the short-tail scheme. Sea-level pressure bias is reduced by up to 0.48 hPa (50\%) over the whole domain compared to the short-tail run. The new scheme has even smaller biases than the long-tail scheme, supporting our hypothesis that small-scale gravity wave drag may explain the need for a long-tail function. Near-surface wind bias is reduced by up to 40\% compared to the long-tail and up to 32\% compared to the short-tail scheme, while the 2 m temperature bias is only slightly increased (19\%).}, + author = {Tsiringakis, A. and Steeneveld, G. J. and Holtslag, A. A. M.}, + doi = {https://doi.org/10.1002/qj.3021}, + eprint = {https://rmets.onlinelibrary.wiley.com/doi/pdf/10.1002/qj.3021}, + journal = {Quarterly Journal of the Royal Meteorological Society}, + keywords = {orographic gravity wave drag, stable boundary layer, WRF model, parametrization, meteorology}, + number = {704}, + pages = {1504-1516}, + title = {Small-scale orographic gravity wave drag in stable boundary layers and its impact on synoptic systems and near-surface meteorology}, + url = {https://rmets.onlinelibrary.wiley.com/doi/abs/10.1002/qj.3021}, + volume = {143}, + year = {2017}, + bdsk-url-1 = {https://rmets.onlinelibrary.wiley.com/doi/abs/10.1002/qj.3021}, + bdsk-url-2 = {https://doi.org/10.1002/qj.3021}} + +@article{choi_and_hong_2015, + abstract = {Abstract A subgrid orographic parameterization (SOP) is updated by including the effects of orographic anisotropy and flow-blocking drag (FBD). The impact of the updated SOP on short-range forecasts is investigated using a global atmospheric forecast model applied to a heavy snowfall event over Korea on 4 January 2010. When the SOP is updated, the orographic drag in the lower troposphere noticeably increases owing to the additional FBD over mountainous regions. The enhanced drag directly weakens the excessive wind speed in the low troposphere and indirectly improves the temperature and mass fields over East Asia. In addition, the snowfall overestimation over Korea is improved by the reduced heat fluxes from the surface. The forecast improvements are robust regardless of the horizontal resolution of the model between T126 and T510. The parameterization is statistically evaluated based on the skill of the medium-range forecasts for February 2014. For the medium-range forecasts, the skill improvements of the wind speed and temperature in the low troposphere are observed globally and for East Asia while both positive and negative effects appear indirectly in the middle-upper troposphere. The statistical skill for the precipitation is mostly improved due to the improvements in the synoptic fields. The improvements are also found for seasonal simulation throughout the troposphere and stratosphere during boreal winter.}, + author = {Choi, Hyun-Joo and Hong, Song-You}, + doi = {https://doi.org/10.1002/2015JD024230}, + eprint = {https://agupubs.onlinelibrary.wiley.com/doi/pdf/10.1002/2015JD024230}, + journal = {Journal of Geophysical Research: Atmospheres}, + keywords = {subgrid orographic parameterization, orographic anisotropy, flow-blocking drag, forecast skills, GRIMs}, + number = {24}, + pages = {12445-12457}, + title = {An updated subgrid orographic parameterization for global atmospheric forecast models}, + url = {https://agupubs.onlinelibrary.wiley.com/doi/abs/10.1002/2015JD024230}, + volume = {120}, + year = {2015}, + bdsk-url-1 = {https://agupubs.onlinelibrary.wiley.com/doi/abs/10.1002/2015JD024230}, + bdsk-url-2 = {https://doi.org/10.1002/2015JD024230}} + @article{Liou_1973, author = {Liou, Kuo-Nan}, date-added = {2024-06-17 12:33:23 -0600}, diff --git a/physics/docs/pdftxt/NSSLMICRO.txt b/physics/docs/pdftxt/NSSLMICRO.txt index 44d1f069b..57472a7e7 100644 --- a/physics/docs/pdftxt/NSSLMICRO.txt +++ b/physics/docs/pdftxt/NSSLMICRO.txt @@ -2,7 +2,7 @@ \page NSSLMICRO_page NSSL 2-moment Cloud Microphysics Scheme \section nssl2m_descrp Description -The NSSL 2/3-moment bulk microphysical parameterization scheme that describes form and phase changes among a range of liquid and ice hydrometeors, as described in Mansell et al. (2010) \cite Mansell_etal_2010, Mansell and Ziegler (2013) \cite Mansell_2013, and Mansell et al. (2020) \cite Mansell_etal_2020. The microphysical parameterization predicts the mass mixing ratio and number concentration of cloud droplets, raindrops, cloud ice crystals (columns), snow particles (including large crystals and aggregates), graupel, and (optionally) hail. Optionally, a third moment (reflectivity or 6th moment) of rain, graupel, and hail can be activated. +The NSSL 2/3-moment bulk microphysical parameterization scheme that describes form and phase changes among a range of liquid and ice hydrometeors, as described in Mansell et al. (2010) \cite Mansell_etal_2010, Mansell and Ziegler (2013) \cite Mansell_2013, and Mansell et al. (2020) \cite Mansell_2020. The microphysical parameterization predicts the mass mixing ratio and number concentration of cloud droplets, raindrops, cloud ice crystals (columns), snow particles (including large crystals and aggregates), graupel, and (optionally) hail. Optionally, a third moment (reflectivity or 6th moment) of rain, graupel, and hail can be activated. The graupel and hail particle densities are also calculated by predicting the total particle volume. The graupel category therefore emulates a range of characteristics from high-density frozen drops (includes small hail) to low-density graupel (from rimed ice crystals/snow) in its size and density spectrum. The hail category is designed to simulate larger hail sizes. Hail is only produced from higher-density large graupel. diff --git a/physics/docs/pdftxt/RE7/input_RRFS_v1.nml b/physics/docs/pdftxt/RE7/input_RRFS_v1.nml index f15c4e8ff..e80c532fa 100644 --- a/physics/docs/pdftxt/RE7/input_RRFS_v1.nml +++ b/physics/docs/pdftxt/RE7/input_RRFS_v1.nml @@ -1,40 +1,40 @@ !>[GFS_PHYSICS_NML] &gfs_physics_nml - addsmoke_flag = 1 - aero_dir_fdb = .true. - aero_ind_fdb = .false. - bl_mynn_edmf = 1 - bl_mynn_edmf_mom = 1 + addsmoke_flag = 1 + aero_dir_fdb = .true. + aero_ind_fdb = .false. + bl_mynn_edmf = 1 + bl_mynn_edmf_mom = 1 bl_mynn_tkeadvect = .true. - cal_pre = .false. - cdmbgwd = 3.5, 1.0 - clm_debug_print = .false. - clm_lake_debug = .false. - cnvcld = .false. - cnvgwd = .false. + cal_pre = .false. + cdmbgwd = 3.5, 1.0 + clm_debug_print = .false. + clm_lake_debug = .false. + cnvcld = .false. + cnvgwd = .false. coarsepm_settling = 1 - cplflx = .false. - diag_log = .true. - debug = .false. - do_deep = .true. + cplflx = .false. + diag_log = .true. + debug = .false. + do_deep = .true. do_gsl_drag_ls_bl = .true. - do_gsl_drag_ss = .true. - do_gsl_drag_tofd = .true. - do_mynnedmf = .true. - do_mynnsfclay = .true. - do_plumerise = .true. + do_gsl_drag_ss = .true. + do_gsl_drag_tofd = .true. + do_mynnedmf = .true. + do_mynnsfclay = .true. + do_plumerise = .true. do_smoke_transport = .true. - do_tofd = .false. - do_ugwp = .false. - do_ugwp_v0 = .false. + do_tofd = .false. + do_ugwp = .false. + do_ugwp_v0 = .false. do_ugwp_v0_nst_only = .false. do_ugwp_v0_orog_only = .false. - drydep_opt = 1 - dspheat = .true. - dt_inner = 36 - dust_alpha = 10.0 + drydep_opt = 1 + dspheat = .true. + dt_inner = 36 + dust_alpha = 10.0 dust_drylimit_factor = 0.5 - dust_gamma = 1.3 + dust_gamma = 1.3 dust_moist_correction = 2.0 dust_opt = 1 ebb_dcycle = 2 diff --git a/physics/docs/pdftxt/suite_input.nml.txt b/physics/docs/pdftxt/suite_input.nml.txt index b2ad620fc..23558a468 100644 --- a/physics/docs/pdftxt/suite_input.nml.txt +++ b/physics/docs/pdftxt/suite_input.nml.txt @@ -45,6 +45,7 @@ show some variables in the namelist that must match the SDF. cpl_imp_dbg use_cice_alb rrfs_sd +rrfs_smoke_debug lsidea @@ -552,6 +553,7 @@ show some variables in the namelist that must match the SDF. 1 lsoil lsm_noah number of soil layers 4 +lsoil_lsm rdlai lsm_ruc flag to read leaf area index from input files .false. ivegsrc lsm_noah, lsm_ruc, \ref noahmpdrv, sfc_diff flag for vegetation type dataset choice: \n
      @@ -703,6 +705,8 @@ show some variables in the namelist that must match the SDF. lakedepth_threshold \ref clm_lake lakedepth must be greater than this value to enable a lake model 1.0 lakefrac_threshold \ref clm_lake lakefrac must be greater than this value to enable a lake model 0.0 use_lake2m \ref clm_lake use 2m T&Q from CLM lake model .false. +clm_debug_print +clm_lake_debug nstf_name(5) sfc_nst NSST related paramters:\n
      • nstf_name(1): 0=NSST off, 1= NSST on but uncoupled, 2= NSST on and coupled @@ -748,23 +752,17 @@ show some variables in the namelist that must match the SDF.
      • .false.: use reference pressure of 1000 hPa to define potential temperature. This is the alternative method proposed by GSL
      .false. -h0facu -h0facs -fscav_aero -lightning_threat -do_ccpp_suite_sim -fh_dfi_radar -radar_tten_limits -do_cap_suppress -\b RRFS-SD \b parameters -dust_drylimit_factor -dust_moist_correction -dust_moist_opt -dust_alpha -dust_gamma -wetdep_ls_alpha -ebb_dcycle -seas_opt +h0facu GFS_surface_composites_post, GFS_surface_generic_post canopy heat storage factor for sensible heat flux in unstable surface layer 0.25 +h0facs GFS_surface_composites_post, GFS_surface_generic_post canopy heat storage factor for sensible heat flux in stable surface layer 1.0 +fscav_aero cs_conv,cs_conv_pre,samfshalcnv,samfdeepcnv, samfaerosols,cu_gf_driver aerosol scavenging factors +lightning_threat maximum_hourly_diagnostics report lightning threat indices .false. +do_ccpp_suite_sim GFS_ccpp_suite_sim_pre, ccpp_suite_simulator CCPP suite simulator .false. +fh_dfi_radar begin&end of four timespans over which radar_tten is applied -2e10 +radar_tten_limits(2) radar_tten values outside this range (min,max) are discarded +do_cap_suppress set .true. to turn on convection suppression in Grell-Freitas scheme during limited intervals when fh_dfi_radar is enabled .true. +iccn +kice number of layers in ice 2 +lrefres flag for radar reflectivity in restart file diff --git a/physics/hooks/machine.F b/physics/hooks/machine.F index 0269db53c..d6f36305b 100644 --- a/physics/hooks/machine.F +++ b/physics/hooks/machine.F @@ -1,8 +1,6 @@ - module machine - -!! \section arg_table_machine -!! \htmlinclude machine.html +!>\file machine.F !! + module machine implicit none From 9b53b71a4ad790068843479d54b0340dcfee674c Mon Sep 17 00:00:00 2001 From: Man Zhang Date: Mon, 24 Jun 2024 17:00:54 -0600 Subject: [PATCH 07/29] code cleanup --- physics/GWD/ugwpv1_gsldrag.F90 | 3 - .../GFS_ccpp_suite_sim_pre.F90 | 7 +- .../UFS_SCM_NEPTUNE/GFS_cloud_diagnostics.F90 | 2 +- .../UFS_SCM_NEPTUNE/GFS_physics_post.F90 | 51 +++---- .../UFS_SCM_NEPTUNE/GFS_rad_time_vary.fv3.F90 | 6 +- .../UFS_SCM_NEPTUNE/GFS_rad_time_vary.scm.F90 | 6 +- .../UFS_SCM_NEPTUNE/GFS_radiation_surface.F90 | 4 - .../UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 | 39 ++--- .../UFS_SCM_NEPTUNE/GFS_rrtmgp_post.F90 | 18 +-- .../UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.F90 | 139 ++++++++---------- .../UFS_SCM_NEPTUNE/GFS_rrtmgp_setup.F90 | 16 +- .../GFS_suite_stateout_update.F90 | 5 +- .../GFS_surface_loop_control_part1.F90 | 10 +- .../UFS_SCM_NEPTUNE/scm_sfc_flux_spec.F90 | 3 +- .../Radiation/RRTMG/rrtmg_sw_cloud_optics.F90 | 3 + .../RRTMGP/rrtmgp_aerosol_optics.F90 | 73 +++++---- .../RRTMGP/rrtmgp_lw_cloud_optics.F90 | 88 +++++------ .../Radiation/RRTMGP/rrtmgp_lw_gas_optics.F90 | 90 ++++++------ .../RRTMGP/rrtmgp_sw_cloud_optics.F90 | 83 +++++------ .../Radiation/RRTMGP/rrtmgp_sw_gas_optics.F90 | 78 +++++----- physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 | 10 +- physics/docs/ccpp_doxyfile | 5 +- physics/docs/pdftxt/GFS_RRTMGP.txt | 4 - physics/docs/pdftxt/suite_input.nml.txt | 84 +++++------ physics/photochem/module_ozphys.F90 | 6 - 25 files changed, 354 insertions(+), 479 deletions(-) diff --git a/physics/GWD/ugwpv1_gsldrag.F90 b/physics/GWD/ugwpv1_gsldrag.F90 index 9303e0221..992a0854d 100644 --- a/physics/GWD/ugwpv1_gsldrag.F90 +++ b/physics/GWD/ugwpv1_gsldrag.F90 @@ -62,9 +62,6 @@ module ugwpv1_gsldrag !>@brief The subroutine initializes the unified UGWP !> \section arg_table_ugwpv1_gsldrag_init Argument Table !! \htmlinclude ugwpv1_gsldrag_init.html -!! -! ----------------------------------------------------------------------- -! subroutine ugwpv1_gsldrag_init ( & me, master, nlunit, input_nml_file, logunit, & fn_nml2, jdat, lonr, latr, levs, ak, bk, dtp, & diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_ccpp_suite_sim_pre.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_ccpp_suite_sim_pre.F90 index 2c276ca8c..96a5993a7 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_ccpp_suite_sim_pre.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_ccpp_suite_sim_pre.F90 @@ -20,12 +20,7 @@ module GFS_ccpp_suite_sim_pre public GFS_ccpp_suite_sim_pre_run, load_ccpp_suite_sim contains - ! ###################################################################################### - ! - ! SUBROUTINE GFS_ccpp_suite_sim_pre_run - ! - ! ###################################################################################### -!> \section arg_table_GFS_ccpp_suite_sim_pre_run +!> \section arg_table_GFS_ccpp_suite_sim_pre_run Argument Table !! \htmlinclude GFS_ccpp_suite_sim_pre_run.html !! subroutine GFS_ccpp_suite_sim_pre_run(do_ccpp_suite_sim, dtend, ntqv, dtidx, dtp, & diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_cloud_diagnostics.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_cloud_diagnostics.F90 index 86dc2b518..75df87b2e 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_cloud_diagnostics.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_cloud_diagnostics.F90 @@ -28,7 +28,7 @@ module GFS_cloud_diagnostics !! This was bundled together with the prognostic cloud modules within the RRTMG implementation. !! For the RRTMGP implementation we propose to keep these diagnostics independent. !> @{ -!> \section arg_table_GFS_cloud_diagnostics_run +!> \section arg_table_GFS_cloud_diagnostics_run Argument Table !! \htmlinclude GFS_cloud_diagnostics_run.html !! subroutine GFS_cloud_diagnostics_run(nCol, nLev, iovr, iovr_rand, iovr_maxrand, & diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_physics_post.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_physics_post.F90 index fe5409353..cfe16be53 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_physics_post.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_physics_post.F90 @@ -1,4 +1,3 @@ -! ########################################################################################### !> \file GFS_physics_post.F90 !! !! This module contains GFS specific calculations (e.g. diagnostics) and suite specific @@ -13,10 +12,7 @@ module GFS_physics_post public GFS_physics_post_run contains -! ########################################################################################### -! SUBROUTINE GFS_physics_post_run -! ########################################################################################### -!! \section arg_table_GFS_physics_post_run Argument Table +!> \section arg_table_GFS_physics_post_run Argument Table !! \htmlinclude GFS_physics_post_run.html !! subroutine GFS_physics_post_run(nCol, nLev, ntoz, ntracp100, nprocess, nprocess_summed, & @@ -26,39 +22,39 @@ subroutine GFS_physics_post_run(nCol, nLev, ntoz, ntracp100, nprocess, nprocess_ ! Inputs integer, intent(in) :: & - nCol, & ! Horizontal dimension - nLev, & ! Number of vertical layers - ntoz, & ! Index for ozone mixing ratio - ntracp100, & ! Number of tracers plus 100 - nprocess, & ! Number of processes that cause changes in state variables - nprocess_summed,& ! Number of causes in dtidx per tracer summed for total physics tendency - ip_physics, & ! Index for process in diagnostic tendency output - ip_photochem, & ! Index for process in diagnostic tendency output - ip_prod_loss, & ! Index for process in diagnostic tendency output - ip_ozmix, & ! Index for process in diagnostic tendency output - ip_temp, & ! Index for process in diagnostic tendency output - ip_overhead_ozone ! Index for process in diagnostic tendency output + nCol, & !< Horizontal dimension + nLev, & !< Number of vertical layers + ntoz, & !< Index for ozone mixing ratio + ntracp100, & !< Number of tracers plus 100 + nprocess, & !< Number of processes that cause changes in state variables + nprocess_summed,& !< Number of causes in dtidx per tracer summed for total physics tendency + ip_physics, & !< Index for process in diagnostic tendency output + ip_photochem, & !< Index for process in diagnostic tendency output + ip_prod_loss, & !< Index for process in diagnostic tendency output + ip_ozmix, & !< Index for process in diagnostic tendency output + ip_temp, & !< Index for process in diagnostic tendency output + ip_overhead_ozone !< Index for process in diagnostic tendency output integer, intent(in), dimension(:,:) :: & - dtidx ! Bookkeeping indices for GFS diagnostic tendencies + dtidx !< Bookkeeping indices for GFS diagnostic tendencies logical, intent(in) :: & - ldiag3d ! Flag for 3d diagnostic fields + ldiag3d !< Flag for 3d diagnostic fields logical, intent(in), dimension(:) :: & - is_photochem ! Flags for photochemistry processes to sum + is_photochem !< Flags for photochemistry processes to sum ! Inputs (optional) real(kind=kind_phys), intent(in), dimension(:,:), pointer, optional :: & - do3_dt_prd, & ! Physics tendency: production and loss effect - do3_dt_ozmx, & ! Physics tendency: ozone mixing ratio effect - do3_dt_temp, & ! Physics tendency: temperature effect - do3_dt_ohoz ! Physics tendency: overhead ozone effect + do3_dt_prd, & !< Physics tendency: production and loss effect + do3_dt_ozmx, & !< Physics tendency: ozone mixing ratio effect + do3_dt_temp, & !< Physics tendency: temperature effect + do3_dt_ohoz !< Physics tendency: overhead ozone effect ! Outputs real(kind=kind_phys), intent(inout), dimension(:,:,:) :: & - dtend ! Diagnostic tendencies for state variables + dtend !< Diagnostic tendencies for state variables character(len=*), intent(out) :: & - errmsg ! CCPP error message + errmsg !< CCPP error message integer, intent(out) :: & - errflg ! CCPP error flag + errflg !< CCPP error flag ! Locals integer :: idtend, ichem, iphys, itrac @@ -123,6 +119,7 @@ subroutine GFS_physics_post_run(nCol, nLev, ntoz, ntracp100, nprocess, nprocess_ contains +!> subroutine sum_it(isum,itrac,sum_me) integer, intent(in) :: isum ! third index of dtend of summary process integer, intent(in) :: itrac ! tracer or state variable being summed diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.fv3.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.fv3.F90 index 978dc177f..f12d0595f 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.fv3.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.fv3.F90 @@ -10,12 +10,9 @@ module GFS_rad_time_vary contains -!>\defgroup mod_GFS_rad_time_vary GFS Radiation Time Update -!! This module contains code related to GFS radiation setup. -!> @{ +!> This module contains code related to GFS radiation setup. !> \section arg_table_GFS_rad_time_vary_timestep_init Argument Table !! \htmlinclude GFS_rad_time_vary_timestep_init.html -!! subroutine GFS_rad_time_vary_timestep_init (lrseeds, rseeds, & lslwr, lsswr, isubc_lw, isubc_sw, icsdsw, icsdlw, cnx, cny, isc, jsc, & imap, jmap, sec, kdt, imp_physics, imp_physics_zhao_carr, ipsd0, ipsdlim,& @@ -97,6 +94,5 @@ subroutine GFS_rad_time_vary_timestep_init (lrseeds, rseeds, endif end subroutine GFS_rad_time_vary_timestep_init -!> @} end module GFS_rad_time_vary diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.scm.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.scm.F90 index 3f730eaf5..cd745bcc1 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.scm.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.scm.F90 @@ -10,12 +10,9 @@ module GFS_rad_time_vary contains -!>\defgroup mod_GFS_rad_time_vary GFS Radiation Time Update -!! This module contains code related to GFS radiation setup. -!> @{ +!> This module contains code related to GFS radiation setup. !> \section arg_table_GFS_rad_time_vary_timestep_init Argument Table !! \htmlinclude GFS_rad_time_vary_timestep_init.html -!! subroutine GFS_rad_time_vary_timestep_init (lrseeds, rseeds, & lslwr, lsswr, isubc_lw, isubc_sw, icsdsw, icsdlw, cnx, cny, isc, jsc, & imap, jmap, sec, kdt, imp_physics, imp_physics_zhao_carr, ipsd0, ipsdlim,& @@ -97,6 +94,5 @@ subroutine GFS_rad_time_vary_timestep_init (lrseeds, rseeds, endif end subroutine GFS_rad_time_vary_timestep_init -!> @} end module GFS_rad_time_vary diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.F90 index f6067a86c..c2af54b69 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.F90 @@ -9,14 +9,11 @@ module GFS_radiation_surface contains -!>\defgroup GFS_radiation_surface_mod GFS Radiation Surface Module !! This module contains calls to module_radiation_surface::setemis() to set up !! surface emissivity for LW radiation and to module_radiation_surface::setalb() !! to set up surface albedo for SW radiation. -!> @{ !> \section arg_table_GFS_radiation_surface_init Argument Table !! \htmlinclude GFS_radiation_surface_init.html -!! subroutine GFS_radiation_surface_init (me, ialb, iems, semis_file, con_pi, errmsg, errflg) use module_radiation_surface, only: sfc_init @@ -192,5 +189,4 @@ subroutine GFS_radiation_surface_run ( & end subroutine GFS_radiation_surface_run -!> @} end module GFS_radiation_surface diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 index 79ae1559a..b089398e2 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 @@ -1,8 +1,5 @@ !> \file GFS_rrtmgp_cloud_mp.F90 -!! -!> \defgroup GFS_rrtmgp_cloud_mp GFS_rrtmgp_cloud_mp.F90 -!! -!! \brief This module contains the interface for ALL cloud microphysics assumptions and +!! This module contains the interface for ALL cloud microphysics assumptions and !! the RRTMGP radiation scheme. Specific details below in subroutines. !! module GFS_rrtmgp_cloud_mp @@ -31,17 +28,11 @@ module GFS_rrtmgp_cloud_mp contains -!>\defgroup gfs_rrtmgp_cloud_mp_mod GFS RRTMGP Cloud MP Module -!! \section arg_table_GFS_rrtmgp_cloud_mp_run +!> \section arg_table_GFS_rrtmgp_cloud_mp_run Argument Table !! \htmlinclude GFS_rrtmgp_cloud_mp_run_html -!! -!> \ingroup GFS_rrtmgp_cloud_mp -!! !! Here the cloud-radiative properties (optical-path, particle-size and sometimes cloud- !! fraction) are computed for cloud producing physics schemes (e.g GFDL-MP, Thompson-MP, !! MYNN-EDMF-pbl, GF-convective, and SAMF-convective clouds). -!! -!! \section GFS_rrtmgp_cloud_mp_run subroutine GFS_rrtmgp_cloud_mp_run(nCol, nLev, nTracers, ncnd, i_cldliq, i_cldice, & i_cldrain, i_cldsnow, i_cldgrpl, i_cldtot, i_cldliq_nc, i_cldice_nc, i_twa, kdt, & imfdeepcnv, imfdeepcnv_gf, imfdeepcnv_samf, doSWrad, doLWrad, effr_in, lmfshal, & @@ -310,8 +301,7 @@ subroutine GFS_rrtmgp_cloud_mp_run(nCol, nLev, nTracers, ncnd, i_cldliq, i_cldic end subroutine GFS_rrtmgp_cloud_mp_run -!> \ingroup GFS_rrtmgp_cloud_mp -!! Compute cloud radiative properties for Grell-Freitas convective cloud scheme. +!> Compute cloud radiative properties for Grell-Freitas convective cloud scheme. !! (Adopted from module_SGSCloud_RadPre) !! !! - The total convective cloud condensate is partitoned by phase, using temperature, into @@ -390,8 +380,7 @@ subroutine cloud_mp_GF(nCol, nLev, lsmask, t_lay, p_lev, p_lay, qs_lay, relhum, enddo end subroutine cloud_mp_GF -!> \ingroup GFS_rrtmgp_cloud_mp -!! Compute cloud radiative properties for MYNN-EDMF PBL cloud scheme. +!> Compute cloud radiative properties for MYNN-EDMF PBL cloud scheme. !! (Adopted from module_SGSCloud_RadPre) !! !! - Cloud-fraction, liquid, and ice condensate mixing-ratios from MYNN-EDMF cloud scheme @@ -463,8 +452,7 @@ subroutine cloud_mp_MYNN(nCol, nLev, lsmask, t_lay, p_lev, p_lay, qs_lay, relhum end subroutine cloud_mp_MYNN -!> \ingroup GFS_rrtmgp_cloud_mp -!! Compute cloud radiative properties for SAMF convective cloud scheme. +!> Compute cloud radiative properties for SAMF convective cloud scheme. !! !! - The total-cloud convective mixing-ratio is partitioned by phase into liquid/ice !! cloud properties. LWP and IWP are computed. @@ -527,8 +515,7 @@ subroutine cloud_mp_SAMF(nCol, nLev, t_lay, p_lev, p_lay, qs_lay, relhum, end subroutine cloud_mp_SAMF -!> \ingroup GFS_rrtmgp_cloud_mp -!! This routine computes the cloud radiative properties for a "unified cloud". +!> This routine computes the cloud radiative properties for a "unified cloud". !! - "unified cloud" implies that the cloud-fraction is PROVIDED. !! - The cloud water path is computed for all provided cloud mixing-ratios and hydrometeors. !! - If particle sizes are provided, they are used. If not, default values are assigned. @@ -658,8 +645,8 @@ subroutine cloud_mp_uni(nCol, nLev, nTracers, ncnd, i_cldliq, i_cldice, i_cldrai enddo ! nLev end subroutine cloud_mp_uni -!> \ingroup GFS_rrtmgp_cloud_mp -!! This routine computes the cloud radiative properties for the Thompson cloud micro- + +!> This routine computes the cloud radiative properties for the Thompson cloud micro- !! physics scheme. !! !! - The cloud water path is computed for all provided cloud mixing-ratios and hydrometeors. @@ -791,8 +778,7 @@ subroutine cloud_mp_thompson(nCol, nLev, nTracers, ncnd, i_cldliq, i_cldice, i_c end subroutine cloud_mp_thompson -!> \ingroup GFS_rrtmgp_cloud_mp -!! This function computes the cloud-fraction following. +!> This function computes the cloud-fraction following. !! Xu-Randall(1996) A Semiempirical Cloudiness Parameterization for Use in Climate Models !! https://doi.org/10.1175/1520-0469(1996)053<3084:ASCPFU>2.0.CO;2 !! @@ -835,11 +821,8 @@ function cld_frac_XuRandall(p_lay, qs_lay, relhum, cld_mr, alpha) return end function - ! ###################################################################################### - ! This routine is a wrapper to update the Thompson effective particle sizes used by the - ! RRTMGP radiation scheme. - ! - ! ###################################################################################### + !> This routine is a wrapper to update the Thompson effective particle sizes used by the + !! RRTMGP radiation scheme. subroutine cmp_reff_Thompson(nLev, nCol, i_cldliq, i_cldice, i_cldsnow, i_cldice_nc, & i_cldliq_nc, i_twa, q_lay, p_lay, t_lay, tracer, con_eps, con_rd, ltaerosol, & mraerosol, lsmask, effrin_cldliq, effrin_cldice, effrin_cldsnow) diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.F90 index 22fe2fc21..c8a8b59ed 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.F90 @@ -1,8 +1,5 @@ !> \file GFS_rrtmgp_post.F90 -!! -!> \defgroup GFS_rrtmgp_post GFS_rrtmgp_post.F90 -!! -!! \brief RRTMGP post-processing routine. +!! RRTMGP post-processing routine. !! module GFS_rrtmgp_post use machine, only: kind_phys @@ -15,23 +12,16 @@ module GFS_rrtmgp_post public GFS_rrtmgp_post_run contains - ! ######################################################################################## -!>\defgroup gfs_rrtmgp_post_mod GFS RRTMGP Post Module -!> \section arg_table_GFS_rrtmgp_post_run + +!> \section arg_table_GFS_rrtmgp_post_run Argument Table !! \htmlinclude GFS_rrtmgp_post.html -!! -!! \ingroup GFS_rrtmgp_post -!! -!! \brief The all-sky radiation tendency is computed, the clear-sky tendency is computed +!!The all-sky radiation tendency is computed, the clear-sky tendency is computed !! if requested. !! !! RRTMGP surface and TOA fluxes are copied to fields that persist between radiation/physics !! calls. !! !! (optional) Save additional diagnostics. -!! -!! \section GFS_rrtmgp_post_run - ! ######################################################################################## subroutine GFS_rrtmgp_post_run (nCol, nLev, nDay, iSFC, iTOA, idxday, doLWrad, doSWrad, & do_lw_clrsky_hr, do_sw_clrsky_hr, save_diag, fhlwr, fhswr, sfc_alb_nir_dir, & sfc_alb_nir_dif, sfc_alb_uvvis_dir, sfc_alb_uvvis_dif, p_lev, tsfa, coszen, coszdg, & diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.F90 index cbf8d161b..2e0ea7f78 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.F90 @@ -1,9 +1,7 @@ !> \file GFS_rrtmgp_pre.F90 -!! -!> \defgroup GFS_rrtmgp_pre GFS_rrtmgp_pre.F90 -!! !! \brief This module contains code to prepare model fields for use by the RRTMGP !! radiation scheme. + module GFS_rrtmgp_pre use machine, only: kind_phys use funcphys, only: fpvs @@ -33,29 +31,23 @@ module GFS_rrtmgp_pre public GFS_rrtmgp_pre_run,GFS_rrtmgp_pre_init contains -!>\defgroup gfs_rrtmgp_pre GFS RRTMGP Pre Module -!! \section arg_table_GFS_rrtmgp_pre_init +!> \section arg_table_GFS_rrtmgp_pre_init Argument Table !! \htmlinclude GFS_rrtmgp_pre_init.html -!! -!> \ingroup GFS_rrtmgp_pre -!! -!! \brief Actuve gas-names are read from namelist. Set to interstitial%active_gases. -!! -!! \section GFS_rrtmgp_pre_init +!! Actuve gas-names are read from namelist. Set to interstitial%active_gases. subroutine GFS_rrtmgp_pre_init(nGases, active_gases, active_gases_array, errmsg, errflg) ! Inputs integer, intent(in) :: & - nGases ! Number of active gases in RRTMGP + nGases !< Number of active gases in RRTMGP character(len=*), intent(in) :: & - active_gases ! List of active gases from namelist + active_gases !< List of active gases from namelist character(len=*), dimension(:), intent(out) :: & - active_gases_array ! List of active gases from namelist as array + active_gases_array !< List of active gases from namelist as array ! Outputs character(len=*), intent(out) :: & - errmsg ! Error message + errmsg !< Error message integer, intent(out) :: & - errflg ! Error flag + errflg !< Error flag ! Local variables character(len=1) :: tempstr @@ -101,16 +93,9 @@ subroutine GFS_rrtmgp_pre_init(nGases, active_gases, active_gases_array, errmsg, end subroutine GFS_rrtmgp_pre_init - ! ######################################################################################### -!> \section arg_table_GFS_rrtmgp_pre_run +!> \section arg_table_GFS_rrtmgp_pre_run Argument Table !! \htmlinclude GFS_rrtmgp_pre_run.html -!! -!> \ingroup GFS_rrtmgp_pre -!! -!! \brief Sanitize inputs for use in RRTMGP. -!! -!! \section GFS_rrtmgp_pre_run - ! ######################################################################################### +!! Sanitize inputs for use in RRTMGP. subroutine GFS_rrtmgp_pre_run(me, nCol, nLev, i_o3, doSWrad, doLWrad, fhswr, fhlwr, & xlat, xlon, prsl, tgrs, prslk, prsi, qgrs, tsfc, coslat, sinlat, con_g, con_rd, & con_eps, con_epsm1, con_fvirt, con_epsqs, solhr, raddt, p_lay, t_lay, p_lev, t_lev, & @@ -122,79 +107,79 @@ subroutine GFS_rrtmgp_pre_run(me, nCol, nLev, i_o3, doSWrad, doLWrad, fhswr, fhl ! Inputs integer, intent(in) :: & - me, & ! MPI rank - nCol, & ! Number of horizontal grid points - nLev, & ! Number of vertical layers - ico2, & ! Flag for co2 radiation scheme - i_o3 ! Index into tracer array for ozone + me, & !< MPI rank + nCol, & !< Number of horizontal grid points + nLev, & !< Number of vertical layers + ico2, & !< Flag for co2 radiation scheme + i_o3 !< Index into tracer array for ozone type(ty_ozphys),intent(in) :: & ozphys logical, intent(in) :: & - doSWrad, & ! Call SW radiation? - doLWrad ! Call LW radiation + doSWrad, & !< Call SW radiation? + doLWrad !< Call LW radiation real(kind_phys), intent(in) :: & - fhswr, & ! Frequency of SW radiation call. - fhlwr ! Frequency of LW radiation call. + fhswr, & !< Frequency of SW radiation call. + fhlwr !< Frequency of LW radiation call. real(kind_phys), intent(in) :: & - con_g, & ! Physical constant: gravitational constant - con_rd, & ! Physical constant: gas-constant for dry air - con_eps, & ! Physical constant: Epsilon (Rd/Rv) - con_epsm1, & ! Physical constant: Epsilon (Rd/Rv) minus one - con_fvirt, & ! Physical constant: Inverse of epsilon minus one - con_epsqs, & ! Physical constant: Minimum saturation mixing-ratio (kg/kg) - con_pi, & ! Physical constant: Pi - solhr ! Time in hours after 00z at the current timestep + con_g, & !< Physical constant: gravitational constant + con_rd, & !< Physical constant: gas-constant for dry air + con_eps, & !< Physical constant: Epsilon (Rd/Rv) + con_epsm1, & !< Physical constant: Epsilon (Rd/Rv) minus one + con_fvirt, & !< Physical constant: Inverse of epsilon minus one + con_epsqs, & !< Physical constant: Minimum saturation mixing-ratio (kg/kg) + con_pi, & !< Physical constant: Pi + solhr !< Time in hours after 00z at the current timestep real(kind_phys), dimension(:), intent(in) :: & - xlon, & ! Longitude - xlat, & ! Latitude - tsfc, & ! Surface skin temperature (K) - coslat, & ! Cosine(latitude) - sinlat, & ! Sine(latitude) + xlon, & !< Longitude + xlat, & !< Latitude + tsfc, & !< Surface skin temperature (K) + coslat, & !< Cosine(latitude) + sinlat, & !< Sine(latitude) semis real(kind_phys), dimension(:,:), intent(in) :: & - prsl, & ! Pressure at model-layer centers (Pa) - tgrs, & ! Temperature at model-layer centers (K) - prslk, & ! Exner function at model layer centers (1) - prsi ! Pressure at model-interfaces (Pa) + prsl, & !< Pressure at model-layer centers (Pa) + tgrs, & !< Temperature at model-layer centers (K) + prslk, & !< Exner function at model layer centers (1) + prsi !< Pressure at model-interfaces (Pa) real(kind_phys), dimension(:,:,:), intent(in) :: & - qgrs ! Tracer concentrations (kg/kg) + qgrs !< Tracer concentrations (kg/kg) character(len=*), dimension(:), intent(in) :: & - active_gases_array ! List of active gases from namelist as array + active_gases_array !< List of active gases from namelist as array ! Outputs character(len=*), intent(out) :: & - errmsg ! Error message + errmsg !< Error message integer, intent(out) :: & - errflg, & ! Error flag + errflg, & !< Error flag nDay integer, intent(inout) :: & - iSFC, & ! Vertical index for surface - iTOA ! Vertical index for TOA + iSFC, & !< Vertical index for surface + iTOA !< Vertical index for TOA logical, intent(inout) :: & - top_at_1 ! Vertical ordering flag + top_at_1 !< Vertical ordering flag real(kind_phys), intent(inout) :: & - raddt ! Radiation time-step + raddt !< Radiation time-step real(kind_phys), dimension(:), intent(inout) :: & - tsfg, & ! Ground temperature - tsfa, & ! Skin temperature - tsfc_radtime, & ! Surface temperature at radiation timestep - coszen, & ! Cosine of SZA - coszdg ! Cosine of SZA, daytime + tsfg, & !< Ground temperature + tsfa, & !< Skin temperature + tsfc_radtime, & !< Surface temperature at radiation timestep + coszen, & !< Cosine of SZA + coszdg !< Cosine of SZA, daytime integer, dimension(:), intent(inout) :: & - idxday ! Indices for daylit points + idxday !< Indices for daylit points real(kind_phys), dimension(:,:), intent(inout) :: & - p_lay, & ! Pressure at model-layer - t_lay, & ! Temperature at model layer - q_lay, & ! Water-vapor mixing ratio (kg/kg) - tv_lay, & ! Virtual temperature at model-layers - relhum, & ! Relative-humidity at model-layers - qs_lay, & ! Saturation vapor pressure at model-layers - deltaZ, & ! Layer thickness (m) - deltaZc, & ! Layer thickness (m) (between layer centers) - deltaP, & ! Layer thickness (Pa) - p_lev, & ! Pressure at model-interface - sfc_emiss_byband, & ! - t_lev, & ! Temperature at model-interface + p_lay, & !< Pressure at model-layer + t_lay, & !< Temperature at model layer + q_lay, & !< Water-vapor mixing ratio (kg/kg) + tv_lay, & !< Virtual temperature at model-layers + relhum, & !< Relative-humidity at model-layers + qs_lay, & !< Saturation vapor pressure at model-layers + deltaZ, & !< Layer thickness (m) + deltaZc, & !< Layer thickness (m) (between layer centers) + deltaP, & !< Layer thickness (Pa) + p_lev, & !< Pressure at model-interface + sfc_emiss_byband, & !< + t_lev, & !< Temperature at model-interface vmr_o2, vmr_h2o, vmr_o3, vmr_ch4, vmr_n2o, vmr_co2 ! Local variables diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_setup.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_setup.F90 index 2739c951b..2d84db985 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_setup.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_setup.F90 @@ -31,10 +31,8 @@ module GFS_rrtmgp_setup contains -!> \defgroup GFS_rrtmgp_setup_mod GFS RRTMGP Scheme Setup Module -!! \section arg_table_GFS_rrtmgp_setup_init +!> \section arg_table_GFS_rrtmgp_setup_init Argument Table !! \htmlinclude GFS_rrtmgp_setup_init.html -!! subroutine GFS_rrtmgp_setup_init(do_RRTMGP, imp_physics, imp_physics_fer_hires, & imp_physics_gfdl, imp_physics_thompson, imp_physics_wsm6, imp_physics_zhao_carr, & imp_physics_zhao_carr_pdf, imp_physics_mg, si, levr, ictm, isol, ico2, iaer, & @@ -140,12 +138,8 @@ subroutine GFS_rrtmgp_setup_init(do_RRTMGP, imp_physics, imp_physics_fer_hires, return end subroutine GFS_rrtmgp_setup_init - ! ######################################################################################### - ! SUBROUTINE GFS_rrtmgp_setup_timestep_init - ! ######################################################################################### -!> \section arg_table_GFS_rrtmgp_setup_timestep_init +!> \section arg_table_GFS_rrtmgp_setup_timestep_init Argument Table !! \htmlinclude GFS_rrtmgp_setup_timestep_init.html -!! subroutine GFS_rrtmgp_setup_timestep_init (idate, jdate, deltsw, deltim, doSWrad, me, & iaermdl, aeros_file, isol, slag, sdec, cdec, solcon, con_pi, co2dat_file, & co2gbl_file, ictm, ico2, ntoz, ozphys, errmsg, errflg) @@ -251,12 +245,8 @@ subroutine GFS_rrtmgp_setup_timestep_init (idate, jdate, deltsw, deltim, doSWrad return end subroutine GFS_rrtmgp_setup_timestep_init - ! ######################################################################################### - ! SUBROUTINE GFS_rrtmgp_setup_finalize - ! ######################################################################################### -!> \section arg_table_GFS_rrtmgp_setup_finalize +!> \section arg_table_GFS_rrtmgp_setup_finalize Argument Table !! \htmlinclude GFS_rrtmgp_setup_finalize.html -!! subroutine GFS_rrtmgp_setup_finalize (errmsg, errflg) character(len=*), intent( out) :: errmsg integer, intent( out) :: errflg diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_stateout_update.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_stateout_update.F90 index 53867f6cc..b222885e9 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_stateout_update.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_stateout_update.F90 @@ -1,20 +1,17 @@ -! ######################################################################################### !> \file GFS_suite_stateout_update.f90 !! Update the state variables due to process-split physics from accumulated tendencies !! during that phase. !! Update gas concentrations, if using prognostic photolysis schemes. !! Also, set bounds on the mass-weighted rime factor when using Ferrier-Aligo microphysics. -! ######################################################################################### module GFS_suite_stateout_update use machine, only: kind_phys use module_ozphys, only: ty_ozphys implicit none contains -! ######################################################################################### + !> \section arg_table_GFS_suite_stateout_update_run Argument Table !! \htmlinclude GFS_suite_stateout_update_run.html !! -! ######################################################################################### subroutine GFS_suite_stateout_update_run (im, levs, ntrac, dtp, tgrs, ugrs, vgrs, qgrs, & dudt, dvdt, dtdt, dqdt, gt0, gu0, gv0, gq0, oz0, ntiw, nqrimef, imp_physics, & imp_physics_fer_hires, epsq, ozphys, oz_phys_2015, oz_phys_2006, con_1ovg, prsl, & diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_loop_control_part1.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_loop_control_part1.F90 index c3030c144..32d15f867 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_loop_control_part1.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_loop_control_part1.F90 @@ -1,19 +1,14 @@ !> \file GFS_surface_loop_control_part1.F90 !! This file contains the GFS_surface_loop_control_part1 scheme. -!> \defgroup GFS_surface_loop_control GFS_surface_loop_control_part1 scheme -!! This module contains the GFS_surface_loop_control_part1 scheme. -!! @{ +!> This module contains the GFS_surface_loop_control_part1 scheme. module GFS_surface_loop_control_part1 contains -!> \brief Brief description of the subroutine +!> Brief description of the subroutine !! !! \section arg_table_GFS_surface_loop_control_part1_run Arguments !! \htmlinclude GFS_surface_loop_control_part1_run.html -!! -!! \section gen_loop1 General Algorithm -!! \section detailed_loop1 Detailed Algorithm subroutine GFS_surface_loop_control_part1_run (im, iter, & wind, flag_guess, errmsg, errflg) @@ -45,4 +40,3 @@ subroutine GFS_surface_loop_control_part1_run (im, iter, & end subroutine GFS_surface_loop_control_part1_run end module GFS_surface_loop_control_part1 -!> @} diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/scm_sfc_flux_spec.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/scm_sfc_flux_spec.F90 index a3cf2d740..797a1cd95 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/scm_sfc_flux_spec.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/scm_sfc_flux_spec.F90 @@ -15,8 +15,7 @@ module scm_sfc_flux_spec CONTAINS !******************************************************************************************* -!! -!! \section arg_table_scm_sfc_flux_spec_init Argument Table +!> \section arg_table_scm_sfc_flux_spec_init Argument Table !! \htmlinclude scm_sfc_flux_spec_init.html !! subroutine scm_sfc_flux_spec_init(lheatstrg, errmsg, errflg) diff --git a/physics/Radiation/RRTMG/rrtmg_sw_cloud_optics.F90 b/physics/Radiation/RRTMG/rrtmg_sw_cloud_optics.F90 index 01cab76e2..7a6f649b7 100644 --- a/physics/Radiation/RRTMG/rrtmg_sw_cloud_optics.F90 +++ b/physics/Radiation/RRTMG/rrtmg_sw_cloud_optics.F90 @@ -1,3 +1,6 @@ +!>\file rrtmg_sw_cloud_optics.F90 +!! + module mo_rrtmg_sw_cloud_optics use machine, only: kind_phys use mersenne_twister, only: random_setseed, random_number, random_stat diff --git a/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.F90 b/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.F90 index 9a92ea98a..bd4a81a25 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.F90 @@ -15,13 +15,7 @@ module rrtmgp_aerosol_optics contains - ! ######################################################################################### - ! SUBROUTINE rrtmgp_aerosol_optics_run() - ! ######################################################################################### - -!>\defgroup rrtmgp_aerosol_optics_mod GFS RRTMGP Aerosol Optics Module -!> @{ -!! \section arg_table_rrtmgp_aerosol_optics_run +!> \section arg_table_rrtmgp_aerosol_optics_run Argument Table !! \htmlinclude rrtmgp_aerosol_optics_run.html !! subroutine rrtmgp_aerosol_optics_run(doSWrad, doLWrad, nCol, nLev, nDay, idxday, p_lev, & @@ -31,53 +25,53 @@ subroutine rrtmgp_aerosol_optics_run(doSWrad, doLWrad, nCol, nLev, nDay, idxday, ! Inputs logical, intent(in) :: & - doSWrad, & ! Logical flag for shortwave radiation call - doLWrad, & ! Logical flag for longwave radiation call - top_at_1 ! Logical flag for vertical grid direcetion + doSWrad, & !< Logical flag for shortwave radiation call + doLWrad, & !< Logical flag for longwave radiation call + top_at_1 !< Logical flag for vertical grid direcetion integer, intent(in) :: & - nCol, & ! Number of horizontal grid points - nDay, & ! Number of daylit points - nLev, & ! Number of vertical layers - iaermdl, & ! Aerosol model scheme flag - iaerflg ! Aerosol effects to include + nCol, & !< Number of horizontal grid points + nDay, & !< Number of daylit points + nLev, & !< Number of vertical layers + iaermdl, & !< Aerosol model scheme flag + iaerflg !< Aerosol effects to include integer,intent(in),dimension(:) :: & - idxday ! Indices for daylit points. + idxday !< Indices for daylit points. real(kind_phys),intent(in) :: & - con_pi, & ! Physical constant (pi) - con_rd, & ! Physical constant (gas constant for dry-air) - con_g ! Physical constant (gravitational constant) + con_pi, & !< Physical constant (pi) + con_rd, & !< Physical constant (gas constant for dry-air) + con_g !< Physical constant (gravitational constant) real(kind_phys), dimension(:), intent(in) :: & - lon, & ! Longitude - lat, & ! Latitude - lsmask ! Land/sea/sea-ice mask + lon, & !< Longitude + lat, & !< Latitude + lsmask !< Land/sea/sea-ice mask real(kind_phys), dimension(:,:),intent(in) :: & - p_lay, & ! Pressure @ layer-centers (Pa) - tv_lay, & ! Virtual-temperature @ layer-centers (K) - relhum, & ! Relative-humidity @ layer-centers - p_lk ! Exner function @ layer-centers (1) + p_lay, & !< Pressure @ layer-centers (Pa) + tv_lay, & !< Virtual-temperature @ layer-centers (K) + relhum, & !< Relative-humidity @ layer-centers + p_lk !< Exner function @ layer-centers (1) real(kind_phys), dimension(:, :,:),intent(in) :: & - tracer ! trace gas concentrations + tracer !< trace gas concentrations real(kind_phys), dimension(:, :,:),intent(in) :: & - aerfld ! aerosol input concentrations + aerfld !< aerosol input concentrations real(kind_phys), dimension(:,:),intent(in) :: & - p_lev ! Pressure @ layer-interfaces (Pa) + p_lev !< Pressure @ layer-interfaces (Pa) real (kind=kind_phys), dimension(:,:), intent(out) :: & - ext550 ! 3d optical extinction for total aerosol species + ext550 !< 3d optical extinction for total aerosol species ! Outputs real(kind_phys), dimension(:,:), intent(out) :: & - aerodp ! Vertical integrated optical depth for various aerosol species + aerodp !< Vertical integrated optical depth for various aerosol species real(kind_phys), dimension(:,:,:), intent(out) :: & - aerlw_tau, & ! Longwave aerosol optical depth - aerlw_ssa, & ! Longwave aerosol single scattering albedo - aerlw_g, & ! Longwave aerosol asymmetry parameter - aersw_tau, & ! Shortwave aerosol optical depth - aersw_ssa, & ! Shortwave aerosol single scattering albedo - aersw_g ! Shortwave aerosol asymmetry parameter + aerlw_tau, & !< Longwave aerosol optical depth + aerlw_ssa, & !< Longwave aerosol single scattering albedo + aerlw_g, & !< Longwave aerosol asymmetry parameter + aersw_tau, & !< Shortwave aerosol optical depth + aersw_ssa, & !< Shortwave aerosol single scattering albedo + aersw_g !< Shortwave aerosol asymmetry parameter integer, intent(out) :: & - errflg ! CCPP error flag + errflg !< CCPP error flag character(len=*), intent(out) :: & - errmsg ! CCPP error message + errmsg !< CCPP error message ! Local variables real(kind_phys), dimension(nCol, nLev, lw_gas_props%get_nband(), 3) :: & @@ -124,5 +118,4 @@ subroutine rrtmgp_aerosol_optics_run(doSWrad, doLWrad, nCol, nLev, nDay, idxday, endif end subroutine rrtmgp_aerosol_optics_run -!> @} end module rrtmgp_aerosol_optics diff --git a/physics/Radiation/RRTMGP/rrtmgp_lw_cloud_optics.F90 b/physics/Radiation/RRTMGP/rrtmgp_lw_cloud_optics.F90 index bcac97595..cafffe72c 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_lw_cloud_optics.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_lw_cloud_optics.F90 @@ -23,49 +23,49 @@ module rrtmgp_lw_cloud_optics nrghice_fromfileLW, nBandLW, nSize_liqLW, nSize_iceLW, nSizeRegLW, & nCoeff_extLW, nCoeff_ssa_gLW, nBoundLW, npairsLW real(kind_phys) :: & - radliq_facLW, & ! Factor for calculating LUT interpolation indices for liquid - radice_facLW ! Factor for calculating LUT interpolation indices for ice + radliq_facLW, & !< Factor for calculating LUT interpolation indices for liquid + radice_facLW !< Factor for calculating LUT interpolation indices for ice real(kind_phys), dimension(:,:), allocatable :: & - lut_extliqLW, & ! LUT shortwave liquid extinction coefficient - lut_ssaliqLW, & ! LUT shortwave liquid single scattering albedo - lut_asyliqLW, & ! LUT shortwave liquid asymmetry parameter - band_limsCLDLW ! Beginning and ending wavenumber [cm -1] for each band + lut_extliqLW, & !< LUT shortwave liquid extinction coefficient + lut_ssaliqLW, & !< LUT shortwave liquid single scattering albedo + lut_asyliqLW, & !< LUT shortwave liquid asymmetry parameter + band_limsCLDLW !< Beginning and ending wavenumber [cm -1] for each band real(kind_phys), dimension(:,:,:), allocatable :: & - lut_exticeLW, & ! LUT shortwave ice extinction coefficient - lut_ssaiceLW, & ! LUT shortwave ice single scattering albedo - lut_asyiceLW ! LUT shortwave ice asymmetry parameter + lut_exticeLW, & !< LUT shortwave ice extinction coefficient + lut_ssaiceLW, & !< LUT shortwave ice single scattering albedo + lut_asyiceLW !< LUT shortwave ice asymmetry parameter real(kind_phys), dimension(:), allocatable :: & - pade_sizereg_extliqLW, & ! Particle size regime boundaries for shortwave liquid extinction - ! coefficient for Pade interpolation - pade_sizereg_ssaliqLW, & ! Particle size regime boundaries for shortwave liquid single - ! scattering albedo for Pade interpolation - pade_sizereg_asyliqLW, & ! Particle size regime boundaries for shortwave liquid asymmetry - ! parameter for Pade interpolation - pade_sizereg_exticeLW, & ! Particle size regime boundaries for shortwave ice extinction - ! coefficient for Pade interpolation - pade_sizereg_ssaiceLW, & ! Particle size regime boundaries for shortwave ice single - ! scattering albedo for Pade interpolation - pade_sizereg_asyiceLW ! Particle size regime boundaries for shortwave ice asymmetry - ! parameter for Pade interpolation + pade_sizereg_extliqLW, & !< Particle size regime boundaries for shortwave liquid extinction + !< coefficient for Pade interpolation + pade_sizereg_ssaliqLW, & !< Particle size regime boundaries for shortwave liquid single + !< scattering albedo for Pade interpolation + pade_sizereg_asyliqLW, & !< Particle size regime boundaries for shortwave liquid asymmetry + !< parameter for Pade interpolation + pade_sizereg_exticeLW, & !< Particle size regime boundaries for shortwave ice extinction + !< coefficient for Pade interpolation + pade_sizereg_ssaiceLW, & !< Particle size regime boundaries for shortwave ice single + !< scattering albedo for Pade interpolation + pade_sizereg_asyiceLW !< Particle size regime boundaries for shortwave ice asymmetry + !< parameter for Pade interpolation real(kind_phys), dimension(:,:,:), allocatable :: & - pade_extliqLW, & ! PADE coefficients for shortwave liquid extinction - pade_ssaliqLW, & ! PADE coefficients for shortwave liquid single scattering albedo - pade_asyliqLW ! PADE coefficients for shortwave liquid asymmetry parameter + pade_extliqLW, & !< PADE coefficients for shortwave liquid extinction + pade_ssaliqLW, & !< PADE coefficients for shortwave liquid single scattering albedo + pade_asyliqLW !< PADE coefficients for shortwave liquid asymmetry parameter real(kind_phys), dimension(:,:,:,:), allocatable :: & - pade_exticeLW, & ! PADE coefficients for shortwave ice extinction - pade_ssaiceLW, & ! PADE coefficients for shortwave ice single scattering albedo - pade_asyiceLW ! PADE coefficients for shortwave ice asymmetry parameter + pade_exticeLW, & !< PADE coefficients for shortwave ice extinction + pade_ssaiceLW, & !< PADE coefficients for shortwave ice single scattering albedo + pade_asyiceLW !< PADE coefficients for shortwave ice asymmetry parameter ! Parameters used for rain and snow(+groupel) RRTMGP cloud-optics real(kind_phys), parameter :: & - absrain = 0.33e-3, & ! Rain drop absorption coefficient \f$(m^{2}/g)\f$ . - abssnow0 = 1.5, & ! Snow flake absorption coefficient (micron), fu coeff - abssnow1 = 2.34e-3 ! Snow flake absorption coefficient \f$(m^{2}/g)\f$, ncar coef + absrain = 0.33e-3, & !< Rain drop absorption coefficient \f$(m^{2}/g)\f$ . + abssnow0 = 1.5, & !< Snow flake absorption coefficient (micron), fu coeff + abssnow1 = 2.34e-3 !< Snow flake absorption coefficient \f$(m^{2}/g)\f$, ncar coef real(kind_phys) :: & - radliq_lwrLW, & ! Liquid particle size lower bound for LUT interpolation - radliq_uprLW, & ! Liquid particle size upper bound for LUT interpolation - radice_lwrLW, & ! Ice particle size upper bound for LUT interpolation - radice_uprLW ! Ice particle size lower bound for LUT interpolation + radliq_lwrLW, & !< Liquid particle size lower bound for LUT interpolation + radliq_uprLW, & !< Liquid particle size upper bound for LUT interpolation + radice_lwrLW, & !< Ice particle size upper bound for LUT interpolation + radice_uprLW !< Ice particle size lower bound for LUT interpolation contains @@ -79,25 +79,25 @@ subroutine rrtmgp_lw_cloud_optics_init(rrtmgp_root_dir, rrtmgp_lw_file_clouds, ! Inputs character(len=128),intent(in) :: & - rrtmgp_root_dir, & ! RTE-RRTMGP root directory - rrtmgp_lw_file_clouds ! RRTMGP file containing clouds optics data + rrtmgp_root_dir, & !< RTE-RRTMGP root directory + rrtmgp_lw_file_clouds !< RRTMGP file containing clouds optics data logical, intent(in) :: & - doGP_cldoptics_PADE,& ! Use RRTMGP cloud-optics: PADE approximation? - doGP_cldoptics_LUT ! Use RRTMGP cloud-optics: LUTs? + doGP_cldoptics_PADE,& !< Use RRTMGP cloud-optics: PADE approximation? + doGP_cldoptics_LUT !< Use RRTMGP cloud-optics: LUTs? integer, intent(inout) :: & - nrghice ! Number of ice-roughness categories + nrghice !< Number of ice-roughness categories type(MPI_Comm), intent(in) :: & - mpicomm ! MPI communicator + mpicomm !< MPI communicator integer, intent(in) :: & - mpirank, & ! Current MPI rank - mpiroot ! Master MPI rank + mpirank, & !< Current MPI rank + mpiroot !< Master MPI rank ! Outputs character(len=*), intent(out) :: & - errmsg ! Error message + errmsg !< Error message integer, intent(out) :: & - errflg ! Error code + errflg !< Error code ! Local variables integer :: dimID,varID,status,ncid,mpierr diff --git a/physics/Radiation/RRTMGP/rrtmgp_lw_gas_optics.F90 b/physics/Radiation/RRTMGP/rrtmgp_lw_gas_optics.F90 index 81c4687f3..fd2dbae32 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_lw_gas_optics.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_lw_gas_optics.F90 @@ -24,77 +24,75 @@ module rrtmgp_lw_gas_optics nminor_absorber_intervals_lowerLW, nminor_absorber_intervals_upperLW, & ncontributors_lowerLW, ncontributors_upperLW, nfit_coeffsLW integer, dimension(:), allocatable :: & - kminor_start_lowerLW, & ! Starting index in the [1, nContributors] vector for a contributor - ! given by \"minor_gases_lower\" (lower atmosphere) - kminor_start_upperLW ! Starting index in the [1, nContributors] vector for a contributor - ! given by \"minor_gases_upper\" (upper atmosphere) + kminor_start_lowerLW, & !< Starting index in the [1, nContributors] vector for a contributor + !< given by \"minor_gases_lower\" (lower atmosphere) + kminor_start_upperLW !< Starting index in the [1, nContributors] vector for a contributor + !< given by \"minor_gases_upper\" (upper atmosphere) integer, dimension(:,:), allocatable :: & - band2gptLW, & ! Beginning and ending gpoint for each band - minor_limits_gpt_lowerLW, & ! Beginning and ending gpoint for each minor interval in lower atmosphere - minor_limits_gpt_upperLW ! Beginning and ending gpoint for each minor interval in upper atmosphere + band2gptLW, & !< Beginning and ending gpoint for each band + minor_limits_gpt_lowerLW, & !< Beginning and ending gpoint for each minor interval in lower atmosphere + minor_limits_gpt_upperLW !< Beginning and ending gpoint for each minor interval in upper atmosphere integer, dimension(:,:,:), allocatable :: & - key_speciesLW ! Key species pair for each band + key_speciesLW !< Key species pair for each band real(kind_phys) :: & - press_ref_tropLW, & ! Reference pressure separating the lower and upper atmosphere [Pa] - temp_ref_pLW, & ! Standard spectroscopic reference pressure [Pa] - temp_ref_tLW ! Standard spectroscopic reference temperature [K] + press_ref_tropLW, & !< Reference pressure separating the lower and upper atmosphere [Pa] + temp_ref_pLW, & !< Standard spectroscopic reference pressure [Pa] + temp_ref_tLW !< Standard spectroscopic reference temperature [K] real(kind_phys), dimension(:), allocatable :: & - press_refLW, & ! Pressures for reference atmosphere; press_ref(# reference layers) [Pa] - temp_refLW ! Temperatures for reference atmosphere; temp_ref(# reference layers) [K] + press_refLW, & !< Pressures for reference atmosphere; press_ref(# reference layers) [Pa] + temp_refLW !< Temperatures for reference atmosphere; temp_ref(# reference layers) [K] real(kind_phys), dimension(:,:), allocatable :: & - band_limsLW, & ! Beginning and ending wavenumber [cm -1] for each band - totplnkLW, & ! Integrated Planck function by band + band_limsLW, & !< Beginning and ending wavenumber [cm -1] for each band + totplnkLW, & !< Integrated Planck function by band optimal_angle_fitLW real(kind_phys), dimension(:,:,:), allocatable :: & - vmr_refLW, & ! volume mixing ratios for reference atmospherer - kminor_lowerLW, & ! (transformed from [nTemp x nEta x nGpt x nAbsorbers] array to - ! [nTemp x nEta x nContributors] array) - kminor_upperLW, & ! (transformed from [nTemp x nEta x nGpt x nAbsorbers] array to - ! [nTemp x nEta x nContributors] array) - rayl_lowerLW, & ! Not used in LW, rather allocated(rayl_lower) is used - rayl_upperLW ! Not used in LW, rather allocated(rayl_upper) is used + vmr_refLW, & !< volume mixing ratios for reference atmospherer + kminor_lowerLW, & !< (transformed from [nTemp x nEta x nGpt x nAbsorbers] array to + !< [nTemp x nEta x nContributors] array) + kminor_upperLW, & !< (transformed from [nTemp x nEta x nGpt x nAbsorbers] array to + !< [nTemp x nEta x nContributors] array) + rayl_lowerLW, & !< Not used in LW, rather allocated(rayl_lower) is used + rayl_upperLW !< Not used in LW, rather allocated(rayl_upper) is used real(kind_phys), dimension(:,:,:,:), allocatable :: & - kmajorLW, & ! Stored absorption coefficients due to major absorbing gases - planck_fracLW ! Planck fractions + kmajorLW, & !< Stored absorption coefficients due to major absorbing gases + planck_fracLW !< Planck fractions character(len=32), dimension(:), allocatable :: & - gas_namesLW, & ! Names of absorbing gases - gas_minorLW, & ! Name of absorbing minor gas - identifier_minorLW, & ! Unique string identifying minor gas - minor_gases_lowerLW, & ! Names of minor absorbing gases in lower atmosphere - minor_gases_upperLW, & ! Names of minor absorbing gases in upper atmosphere - scaling_gas_lowerLW, & ! Absorption also depends on the concentration of this gas - scaling_gas_upperLW ! Absorption also depends on the concentration of this gas + gas_namesLW, & !< Names of absorbing gases + gas_minorLW, & !< Name of absorbing minor gas + identifier_minorLW, & !< Unique string identifying minor gas + minor_gases_lowerLW, & !< Names of minor absorbing gases in lower atmosphere + minor_gases_upperLW, & !< Names of minor absorbing gases in upper atmosphere + scaling_gas_lowerLW, & !< Absorption also depends on the concentration of this gas + scaling_gas_upperLW !< Absorption also depends on the concentration of this gas logical(wl), dimension(:), allocatable :: & - minor_scales_with_density_lowerLW, & ! Density scaling is applied to minor absorption coefficients - minor_scales_with_density_upperLW, & ! Density scaling is applied to minor absorption coefficients - scale_by_complement_lowerLW, & ! Absorption is scaled by concentration of scaling_gas (F) or its complement (T) - scale_by_complement_upperLW ! Absorption is scaled by concentration of scaling_gas (F) or its complement (T) + minor_scales_with_density_lowerLW, & !< Density scaling is applied to minor absorption coefficients + minor_scales_with_density_upperLW, & !< Density scaling is applied to minor absorption coefficients + scale_by_complement_lowerLW, & !< Absorption is scaled by concentration of scaling_gas (F) or its complement (T) + scale_by_complement_upperLW !< Absorption is scaled by concentration of scaling_gas (F) or its complement (T) contains - ! ######################################################################################### - ! SUBROUTINE rrtmgp_lw_gas_optics_init - ! ######################################################################################### +!> subroutine rrtmgp_lw_gas_optics_init(rrtmgp_root_dir, rrtmgp_lw_file_gas, & active_gases_array, mpicomm, mpirank, mpiroot, errmsg, errflg) ! Inputs character(len=128),intent(in) :: & - rrtmgp_root_dir, & ! RTE-RRTMGP root directory - rrtmgp_lw_file_gas ! RRTMGP file containing K-distribution data + rrtmgp_root_dir, & !< RTE-RRTMGP root directory + rrtmgp_lw_file_gas !< RRTMGP file containing K-distribution data character(len=*), dimension(:), intent(in) :: & - active_gases_array ! List of active gases from namelist as array + active_gases_array !< List of active gases from namelist as array type(MPI_Comm),intent(in) :: & - mpicomm ! MPI communicator + mpicomm !< MPI communicator integer,intent(in) :: & - mpirank, & ! Current MPI rank - mpiroot ! Master MPI rank + mpirank, & !< Current MPI rank + mpiroot !< Master MPI rank ! Outputs character(len=*), intent(out) :: & - errmsg ! CCPP error message + errmsg !< CCPP error message integer, intent(out) :: & - errflg ! CCPP error code + errflg !< CCPP error code ! Local variables integer :: ncid, dimID, varID, status, ii, mpierr, iChar diff --git a/physics/Radiation/RRTMGP/rrtmgp_sw_cloud_optics.F90 b/physics/Radiation/RRTMGP/rrtmgp_sw_cloud_optics.F90 index f3bc656fc..7198f8e91 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_sw_cloud_optics.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_sw_cloud_optics.F90 @@ -19,43 +19,43 @@ module rrtmgp_sw_cloud_optics nrghice_fromfileSW, nBandSW, nSize_liqSW, nSize_iceSW, nSizeregSW, & nCoeff_extSW, nCoeff_ssa_gSW, nBoundSW, nPairsSW real(kind_phys) :: & - radliq_facSW, & ! Factor for calculating LUT interpolation indices for liquid - radice_facSW ! Factor for calculating LUT interpolation indices for ice + radliq_facSW, & !< Factor for calculating LUT interpolation indices for liquid + radice_facSW !< Factor for calculating LUT interpolation indices for ice real(kind_phys), dimension(:,:), allocatable :: & - lut_extliqSW, & ! LUT shortwave liquid extinction coefficient - lut_ssaliqSW, & ! LUT shortwave liquid single scattering albedo - lut_asyliqSW, & ! LUT shortwave liquid asymmetry parameter - band_limsCLDSW ! Beginning and ending wavenumber [cm -1] for each band + lut_extliqSW, & !< LUT shortwave liquid extinction coefficient + lut_ssaliqSW, & !< LUT shortwave liquid single scattering albedo + lut_asyliqSW, & !< LUT shortwave liquid asymmetry parameter + band_limsCLDSW !< Beginning and ending wavenumber [cm -1] for each band real(kind_phys), dimension(:,:,:), allocatable :: & - lut_exticeSW, & ! LUT shortwave ice extinction coefficient - lut_ssaiceSW, & ! LUT shortwave ice single scattering albedo - lut_asyiceSW ! LUT shortwave ice asymmetry parameter + lut_exticeSW, & !< LUT shortwave ice extinction coefficient + lut_ssaiceSW, & !< LUT shortwave ice single scattering albedo + lut_asyiceSW !< LUT shortwave ice asymmetry parameter real(kind_phys), dimension(:), allocatable :: & - pade_sizereg_extliqSW, & ! Particle size regime boundaries for shortwave liquid extinction - ! coefficient for Pade interpolation - pade_sizereg_ssaliqSW, & ! Particle size regime boundaries for shortwave liquid single - ! scattering albedo for Pade interpolation - pade_sizereg_asyliqSW, & ! Particle size regime boundaries for shortwave liquid asymmetry - ! parameter for Pade interpolation - pade_sizereg_exticeSW, & ! Particle size regime boundaries for shortwave ice extinction - ! coefficient for Pade interpolation - pade_sizereg_ssaiceSW, & ! Particle size regime boundaries for shortwave ice single - ! scattering albedo for Pade interpolation - pade_sizereg_asyiceSW ! Particle size regime boundaries for shortwave ice asymmetry - ! parameter for Pade interpolation + pade_sizereg_extliqSW, & !< Particle size regime boundaries for shortwave liquid extinction + !< coefficient for Pade interpolation + pade_sizereg_ssaliqSW, & !< Particle size regime boundaries for shortwave liquid single + !< scattering albedo for Pade interpolation + pade_sizereg_asyliqSW, & !< Particle size regime boundaries for shortwave liquid asymmetry + !< parameter for Pade interpolation + pade_sizereg_exticeSW, & !< Particle size regime boundaries for shortwave ice extinction + !< coefficient for Pade interpolation + pade_sizereg_ssaiceSW, & !< Particle size regime boundaries for shortwave ice single + !< scattering albedo for Pade interpolation + pade_sizereg_asyiceSW !< Particle size regime boundaries for shortwave ice asymmetry + !< parameter for Pade interpolation real(kind_phys), dimension(:,:,:), allocatable :: & - pade_extliqSW, & ! PADE coefficients for shortwave liquid extinction - pade_ssaliqSW, & ! PADE coefficients for shortwave liquid single scattering albedo - pade_asyliqSW ! PADE coefficients for shortwave liquid asymmetry parameter + pade_extliqSW, & !< PADE coefficients for shortwave liquid extinction + pade_ssaliqSW, & !< PADE coefficients for shortwave liquid single scattering albedo + pade_asyliqSW !< PADE coefficients for shortwave liquid asymmetry parameter real(kind_phys), dimension(:,:,:,:), allocatable :: & - pade_exticeSW, & ! PADE coefficients for shortwave ice extinction - pade_ssaiceSW, & ! PADE coefficients for shortwave ice single scattering albedo - pade_asyiceSW ! PADE coefficients for shortwave ice asymmetry parameter + pade_exticeSW, & !< PADE coefficients for shortwave ice extinction + pade_ssaiceSW, & !< PADE coefficients for shortwave ice single scattering albedo + pade_asyiceSW !< PADE coefficients for shortwave ice asymmetry parameter real(kind_phys) :: & - radliq_lwrSW, & ! Liquid particle size lower bound for LUT interpolation - radliq_uprSW, & ! Liquid particle size upper bound for LUT interpolation - radice_lwrSW, & ! Ice particle size upper bound for LUT interpolation - radice_uprSW ! Ice particle size lower bound for LUT interpolation + radliq_lwrSW, & !< Liquid particle size lower bound for LUT interpolation + radliq_uprSW, & !< Liquid particle size upper bound for LUT interpolation + radice_lwrSW, & !< Ice particle size upper bound for LUT interpolation + radice_uprSW !< Ice particle size lower bound for LUT interpolation ! Parameters used for rain and snow(+groupel) RRTMGP cloud-optics. *NOTE* Same as in RRTMG ! Need to document these magic numbers below. @@ -69,30 +69,31 @@ module rrtmgp_sw_cloud_optics ! ###################################################################################### ! SUBROUTINE sw_cloud_optics_init ! ###################################################################################### +!> subroutine rrtmgp_sw_cloud_optics_init( rrtmgp_root_dir, rrtmgp_sw_file_clouds, & doGP_cldoptics_PADE, doGP_cldoptics_LUT, nrghice, mpicomm, mpirank, mpiroot, & errmsg, errflg) ! Inputs character(len=128),intent(in) :: & - rrtmgp_root_dir, & ! RTE-RRTMGP root directory - rrtmgp_sw_file_clouds ! RRTMGP file containing cloud-optic data + rrtmgp_root_dir, & !< RTE-RRTMGP root directory + rrtmgp_sw_file_clouds !< RRTMGP file containing cloud-optic data logical, intent(in) :: & - doGP_cldoptics_PADE,& ! Use RRTMGP cloud-optics: PADE approximation? - doGP_cldoptics_LUT ! Use RRTMGP cloud-optics: LUTs? + doGP_cldoptics_PADE,& !< Use RRTMGP cloud-optics: PADE approximation? + doGP_cldoptics_LUT !< Use RRTMGP cloud-optics: LUTs? integer, intent(inout) :: & - nrghice ! Number of ice-roughness categories + nrghice !< Number of ice-roughness categories type(MPI_Comm), intent(in) :: & - mpicomm ! MPI communicator + mpicomm !< MPI communicator integer, intent(in) :: & - mpirank, & ! Current MPI rank - mpiroot ! Master MPI rank + mpirank, & !< Current MPI rank + mpiroot !< Master MPI rank ! Outputs character(len=*), intent(out) :: & - errmsg ! CCPP error message + errmsg !< CCPP error message integer, intent(out) :: & - errflg ! CCPP error code + errflg !< CCPP error code ! Local variables integer :: status,ncid,dimid,varID,mpierr diff --git a/physics/Radiation/RRTMGP/rrtmgp_sw_gas_optics.F90 b/physics/Radiation/RRTMGP/rrtmgp_sw_gas_optics.F90 index 3229d2f16..4862acdd1 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_sw_gas_optics.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_sw_gas_optics.F90 @@ -26,54 +26,54 @@ module rrtmgp_sw_gas_optics nmixingfracsSW, nlayersSW, nbndsSW, npairsSW, nminor_absorber_intervals_lowerSW,& nminor_absorber_intervals_upperSW, ncontributors_lowerSW, ncontributors_upperSW integer, dimension(:), allocatable :: & - kminor_start_lowerSW, & ! Starting index in the [1, nContributors] vector for a contributor - ! given by \"minor_gases_lower\" (lower atmosphere) - kminor_start_upperSW ! Starting index in the [1, nContributors] vector for a contributor - ! given by \"minor_gases_upper\" (upper atmosphere) + kminor_start_lowerSW, & !< Starting index in the [1, nContributors] vector for a contributor + !< given by \"minor_gases_lower\" (lower atmosphere) + kminor_start_upperSW !< Starting index in the [1, nContributors] vector for a contributor + !< given by \"minor_gases_upper\" (upper atmosphere) integer, dimension(:,:), allocatable :: & - band2gptSW, & ! Beginning and ending gpoint for each band - minor_limits_gpt_lowerSW, & ! Beginning and ending gpoint for each minor interval in lower atmosphere - minor_limits_gpt_upperSW ! Beginning and ending gpoint for each minor interval in upper atmosphere + band2gptSW, & !< Beginning and ending gpoint for each band + minor_limits_gpt_lowerSW, & !< Beginning and ending gpoint for each minor interval in lower atmosphere + minor_limits_gpt_upperSW !< Beginning and ending gpoint for each minor interval in upper atmosphere integer, dimension(:,:,:), allocatable :: & - key_speciesSW ! Key species pair for each band + key_speciesSW !< Key species pair for each band real(kind_phys) :: & - press_ref_tropSW, & ! Reference pressure separating the lower and upper atmosphere [Pa] - temp_ref_pSW, & ! Standard spectroscopic reference pressure [Pa] - temp_ref_tSW, & ! Standard spectroscopic reference temperature [K] - tsi_defaultSW, & ! - mg_defaultSW, & ! Mean value of Mg2 index over the average solar cycle from the NRLSSI2 model of solar variability - sb_defaultSW ! Mean value of sunspot index over the average solar cycle from the NRLSSI2 model of solar variability + press_ref_tropSW, & !< Reference pressure separating the lower and upper atmosphere [Pa] + temp_ref_pSW, & !< Standard spectroscopic reference pressure [Pa] + temp_ref_tSW, & !< Standard spectroscopic reference temperature [K] + tsi_defaultSW, & !< + mg_defaultSW, & !< Mean value of Mg2 index over the average solar cycle from the NRLSSI2 model of solar variability + sb_defaultSW !< Mean value of sunspot index over the average solar cycle from the NRLSSI2 model of solar variability real(kind_phys), dimension(:), allocatable :: & - press_refSW, & ! Pressures for reference atmosphere; press_ref(# reference layers) [Pa] - temp_refSW, & ! Temperatures for reference atmosphere; temp_ref(# reference layers) [K] - solar_quietSW, & ! Spectrally-dependent quiet sun irradiance from the NRLSSI2 model of solar variability - solar_facularSW, & ! Spectrally-dependent facular term from the NRLSSI2 model of solar variability - solar_sunspotSW ! Spectrally-dependent sunspot term from the NRLSSI2 model of solar variability + press_refSW, & !< Pressures for reference atmosphere; press_ref(# reference layers) [Pa] + temp_refSW, & !< Temperatures for reference atmosphere; temp_ref(# reference layers) [K] + solar_quietSW, & !< Spectrally-dependent quiet sun irradiance from the NRLSSI2 model of solar variability + solar_facularSW, & !< Spectrally-dependent facular term from the NRLSSI2 model of solar variability + solar_sunspotSW !< Spectrally-dependent sunspot term from the NRLSSI2 model of solar variability real(kind_phys), dimension(:,:), allocatable :: & - band_limsSW ! Beginning and ending wavenumber [cm -1] for each band + band_limsSW !< Beginning and ending wavenumber [cm -1] for each band real(kind_phys), dimension(:,:,:), allocatable :: & - vmr_refSW, & ! Volume mixing ratios for reference atmosphere - kminor_lowerSW, & ! (transformed from [nTemp x nEta x nGpt x nAbsorbers] array to - ! [nTemp x nEta x nContributors] array) - kminor_upperSW, & ! (transformed from [nTemp x nEta x nGpt x nAbsorbers] array to - ! [nTemp x nEta x nContributors] array) - rayl_lowerSW, & ! Stored coefficients due to rayleigh scattering contribution - rayl_upperSW ! Stored coefficients due to rayleigh scattering contribution + vmr_refSW, & !< Volume mixing ratios for reference atmosphere + kminor_lowerSW, & !< (transformed from [nTemp x nEta x nGpt x nAbsorbers] array to + !< [nTemp x nEta x nContributors] array) + kminor_upperSW, & !< (transformed from [nTemp x nEta x nGpt x nAbsorbers] array to + !< [nTemp x nEta x nContributors] array) + rayl_lowerSW, & !< Stored coefficients due to rayleigh scattering contribution + rayl_upperSW !< Stored coefficients due to rayleigh scattering contribution real(kind_phys), dimension(:,:,:,:), allocatable :: & - kmajorSW ! Stored absorption coefficients due to major absorbing gases + kmajorSW !< Stored absorption coefficients due to major absorbing gases character(len=32), dimension(:), allocatable :: & - gas_namesSW, & ! Names of absorbing gases - gas_minorSW, & ! Name of absorbing minor gas - identifier_minorSW, & ! Unique string identifying minor gas - minor_gases_lowerSW, & ! Names of minor absorbing gases in lower atmosphere - minor_gases_upperSW, & ! Names of minor absorbing gases in upper atmosphere - scaling_gas_lowerSW, & ! Absorption also depends on the concentration of this gas - scaling_gas_upperSW ! Absorption also depends on the concentration of this gas + gas_namesSW, & !< Names of absorbing gases + gas_minorSW, & !< Name of absorbing minor gas + identifier_minorSW, & !< Unique string identifying minor gas + minor_gases_lowerSW, & !< Names of minor absorbing gases in lower atmosphere + minor_gases_upperSW, & !< Names of minor absorbing gases in upper atmosphere + scaling_gas_lowerSW, & !< Absorption also depends on the concentration of this gas + scaling_gas_upperSW !< Absorption also depends on the concentration of this gas logical(wl), dimension(:), allocatable :: & - minor_scales_with_density_lowerSW, & ! Density scaling is applied to minor absorption coefficients - minor_scales_with_density_upperSW, & ! Density scaling is applied to minor absorption coefficients - scale_by_complement_lowerSW, & ! Absorption is scaled by concentration of scaling_gas (F) or its complement (T) - scale_by_complement_upperSW ! Absorption is scaled by concentration of scaling_gas (F) or its complement (T) + minor_scales_with_density_lowerSW, & !< Density scaling is applied to minor absorption coefficients + minor_scales_with_density_upperSW, & !< Density scaling is applied to minor absorption coefficients + scale_by_complement_lowerSW, & !< Absorption is scaled by concentration of scaling_gas (F) or its complement (T) + scale_by_complement_upperSW !< Absorption is scaled by concentration of scaling_gas (F) or its complement (T) contains !> \section arg_table_rrtmgp_sw_gas_optics_init Argument Table diff --git a/physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 b/physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 index 77691d836..38e250707 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 @@ -26,10 +26,7 @@ module rrtmgp_sw_main contains - ! ######################################################################################### - ! SUBROUTINE rrtmgp_sw_main_init - ! ######################################################################################### -!> \section arg_table_rrtmgp_sw_main_init +!> \section arg_table_rrtmgp_sw_main_init Argument Table !! \htmlinclude rrtmgp_sw_main_init.html !! subroutine rrtmgp_sw_main_init(rrtmgp_root_dir, rrtmgp_sw_file_gas, rrtmgp_sw_file_clouds,& @@ -79,10 +76,7 @@ subroutine rrtmgp_sw_main_init(rrtmgp_root_dir, rrtmgp_sw_file_gas, rrtmgp_sw_fi end subroutine rrtmgp_sw_main_init - ! ######################################################################################### - ! SUBROUTINE rrtmgp_sw_main_run - ! ######################################################################################### -!> \section arg_table_rrtmgp_sw_main_run +!> \section arg_table_rrtmgp_sw_main_run Argument Table !! \htmlinclude rrtmgp_sw_main_run.html !! subroutine rrtmgp_sw_main_run(doSWrad, doSWclrsky, top_at_1, doGP_sgs_cnv, doGP_sgs_pbl, & diff --git a/physics/docs/ccpp_doxyfile b/physics/docs/ccpp_doxyfile index 2dc1ac4de..9d7140566 100644 --- a/physics/docs/ccpp_doxyfile +++ b/physics/docs/ccpp_doxyfile @@ -654,7 +654,7 @@ SHOW_HEADERFILE = YES # the files that are included by a file in the documentation of that file. # The default value is: YES. -SHOW_INCLUDE_FILES = NO +SHOW_INCLUDE_FILES = YES # If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each # grouped member an include statement to the documentation, telling the reader @@ -986,7 +986,6 @@ INPUT = pdftxt/mainpage.txt \ ../SFC_Models \ ../photochem \ ../Radiation \ - ../smoke_dust \ ../hooks \ ../tools \ ../Interstitials @@ -2750,7 +2749,7 @@ DOT_IMAGE_FORMAT = SVG # The default value is: NO. # This tag requires that the tag HAVE_DOT is set to YES. -INTERACTIVE_SVG = NO +INTERACTIVE_SVG = YES # The DOT_PATH tag can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. diff --git a/physics/docs/pdftxt/GFS_RRTMGP.txt b/physics/docs/pdftxt/GFS_RRTMGP.txt index 891dd6565..b5a40df8e 100644 --- a/physics/docs/pdftxt/GFS_RRTMGP.txt +++ b/physics/docs/pdftxt/GFS_RRTMGP.txt @@ -4,11 +4,7 @@ \section des_rrtmgp Description \section intraphysics_rrtmgp Intraphysics Communication - + For RRTMG-Longwave radiation parameterization (\ref arg_table_rrtmg_lw_run) - + For RRTMG-Shortwave radiation parameterization (\ref arg_table_rrtmg_sw_run) \section gen_al_rrtmgp General Algorithm - + \ref gen_lwrad - + \ref gen_swrad */ diff --git a/physics/docs/pdftxt/suite_input.nml.txt b/physics/docs/pdftxt/suite_input.nml.txt index 23558a468..68d10a05f 100644 --- a/physics/docs/pdftxt/suite_input.nml.txt +++ b/physics/docs/pdftxt/suite_input.nml.txt @@ -22,6 +22,7 @@ While there is not a one-to-one correspondence between the namelist and the SDF, show some variables in the namelist that must match the SDF. +
      NML Description
      Option CCPP scheme or interstitial Description Default Value @@ -31,24 +32,6 @@ show some variables in the namelist that must match the SDF.
      ldiag3d see \a GFS_typedefs.F90 flag for 3D diagnostic fields .false.
      qdiag3d see \a GFS_typedefs.F90 flag for 3D tracer diagnostic fields .false.
      lssav see \a GFS_typedefs.F90 flag for storing diagnostics .false. -
      \b Coupling \b parameters -
      cplflx see \a GFS_typedefs.F90 flag for using fluxes provided by an external model .false. -
      cplice see \a GFS_typedefs.F90 flag for ice to atm coupling (use together with cplflx) .false. -
      cplocn2atm see \a GFS_typedefs.F90 flag for turning on the feedback from ocean to atm .true. -
      cplwav see \a GFS_typedefs.F90 flag for using information produced by an external ocean wave model .false. -
      cplwav2atm see \a GFS_typedefs.F90 flag for wave to atm coupling .false. -
      cplaqm see \a GFS_typedefs.F90 flag for AQM to atm coupling .false. -
      cplchm see \a GFS_typedefs.F90 flag for coupled chemistry diagnostics .false. -
      cpllnd see \a GFS_typedefs.F90 -
      cpllnd2atm -
      cpl_imp_mrg -
      cpl_imp_dbg -
      use_cice_alb -
      rrfs_sd -rrfs_smoke_debug -
      lsidea - -
      oz_phys_2015 ozphys_2015 flag for new (2015) ozone physics .false.
      fhcyc gfs_phys_time_vary frequency for surface data cycling in hours 0.0
      use_ufo gfs_phys_time_vary flag for using unfiltered orography surface option .false. @@ -555,7 +538,7 @@ rrfs_smoke_debug
      lsoil lsm_noah number of soil layers 4 lsoil_lsm
      rdlai lsm_ruc flag to read leaf area index from input files .false. -
      ivegsrc lsm_noah, lsm_ruc, \ref noahmpdrv, sfc_diff flag for vegetation type dataset choice: \n +
      ivegsrc lsm_noah, lsm_ruc, noahmpdrv, sfc_diff flag for vegetation type dataset choice: \n
      • 0: USGS
      • 1: IGBP(20 category): IGBP must be selected if NoahMP is used @@ -565,7 +548,7 @@ lsoil_lsm
      • 5: MODIS-RUC (21 category, NOAH WRFv4 only)
      2 -
      isot lsm_noah, lsm_ruc, \ref noahmpdrv flag for soil type dataset choice:\n +
      isot lsm_noah, lsm_ruc, noahmpdrv flag for soil type dataset choice:\n
      • 0: Zobler soil type (9 category)
      • 1: STATSGO soil type (19 category): STATSGO must be selected if NoahMP is used @@ -573,7 +556,7 @@ lsoil_lsm
      0
      exticeden lsm_noah,lsm_ruc flag for calculating frozen precip ice density outside of the LSM .false. -
      iopt_dveg \ref noahmpdrv options for dynamic vegetation \n +
      iopt_dveg noahmpdrv options for dynamic vegetation \n
      • 1: off (use table LAI; use FVEG = SHDFAC from input)
      • 2: on (together with \a iopt_crs = 1) @@ -586,20 +569,20 @@ lsoil_lsm
      • 9: off (use input LAI; use maximum vegetation fraction)
      4 -
      iopt_crs \ref noahmpdrv options for canopy stomatal resistance \n +
      iopt_crs noahmpdrv options for canopy stomatal resistance \n
      • 1: Ball-Berry
      • 2: Jarvis
      1 -
      iopt_btr \ref noahmpdrv options for soil moisture factor for stomatal resistance \n +
      iopt_btr noahmpdrv options for soil moisture factor for stomatal resistance \n
      • 1: Noah (soil moisture)
      • 2: CLM (matric potential)
      • 3: SSIB (matric potential)
      1 -
      iopt_run \ref noahmpdrv options for runoff and groundwater \n +
      iopt_run noahmpdrv options for runoff and groundwater \n
      • 1: TOPMODEL with groundwater (Niu et al. 2007 \cite niu_et_al_2007)
      • 2: TOPMODEL with an equilibrium water table (Niu et al. 2005 \cite niu_et_al_2005) @@ -608,39 +591,39 @@ lsoil_lsm
      • 5: Miguez-macho&Fan groundwater scheme (Miguez-Macho et al. 2007 \cite miguez_et_al_2007; Fan et al. 2007 \cite fan_et_al_2007; needs further testing for public use)
      3 -
      iopt_sfc \ref noahmpdrv options for surface layer drag coeff (CH&CM) \n +
      iopt_sfc noahmpdrv options for surface layer drag coeff (CH&CM) \n
      • 1: m-o
      • 2: original Noah (Chen et al. 1997 \cite chen_et_al_1997)
      • 4: MYNN surface layer scheme
      1 -
      iopt_frz \ref noahmpdrv options for supercooled liquid water (or ice fraction) \n +
      iopt_frz noahmpdrv options for supercooled liquid water (or ice fraction) \n
      • 1: no interation (Niu and Yang (2006) \cite niu_and_yang_2006 )
      • 2: Koren's iteration
      1 -
      iopt_inf \ref noahmpdrv options for frozen soil permeability \n +
      iopt_inf noahmpdrv options for frozen soil permeability \n
      • 1: linear effects, more permeable (Niu and Yang (2006) \cite niu_and_yang_2006)
      • 2: nonlinear effects, less permeable (old)
      1 -
      iopt_rad \ref noahmpdrv options for radiation transfer \n +
      iopt_rad noahmpdrv options for radiation transfer \n
      • 1: modified two-stream (gap = f(solar angle, 3d structure ...)<1-fveg)
      • 2: two-stream applied to grid-cell (gap = 0)
      • 3: two-stream applied to vegetated fraction (gap=1-FVEG)
      3 -
      iopt_alb \ref noahmpdrv options for ground snow surface albedo \n +
      iopt_alb noahmpdrv options for ground snow surface albedo \n
      • 1: BATS
      • 2: CLASS
      2 -
      iopt_snf \ref noahmpdrv options for partitioning precipitation into rainfall and snowfall \n +
      iopt_snf noahmpdrv options for partitioning precipitation into rainfall and snowfall \n
      • 1: Jordan (1991)
      • 2: BATS: when sfctmp < tfrz+2.2 @@ -648,20 +631,20 @@ lsoil_lsm
      • 4: use WRF microphysics output
      1 -
      iopt_tbot \ref noahmpdrv options for lower boundary condition of soil temperature \n +
      iopt_tbot noahmpdrv options for lower boundary condition of soil temperature \n
      • 1: zero heat flux from bottom (zbot and tbot not used)
      • 2: tbot at zbot (8m) read from a file (original Noah)
      2 -
      iopt_stc \ref noahmpdrv options for snow/soil temperature time scheme (only layer 1) \n +
      iopt_stc noahmpdrv options for snow/soil temperature time scheme (only layer 1) \n
      • 1: semi-implicit; flux top boundary condition
      • 2: full implicit (original Noah); temperature top boundary condition
      • 3: same as 1, but fsno for ts calculation (generally improve snow; v3.7)
      1 -
      iopt_trs \ref noahmpdrv options for thermal roughness scheme:\n +
      iopt_trs noahmpdrv options for thermal roughness scheme:\n
      • 1: z0h=z0m
      • 2: canopy based czil @@ -669,30 +652,30 @@ lsoil_lsm
      • 4: kb inversed
      2 -
      iopt_diag \ref noampdrv options for surface 2-m t/q diagnostic approach: \n +
      iopt_diag noampdrv options for surface 2-m t/q diagnostic approach: \n
      • 1: external GFS sfc_diag
      • 2: original NoahMP 2-title
      • 3: NoahMP2-title + internal GFS sfc_diag
      2 -
      mosaic_lu \ref lsm_ruc control for use of fractional landuse in RUC land surface model +
      mosaic_lu lsm_ruc control for use of fractional landuse in RUC land surface model
      • 1: use of fractional landuse in RUC LSM
      0 -
      mosaic_soil \ref lsm_ruc control for use of fractional soil in RUC land surface model +
      mosaic_soil lsm_ruc control for use of fractional soil in RUC land surface model
      • 1: use of fractional soil in RUC LSM
      0 -
      isncond_opt \ref lsm_ruc control for soil thermal conductivity option in RUC land surface model +
      isncond_opt lsm_ruc control for soil thermal conductivity option in RUC land surface model
      • 1: constant
      • 2: Sturm et al.(1997) \cite sturm_1997
      1 -
      isncovr_opt \ref lsm_ruc control for snow cover fraction option in RUC land surface model +
      isncovr_opt lsm_ruc control for snow cover fraction option in RUC land surface model
      • 1: original formulation using threshold snow depth to compute snow fraction
      • 2: Niu-Yang(2007) \cite Niu_2007 @@ -700,13 +683,13 @@ lsoil_lsm
      1
      \b Parameters \b related \b to \b other \b surface \b scheme \b options -
      lkm \ref clm_lake 0: no lake; 1: lake; 2: lake&nsst 0 -
      iopt_lake \ref clm_lake 1: flake; 2: CLM lake 2 -
      lakedepth_threshold \ref clm_lake lakedepth must be greater than this value to enable a lake model 1.0 -
      lakefrac_threshold \ref clm_lake lakefrac must be greater than this value to enable a lake model 0.0 -
      use_lake2m \ref clm_lake use 2m T&Q from CLM lake model .false. -clm_debug_print -clm_lake_debug +
      lkm clm_lake 0: no lake; 1: lake; 2: lake&nsst 0 +
      iopt_lake clm_lake 1: flake; 2: CLM lake 2 +
      lakedepth_threshold clm_lake lakedepth must be greater than this value to enable a lake model 1.0 +
      lakefrac_threshold clm_lake lakefrac must be greater than this value to enable a lake model 0.0 +
      use_lake2m clm_lake use 2m T&Q from CLM lake model .false. +
      clm_debug_print enables prints in clm_lake .false. +
      clm_lake_debug verbose debugging in clm_lake .false.
      nstf_name(5) sfc_nst NSST related paramters:\n
      • nstf_name(1): 0=NSST off, 1= NSST on but uncoupled, 2= NSST on and coupled @@ -757,13 +740,12 @@ clm_lake_debug
      fscav_aero cs_conv,cs_conv_pre,samfshalcnv,samfdeepcnv, samfaerosols,cu_gf_driver aerosol scavenging factors
      lightning_threat maximum_hourly_diagnostics report lightning threat indices .false.
      do_ccpp_suite_sim GFS_ccpp_suite_sim_pre, ccpp_suite_simulator CCPP suite simulator .false. -
      fh_dfi_radar begin&end of four timespans over which radar_tten is applied -2e10 -
      radar_tten_limits(2) radar_tten values outside this range (min,max) are discarded -
      do_cap_suppress set .true. to turn on convection suppression in Grell-Freitas scheme during limited intervals when fh_dfi_radar is enabled .true. +
      fh_dfi_radar GFS_MP_generic_post, cu_gf_driver, cu_c3_driver begin&end of four timespans over which radar_tten is applied -2e10 +
      radar_tten_limits(2) GFS_MP_generic_post radar_tten values outside this range (min,max) are discarded +
      do_cap_suppress cu_gf_driver, cu_c3_driver set .true. to turn on convection suppression in Grell-Freitas scheme during limited intervals when fh_dfi_radar is enabled .true. iccn -
      kice number of layers in ice 2 -
      lrefres flag for radar reflectivity in restart file +
      kice sfc_sice number of layers in ice 2 +
      lrefres flag for radar reflectivity in restart file .false.
      - */ diff --git a/physics/photochem/module_ozphys.F90 b/physics/photochem/module_ozphys.F90 index fcc5ac7ad..99f281daa 100644 --- a/physics/photochem/module_ozphys.F90 +++ b/physics/photochem/module_ozphys.F90 @@ -45,14 +45,8 @@ module module_ozphys public ty_ozphys -! ######################################################################################### -!> \section arg_table_ty_ozphys Argument Table -!! \htmlinclude ty_ozphys.html -!! !> Derived type containing data and procedures needed by ozone photochemistry parameterization !! *Note* All data field are ordered from surface-to-toa. -!! -! ######################################################################################### type ty_ozphys ! Prognostic ozone. integer :: nlat !< Number of latitudes. From 0e86a0ac0a2aebde405dc43660b49654ad75a673 Mon Sep 17 00:00:00 2001 From: Man Zhang Date: Thu, 27 Jun 2024 14:21:31 -0600 Subject: [PATCH 08/29] save scidoc progress --- physics/GWD/ugwpv1_gsldrag.F90 | 2 +- .../UFS_SCM_NEPTUNE/GFS_GWD_generic_pre.F90 | 1 - .../UFS_SCM_NEPTUNE/GFS_MP_generic_post.F90 | 6 +- .../UFS_SCM_NEPTUNE/GFS_radiation_surface.F90 | 2 +- .../UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 | 443 +++++++++--------- .../GFS_rrtmgp_cloud_overlap.F90 | 87 ++-- .../UFS_SCM_NEPTUNE/GFS_rrtmgp_post.F90 | 136 +++--- .../UFS_SCM_NEPTUNE/GFS_rrtmgp_setup.F90 | 16 +- .../UFS_SCM_NEPTUNE/GFS_stochastics.F90 | 5 +- .../RRTMGP/rrtmgp_lw_cloud_optics.F90 | 4 +- physics/docs/library.bib | 31 +- 11 files changed, 356 insertions(+), 377 deletions(-) diff --git a/physics/GWD/ugwpv1_gsldrag.F90 b/physics/GWD/ugwpv1_gsldrag.F90 index 992a0854d..8c931bb3e 100644 --- a/physics/GWD/ugwpv1_gsldrag.F90 +++ b/physics/GWD/ugwpv1_gsldrag.F90 @@ -291,7 +291,7 @@ end subroutine ugwpv1_gsldrag_finalize !>@brief These subroutines and modules execute the CIRES UGWP Version 0 !>\defgroup ugwpv1_gsldrag_run Unified Gravity Wave Physics General Algorithm !> @{ -!! The physics of NGWs in the UGWP framework (Yudin et al. 2018 \cite yudin_et_al_2018) is represented by four GW-solvers, which is introduced in Lindzen (1981) \cite lindzen_1981, Hines (1997) \cite hines_1997, Alexander and Dunkerton (1999) \cite alexander_and_dunkerton_1999, and Scinocca (2003) \cite scinocca_2003. The major modification of these GW solvers is represented by the addition of the background dissipation of temperature and winds to the saturation criteria for wave breaking. This feature is important in the mesosphere and thermosphere for WAM applications and it considers appropriate scale-dependent dissipation of waves near the model top lid providing the momentum and energy conservation in the vertical column physics (Shaw and Shepherd 2009 \cite shaw_and_shepherd_2009). In the UGWP-v0, the modification of Scinocca (2003) \cite scinocca_2003 scheme for NGWs with non-hydrostatic and rotational effects for GW propagations and background dissipation is represented by the subroutine \ref fv3_ugwp_solv2_v0. In the next release of UGWP, additional GW-solvers will be implemented along with physics-based triggering of waves and stochastic approaches for selection of GW modes characterized by horizontal phase velocities, azimuthal directions and magnitude of the vertical momentum flux (VMF). +!! The physics of NGWs in the UGWP framework (Yudin et al. 2018 \cite yudin_et_al_2018) is represented by four GW-solvers, which is introduced in Lindzen (1981) \cite lindzen_1981, Hines (1997) \cite hines_1997, Alexander and Dunkerton (1999) \cite alexander_and_dunkerton_1999, and Scinocca (2003) \cite scinocca_2003. The major modification of these GW solvers is represented by the addition of the background dissipation of temperature and winds to the saturation criteria for wave breaking. This feature is important in the mesosphere and thermosphere for WAM applications and it considers appropriate scale-dependent dissipation of waves near the model top lid providing the momentum and energy conservation in the vertical column physics (Shaw and Shepherd 2009 \cite shaw_and_shepherd_2009). In the UGWP-v0, the modification of Scinocca (2003) \cite scinocca_2003 scheme for NGWs with non-hydrostatic and rotational effects for GW propagations and background dissipation is represented by the subroutine fv3_ugwp_solv2_v0. In the next release of UGWP, additional GW-solvers will be implemented along with physics-based triggering of waves and stochastic approaches for selection of GW modes characterized by horizontal phase velocities, azimuthal directions and magnitude of the vertical momentum flux (VMF). !! !! In UGWP-v0, the specification for the VMF function is adopted from the GEOS-5 global atmosphere model of GMAO NASA/GSFC, as described in Molod et al. (2015) \cite molod_et_al_2015 and employed in the MERRRA-2 reanalysis (Gelaro et al., 2017 \cite gelaro_et_al_2017). The Fortran subroutine \ref slat_geos5_tamp describes the latitudinal shape of VMF-function as displayed in Figure 3 of Molod et al. (2015) \cite molod_et_al_2015. It shows that the enhanced values of VMF in the equatorial region gives opportunity to simulate the QBO-like oscillations in the equatorial zonal winds and lead to more realistic simulations of the equatorial dynamics in GEOS-5 operational and MERRA-2 reanalysis products. For the first vertically extended version of FV3GFS in the stratosphere and mesosphere, this simplified function of VMF allows us to tune the model climate and to evaluate multi-year simulations of FV3GFS with the MERRA-2 and ERA-5 reanalysis products, along with temperature, ozone, and water vapor observations of current satellite missions. After delivery of the UGWP-code, the EMC group developed and tested approach to modulate the zonal mean NGW forcing by 3D-distributions of the total precipitation as a proxy for the excitation of NGWs by convection and the vertically-integrated (surface - tropopause) Turbulent Kinetic Energy (TKE). The verification scores with updated NGW forcing, as reported elsewhere by EMC researchers, display noticeable improvements in the forecast scores produced by FV3GFS configuration extended into the mesosphere. !! diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_pre.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_pre.F90 index 51a76c989..b91e36634 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_pre.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_pre.F90 @@ -9,7 +9,6 @@ module GFS_GWD_generic_pre !> \section arg_table_GFS_GWD_generic_pre_run Argument Table !! \htmlinclude GFS_GWD_generic_pre_run.html !! -!! \section gfs_gwd_ge_pre_ga General Algorithm subroutine GFS_GWD_generic_pre_run( & & im, levs, nmtvr, mntvar, & & oc, oa4, clx, theta, & diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_MP_generic_post.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_MP_generic_post.F90 index d9d30fb90..09f7433ee 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_MP_generic_post.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_MP_generic_post.F90 @@ -8,16 +8,13 @@ module GFS_MP_generic_post contains -!>\defgroup gfs_calpreciptype GFS Precipitation Type Diagnostics Module -!! \brief If dominant precip type is requested (i.e., Zhao-Carr MP scheme), 4 more algorithms in calpreciptype() +!> If dominant precip type is requested (i.e., Zhao-Carr MP scheme), 4 more algorithms in calpreciptype() !! will be called. the tallies are then summed in calwxt_dominant(). For GFDL cloud MP scheme, determine convective !! rain/snow by surface temperature; and determine explicit rain/snow by rain/snow coming out directly from MP. !! !> \section arg_table_GFS_MP_generic_post_run Argument Table !! \htmlinclude GFS_MP_generic_post_run.html !! -!> \section gfs_mp_gen GFS MP Generic Post General Algorithm -!> @{ subroutine GFS_MP_generic_post_run( & im, levs, kdt, nrcm, nncl, ntcw, ntrac, imp_physics, imp_physics_gfdl, imp_physics_thompson, imp_physics_nssl, & imp_physics_mg, imp_physics_fer_hires, cal_pre, cplflx, cplchm, cpllnd, progsigma, con_g, rhowater, rainmin, dtf, & @@ -546,6 +543,5 @@ subroutine GFS_MP_generic_post_run( endif end subroutine GFS_MP_generic_post_run -!> @} end module GFS_MP_generic_post diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.F90 index c2af54b69..03ca29b56 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.F90 @@ -9,7 +9,7 @@ module GFS_radiation_surface contains -!! This module contains calls to module_radiation_surface::setemis() to set up +!> This module contains calls to module_radiation_surface::setemis() to set up !! surface emissivity for LW radiation and to module_radiation_surface::setalb() !! to set up surface albedo for SW radiation. !> \section arg_table_GFS_radiation_surface_init Argument Table diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 index b089398e2..b1fb9cac2 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 @@ -17,12 +17,12 @@ module GFS_rrtmgp_cloud_mp real (kind_phys), parameter :: & cld_limit_lower = 0.001, & cld_limit_ovcst = 1.0 - 1.0e-8, & - reliq_def = 10.0 , & ! Default liq radius to 10 micron (used when effr_in=F) - reice_def = 50.0, & ! Default ice radius to 50 micron (used when effr_in=F) - rerain_def = 1000.0, & ! Default rain radius to 1000 micron (used when effr_in=F) - resnow_def = 250.0, & ! Default snow radius to 250 micron (used when effr_in=F) - reice_min = 10.0, & ! Minimum ice size allowed by GFDL MP scheme - reice_max = 150.0 ! Maximum ice size allowed by GFDL MP scheme + reliq_def = 10.0 , & !< Default liq radius to 10 micron (used when effr_in=F) + reice_def = 50.0, & !< Default ice radius to 50 micron (used when effr_in=F) + rerain_def = 1000.0, & !< Default rain radius to 1000 micron (used when effr_in=F) + resnow_def = 250.0, & !< Default snow radius to 250 micron (used when effr_in=F) + reice_min = 10.0, & !< Minimum ice size allowed by GFDL MP scheme + reice_max = 150.0 !< Maximum ice size allowed by GFDL MP scheme public GFS_rrtmgp_cloud_mp_init, GFS_rrtmgp_cloud_mp_run, GFS_rrtmgp_cloud_mp_finalize @@ -51,109 +51,109 @@ subroutine GFS_rrtmgp_cloud_mp_run(nCol, nLev, nTracers, ncnd, i_cldliq, i_cldic ! Inputs integer, intent(in) :: & - nCol, & ! Number of horizontal grid points - nLev, & ! Number of vertical layers - ncnd, & ! Number of cloud condensation types. - nTracers, & ! Number of tracers from model. - i_cldliq, & ! Index into tracer array for cloud liquid. - i_cldice, & ! Index into tracer array for cloud ice. - i_cldrain, & ! Index into tracer array for cloud rain. - i_cldsnow, & ! Index into tracer array for cloud snow. - i_cldgrpl, & ! Index into tracer array for cloud groupel. - i_cldtot, & ! Index into tracer array for cloud total amount. - i_cldliq_nc, & ! cloud liquid number concentration. - i_cldice_nc, & ! cloud ice number concentration. - i_twa, & ! water friendly aerosol. - imfdeepcnv, & ! Choice of mass-flux deep convection scheme - imfdeepcnv_gf, & ! Flag for Grell-Freitas deep convection scheme - imfdeepcnv_samf, & ! Flag for scale awware mass flux convection scheme - kdt, & ! Current forecast iteration - imp_physics, & ! Choice of microphysics scheme - imp_physics_thompson, & ! Choice of Thompson - imp_physics_gfdl, & ! Choice of GFDL - icloud ! Control for cloud are fraction option + nCol, & !< Number of horizontal grid points + nLev, & !< Number of vertical layers + ncnd, & !< Number of cloud condensation types. + nTracers, & !< Number of tracers from model. + i_cldliq, & !< Index into tracer array for cloud liquid. + i_cldice, & !< Index into tracer array for cloud ice. + i_cldrain, & !< Index into tracer array for cloud rain. + i_cldsnow, & !< Index into tracer array for cloud snow. + i_cldgrpl, & !< Index into tracer array for cloud groupel. + i_cldtot, & !< Index into tracer array for cloud total amount. + i_cldliq_nc, & !< cloud liquid number concentration. + i_cldice_nc, & !< cloud ice number concentration. + i_twa, & !< water friendly aerosol. + imfdeepcnv, & !< Choice of mass-flux deep convection scheme + imfdeepcnv_gf, & !< Flag for Grell-Freitas deep convection scheme + imfdeepcnv_samf, & !< Flag for scale awware mass flux convection scheme + kdt, & !< Current forecast iteration + imp_physics, & !< Choice of microphysics scheme + imp_physics_thompson, & !< Choice of Thompson + imp_physics_gfdl, & !< Choice of GFDL + icloud !< Control for cloud are fraction option logical, intent(in) :: & - doSWrad, & ! Call SW radiation? - doLWrad, & ! Call LW radiation? - effr_in, & ! Provide hydrometeor radii from macrophysics? - lmfshal, & ! Flag for mass-flux shallow convection scheme used by Xu-Randall - ltaerosol, & ! Flag for aerosol option - mraerosol, & ! Flag for aerosol option - lgfdlmprad, & ! Flag for GFDLMP radiation interaction - do_mynnedmf, & ! Flag to activate MYNN-EDMF - uni_cld, & ! Flag for unified cloud scheme - lmfdeep2, & ! Flag for mass flux deep convection - doGP_cldoptics_LUT, & ! Flag to do GP cloud-optics (LUTs) - doGP_cldoptics_PADE, & ! (PADE approximation) - doGP_smearclds ! If true, add sgs clouds to gridmean clouds + doSWrad, & !< Call SW radiation? + doLWrad, & !< Call LW radiation? + effr_in, & !< Provide hydrometeor radii from macrophysics? + lmfshal, & !< Flag for mass-flux shallow convection scheme used by Xu-Randall + ltaerosol, & !< Flag for aerosol option + mraerosol, & !< Flag for aerosol option + lgfdlmprad, & !< Flag for GFDLMP radiation interaction + do_mynnedmf, & !< Flag to activate MYNN-EDMF + uni_cld, & !< Flag for unified cloud scheme + lmfdeep2, & !< Flag for mass flux deep convection + doGP_cldoptics_LUT, & !< Flag to do GP cloud-optics (LUTs) + doGP_cldoptics_PADE, & !< (PADE approximation) + doGP_smearclds !< If true, add sgs clouds to gridmean clouds real(kind_phys), intent(in) :: & - con_g, & ! Physical constant: gravitational constant - con_rd, & ! Physical constant: gas-constant for dry air - con_ttp, & ! Triple point temperature of water (K) - con_eps ! Physical constant: gas constant air / gas constant H2O + con_g, & !< Physical constant: gravitational constant + con_rd, & !< Physical constant: gas-constant for dry air + con_ttp, & !< Triple point temperature of water (K) + con_eps !< Physical constant: gas constant air / gas constant H2O real(kind_phys), dimension(:), intent(in) :: & - lsmask, & ! Land/Sea mask - xlon, & ! Longitude - xlat, & ! Latitude - dx ! Characteristic grid lengthscale (m) + lsmask, & !< Land/Sea mask + xlon, & !< Longitude + xlat, & !< Latitude + dx !< Characteristic grid lengthscale (m) real(kind_phys), dimension(:,:), intent(in) :: & - tv_lay, & ! Virtual temperature (K) - t_lay, & ! Temperature (K) - qs_lay, & ! Saturation vapor pressure (Pa) - q_lay, & ! water-vapor mixing ratio (kg/kg) - relhum, & ! Relative humidity - p_lay, & ! Pressure at model-layers (Pa) - cnv_mixratio, & ! Convective cloud mixing-ratio (kg/kg) - qci_conv, & ! Convective cloud condesate after rainout (kg/kg) - deltaZ, & ! Layer-thickness (m) - deltaZc, & ! Layer-thickness, from layer centers (m) - deltaP, & ! Layer-thickness (Pa) - qc_mynn, & ! - qi_mynn, & ! - cld_pbl_frac ! + tv_lay, & !< Virtual temperature (K) + t_lay, & !< Temperature (K) + qs_lay, & !< Saturation vapor pressure (Pa) + q_lay, & !< water-vapor mixing ratio (kg/kg) + relhum, & !< Relative humidity + p_lay, & !< Pressure at model-layers (Pa) + cnv_mixratio, & !< Convective cloud mixing-ratio (kg/kg) + qci_conv, & !< Convective cloud condesate after rainout (kg/kg) + deltaZ, & !< Layer-thickness (m) + deltaZc, & !< Layer-thickness, from layer centers (m) + deltaP, & !< Layer-thickness (Pa) + qc_mynn, & !< + qi_mynn, & !< + cld_pbl_frac !< real(kind_phys), dimension(:,:), intent(inout) :: & - effrin_cldliq, & ! Effective radius for stratiform liquid cloud-particles (microns) - effrin_cldice, & ! Effective radius for stratiform ice cloud-particles (microns) - effrin_cldsnow ! Effective radius for stratiform snow cloud-particles (microns) + effrin_cldliq, & !< Effective radius for stratiform liquid cloud-particles (microns) + effrin_cldice, & !< Effective radius for stratiform ice cloud-particles (microns) + effrin_cldsnow !< Effective radius for stratiform snow cloud-particles (microns) real(kind_phys), dimension(:,:), intent(in) :: & - effrin_cldrain ! Effective radius for stratiform rain cloud-particles (microns) + effrin_cldrain !< Effective radius for stratiform rain cloud-particles (microns) real(kind_phys), dimension(:,:), intent(in) :: & - p_lev ! Pressure at model-level interfaces (Pa) + p_lev !< Pressure at model-level interfaces (Pa) real(kind_phys), dimension(:,:,:),intent(in) :: & - tracer ! Cloud condensate amount in layer by type () + tracer !< Cloud condensate amount in layer by type () ! Outputs real(kind_phys), dimension(:), intent(inout) :: & - lwp_ex, & ! Total liquid water path from explicit microphysics - iwp_ex, & ! Total ice water path from explicit microphysics - lwp_fc, & ! Total liquid water path from cloud fraction scheme - iwp_fc ! Total ice water path from cloud fraction scheme + lwp_ex, & !< Total liquid water path from explicit microphysics + iwp_ex, & !< Total ice water path from explicit microphysics + lwp_fc, & !< Total liquid water path from cloud fraction scheme + iwp_fc !< Total ice water path from cloud fraction scheme real(kind_phys), dimension(:), intent(out) :: & - cldfra2d ! Instantaneous 2D (max-in-column) cloud fraction + cldfra2d !< Instantaneous 2D (max-in-column) cloud fraction real(kind_phys), dimension(:,:),intent(inout) :: & - cld_frac, & ! Cloud-fraction for stratiform clouds - cld_lwp, & ! Water path for stratiform liquid cloud-particles - cld_reliq, & ! Effective radius for stratiform liquid cloud-particles - cld_iwp, & ! Water path for stratiform ice cloud-particles - cld_reice, & ! Effective radius for stratiform ice cloud-particles - cld_swp, & ! Water path for snow hydrometeors - cld_resnow, & ! Effective radius for snow hydrometeors - cld_rwp, & ! Water path for rain hydrometeors - cld_rerain, & ! Effective radius for rain hydrometeors - precip_frac, & ! Precipitation fraction - cld_cnv_frac, & ! Cloud-fraction for convective clouds - cld_cnv_lwp, & ! Water path for convective liquid cloud-particles - cld_cnv_reliq, & ! Effective radius for convective liquid cloud-particles - cld_cnv_iwp, & ! Water path for convective ice cloud-particles - cld_cnv_reice, & ! Effective radius for convective ice cloud-particles - cld_pbl_lwp, & ! Water path for SGS PBL liquid cloud-particles - cld_pbl_reliq, & ! Effective radius for SGS PBL liquid cloud-particles - cld_pbl_iwp, & ! Water path for SGS PBL ice cloud-particles - cld_pbl_reice ! Effective radius for SGS PBL ice cloud-particles + cld_frac, & !< Cloud-fraction for stratiform clouds + cld_lwp, & !< Water path for stratiform liquid cloud-particles + cld_reliq, & !< Effective radius for stratiform liquid cloud-particles + cld_iwp, & !< Water path for stratiform ice cloud-particles + cld_reice, & !< Effective radius for stratiform ice cloud-particles + cld_swp, & !< Water path for snow hydrometeors + cld_resnow, & !< Effective radius for snow hydrometeors + cld_rwp, & !< Water path for rain hydrometeors + cld_rerain, & !< Effective radius for rain hydrometeors + precip_frac, & !< Precipitation fraction + cld_cnv_frac, & !< Cloud-fraction for convective clouds + cld_cnv_lwp, & !< Water path for convective liquid cloud-particles + cld_cnv_reliq, & !< Effective radius for convective liquid cloud-particles + cld_cnv_iwp, & !< Water path for convective ice cloud-particles + cld_cnv_reice, & !< Effective radius for convective ice cloud-particles + cld_pbl_lwp, & !< Water path for SGS PBL liquid cloud-particles + cld_pbl_reliq, & !< Effective radius for SGS PBL liquid cloud-particles + cld_pbl_iwp, & !< Water path for SGS PBL ice cloud-particles + cld_pbl_reice !< Effective radius for SGS PBL ice cloud-particles character(len=*), intent(out) :: & - errmsg ! Error message + errmsg !< Error message integer, intent(out) :: & - errflg ! Error flag + errflg !< Error flag ! Local integer :: iCol, iLay @@ -315,7 +315,6 @@ end subroutine GFS_rrtmgp_cloud_mp_run !! Xu-Randall? Xu-Randall is consistent with the Thompson MP scheme, but !! not GFDL-EMC) !! -!! \section cloud_mp_GF_gen General Algorithm subroutine cloud_mp_GF(nCol, nLev, lsmask, t_lay, p_lev, p_lay, qs_lay, relhum, & qci_conv, con_ttp, con_g, alpha0, cld_cnv_lwp, cld_cnv_reliq, cld_cnv_iwp, & cld_cnv_reice, cld_cnv_frac) @@ -323,28 +322,28 @@ subroutine cloud_mp_GF(nCol, nLev, lsmask, t_lay, p_lev, p_lay, qs_lay, relhum, ! Inputs integer, intent(in) :: & - nCol, & ! Number of horizontal grid points - nLev ! Number of vertical layers + nCol, & !< Number of horizontal grid points + nLev !< Number of vertical layers real(kind_phys), dimension(:), intent(in) :: & - lsmask ! Land/Sea mask + lsmask !< Land/Sea mask real(kind_phys), intent(in) :: & - con_g, & ! Physical constant: gravitational constant - con_ttp, & ! Triple point temperature of water (K) - alpha0 ! + con_g, & !< Physical constant: gravitational constant + con_ttp, & !< Triple point temperature of water (K) + alpha0 !< real(kind_phys), dimension(:,:),intent(in) :: & - t_lay, & ! Temperature at layer centers (K) - p_lev, & ! Pressure at layer interfaces (Pa) - p_lay, & ! - qs_lay, & ! - relhum, & ! - qci_conv ! + t_lay, & !< Temperature at layer centers (K) + p_lev, & !< Pressure at layer interfaces (Pa) + p_lay, & !< + qs_lay, & !< + relhum, & !< + qci_conv !< ! Outputs real(kind_phys), dimension(:,:),intent(inout) :: & - cld_cnv_lwp, & ! Convective cloud liquid water path - cld_cnv_reliq, & ! Convective cloud liquid effective radius - cld_cnv_iwp, & ! Convective cloud ice water path - cld_cnv_reice, & ! Convective cloud ice effecive radius - cld_cnv_frac ! Convective cloud-fraction (1) + cld_cnv_lwp, & !< Convective cloud liquid water path + cld_cnv_reliq, & !< Convective cloud liquid effective radius + cld_cnv_iwp, & !< Convective cloud ice water path + cld_cnv_reice, & !< Convective cloud ice effecive radius + cld_cnv_frac !< Convective cloud-fraction (1) ! Local integer :: iCol, iLay real(kind_phys) :: tem1, deltaP, clwc, qc, qi @@ -389,7 +388,6 @@ end subroutine cloud_mp_GF !! - The liquid and ice cloud effective particle sizes are assigned reference values*. !! *TODO* Find references, include DOIs, parameterize magic numbers, etc... !! -!! \section cloud_mp_MYNN_gen General Algorithm subroutine cloud_mp_MYNN(nCol, nLev, lsmask, t_lay, p_lev, p_lay, qs_lay, relhum, & qc_mynn, qi_mynn, con_ttp, con_g, cld_pbl_lwp, cld_pbl_reliq, cld_pbl_iwp, & cld_pbl_reice, cld_pbl_frac) @@ -397,28 +395,28 @@ subroutine cloud_mp_MYNN(nCol, nLev, lsmask, t_lay, p_lev, p_lay, qs_lay, relhum ! Inputs integer, intent(in) :: & - nCol, & ! Number of horizontal grid points - nLev ! Number of vertical layers + nCol, & !< Number of horizontal grid points + nLev !< Number of vertical layers real(kind_phys), dimension(:), intent(in) :: & - lsmask ! Land/Sea mask + lsmask !< Land/Sea mask real(kind_phys), intent(in) :: & - con_g, & ! Physical constant: gravitational constant - con_ttp ! Triple point temperature of water (K) + con_g, & !< Physical constant: gravitational constant + con_ttp !< Triple point temperature of water (K) real(kind_phys), dimension(:,:),intent(in) :: & - t_lay, & ! Temperature at layer centers (K) - p_lev, & ! Pressure at layer interfaces (Pa) - p_lay, & ! - qs_lay, & ! - relhum, & ! - qc_mynn, & ! Liquid cloud mixing-ratio (MYNN PBL cloud) - qi_mynn, & ! Ice cloud mixing-ratio (MYNN PBL cloud) - cld_pbl_frac ! Cloud-fraction (MYNN PBL cloud) + t_lay, & !< Temperature at layer centers (K) + p_lev, & !< Pressure at layer interfaces (Pa) + p_lay, & !< + qs_lay, & !< + relhum, & !< + qc_mynn, & !< Liquid cloud mixing-ratio (MYNN PBL cloud) + qi_mynn, & !< Ice cloud mixing-ratio (MYNN PBL cloud) + cld_pbl_frac !< Cloud-fraction (MYNN PBL cloud) ! Outputs real(kind_phys), dimension(:,:),intent(inout) :: & - cld_pbl_lwp, & ! Convective cloud liquid water path - cld_pbl_reliq, & ! Convective cloud liquid effective radius - cld_pbl_iwp, & ! Convective cloud ice water path - cld_pbl_reice ! Convective cloud ice effecive radius + cld_pbl_lwp, & !< Convective cloud liquid water path + cld_pbl_reliq, & !< Convective cloud liquid effective radius + cld_pbl_iwp, & !< Convective cloud ice water path + cld_pbl_reice !< Convective cloud ice effecive radius ! Local integer :: iCol, iLay @@ -462,7 +460,6 @@ end subroutine cloud_mp_MYNN !! - The convective cloud-fraction is computed using Xu-Randall (1996). !! (DJS asks: Does the SAMF scheme produce a cloud-fraction?) !! -!! \section cloud_mp_SAMF_gen General Algorithm subroutine cloud_mp_SAMF(nCol, nLev, t_lay, p_lev, p_lay, qs_lay, relhum, & cnv_mixratio, con_ttp, con_g, alpha0, cld_cnv_lwp, cld_cnv_reliq, cld_cnv_iwp, & cld_cnv_reice, cld_cnv_frac) @@ -470,26 +467,26 @@ subroutine cloud_mp_SAMF(nCol, nLev, t_lay, p_lev, p_lay, qs_lay, relhum, ! Inputs integer, intent(in) :: & - nCol, & ! Number of horizontal grid points - nLev ! Number of vertical layers + nCol, & !< Number of horizontal grid points + nLev !< Number of vertical layers real(kind_phys), intent(in) :: & - con_g, & ! Physical constant: gravity (m s-2) - con_ttp, & ! Triple point temperature of water (K) - alpha0 ! + con_g, & !< Physical constant: gravity (m s-2) + con_ttp, & !< Triple point temperature of water (K) + alpha0 !< real(kind_phys), dimension(:,:),intent(in) :: & - t_lay, & ! Temperature at layer-centers (K) - p_lev, & ! Pressure at layer-interfaces (Pa) - p_lay, & ! Presure at layer-centers (Pa) - qs_lay, & ! Specific-humidity at layer-centers (kg/kg) - relhum, & ! Relative-humidity (1) - cnv_mixratio ! Convective cloud mixing-ratio (kg/kg) + t_lay, & !< Temperature at layer-centers (K) + p_lev, & !< Pressure at layer-interfaces (Pa) + p_lay, & !< Presure at layer-centers (Pa) + qs_lay, & !< Specific-humidity at layer-centers (kg/kg) + relhum, & !< Relative-humidity (1) + cnv_mixratio !< Convective cloud mixing-ratio (kg/kg) ! Outputs real(kind_phys), dimension(:,:),intent(inout) :: & - cld_cnv_lwp, & ! Convective cloud liquid water path - cld_cnv_reliq, & ! Convective cloud liquid effective radius - cld_cnv_iwp, & ! Convective cloud ice water path - cld_cnv_reice, & ! Convective cloud ice effecive radius - cld_cnv_frac ! Convective cloud-fraction + cld_cnv_lwp, & !< Convective cloud liquid water path + cld_cnv_reliq, & !< Convective cloud liquid effective radius + cld_cnv_iwp, & !< Convective cloud ice water path + cld_cnv_reice, & !< Convective cloud ice effecive radius + cld_cnv_frac !< Convective cloud-fraction ! Local integer :: iCol, iLay real(kind_phys) :: tem0, tem1, deltaP, clwc @@ -519,7 +516,6 @@ end subroutine cloud_mp_SAMF !! - "unified cloud" implies that the cloud-fraction is PROVIDED. !! - The cloud water path is computed for all provided cloud mixing-ratios and hydrometeors. !! - If particle sizes are provided, they are used. If not, default values are assigned. -!! \section cloud_mp_uni_gen General Algorithm subroutine cloud_mp_uni(nCol, nLev, nTracers, ncnd, i_cldliq, i_cldice, i_cldrain, & i_cldsnow, i_cldgrpl, i_cldtot, effr_in, kdt, lsmask, p_lev, p_lay, t_lay, tv_lay,& effrin_cldliq, effrin_cldice, effrin_cldsnow, tracer, con_g, con_rd, con_ttp, & @@ -529,50 +525,50 @@ subroutine cloud_mp_uni(nCol, nLev, nTracers, ncnd, i_cldliq, i_cldice, i_cldrai ! Inputs integer, intent(in) :: & - nCol, & ! Number of horizontal grid points - nLev, & ! Number of vertical layers - ncnd, & ! Number of cloud condensation types. - nTracers, & ! Number of tracers from model. - i_cldliq, & ! Index into tracer array for cloud liquid. - i_cldice, & ! Index into tracer array for cloud ice. - i_cldrain, & ! Index into tracer array for cloud rain. - i_cldsnow, & ! Index into tracer array for cloud snow. - i_cldgrpl, & ! Index into tracer array for cloud groupel. - i_cldtot, & ! Index into tracer array for cloud total amount. + nCol, & !< Number of horizontal grid points + nLev, & !< Number of vertical layers + ncnd, & !< Number of cloud condensation types. + nTracers, & !< Number of tracers from model. + i_cldliq, & !< Index into tracer array for cloud liquid. + i_cldice, & !< Index into tracer array for cloud ice. + i_cldrain, & !< Index into tracer array for cloud rain. + i_cldsnow, & !< Index into tracer array for cloud snow. + i_cldgrpl, & !< Index into tracer array for cloud groupel. + i_cldtot, & !< Index into tracer array for cloud total amount. kdt logical, intent(in) :: & - effr_in ! Provide hydrometeor radii from macrophysics? + effr_in !< Provide hydrometeor radii from macrophysics? real(kind_phys), intent(in) :: & - con_g, & ! Physical constant: gravitational constant - con_ttp, & ! Triple point temperature of water (K) - con_rd ! Physical constant: gas-constant for dry air + con_g, & !< Physical constant: gravitational constant + con_ttp, & !< Triple point temperature of water (K) + con_rd !< Physical constant: gas-constant for dry air real(kind_phys), dimension(:), intent(in) :: & lsmask real(kind_phys), dimension(:,:), intent(in) :: & - t_lay, & ! Temperature at model-layers (K) - tv_lay, & ! Virtual temperature (K) - p_lay, & ! Pressure at model-layers (Pa) - cld_frac, & ! Total cloud fraction - effrin_cldliq, & ! Effective radius for liquid cloud-particles (microns) - effrin_cldice, & ! Effective radius for ice cloud-particles (microns) - effrin_cldsnow ! Effective radius for snow cloud-particles (microns) + t_lay, & !< Temperature at model-layers (K) + tv_lay, & !< Virtual temperature (K) + p_lay, & !< Pressure at model-layers (Pa) + cld_frac, & !< Total cloud fraction + effrin_cldliq, & !< Effective radius for liquid cloud-particles (microns) + effrin_cldice, & !< Effective radius for ice cloud-particles (microns) + effrin_cldsnow !< Effective radius for snow cloud-particles (microns) real(kind_phys), dimension(:,:), intent(in) ,optional :: & - effrin_cldrain ! Effective radius for rain cloud-particles (microns) + effrin_cldrain !< Effective radius for rain cloud-particles (microns) real(kind_phys), dimension(:,:), intent(in) :: & - p_lev ! Pressure at model-level interfaces (Pa) + p_lev !< Pressure at model-level interfaces (Pa) real(kind_phys), dimension(:,:,:),intent(in) :: & - tracer ! Cloud condensate amount in layer by type () + tracer !< Cloud condensate amount in layer by type () ! Outputs real(kind_phys), dimension(:,:),intent(inout) :: & - cld_lwp, & ! Cloud liquid water path - cld_reliq, & ! Cloud liquid effective radius - cld_iwp, & ! Cloud ice water path - cld_reice, & ! Cloud ice effecive radius - cld_swp, & ! Cloud snow water path - cld_resnow, & ! Cloud snow effective radius - cld_rwp, & ! Cloud rain water path - cld_rerain ! Cloud rain effective radius + cld_lwp, & !< Cloud liquid water path + cld_reliq, & !< Cloud liquid effective radius + cld_iwp, & !< Cloud ice water path + cld_reice, & !< Cloud ice effecive radius + cld_swp, & !< Cloud snow water path + cld_resnow, & !< Cloud snow effective radius + cld_rwp, & !< Cloud rain water path + cld_rerain !< Cloud rain effective radius ! Local variables real(kind_phys) :: tem1,tem2,tem3,pfac,deltaP @@ -657,7 +653,6 @@ end subroutine cloud_mp_uni !! - The cloud-fraction is computed using Xu-Randall** (1996). !! **Additionally, Conditioned on relative-humidity** !! -!! \section cloud_mp_thompson_gen General Algorithm subroutine cloud_mp_thompson(nCol, nLev, nTracers, ncnd, i_cldliq, i_cldice, i_cldrain,& i_cldsnow, i_cldgrpl, p_lev, p_lay, tv_lay, t_lay, tracer, qs_lay, q_lay, relhum, & con_ttp, con_g, con_rd, con_eps, alpha0, cnv_mixratio, lwp_ex, iwp_ex, lwp_fc, & @@ -666,49 +661,49 @@ subroutine cloud_mp_thompson(nCol, nLev, nTracers, ncnd, i_cldliq, i_cldice, i_c ! Inputs logical, intent(in), optional :: & - cond_cfrac_onRH, & ! If true, cloud-fracion set to unity when rh>99% - doGP_smearclds ! If true, add sgs clouds to gridmean clouds + cond_cfrac_onRH, & !< If true, cloud-fracion set to unity when rh>99% + doGP_smearclds !< If true, add sgs clouds to gridmean clouds integer, intent(in) :: & - nCol, & ! Number of horizontal grid points - nLev, & ! Number of vertical layers - ncnd, & ! Number of cloud condensation types. - nTracers, & ! Number of tracers from model. - i_cldliq, & ! Index into tracer array for cloud liquid amount. - i_cldice, & ! cloud ice amount. - i_cldrain, & ! cloud rain amount. - i_cldsnow, & ! cloud snow amount. - i_cldgrpl ! cloud groupel amount. + nCol, & !< Number of horizontal grid points + nLev, & !< Number of vertical layers + ncnd, & !< Number of cloud condensation types. + nTracers, & !< Number of tracers from model. + i_cldliq, & !< Index into tracer array for cloud liquid amount. + i_cldice, & !< cloud ice amount. + i_cldrain, & !< cloud rain amount. + i_cldsnow, & !< cloud snow amount. + i_cldgrpl !< cloud groupel amount. real(kind_phys), intent(in) :: & - con_ttp, & ! Triple point temperature of water (K) - con_g, & ! Physical constant: gravitational constant - con_rd, & ! Physical constant: gas-constant for dry air - con_eps, & ! Physical constant: gas constant air / gas constant H2O - alpha0 ! + con_ttp, & !< Triple point temperature of water (K) + con_g, & !< Physical constant: gravitational constant + con_rd, & !< Physical constant: gas-constant for dry air + con_eps, & !< Physical constant: gas constant air / gas constant H2O + alpha0 !< real(kind_phys), dimension(:,:), intent(in) :: & - tv_lay, & ! Virtual temperature (K) - t_lay, & ! Temperature (K) - qs_lay, & ! Saturation vapor pressure (Pa) - q_lay, & ! water-vapor mixing ratio (kg/kg) - relhum, & ! Relative humidity - p_lay, & ! Pressure at model-layers (Pa) - cnv_mixratio ! Convective cloud mixing-ratio (kg/kg) + tv_lay, & !< Virtual temperature (K) + t_lay, & !< Temperature (K) + qs_lay, & !< Saturation vapor pressure (Pa) + q_lay, & !< water-vapor mixing ratio (kg/kg) + relhum, & !< Relative humidity + p_lay, & !< Pressure at model-layers (Pa) + cnv_mixratio !< Convective cloud mixing-ratio (kg/kg) real(kind_phys), dimension(:,:), intent(in) :: & - p_lev ! Pressure at model-level interfaces (Pa) + p_lev !< Pressure at model-level interfaces (Pa) real(kind_phys), dimension(:,:,:),intent(in) :: & - tracer ! Cloud condensate amount in layer by type () + tracer !< Cloud condensate amount in layer by type () ! In/Outs real(kind_phys), dimension(:), intent(inout) :: & - lwp_ex, & ! total liquid water path from explicit microphysics - iwp_ex, & ! total ice water path from explicit microphysics - lwp_fc, & ! total liquid water path from cloud fraction scheme - iwp_fc ! total ice water path from cloud fraction scheme + lwp_ex, & !< total liquid water path from explicit microphysics + iwp_ex, & !< total ice water path from explicit microphysics + lwp_fc, & !< total liquid water path from cloud fraction scheme + iwp_fc !< total ice water path from cloud fraction scheme real(kind_phys), dimension(:,:), intent(inout) :: & - cld_frac, & ! Total cloud fraction - cld_lwp, & ! Cloud liquid water path - cld_iwp, & ! Cloud ice water path - cld_swp, & ! Cloud snow water path - cld_rwp ! Cloud rain water path + cld_frac, & !< Total cloud fraction + cld_lwp, & !< Cloud liquid water path + cld_iwp, & !< Cloud ice water path + cld_swp, & !< Cloud snow water path + cld_rwp !< Cloud rain water path ! Local variables real(kind_phys) :: tem1, pfac, cld_mr, deltaP, tem2 @@ -778,22 +773,18 @@ subroutine cloud_mp_thompson(nCol, nLev, nTracers, ncnd, i_cldliq, i_cldice, i_c end subroutine cloud_mp_thompson -!> This function computes the cloud-fraction following. -!! Xu-Randall(1996) A Semiempirical Cloudiness Parameterization for Use in Climate Models -!! https://doi.org/10.1175/1520-0469(1996)053<3084:ASCPFU>2.0.CO;2 +!> This function computes the cloud-fraction following +!! Xu-Randall(1996) \cite xu_and_randall_1996 !! -!! cld_frac = {1-exp[-alpha*cld_mr/((1-relhum)*qs_lay)**lambda]}*relhum**P -!! -!! \section cld_frac_XuRandall_gen General Algorithm function cld_frac_XuRandall(p_lay, qs_lay, relhum, cld_mr, alpha) implicit none ! Inputs real(kind_phys), intent(in) :: & - p_lay, & ! Pressure (Pa) - qs_lay, & ! Saturation vapor-pressure (Pa) - relhum, & ! Relative humidity - cld_mr, & ! Total cloud mixing ratio - alpha ! Scheme parameter (default=100) + p_lay, & !< Pressure (Pa) + qs_lay, & !< Saturation vapor-pressure (Pa) + relhum, & !< Relative humidity + cld_mr, & !< Total cloud mixing ratio + alpha !< Scheme parameter (default=100) ! Outputs real(kind_phys) :: cld_frac_XuRandall diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.F90 index 0094f8165..df0a2a41a 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.F90 @@ -1,8 +1,5 @@ !> \file GFS_rrtmgp_cloud_overlap.F90 -!! -!> \defgroup GFS_rrtmgp_cloud_overlap GFS_rrtmgp_cloud_overlap.F90 -!! -!! \brief This module contains EMC's interface to the different assumptions of vertical cloud +!! This file contains EMC's interface to the different assumptions of vertical cloud !! structuce, cloud overlap, used by McICA for cloud sampling in the RRTMGP longwave !! and shortwave schemes. !! @@ -15,20 +12,14 @@ module GFS_rrtmgp_cloud_overlap contains -!>\defgroup gfs_rrtmgp_cloud_overlap_mod GFS RRTMGP Cloud Overlap Module -!! \section arg_table_GFS_rrtmgp_cloud_overlap_run +!> \section arg_table_GFS_rrtmgp_cloud_overlap_run Argument Table !! \htmlinclude GFS_rrtmgp_cloud_overlap_run.html -!! -!> \ingroup GFS_rrtmgp_cloud_overlap -!! !! This is identical (shares common-code) to RRTMG. The motivation for RRTMGP to have !! its own scheme is both organizational and philosophical*. !! !! *The number of "clouds" being produced by the model physics is often greater than one. !! rte-rrtmgp can accomodate multiple cloud-types. This module preservers this enhancement !! in the EMCs coupling to the RRTMGP scheme. -!! -!! \section GFS_rrtmgp_cloud_overlap_run subroutine GFS_rrtmgp_cloud_overlap_run(nCol, nLev, yearlen, doSWrad, doLWrad, & julian, lat, p_lev, p_lay, tv_lay, deltaZc, con_pi, con_g, con_rd, con_epsq, & dcorr_con, idcor, iovr, iovr_dcorr, iovr_exp, iovr_exprand, idcor_con, & @@ -39,54 +30,54 @@ subroutine GFS_rrtmgp_cloud_overlap_run(nCol, nLev, yearlen, doSWrad, doLWrad, ! Inputs integer, intent(in) :: & - nCol, & ! Number of horizontal grid points - nLev, & ! Number of vertical layers - yearlen, & ! Length of current year (365/366) WTF? - imfdeepcnv, & ! - imfdeepcnv_gf, & ! - imfdeepcnv_samf, & ! - iovr, & ! Choice of cloud-overlap method - iovr_convcld, & ! Choice of convective cloud-overlap method - iovr_dcorr, & ! Flag for decorrelation-length cloud overlap method - iovr_exp, & ! Flag for exponential cloud overlap method - iovr_exprand, & ! Flag for exponential-random cloud overlap method - idcor, & ! Choice of method for decorrelation length computation - idcor_con, & ! Flag for decorrelation-length. Use constant value - idcor_hogan, & ! Flag for decorrelation-length. (https://rmets.onlinelibrary.wiley.com/doi/full/10.1002/qj.647) - idcor_oreopoulos ! Flag for decorrelation-length. (10.5194/acp-12-9097-2012) + nCol, & !< Number of horizontal grid points + nLev, & !< Number of vertical layers + yearlen, & !< Length of current year (365/366) WTF? + imfdeepcnv, & !< + imfdeepcnv_gf, & !< + imfdeepcnv_samf, & !< + iovr, & !< Choice of cloud-overlap method + iovr_convcld, & !< Choice of convective cloud-overlap method + iovr_dcorr, & !< Flag for decorrelation-length cloud overlap method + iovr_exp, & !< Flag for exponential cloud overlap method + iovr_exprand, & !< Flag for exponential-random cloud overlap method + idcor, & !< Choice of method for decorrelation length computation + idcor_con, & !< Flag for decorrelation-length. Use constant value + idcor_hogan, & !< Flag for decorrelation-length. (https://rmets.onlinelibrary.wiley.com/doi/full/10.1002/qj.647) + idcor_oreopoulos !< Flag for decorrelation-length. (10.5194/acp-12-9097-2012) logical, intent(in) :: & - top_at_1, & ! Vertical ordering flag - doSWrad, & ! Call SW radiation? - doLWrad ! Call LW radiation + top_at_1, & !< Vertical ordering flag + doSWrad, & !< Call SW radiation? + doLWrad !< Call LW radiation real(kind_phys), intent(in) :: & - julian, & ! Julian day - con_pi, & ! Physical constant: pi - con_g, & ! Physical constant: gravitational constant - con_rd, & ! Physical constant: gas-constant for dry air - con_epsq, & ! Physical constant: Minimum value for specific humidity - dcorr_con ! Decorrelation-length (used if idcor = idcor_con) + julian, & !< Julian day + con_pi, & !< Physical constant: pi + con_g, & !< Physical constant: gravitational constant + con_rd, & !< Physical constant: gas-constant for dry air + con_epsq, & !< Physical constant: Minimum value for specific humidity + dcorr_con !< Decorrelation-length (used if idcor = idcor_con) real(kind_phys), dimension(:), intent(in) :: & - lat ! Latitude + lat !< Latitude real(kind_phys), dimension(:,:), intent(in) :: & - tv_lay, & ! Virtual temperature (K) - p_lay, & ! Pressure at model-layers (Pa) - cld_frac, & ! Total cloud fraction - cld_cnv_frac ! Convective cloud-fraction + tv_lay, & !< Virtual temperature (K) + p_lay, & !< Pressure at model-layers (Pa) + cld_frac, & !< Total cloud fraction + cld_cnv_frac !< Convective cloud-fraction real(kind_phys), dimension(:,:), intent(in) :: & - p_lev, & ! Pressure at model-level interfaces (Pa) - deltaZc ! Layer thickness (from layer-centers)(m) + p_lev, & !< Pressure at model-level interfaces (Pa) + deltaZc !< Layer thickness (from layer-centers)(m) ! Outputs real(kind_phys), dimension(:),intent(out) :: & - de_lgth ! Decorrelation length + de_lgth !< Decorrelation length real(kind_phys), dimension(:,:),intent(out) :: & - cloud_overlap_param, & ! Cloud-overlap parameter - cnv_cloud_overlap_param,& ! Convective cloud-overlap parameter - precip_overlap_param ! Precipitation overlap parameter + cloud_overlap_param, & !< Cloud-overlap parameter + cnv_cloud_overlap_param,& !< Convective cloud-overlap parameter + precip_overlap_param !< Precipitation overlap parameter character(len=*), intent(out) :: & - errmsg ! Error message + errmsg !< Error message integer, intent(out) :: & - errflg ! Error flag + errflg !< Error flag ! Local variables integer :: iCol,iLay diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.F90 index c8a8b59ed..c0ac9a896 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.F90 @@ -34,99 +34,99 @@ subroutine GFS_rrtmgp_post_run (nCol, nLev, nDay, iSFC, iTOA, idxday, doLWrad, d ! Inputs integer, intent(in) :: & - nCol, & ! Horizontal loop extent - nLev, & ! Number of vertical layers - nDay, & ! Number of daylit columns - iSFC, & ! Vertical index for surface level - iTOA ! Vertical index for TOA level + nCol, & !< Horizontal loop extent + nLev, & !< Number of vertical layers + nDay, & !< Number of daylit columns + iSFC, & !< Vertical index for surface level + iTOA !< Vertical index for TOA level integer, intent(in), dimension(:) :: & - idxday ! Index array for daytime points + idxday !< Index array for daytime points integer, intent(in), dimension(:,:) :: & - mbota, & ! Vertical indices for low, middle and high cloud tops - mtopa ! ertical indices for low, middle and high cloud bases + mbota, & !< Vertical indices for low, middle and high cloud tops + mtopa !< ertical indices for low, middle and high cloud bases logical, intent(in) :: & - doLWrad, & ! Logical flags for lw radiation calls - doSWrad, & ! Logical flags for sw radiation calls - do_lw_clrsky_hr, & ! Output clear-sky LW heating-rate? - do_sw_clrsky_hr, & ! Output clear-sky SW heating-rate? - save_diag ! Output radiation diagnostics? + doLWrad, & !< Logical flags for lw radiation calls + doSWrad, & !< Logical flags for sw radiation calls + do_lw_clrsky_hr, & !< Output clear-sky LW heating-rate? + do_sw_clrsky_hr, & !< Output clear-sky SW heating-rate? + save_diag !< Output radiation diagnostics? real(kind_phys), intent(in) :: & - fhlwr, & ! Frequency for LW radiation calls - fhswr ! Frequency for SW radiation calls + fhlwr, & !< Frequency for LW radiation calls + fhswr !< Frequency for SW radiation calls real(kind_phys), dimension(:), intent(in) :: & - tsfa, & ! Lowest model layer air temperature for radiation (K) - coszen, & ! Cosine(SZA) - coszdg, & ! Cosine(SZA), daytime - sfc_alb_nir_dir, & ! Surface albedo (direct) - sfc_alb_nir_dif, & ! Surface albedo (diffuse) - sfc_alb_uvvis_dir, & ! Surface albedo (direct) - sfc_alb_uvvis_dif ! Surface albedo (diffuse) + tsfa, & !< Lowest model layer air temperature for radiation (K) + coszen, & !< Cosine(SZA) + coszdg, & !< Cosine(SZA), daytime + sfc_alb_nir_dir, & !< Surface albedo (direct) + sfc_alb_nir_dif, & !< Surface albedo (diffuse) + sfc_alb_uvvis_dir, & !< Surface albedo (direct) + sfc_alb_uvvis_dif !< Surface albedo (diffuse) real(kind_phys), dimension(:,:), intent(in) :: & - p_lev, & ! Pressure @ model layer-interfaces (Pa) - fluxlwUP_allsky, & ! RRTMGP longwave all-sky flux (W/m2) - fluxlwDOWN_allsky, & ! RRTMGP longwave all-sky flux (W/m2) - fluxlwUP_clrsky, & ! RRTMGP longwave clear-sky flux (W/m2) - fluxlwDOWN_clrsky, & ! RRTMGP longwave clear-sky flux (W/m2) - fluxswUP_allsky, & ! RRTMGP shortwave all-sky flux (W/m2) - fluxswDOWN_allsky, & ! RRTMGP shortwave all-sky flux (W/m2) - fluxswUP_clrsky, & ! RRTMGP shortwave clear-sky flux (W/m2) - fluxswDOWN_clrsky ! RRTMGP shortwave clear-sky flux (W/m2) + p_lev, & !< Pressure @ model layer-interfaces (Pa) + fluxlwUP_allsky, & !< RRTMGP longwave all-sky flux (W/m2) + fluxlwDOWN_allsky, & !< RRTMGP longwave all-sky flux (W/m2) + fluxlwUP_clrsky, & !< RRTMGP longwave clear-sky flux (W/m2) + fluxlwDOWN_clrsky, & !< RRTMGP longwave clear-sky flux (W/m2) + fluxswUP_allsky, & !< RRTMGP shortwave all-sky flux (W/m2) + fluxswDOWN_allsky, & !< RRTMGP shortwave all-sky flux (W/m2) + fluxswUP_clrsky, & !< RRTMGP shortwave clear-sky flux (W/m2) + fluxswDOWN_clrsky !< RRTMGP shortwave clear-sky flux (W/m2) real(kind_phys), intent(in) :: & - raddt ! Radiation time step + raddt !< Radiation time step real(kind_phys), dimension(:,:), intent(in) :: & - aerodp, & ! Vertical integrated optical depth for various aerosol species - cldsa, & ! Fraction of clouds for low, middle, high, total and BL - cld_frac, & ! Total cloud fraction in each layer - cldtaulw, & ! approx 10.mu band layer cloud optical depth - cldtausw ! approx .55mu band layer cloud optical depth + aerodp, & !< Vertical integrated optical depth for various aerosol species + cldsa, & !< Fraction of clouds for low, middle, high, total and BL + cld_frac, & !< Total cloud fraction in each layer + cldtaulw, & !< approx 10.mu band layer cloud optical depth + cldtausw !< approx .55mu band layer cloud optical depth type(cmpfsw_type), dimension(:), intent(in) :: & - scmpsw ! 2D surface fluxes, components: - ! uvbfc - total sky downward uv-b flux at (W/m2) - ! uvbf0 - clear sky downward uv-b flux at (W/m2) - ! nirbm - downward nir direct beam flux (W/m2) - ! nirdf - downward nir diffused flux (W/m2) - ! visbm - downward uv+vis direct beam flux (W/m2) - ! visdf - downward uv+vis diffused flux (W/m2) + scmpsw !< 2D surface fluxes, components: + !!\n uvbfc - total sky downward uv-b flux at (W/m2) + !!\n uvbf0 - clear sky downward uv-b flux at (W/m2) + !!\n nirbm - downward nir direct beam flux (W/m2) + !!\n nirdf - downward nir diffused flux (W/m2) + !!\n visbm - downward uv+vis direct beam flux (W/m2) + !!\n visdf - downward uv+vis diffused flux (W/m2) real(kind=kind_phys), dimension(:,:), intent(inout) :: fluxr ! Outputs (mandatory) real(kind_phys), dimension(:), intent(inout) :: & - tsflw, & ! LW sfc air temp during calculation (K) - sfcdlw, & ! LW sfc all-sky downward flux (W/m2) - sfculw, & ! LW sfc all-sky upward flux (W/m2) - nirbmdi, & ! SW sfc nir beam downward flux (W/m2) - nirdfdi, & ! SW sfc nir diff downward flux (W/m2) - visbmdi, & ! SW sfc uv+vis beam downward flux (W/m2) - visdfdi, & ! SW sfc uv+vis diff downward flux (W/m2) - nirbmui, & ! SW sfc nir beam upward flux (W/m2) - nirdfui, & ! SW sfc nir diff upward flux (W/m2) - visbmui, & ! SW sfc uv+vis beam upward flux (W/m2) - visdfui, & ! SW sfc uv+vis diff upward flux (W/m2) - sfcnsw, & ! SW sfc all-sky net flux (W/m2) flux into ground - sfcdsw ! SW sfc all-sky downward flux (W/m2) + tsflw, & !> LW sfc air temp during calculation (K) + sfcdlw, & !> LW sfc all-sky downward flux (W/m2) + sfculw, & !> LW sfc all-sky upward flux (W/m2) + nirbmdi, & !> SW sfc nir beam downward flux (W/m2) + nirdfdi, & !> SW sfc nir diff downward flux (W/m2) + visbmdi, & !> SW sfc uv+vis beam downward flux (W/m2) + visdfdi, & !> SW sfc uv+vis diff downward flux (W/m2) + nirbmui, & !> SW sfc nir beam upward flux (W/m2) + nirdfui, & !> SW sfc nir diff upward flux (W/m2) + visbmui, & !> SW sfc uv+vis beam upward flux (W/m2) + visdfui, & !> SW sfc uv+vis diff upward flux (W/m2) + sfcnsw, & !> SW sfc all-sky net flux (W/m2) flux into ground + sfcdsw !> SW sfc all-sky downward flux (W/m2) real(kind_phys), dimension(:,:), intent(inout) :: & - htrlw, & ! LW all-sky heating rate (K/s) - htrsw, & ! SW all-sky heating rate (K/s) - htrlwu ! LW all-sky heating-rate updated in-between radiation calls. + htrlw, & !> LW all-sky heating rate (K/s) + htrsw, & !> SW all-sky heating rate (K/s) + htrlwu !> LW all-sky heating-rate updated in-between radiation calls. type(sfcflw_type), dimension(:), intent(inout) :: & - sfcflw ! LW radiation fluxes at sfc + sfcflw !> LW radiation fluxes at sfc type(sfcfsw_type), dimension(:), intent(inout) :: & - sfcfsw ! SW radiation fluxes at sfc + sfcfsw !> SW radiation fluxes at sfc type(topfsw_type), dimension(:), intent(inout) :: & - topfsw ! SW fluxes at top atmosphere + topfsw !> SW fluxes at top atmosphere type(topflw_type), dimension(:), intent(inout) :: & - topflw ! LW fluxes at top atmosphere + topflw !> LW fluxes at top atmosphere character(len=*), intent(out) :: & - errmsg ! CCPP error message + errmsg !> CCPP error message integer, intent(out) :: & - errflg ! CCPP error code + errflg !> CCPP error code ! Outputs (optional) real(kind_phys),dimension(:,:),intent(inout),optional :: & - htrlwc, & ! LW clear-sky heating-rate (K/s) - htrswc ! SW clear-sky heating rate (K/s) + htrlwc, & !> LW clear-sky heating-rate (K/s) + htrswc !> SW clear-sky heating rate (K/s) ! Local variables integer :: i, j, k, itop, ibtc diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_setup.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_setup.F90 index 2d84db985..679185746 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_setup.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_setup.F90 @@ -44,14 +44,14 @@ subroutine GFS_rrtmgp_setup_init(do_RRTMGP, imp_physics, imp_physics_fer_hires, ! Inputs logical, intent(in) :: do_RRTMGP integer, intent(in) :: & - imp_physics, & ! Flag for MP scheme - imp_physics_fer_hires, & ! Flag for fer-hires scheme - imp_physics_gfdl, & ! Flag for gfdl scheme - imp_physics_thompson, & ! Flag for thompsonscheme - imp_physics_wsm6, & ! Flag for wsm6 scheme - imp_physics_zhao_carr, & ! Flag for zhao-carr scheme - imp_physics_zhao_carr_pdf, & ! Flag for zhao-carr+PDF scheme - imp_physics_mg ! Flag for MG scheme + imp_physics, & !< Flag for MP scheme + imp_physics_fer_hires, & !< Flag for fer-hires scheme + imp_physics_gfdl, & !< Flag for gfdl scheme + imp_physics_thompson, & !< Flag for thompsonscheme + imp_physics_wsm6, & !< Flag for wsm6 scheme + imp_physics_zhao_carr, & !< Flag for zhao-carr scheme + imp_physics_zhao_carr_pdf, & !< Flag for zhao-carr+PDF scheme + imp_physics_mg !< Flag for MG scheme real(kind_phys), intent(in) :: & con_pi, con_t0c, con_c, con_boltz, con_plnk, con_solr_2008, con_solr_2002 real(kind_phys), dimension(:), intent(in) :: & diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_stochastics.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_stochastics.F90 index 36ed2815a..fbd44a94a 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_stochastics.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_stochastics.F90 @@ -5,9 +5,7 @@ module GFS_stochastics contains -!>\defgroup gfs_stoch_mod GFS Stochastics Physics Module -!> @{ -!! This is the GFS stochastics physics driver module. +!> This is the GFS stochastics physics driver module. !! !> \section arg_table_GFS_stochastics_init Argument Table !! \htmlinclude GFS_stochastics_init.html @@ -372,5 +370,4 @@ subroutine GFS_stochastics_run (im, km, kdt, delt, do_sppt, pert_mp, use_zmtnblc endif end subroutine GFS_stochastics_run -!> @} end module GFS_stochastics diff --git a/physics/Radiation/RRTMGP/rrtmgp_lw_cloud_optics.F90 b/physics/Radiation/RRTMGP/rrtmgp_lw_cloud_optics.F90 index cafffe72c..3adbe40b8 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_lw_cloud_optics.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_lw_cloud_optics.F90 @@ -58,9 +58,9 @@ module rrtmgp_lw_cloud_optics ! Parameters used for rain and snow(+groupel) RRTMGP cloud-optics real(kind_phys), parameter :: & - absrain = 0.33e-3, & !< Rain drop absorption coefficient \f$(m^{2}/g)\f$ . + absrain = 0.33e-3, & !< Rain drop absorption coefficient m2/g . abssnow0 = 1.5, & !< Snow flake absorption coefficient (micron), fu coeff - abssnow1 = 2.34e-3 !< Snow flake absorption coefficient \f$(m^{2}/g)\f$, ncar coef + abssnow1 = 2.34e-3 !< Snow flake absorption coefficient m2/g, ncar coef real(kind_phys) :: & radliq_lwrLW, & !< Liquid particle size lower bound for LUT interpolation radliq_uprLW, & !< Liquid particle size upper bound for LUT interpolation diff --git a/physics/docs/library.bib b/physics/docs/library.bib index d622bca48..0ca85a7b0 100644 --- a/physics/docs/library.bib +++ b/physics/docs/library.bib @@ -1,13 +1,30 @@ %% This BibTeX bibliography file was created using BibDesk. %% https://bibdesk.sourceforge.io/ -%% Created for Man Zhang at 2024-06-24 12:44:05 -0600 +%% Created for Man Zhang at 2024-06-27 13:18:41 -0600 %% Saved with string encoding Unicode (UTF-8) +@article{xu_and_randall_1996, + author = {Xu, Kuan-Man and Randall, David A.}, + date-added = {2024-06-27 13:17:39 -0600}, + date-modified = {2024-06-27 13:18:31 -0600}, + doi = {10.1175/1520-0469(1996)053<3084:ascpfu>2.0.co;2}, + issn = {1520-0469}, + journal = {Journal of the Atmospheric Sciences}, + month = nov, + number = {21}, + pages = {3084{\^a}€“3102}, + publisher = {American Meteorological Society}, + title = {A Semiempirical Cloudiness Parameterization for Use in Climate Models}, + url = {http://dx.doi.org/10.1175/1520-0469(1996)053<3084:ASCPFU>2.0.CO;2}, + volume = {53}, + year = {1996}, + bdsk-url-1 = {http://dx.doi.org/10.1175/1520-0469(1996)053%3C3084:ASCPFU%3E2.0.CO;2}} + @article{Mansell_2020, author = {Mansell, Edward R. and Dawson II, Daniel T. and Straka, Jerry M.}, date-added = {2024-06-24 12:43:58 -0600}, @@ -3314,18 +3331,6 @@ @article{businger_et_al_1971 bdsk-file-1 = {YnBsaXN0MDDSAQIDBFxyZWxhdGl2ZVBhdGhZYWxpYXNEYXRhXxBELi4vLi4vQ2xvdWRTdGF0aW9uL2ZpcmxfbGlicmFyeS9maXJsX2xpYnJhcnlfZmlsZXMvQnVzaW5nZXIvMTk3MS5wZGZPEQHMAAAAAAHMAAIAAAxNYWNpbnRvc2ggSEQAAAAAAAAAAAAAAAAAAADR5yRSSCsAAAAodUUIMTk3MS5wZGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACh1cbTPIxwAAAAAAAAAAAACAAUAAAkgAAAAAAAAAAAAAAAAAAAACEJ1c2luZ2VyABAACAAA0ed4sgAAABEACAAAtM+FjAAAAAEAGAAodUUAKGyWAChsiwAoZ3sAG14HAAKYXAACAF5NYWNpbnRvc2ggSEQ6VXNlcnM6AGdyYW50ZjoAQ2xvdWRTdGF0aW9uOgBmaXJsX2xpYnJhcnk6AGZpcmxfbGlicmFyeV9maWxlczoAQnVzaW5nZXI6ADE5NzEucGRmAA4AEgAIADEAOQA3ADEALgBwAGQAZgAPABoADABNAGEAYwBpAG4AdABvAHMAaAAgAEgARAASAEtVc2Vycy9ncmFudGYvQ2xvdWRTdGF0aW9uL2ZpcmxfbGlicmFyeS9maXJsX2xpYnJhcnlfZmlsZXMvQnVzaW5nZXIvMTk3MS5wZGYAABMAAS8AABUAAgAN//8AAAAIAA0AGgAkAGsAAAAAAAACAQAAAAAAAAAFAAAAAAAAAAAAAAAAAAACOw==}, bdsk-url-1 = {http://ws.isiknowledge.com/cps/openurl/service?url_ver=Z39.88-2004&rft_id=info:ut/A1971I822800004}} -@article{xu_and_randall_1996, - author = {K.-M. Xu and D. A. Randall}, - date-added = {2016-05-20 16:22:45 +0000}, - date-modified = {2016-05-20 16:24:47 +0000}, - journal = {J. Atmos. Sci.}, - month = {3102}, - number = {21}, - pages = {3084}, - title = {A semiempirical cloudiness parameterization for use in climate models}, - volume = {53}, - year = {1996}} - @article{clough_et_al_1992, author = {S. A. Clough and M. J. Iacono and J. L. Moncet}, date-added = {2016-05-20 15:32:24 +0000}, From fe9b68d899f430462ce33152eaad6ff9b2879340 Mon Sep 17 00:00:00 2001 From: Man Zhang Date: Fri, 28 Jun 2024 16:26:58 -0600 Subject: [PATCH 09/29] address developer's feedback --- physics/docs/pdftxt/NSSLMICRO.txt | 2 +- physics/docs/pdftxt/RRFS_v1_suite.txt | 4 +--- physics/docs/pdftxt/suite_input.nml.txt | 10 +++++----- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/physics/docs/pdftxt/NSSLMICRO.txt b/physics/docs/pdftxt/NSSLMICRO.txt index 57472a7e7..01eb4081d 100644 --- a/physics/docs/pdftxt/NSSLMICRO.txt +++ b/physics/docs/pdftxt/NSSLMICRO.txt @@ -1,5 +1,5 @@ /** -\page NSSLMICRO_page NSSL 2-moment Cloud Microphysics Scheme +\page NSSLMICRO_page NSSL 2/3-moment Cloud Microphysics Scheme \section nssl2m_descrp Description The NSSL 2/3-moment bulk microphysical parameterization scheme that describes form and phase changes among a range of liquid and ice hydrometeors, as described in Mansell et al. (2010) \cite Mansell_etal_2010, Mansell and Ziegler (2013) \cite Mansell_2013, and Mansell et al. (2020) \cite Mansell_2020. The microphysical parameterization predicts the mass mixing ratio and number concentration of cloud droplets, raindrops, cloud ice crystals (columns), snow particles (including large crystals and aggregates), graupel, and (optionally) hail. Optionally, a third moment (reflectivity or 6th moment) of rain, graupel, and hail can be activated. diff --git a/physics/docs/pdftxt/RRFS_v1_suite.txt b/physics/docs/pdftxt/RRFS_v1_suite.txt index 542641494..f44321b3f 100644 --- a/physics/docs/pdftxt/RRFS_v1_suite.txt +++ b/physics/docs/pdftxt/RRFS_v1_suite.txt @@ -4,9 +4,7 @@ \section RRFS_v1_suite_overview Overview The RRFS_v1 suite is one of the candidates for the future operational implementation of -the Rapid Refresh Forecast System (RRFS), which can be configured using the UFS SRW App. This suite is most -applicable for runs at 3-km resolution since it does not parameterize -deep convection. +the Rapid Refresh Forecast System (RRFS), which can be configured using the UFS SRW App. The RRFS_v1beta suite uses the parameterizations in the following order: - \ref SGSCLOUD_page diff --git a/physics/docs/pdftxt/suite_input.nml.txt b/physics/docs/pdftxt/suite_input.nml.txt index 68d10a05f..d8080f813 100644 --- a/physics/docs/pdftxt/suite_input.nml.txt +++ b/physics/docs/pdftxt/suite_input.nml.txt @@ -49,7 +49,7 @@ show some variables in the namelist that must match the SDF.
    • 10: Morrison-Gettelman microphysics scheme
    • 11: GFDL microphysics scheme
    • 15: Ferrier-Aligo microphysics scheme -
    • 17: NSSL microphysics scheme with background CCN +
    • 17: NSSL microphysics multimoment scheme
    • 18: NSSL microphysics scheme with predicted CCN (compatibility: 18 = 17 + nssl_ccn_on=.true.)
    99 @@ -427,15 +427,15 @@ show some variables in the namelist that must match the SDF. xr_cnvcld GFS_rrtmg_pre flag for including suspended convective clouds in Xu-Randall cloud fraction .true. lgfdlmprad gfs_rrtmg_pre flag for GFDL mp scheme and radiation consistency .false. nssl_cccn mp_nssl CCN concentration (m^-3) 0.6e9 -nssl_alphah mp_nssl graupel shape parameter 0.0 -nssl_alphahl mp_nssl hail shape parameter 1.0 -nssl_alphar mp_nssl shape paramter for rain (imurain=1 only) 0.0 +nssl_alphah mp_nssl graupel PSD shape parameter 0.0 +nssl_alphahl mp_nssl hail PSD shape parameter 1.0 +nssl_alphar mp_nssl PSD shape parameter for rain 0.0 nssl_ehw0 mp_nssl constant or max assumed graupel-droplet collection efficiency 0.9 nssl_ehlw0 mp_nssl constant or max assumed hail-droplet collection efficiency 0.9 nssl_hail_on mp_nssl NSSL flag to activate the hail category .false. nssl_3moment mp_nssl NSSL flag to activate 3-moment for rain/graupel (and hail if activated).false. ssl_ccn_on mp_nssl NSSL flag to activate the CCN category .true. -nssl_invertccn mp_nssl NSSL flag to treat CCN as activated or unactivated .true. +nssl_invertccn mp_nssl NSSL flag to treat CCN as activated (.true.) or unactivated (.false.) .true. \b Parameters \b related \b to \b gravity \b drag \b scheme \b options knob_ugwp_version cires_ugwp parameter selects a version of the UGWP implementation in FV3GFS-127L \n
      From c9e5f21b6cd40018799fffce5c38b4d2a21ec696 Mon Sep 17 00:00:00 2001 From: Man Zhang Date: Mon, 1 Jul 2024 11:42:45 -0600 Subject: [PATCH 10/29] scidoc update --- physics/docs/pdftxt/GFS_RRTMG.txt | 28 +- physics/docs/pdftxt/GFS_v17_HR3_GP_suite.txt | 16 +- physics/docs/pdftxt/GFS_v17_HR3_suite.txt | 16 +- physics/docs/pdftxt/RE7/input_RRFS_v1.nml | 274 +++++++++---------- physics/docs/pdftxt/RE7/input_WoFS_v0.nml | 192 ++++++------- 5 files changed, 263 insertions(+), 263 deletions(-) diff --git a/physics/docs/pdftxt/GFS_RRTMG.txt b/physics/docs/pdftxt/GFS_RRTMG.txt index 13d9201a3..39628ab93 100644 --- a/physics/docs/pdftxt/GFS_RRTMG.txt +++ b/physics/docs/pdftxt/GFS_RRTMG.txt @@ -86,26 +86,26 @@ radiation_clouds_prop can connect to the calculations of the cloud radiation properties for all the microphysics schemes. Summary of the major changes: -- radiation_clouds.f +- \ref radiation_clouds.f - A new subroutine “radiation_clouds_prop” was added to radiation_clouds.f. This new subroutine calculates all cloud radiation properties for all the microphysics schemes. Subroutines "progcld*" were renamed based on the input variables \p imp_physics, and the inactive subroutines were removed from file radiation_clouds.f - - 'progcld1' --- > progcld_zhao_carr - - 'progcld3' --- > progcld_zhao_carr_pdf - - 'progcld4' --- > progcld_gfdl_lin - - 'progcld5' --- > progcld_fer_hires - - 'progcld6' --- > progcld_thompson_wsm6 - - 'progclduni' --- > progclduni - - 'progcld_thompson'--- > progcld_thompson + A new subroutine module_radiation_clouds::radiation_clouds_prop was added to radiation_clouds.f. This new subroutine calculates all cloud radiation properties for all the microphysics schemes. + - module_radiation_clouds::progcld_zhao_carr() + - module_radiation_clouds::progcld_zhao_carr_pdf() + - module_radiation_clouds::progcld_gfdl_lin() + - module_radiation_clouds::progcld_fer_hires() + - module_radiation_clouds::progcld_thompson_wsm6() + - module_radiation_clouds::progclduni() + - module_radiation_clouds::progcld_thompson() -- GFS_rrtmg_pre.F90 +- \ref GFS_rrtmg_pre.F90 - Removed the “progcld” subroutine calls, and replaced them with a single subroutine call to “radiation_clouds_prop”. + Removed the “progcld” subroutine calls, and replaced them with a single subroutine call to module_radiation_clouds::radiation_clouds_prop. -- radiation_cloud_overlap.F90 +- \ref radiation_cloud_overlap.F90 - Replaced subroutine “get_alpha_exp” with “get_alpha_exper”. The new subroutine revises alpha for exponential random cloud overlap option. This new subroutine is used in programs GFS_rrtmgp_cloud_overlap_pre.F90 and GFS_rrtmgp_gfdlmp_pre.F90. + Replaced subroutine “get_alpha_exp” with module_radiation_cloud_overlap::get_alpha_exper(). The new subroutine revises alpha for exponential random cloud overlap option. This new subroutine is used in programs GFS_rrtmgp_cloud_overlap_pre.F90 and GFS_rrtmgp_gfdlmp_pre.F90. -- Subroutine getml() has been modified. The subroutine computes low, mid, high, total and boundary clouds, and is used in GFS_cloud_diagnostics.F90. +- Subroutine module_radiation_clouds::gethml() has been modified. The subroutine computes low, mid, high, total and boundary clouds, and is used in GFS_cloud_diagnostics.F90. \section intraphysics_rrtmg Intraphysics Communication + \b GFS_suite_interstitial_rad_reset: \ref arg_table_GFS_suite_interstitial_rad_reset_run diff --git a/physics/docs/pdftxt/GFS_v17_HR3_GP_suite.txt b/physics/docs/pdftxt/GFS_v17_HR3_GP_suite.txt index c6dcf94b0..6366d8086 100644 --- a/physics/docs/pdftxt/GFS_v17_HR3_GP_suite.txt +++ b/physics/docs/pdftxt/GFS_v17_HR3_GP_suite.txt @@ -59,14 +59,14 @@ The GFS_v17 suite uses the parameterizations in the following order: - \b C3072: cdmbgwd_gsl="0.625,14.1,1.0,1.0" - Grid-spacing dependency of \p knob_ugwp_tauamp -- \b C48: knob_ugwp_tauamp=6.0e-3 -- \b C96: knob_ugwp_tauamp=3.0e-3 -- \b C192: knob_ugwp_tauamp=1.5e-3 -- \b C384: knob_ugwp_tauamp=0.8e-3 -- \b C768: knob_ugwp_tauamp=0.5e-3 -- \b C1152: knob_ugwp_tauamp=0.35e-3 -- \b C3072: knob_ugwp_tauamp=0.13e-3 + - \b C48: knob_ugwp_tauamp=6.0e-3 + - \b C96: knob_ugwp_tauamp=3.0e-3 + - \b C192: knob_ugwp_tauamp=1.5e-3 + - \b C384: knob_ugwp_tauamp=0.8e-3 + - \b C768: knob_ugwp_tauamp=0.5e-3 + - \b C1152: knob_ugwp_tauamp=0.35e-3 + - \b C3072: knob_ugwp_tauamp=0.13e-3 - Grid-spacing dependency of \p xr_cnvcld -- \b C48 and \b C96: xr_cnvcld =.false. + - \b C48 and \b C96: xr_cnvcld =.false. */ diff --git a/physics/docs/pdftxt/GFS_v17_HR3_suite.txt b/physics/docs/pdftxt/GFS_v17_HR3_suite.txt index 5891cd3e7..dd0b27d4e 100644 --- a/physics/docs/pdftxt/GFS_v17_HR3_suite.txt +++ b/physics/docs/pdftxt/GFS_v17_HR3_suite.txt @@ -59,14 +59,14 @@ The GFS_v17 suite uses the parameterizations in the following order: - \b C3072: cdmbgwd_gsl="0.625,14.1,1.0,1.0" - Grid-spacing dependency of \p knob_ugwp_tauamp -- \b C48: knob_ugwp_tauamp=6.0e-3 -- \b C96: knob_ugwp_tauamp=3.0e-3 -- \b C192: knob_ugwp_tauamp=1.5e-3 -- \b C384: knob_ugwp_tauamp=0.8e-3 -- \b C768: knob_ugwp_tauamp=0.5e-3 -- \b C1152: knob_ugwp_tauamp=0.35e-3 -- \b C3072: knob_ugwp_tauamp=0.13e-3 + - \b C48: knob_ugwp_tauamp=6.0e-3 + - \b C96: knob_ugwp_tauamp=3.0e-3 + - \b C192: knob_ugwp_tauamp=1.5e-3 + - \b C384: knob_ugwp_tauamp=0.8e-3 + - \b C768: knob_ugwp_tauamp=0.5e-3 + - \b C1152: knob_ugwp_tauamp=0.35e-3 + - \b C3072: knob_ugwp_tauamp=0.13e-3 - Grid-spacing dependency of \p xr_cnvcld -- \b C48 and \b C96: xr_cnvcld =.false. + - \b C48 and \b C96: xr_cnvcld =.false. */ diff --git a/physics/docs/pdftxt/RE7/input_RRFS_v1.nml b/physics/docs/pdftxt/RE7/input_RRFS_v1.nml index e80c532fa..9b8cbb1e0 100644 --- a/physics/docs/pdftxt/RE7/input_RRFS_v1.nml +++ b/physics/docs/pdftxt/RE7/input_RRFS_v1.nml @@ -1,149 +1,149 @@ !>[GFS_PHYSICS_NML] &gfs_physics_nml - addsmoke_flag = 1 - aero_dir_fdb = .true. - aero_ind_fdb = .false. - bl_mynn_edmf = 1 - bl_mynn_edmf_mom = 1 - bl_mynn_tkeadvect = .true. - cal_pre = .false. - cdmbgwd = 3.5, 1.0 - clm_debug_print = .false. - clm_lake_debug = .false. - cnvcld = .false. - cnvgwd = .false. - coarsepm_settling = 1 - cplflx = .false. - diag_log = .true. - debug = .false. - do_deep = .true. - do_gsl_drag_ls_bl = .true. - do_gsl_drag_ss = .true. - do_gsl_drag_tofd = .true. - do_mynnedmf = .true. - do_mynnsfclay = .true. - do_plumerise = .true. - do_smoke_transport = .true. - do_tofd = .false. - do_ugwp = .false. - do_ugwp_v0 = .false. - do_ugwp_v0_nst_only = .false. + addsmoke_flag = 1 + aero_dir_fdb = .true. + aero_ind_fdb = .false. + bl_mynn_edmf = 1 + bl_mynn_edmf_mom = 1 + bl_mynn_tkeadvect = .true. + cal_pre = .false. + cdmbgwd = 3.5, 1.0 + clm_debug_print = .false. + clm_lake_debug = .false. + cnvcld = .false. + cnvgwd = .false. + coarsepm_settling = 1 + cplflx = .false. + diag_log = .true. + debug = .false. + do_deep = .true. + do_gsl_drag_ls_bl = .true. + do_gsl_drag_ss = .true. + do_gsl_drag_tofd = .true. + do_mynnedmf = .true. + do_mynnsfclay = .true. + do_plumerise = .true. + do_smoke_transport = .true. + do_tofd = .false. + do_ugwp = .false. + do_ugwp_v0 = .false. + do_ugwp_v0_nst_only = .false. do_ugwp_v0_orog_only = .false. - drydep_opt = 1 - dspheat = .true. - dt_inner = 36 - dust_alpha = 10.0 + drydep_opt = 1 + dspheat = .true. + dt_inner = 36 + dust_alpha = 10.0 dust_drylimit_factor = 0.5 - dust_gamma = 1.3 + dust_gamma = 1.3 dust_moist_correction = 2.0 - dust_opt = 1 - ebb_dcycle = 2 - effr_in = .true. - enh_mix = .false. - fhcyc = 0 - fhlwr = 900.0 - fhswr = 900.0 - fhzero = 1.0 - frac_ice = .true. - gwd_opt = 3 - h2o_phys = .true. - hybedmf = .false. - iaer = 1011 - ialb = 2 - iau_delthrs = 6 - iau_inc_files = '' - iaufhrs = 30 - iccn = 2 - icliq_sw = 2 - icloud_bl = 1 - ico2 = 2 - iems = 2 - imfdeepcnv = 3 - imfshalcnv = -1 - imp_physics = 8 - iopt_alb = 2 - iopt_btr = 1 - iopt_crs = 1 - iopt_dveg = 2 - iopt_frz = 1 - iopt_inf = 1 - iopt_lake = 2 - iopt_rad = 1 - iopt_run = 1 - iopt_sfc = 1 - iopt_snf = 4 - iopt_stc = 1 - iopt_tbot = 2 - iovr = 3 - isncond_opt = 2 - isncovr_opt = 3 - isol = 2 - isot = 1 - isubc_lw = 2 - isubc_sw = 2 - ivegsrc = 1 - kice = 9 - ldiag3d = .true. - ldiag_ugwp = .false. - lgfdlmprad = .false. - lheatstrg = .false. - lightning_threat = .true. - lkm = 1 - lradar = .true. - lrefres = .true. - lsm = 3 - lsoil = 9 - lsoil_lsm = 9 - ltaerosol = .true. - lwhtr = .true. - min_lakeice = 0.15 - min_seaice = 0.15 - mix_chem = .true. - mosaic_lu = 1 - mosaic_soil = 1 - nsfullradar_diag = 3600 - oz_phys = .false. - oz_phys_2015 = .true. - pdfcld = .false. - plume_wind_eff = 1 - plumerisefire_frq = 60 - pre_rad = .false. - print_diff_pgr = .true. - prslrd0 = 0.0 - qdiag3d = .true. - random_clds = .false. - redrag = .true. - rrfs_sd = .true. - rrfs_smoke_debug = .false. - satmedmf = .false. - seas_opt = 0 - sfclay_compute_flux = .true. - shal_cnv = .false. - smoke_conv_wet_coef = 0.5, 0.5, 0.5 - smoke_forecast = 1 - swhtr = .true. - thsfc_loc = .false. - trans_trac = .true. - ttendlim = -999 - use_ufo = .true. - wetdep_ls_alpha = 0.5 - wetdep_ls_opt = 1 + dust_opt = 1 + ebb_dcycle = 2 + effr_in = .true. + enh_mix = .false. + fhcyc = 0 + fhlwr = 900.0 + fhswr = 900.0 + fhzero = 1.0 + frac_ice = .true. + gwd_opt = 3 + h2o_phys = .true. + hybedmf = .false. + iaer = 1011 + ialb = 2 + iau_delthrs = 6 + iau_inc_files = '' + iaufhrs = 30 + iccn = 2 + icliq_sw = 2 + icloud_bl = 1 + ico2 = 2 + iems = 2 + imfdeepcnv = 3 + imfshalcnv = -1 + imp_physics = 8 + iopt_alb = 2 + iopt_btr = 1 + iopt_crs = 1 + iopt_dveg = 2 + iopt_frz = 1 + iopt_inf = 1 + iopt_lake = 2 + iopt_rad = 1 + iopt_run = 1 + iopt_sfc = 1 + iopt_snf = 4 + iopt_stc = 1 + iopt_tbot = 2 + iovr = 3 + isncond_opt = 2 + isncovr_opt = 3 + isol = 2 + isot = 1 + isubc_lw = 2 + isubc_sw = 2 + ivegsrc = 1 + kice = 9 + ldiag3d = .true. + ldiag_ugwp = .false. + lgfdlmprad = .false. + lheatstrg = .false. + lightning_threat = .true. + lkm = 1 + lradar = .true. + lrefres = .true. + lsm = 3 + lsoil = 9 + lsoil_lsm = 9 + ltaerosol = .true. + lwhtr = .true. + min_lakeice = 0.15 + min_seaice = 0.15 + mix_chem = .true. + mosaic_lu = 1 + mosaic_soil = 1 + nsfullradar_diag = 3600 + oz_phys = .false. + oz_phys_2015 = .true. + pdfcld = .false. + plume_wind_eff = 1 + plumerisefire_frq = 60 + pre_rad = .false. + print_diff_pgr = .true. + prslrd0 = 0.0 + qdiag3d = .true. + random_clds = .false. + redrag = .true. + rrfs_sd = .true. + rrfs_smoke_debug = .false. + satmedmf = .false. + seas_opt = 0 + sfclay_compute_flux = .true. + shal_cnv = .false. + smoke_conv_wet_coef = 0.5, 0.5, 0.5 + smoke_forecast = 1 + swhtr = .true. + thsfc_loc = .false. + trans_trac = .true. + ttendlim = -999 + use_ufo = .true. + wetdep_ls_alpha = 0.5 + wetdep_ls_opt = 1 / !! [GFS_PHYSICS_NML] !>[CIRES_UGWP_NML] &cires_ugwp_nml - knob_ugwp_azdir = 2, 4, 4, 4 - knob_ugwp_doaxyz = 1 - knob_ugwp_doheat = 1 - knob_ugwp_dokdis = 1 - knob_ugwp_effac = 1, 1, 1, 1 - knob_ugwp_ndx4lh = 1 - knob_ugwp_solver = 2 - knob_ugwp_source = 1, 1, 0, 0 - knob_ugwp_stoch = 0, 0, 0, 0 - knob_ugwp_version = 0 - knob_ugwp_wvspec = 1, 25, 25, 25 - launch_level = 25 + knob_ugwp_azdir = 2, 4, 4, 4 + knob_ugwp_doaxyz = 1 + knob_ugwp_doheat = 1 + knob_ugwp_dokdis = 1 + knob_ugwp_effac = 1, 1, 1, 1 + knob_ugwp_ndx4lh = 1 + knob_ugwp_solver = 2 + knob_ugwp_source = 1, 1, 0, 0 + knob_ugwp_stoch = 0, 0, 0, 0 + knob_ugwp_version = 0 + knob_ugwp_wvspec = 1, 25, 25, 25 + launch_level = 25 / !! [CIRES_UGWP_NML] diff --git a/physics/docs/pdftxt/RE7/input_WoFS_v0.nml b/physics/docs/pdftxt/RE7/input_WoFS_v0.nml index ab27b9a0e..6e7035a3b 100644 --- a/physics/docs/pdftxt/RE7/input_WoFS_v0.nml +++ b/physics/docs/pdftxt/RE7/input_WoFS_v0.nml @@ -1,105 +1,105 @@ !> [GFS_PHYSICS_NML] &gfs_physics_nml - bl_mynn_edmf = 1 - bl_mynn_edmf_mom = 1 - bl_mynn_tkeadvect = .true. - cal_pre = .false. - cdmbgwd = 3.5, 0.25 - cnvcld = .false. - cnvgwd = .false. - cplflx = .false. - debug = .false. - do_deep = .false. - do_mynnedmf = .true. - do_mynnsfclay = .true. - do_shum = .false. - do_skeb = .false. - do_spp = .false. - do_sppt = .false. - dspheat = .true. - effr_in = .true. - fhcyc = 0 - fhlwr = 1200.0 - fhswr = 1200.0 - fhzero = 1.0 - h2o_phys = .true. - hybedmf = .false. - iaer = 111 - ialb = 1 - iau_delthrs = 6 - iau_inc_files = '' - iaufhrs = 30 - icloud_bl = 1 - ico2 = 2 - iems = 1 - imfdeepcnv = -1 - imfshalcnv = -1 - imp_physics = 17 - iopt_alb = 2 - iopt_btr = 1 - iopt_crs = 1 - iopt_dveg = 2 - iopt_frz = 1 - iopt_inf = 1 - iopt_rad = 1 - iopt_run = 1 - iopt_sfc = 1 - iopt_snf = 4 - iopt_stc = 1 - iopt_tbot = 2 - isol = 2 - isot = 1 - isubc_lw = 2 - isubc_sw = 2 - ivegsrc = 1 - ldiag3d = .true. - lheatstrg = .false. - lndp_type = 0 - lradar = .true. - lsm = 1 - lsoil = 4 - lsoil_lsm = 4 - ltaerosol = .true. - lwhtr = .true. - n_var_lndp = 0 - n_var_spp = 0 - nsfullradar_diag = 3600 - nssl_cccn = 600000000.0 - nssl_ccn_on = .true. - nssl_hail_on = .true. - nst_anl = .true. - nstf_name = 2, 1, 0, 0, 0 - oz_phys = .false. - oz_phys_2015 = .true. - pdfcld = .false. - pre_rad = .false. - print_diff_pgr = .false. - prslrd0 = 0.0 - qdiag3d = .true. - random_clds = .false. - redrag = .true. - satmedmf = .false. - shal_cnv = .false. - swhtr = .true. - trans_trac = .true. - ttendlim = -999 - use_ufo = .true. + bl_mynn_edmf = 1 + bl_mynn_edmf_mom = 1 + bl_mynn_tkeadvect = .true. + cal_pre = .false. + cdmbgwd = 3.5, 0.25 + cnvcld = .false. + cnvgwd = .false. + cplflx = .false. + debug = .false. + do_deep = .false. + do_mynnedmf = .true. + do_mynnsfclay = .true. + do_shum = .false. + do_skeb = .false. + do_spp = .false. + do_sppt = .false. + dspheat = .true. + effr_in = .true. + fhcyc = 0 + fhlwr = 1200.0 + fhswr = 1200.0 + fhzero = 1.0 + h2o_phys = .true. + hybedmf = .false. + iaer = 111 + ialb = 1 + iau_delthrs = 6 + iau_inc_files = '' + iaufhrs = 30 + icloud_bl = 1 + ico2 = 2 + iems = 1 + imfdeepcnv = -1 + imfshalcnv = -1 + imp_physics = 17 + iopt_alb = 2 + iopt_btr = 1 + iopt_crs = 1 + iopt_dveg = 2 + iopt_frz = 1 + iopt_inf = 1 + iopt_rad = 1 + iopt_run = 1 + iopt_sfc = 1 + iopt_snf = 4 + iopt_stc = 1 + iopt_tbot = 2 + isol = 2 + isot = 1 + isubc_lw = 2 + isubc_sw = 2 + ivegsrc = 1 + ldiag3d = .true. + lheatstrg = .false. + lndp_type = 0 + lradar = .true. + lsm = 1 + lsoil = 4 + lsoil_lsm = 4 + ltaerosol = .true. + lwhtr = .true. + n_var_lndp = 0 + n_var_spp = 0 + nsfullradar_diag = 3600 + nssl_cccn = 600000000.0 + nssl_ccn_on = .true. + nssl_hail_on = .true. + nst_anl = .true. + nstf_name = 2, 1, 0, 0, 0 + oz_phys = .false. + oz_phys_2015 = .true. + pdfcld = .false. + pre_rad = .false. + print_diff_pgr = .false. + prslrd0 = 0.0 + qdiag3d = .true. + random_clds = .false. + redrag = .true. + satmedmf = .false. + shal_cnv = .false. + swhtr = .true. + trans_trac = .true. + ttendlim = -999 + use_ufo = .true. / !! [GFS_PHYSICS_NML] !>[CIRES_UGWP_NML] &cires_ugwp_nml - knob_ugwp_azdir = 2, 4, 4, 4 - knob_ugwp_doaxyz = 1 - knob_ugwp_doheat = 1 - knob_ugwp_dokdis = 1 - knob_ugwp_effac = 1, 1, 1, 1 - knob_ugwp_ndx4lh = 1 - knob_ugwp_solver = 2 - knob_ugwp_source = 1, 1, 0, 0 - knob_ugwp_stoch = 0, 0, 0, 0 - knob_ugwp_version = 0 - knob_ugwp_wvspec = 1, 25, 25, 25 - launch_level = 25 + knob_ugwp_azdir = 2, 4, 4, 4 + knob_ugwp_doaxyz = 1 + knob_ugwp_doheat = 1 + knob_ugwp_dokdis = 1 + knob_ugwp_effac = 1, 1, 1, 1 + knob_ugwp_ndx4lh = 1 + knob_ugwp_solver = 2 + knob_ugwp_source = 1, 1, 0, 0 + knob_ugwp_stoch = 0, 0, 0, 0 + knob_ugwp_version = 0 + knob_ugwp_wvspec = 1, 25, 25, 25 + launch_level = 25 / !![CIRES_UGWP_NML] From 0b6405727053f15b0308ce2d93260f0754cc3177 Mon Sep 17 00:00:00 2001 From: Man Zhang Date: Wed, 3 Jul 2024 16:31:27 -0600 Subject: [PATCH 11/29] add seperate page for cellular automata and physics update summary --- physics/docs/ccpp_doxyfile | 2 + physics/docs/library.bib | 55 ++++++- physics/docs/pdftxt/GFS_CAUTOMATA.txt | 143 +++++++++++++++++ physics/docs/pdftxt/GFS_SAMFdeep.txt | 176 +++------------------ physics/docs/pdftxt/RRFS_v1_suite.txt | 2 +- physics/docs/pdftxt/all_schemes_list.txt | 2 +- physics/docs/pdftxt/ccppv7_phy_updates.txt | 77 +++++++++ physics/docs/pdftxt/mainpage.txt | 6 - 8 files changed, 296 insertions(+), 167 deletions(-) create mode 100644 physics/docs/pdftxt/GFS_CAUTOMATA.txt create mode 100644 physics/docs/pdftxt/ccppv7_phy_updates.txt diff --git a/physics/docs/ccpp_doxyfile b/physics/docs/ccpp_doxyfile index 9d7140566..1b6423813 100644 --- a/physics/docs/ccpp_doxyfile +++ b/physics/docs/ccpp_doxyfile @@ -943,6 +943,7 @@ WARN_LOGFILE = # Note: If this tag is empty the current directory is searched. INPUT = pdftxt/mainpage.txt \ + pdftxt/ccppv7_phy_updates.txt \ pdftxt/all_schemes_list.txt \ pdftxt/GFS_v16_suite.txt \ pdftxt/GFS_v17_HR3_suite.txt \ @@ -968,6 +969,7 @@ INPUT = pdftxt/mainpage.txt \ pdftxt/GFS_OZPHYS.txt \ pdftxt/GFS_H2OPHYS.txt \ pdftxt/GFS_SAMFdeep.txt \ + pdftxt/GFS_CAUTOMATA.txt \ pdftxt/GFS_SAMFshal.txt \ pdftxt/GFDL_cloud.txt \ pdftxt/NSSLMICRO.txt \ diff --git a/physics/docs/library.bib b/physics/docs/library.bib index 0ca85a7b0..06d1c46b5 100644 --- a/physics/docs/library.bib +++ b/physics/docs/library.bib @@ -1,12 +1,65 @@ %% This BibTeX bibliography file was created using BibDesk. %% https://bibdesk.sourceforge.io/ -%% Created for Man Zhang at 2024-06-27 13:18:41 -0600 +%% Created for Man Zhang at 2024-07-02 13:44:09 -0600 %% Saved with string encoding Unicode (UTF-8) +@article{han_2021, + author = {J. Han, J. Peng, W. Li, W. Wang, Z. Zhang, F. Yang and W. Zheng}, + date-added = {2024-07-02 13:49:10 -0600}, + date-modified = {2024-07-02 13:49:10 -0600}, + doi = {10.25923/CYBH-W893}, + publisher = {National Centers for Environmental Prediction (U.S.)}, + title = {Updates in the NCEP GFS Cumulus Convection, Vertical Turbulent Mixing, and Surface Layer Physics}, + url = {https://repository.library.noaa.gov/view/noaa/33881}, + year = {2021}} + + + +@article{Han_2024, + author = {Han, Jongil and Peng, Jiayi and Li, Wei and Wang, Weiguo and Zhang, Zhan and Yang, Fanglin and Zheng, Weizhong}, + date-added = {2024-07-02 13:44:05 -0600}, + date-modified = {2024-07-02 13:44:05 -0600}, + doi = {10.1175/waf-d-23-0134.1}, + issn = {1520-0434}, + journal = {Weather and Forecasting}, + month = apr, + number = {4}, + pages = {679{\^a}€“688}, + publisher = {American Meteorological Society}, + title = {Updates in the NCEP GFS PBL and Convection Models with Environmental Wind Shear Effect and Modified Entrainment and Detrainment Rates and Their Impacts on the GFS Hurricane and CAPE Forecasts}, + url = {http://dx.doi.org/10.1175/WAF-D-23-0134.1}, + volume = {39}, + year = {2024}, + bdsk-url-1 = {http://dx.doi.org/10.1175/WAF-D-23-0134.1}} + +@article{Bengtsson_et_al_2020, + abstract = {Abstract In the atmosphere, convection can organize from smaller scale updrafts into more coherent structures on various scales. In bulk-plume cumulus convection parameterizations, this type of organization has to be represented in terms of how the resolved flow would ``feel'' convection if more coherent structures were present on the subgrid. This type of subgrid organization acts as building blocks for larger scale tropical convective organization known to modulate local and remote weather. In this work a parameterization for subgrid (and cross-grid) organization in a bulk-plume convection scheme is proposed using the stochastic, self-organizing, properties of cellular automata (CA). We investigate the effects of using a CA which can interact with three different components of the bulk-plume scheme that modulate convective activity: entrainment, triggering, and closure. The impacts of the revised schemes are studied in terms of the model's ability to organize convectively coupled equatorial waves (CCEWs). The differing impacts of adopting the stochastic CA scheme, as compared to the widely used Stochastically Perturbed Physics Tendency (SPPT) scheme, are also assessed. Results show that with the CA scheme, precipitation is more spatially and temporally organized, and there is a systematic shift in equatorial wave phase speed not seen with SPPT. Previous studies have noted a linear relationship between Gross Moist Stability (GMS) and Kelvin wave phase speed. Analysis of GMS in this study shows an increase in Kelvin wave phase speed and an increase in GMS with the CA scheme, which is tied to a shift from large-scale precipitation to convective precipitation.}, + author = {Bengtsson, Lisa and Dias, Juliana and Tulich, Stefan and Gehne, Maria and Bao, Jian-Wen}, + doi = {https://doi.org/10.1029/2020MS002260}, + eprint = {https://agupubs.onlinelibrary.wiley.com/doi/pdf/10.1029/2020MS002260}, + journal = {Journal of Advances in Modeling Earth Systems}, + keywords = {cellular automata, cumulus convection, convective organization, stochastic physics}, + note = {e2020MS002260 2020MS002260}, + number = {1}, + pages = {e2020MS002260}, + title = {A Stochastic Parameterization of Organized Tropical Convection Using Cellular Automata for Global Forecasts in NOAA's Unified Forecast System}, + url = {https://agupubs.onlinelibrary.wiley.com/doi/abs/10.1029/2020MS002260}, + volume = {13}, + year = {2021}, + bdsk-url-1 = {https://agupubs.onlinelibrary.wiley.com/doi/abs/10.1029/2020MS002260}, + bdsk-url-2 = {https://doi.org/10.1029/2020MS002260}} + +@article{Han_et_al_2022, + author = {J. Han, F. Yang, R. Montuoro, W. Li, R. Sun}, + date-added = {2024-07-02 11:17:39 -0600}, + date-modified = {2024-07-02 11:20:58 -0600}, + institution = {NCEP Office Note 506}, + title = {Implementation of a positive definite mass-flux scheme and a method for removing the negative tracers in the NCEP GFS planetary boundary layer and cumulus convection scheme}, + year = {2022}} @article{xu_and_randall_1996, author = {Xu, Kuan-Man and Randall, David A.}, diff --git a/physics/docs/pdftxt/GFS_CAUTOMATA.txt b/physics/docs/pdftxt/GFS_CAUTOMATA.txt new file mode 100644 index 000000000..7780612e2 --- /dev/null +++ b/physics/docs/pdftxt/GFS_CAUTOMATA.txt @@ -0,0 +1,143 @@ +/** +\page cellular_automata Cellular Automata Stochastic Convective Organization Scheme + +\b Scientific \b Background + +Cumulus clouds in the atmosphere can organize into a variety of sizes, ranging +from small fair‐weather cumulus clouds, rain showers and thunderstorms, to +larger scale weather systems. In weather and climate models, such organization +is traditionally not well-represented as the motions associated with cumulus +clouds are generally too small to be resolved by the numerical model. +In this scheme we use a stochastic cellular automaton (CA), a mathematical +model often used to describe self‐organizing behavior in physical systems to +represent the effects of convective organization. The scheme addresses the +effect of convective organization in a bulk-plume cumulus convection +parameterizations (saSAS), where this type of organization has to be +represented in terms of how the resolved flow would “feel” convection if +more coherent structures were present on the subgrid. + +In addition, for longer range forecasts (seasonal, decadal, climate), +the relevance of stochastic cumulus convection in numerical models can also +be discussed in terms of noise induced forcing. As an example, on the +time scale of organized convectively coupled waves, the small scale individual +convective plumes grow and decay so rapidly that they are not predictable +on time-scales longer than a few hours, whereas the organized larger scale +convectively coupled wave envelope can have a deterministic limit of +predictability of about two weeks. Thus, for longer range forecasts, +individual convective plumes can be viewed as stochastic noise - they can +have an impact on the convectively coupled waves (due to noise forcing), +but they are not predictable on their own. By providing the CA with a +stochastic initialization, the effect of stochastic cumulus convection +is also represented by the scheme. + +The scientific motivation for the scheme, the CA rulesets explored, and +the impact on convectively coupled equatorial waves can be found in the +following references; Bengtsson et al. 2011 \cite Bengtsson_2011, +Bengtsson et al. 2013 \cite bengtsson_et_al_2013, +Bengtsson and Kornich (2016) \cite bengtsson_and_kornich_2016, +Bengtsson et al 2019 \cite Bengtsson_2019, +and Bengtsson et al. 2021 \cite bengtsson_et_al_2021. + +\b Technical \b remarks + +The CA source code is located in the stochastic physics submodule in +the ufs-weather-model: https://github.com/noaa-psd/stochastic_physics . +In the UFS Weather Model, the main call to the CA routines are made +from FV3/stochastic_physics_driver.F90. + +There are currently two options to evolve the CA (can be done simultaneously); +(\p ca_global) a large scale global pattern which evolves the ruleset according +to game of life with cell history, or (\p ca_sgs) a sub-grid scale pattern +which is conditioned on a forcing from the atmospheric model. The two options +are controlled by namelist and are evolved in cellular_automata_globa.F90 +and cellular_automata_sgs.F90 respectively. Both approaches use the main +CA module update_ca.F90 to evolve the CA in time. Since the CA needs to know +about its neighborhood it uses the halo information to gather the state +in adjacent MPI domains and/or adjacent cube sphere interfaces. + +\b The \p ca_sgs \b option - \b Coupled \b to \b saSAS \b cumulus \b convection \b scheme + +The evolution of the CA is an extension to the automaton family known as “Generations,” +which in turn is based on the “Game of Life”(Chopard & Droz, 1998 \cite Chopard_1998) + but adds cell history to the rule set. It is a deterministic CA ruleset, initialized +with Gaussian white noise. Thus, when used in an ensemble system, each ensemble +member can provide a different seed to the random number generator governing +the initial state to then generate a different evolution for each member. +By cell history we refer to newborn cells being given a “lifetime,”τ, +that is incrementally reduced by 1 each time step where the rules are not met, + in contrast to going directly from 1 to 0. The CA is conditioned on a +forcing from the host model through the lifetime variable τ such that: + +\f[ +\tau =N\left( \frac{\int_{l=1}^{l=top}E\frac{dp }{g} }{\max\left( \int_{l=1}^{l=top} E\frac{d p}{g}\right)} \right) +\f] + +here, N is an integer that when multiplied by the model time-step represents +a physical time scale, such that τ is longer in regions where the forcing is larger, +E is the vertically integrated convective rain evaporation from the +saSAS cumulus convection scheme stored in Coupling%condition. The denominator is +the maximum value of the forcing in the global domain. While the grid-scale +forcing in practice could be any two-dimensional field, we choose here +to set it as the vertically integrated subgrid rain evaporation amount, +serving as an indicator of geographical regions where enhanced subgrid +organization may arise through convective cold-pools. + +The CA is evolved on a finer grid than the numerical prediction +host model (size controlled by namelist), and can be either coarse +grained back to the host model grid as a fraction, or (in case of \p nca_plumes = .true.) +give back the maximum number of connected “plumes” (represented by +connected CA cells), and their associated size within each numerical +prediction host model grid-box. nca_plumes is default true and the +maximum cluster size is passed to the saSAS cumulus convection scheme +in the Coupling%ca_deep container. + +Depending on the activated namelist options, the CA can feed back to +the saSAS convection scheme via the entrainment (\p ca_entr), closure +(\p ca_closure) or convective initiation (\p ca_trigger) in the following way: + +- Entrainment (\p ca_entr): In entraining plume model bulk mass-flux schemes, +the upward mass-flux is typically parameterized as a function of environmental +air being entrained into the rising plume (as well as parcel properties at +cloud base). The fractional entrainment is described as a function of the +plume radius. Larger thermals (plumes) have smaller fractional entrainment, +which is a consequence of the fact that larger areas have relatively smaller +perimeters. In this scheme, the assumption is that subgrid organization will +lead to a few larger plumes rather than several smaller plumes, such that +the grid-box average fractional entrainment is reduced. Thus, after +the CA is updated, we count the number of plumes, and their associated +size within each NWP grid-box (\p nca_plumes = true). If the largest +cluster of cells found on the subgrid is larger than a set radius, then the +fractional entrainment rate is reduced at that grid-point by 30% +(selected based on experimentation) + +- Triggering (\p ca_trigger): In NWP models physical processes are parameterized +in columns, and the horizontal interaction between physical processes takes +place only through advection and diffusion. As the CA can organize clusters +across adjacent NWP model grid-boxes, the method offers a novel approach to +enhance the probability of triggering of convection in nearby areas, +representing subgrid fluctuations in temperature and humidity, and triggering +in premoistened regions if convection is triggered in a cluster. The +stochastic nature of the CA may enhance organization in different +directions within the grid-box, and across grid-boxes, depending on the +initial seed. If the model is run as an ensemble, the convection scheme's +stochastic triggering function can help to improve uncertainty estimates +associated with subgrid fluctuations of temperature and humidity and +randomness in organization. In this work, model grid boxes in which the +CA's largest connecting plume exceeds a given threshold will be considered +as candidates for convective activation, in addition to saSAS’s current +triggering criteria. + +- Closure (\p ca_closure): We assume that convection that organizes into +plumes with larger radii tends to cover a larger area fraction of the +grid-box and thereby acts to enhance the cloud base mass flux. In this +coupling strategy, we again count the number of plumes (represented by +connected cellular automaton cells), and their associated size within +each NWP grid-box. If the largest cluster of cells found on the subgrid +is larger than a set radius, then the cloud base mass-flux is enhanced in +that grid-box by 25% (selected based on experimentation). This option is +being revisited by reformulating the entire closure using a prognostic +evolution of the updraft area fraction, and is in its current formulation +not recommended. + + +*/ diff --git a/physics/docs/pdftxt/GFS_SAMFdeep.txt b/physics/docs/pdftxt/GFS_SAMFdeep.txt index 1112cb05c..99ea4cb13 100644 --- a/physics/docs/pdftxt/GFS_SAMFdeep.txt +++ b/physics/docs/pdftxt/GFS_SAMFdeep.txt @@ -28,7 +28,7 @@ downdrafts and only one cloud type (the deepest possible), rather than a spectrum based on cloud top heights or assumed entrainment rates. The scheme was implemented for the GFS in 1995 by Pan and Wu (1995) \cite pan_and_wu_1995, - with further modifications discussed in Han and Pan (2011) \cite han_and_pan_2011 , including the calculation + with further modifications discussed in Han and Pan (2011) \cite han_and_pan_2011, including the calculation of cloud top, a greater CFL-criterion-based maximum cloud base mass flux, updated cloud model entrainment and detrainment, improved convective transport of horizontal momentum, a more general triggering function, @@ -50,7 +50,10 @@ cloud condensate in the updraft. The lateral entrainment is also enhanced to more strongly suppress convection in a drier environment. - In further update for FY19 GFS implementation, interaction with turbulent + +\subsection gfsv16updates GFSv16 Updates + + In further update for FY19 GFSv16 implementation, interaction with turbulent kinetic energy (TKE), which is a prognostic variable used in a scale-aware TKE-based moist EDMF vertical turbulent mixing scheme, is included. Entrainment rates in updrafts and downdrafts are proportional to sub-cloud @@ -58,167 +61,24 @@ cumulus convection is deduced from cumulus mass flux. On the other hand, tracers such as ozone and aerosol are also transported by cumulus convection. - Occasional model crashes have been occurred when stochastic physics is on, - due to too much convective cooling and heating tendencies near the cumulus - top which are amplified by stochastic physics. To reduce too much convective - cooling at the cloud top, the convection schemes have been modified for the + Occasional model crashes occurred when stochastic physics is on, + due to too strong convective cooling and heating tendencies near the cumulus + top which are amplified by stochastic physics. In order to alleviate this, + the convection schemes were modified for the rain conversion rate, entrainment and detrainment rates, overshooting layers, and maximum allowable cloudbase mass flux (as of June 2018). -\subsection ca_page Cellular Automata Stochastic Convective Organization Scheme - -\b Scientific \b Background - -Cumulus clouds in the atmosphere can organize into a variety of sizes, ranging -from small fair‐weather cumulus clouds, rain showers and thunderstorms, to -larger scale weather systems. In weather and climate models, such organization -is traditionally not well-represented as the motions associated with cumulus -clouds are generally too small to be resolved by the numerical model. -In this scheme we use a stochastic cellular automaton (CA), a mathematical -model often used to describe self‐organizing behavior in physical systems to -represent the effects of convective organization. The scheme addresses the -effect of convective organization in a bulk-plume cumulus convection -parameterizations (saSAS), where this type of organization has to be -represented in terms of how the resolved flow would “feel” convection if -more coherent structures were present on the subgrid. - -In addition, for longer range forecasts (seasonal, decadal, climate), -the relevance of stochastic cumulus convection in numerical models can also -be discussed in terms of noise induced forcing. As an example, on the -time scale of organized convectively coupled waves, the small scale individual -convective plumes grow and decay so rapidly that they are not predictable -on time-scales longer than a few hours, whereas the organized larger scale -convectively coupled wave envelope can have a deterministic limit of -predictability of about two weeks. Thus, for longer range forecasts, -individual convective plumes can be viewed as stochastic noise - they can -have an impact on the convectively coupled waves (due to noise forcing), -but they are not predictable on their own. By providing the CA with a -stochastic initialization, the effect of stochastic cumulus convection -is also represented by the scheme. - -The scientific motivation for the scheme, the CA rulesets explored, and -the impact on convectively coupled equatorial waves can be found in the -following references; Bengtsson et al. 2011 \cite Bengtsson_2011, -Bengtsson et al. 2013 \cite bengtsson_et_al_2013, -Bengtsson and Kornich (2016) \cite bengtsson_and_kornich_2016, -Bengtsson et al 2019 \cite Bengtsson_2019, -and Bengtsson et al. 2021 \cite bengtsson_et_al_2021. - -\b Technical \b remarks - -The CA source code is located in the stochastic physics submodule in -the ufs-weather-model: https://github.com/noaa-psd/stochastic_physics . -In the UFS Weather Model, the main call to the CA routines are made -from FV3/stochastic_physics_driver.F90. - -There are currently two options to evolve the CA (can be done simultaneously); -(\p ca_global) a large scale global pattern which evolves the ruleset according -to game of life with cell history, or (\p ca_sgs) a sub-grid scale pattern -which is conditioned on a forcing from the atmospheric model. The two options -are controlled by namelist and are evolved in cellular_automata_globa.F90 -and cellular_automata_sgs.F90 respectively. Both approaches use the main -CA module update_ca.F90 to evolve the CA in time. Since the CA needs to know -about its neighborhood it uses the halo information to gather the state -in adjacent MPI domains and/or adjacent cube sphere interfaces. - -\b The \p ca_sgs \b option - \b Coupled \b to \b saSAS \b cumulus \b convection \b scheme - -The evolution of the CA is an extension to the automaton family known as “Generations,” -which in turn is based on the “Game of Life”(Chopard & Droz, 1998 \cite Chopard_1998) - but adds cell history to the rule set. It is a deterministic CA ruleset, initialized -with Gaussian white noise. Thus, when used in an ensemble system, each ensemble -member can provide a different seed to the random number generator governing -the initial state to then generate a different evolution for each member. -By cell history we refer to newborn cells being given a “lifetime,”τ, -that is incrementally reduced by 1 each time step where the rules are not met, - in contrast to going directly from 1 to 0. The CA is conditioned on a -forcing from the host model through the lifetime variable τ such that: - -\f[ -\tau =N\left( \frac{\int_{l=1}^{l=top}E\frac{dp }{g} }{\max\left( \int_{l=1}^{l=top} E\frac{d p}{g}\right)} \right) -\f] - -here, N is an integer that when multiplied by the model time-step represents -a physical time scale, such that τ is longer in regions where the forcing is larger, -E is the vertically integrated convective rain evaporation from the -saSAS cumulus convection scheme stored in Coupling%condition. The denominator is -the maximum value of the forcing in the global domain. While the grid-scale -forcing in practice could be any two-dimensional field, we choose here -to set it as the vertically integrated subgrid rain evaporation amount, -serving as an indicator of geographical regions where enhanced subgrid -organization may arise through convective cold-pools. - -The CA is evolved on a finer grid than the numerical prediction -host model (size controlled by namelist), and can be either coarse -grained back to the host model grid as a fraction, or (in case of \p nca_plumes = .true.) -give back the maximum number of connected “plumes” (represented by -connected CA cells), and their associated size within each numerical -prediction host model grid-box. nca_plumes is default true and the -maximum cluster size is passed to the saSAS cumulus convection scheme -in the Coupling%ca_deep container. - -Depending on the activated namelist options, the CA can feed back to -the saSAS convection scheme via the entrainment (\p ca_entr), closure -(\p ca_closure) or convective initiation (\p ca_trigger) in the following way: - -- Entrainment (\p ca_entr): In entraining plume model bulk mass-flux schemes, -the upward mass-flux is typically parameterized as a function of environmental -air being entrained into the rising plume (as well as parcel properties at -cloud base). The fractional entrainment is described as a function of the -plume radius. Larger thermals (plumes) have smaller fractional entrainment, -which is a consequence of the fact that larger areas have relatively smaller -perimeters. In this scheme, the assumption is that subgrid organization will -lead to a few larger plumes rather than several smaller plumes, such that -the grid-box average fractional entrainment is reduced. Thus, after -the CA is updated, we count the number of plumes, and their associated -size within each NWP grid-box (\p nca_plumes = true). If the largest -cluster of cells found on the subgrid is larger than a set radius, then the -fractional entrainment rate is reduced at that grid-point by 30% -(selected based on experimentation) - -- Triggering (\p ca_trigger): In NWP models physical processes are parameterized -in columns, and the horizontal interaction between physical processes takes -place only through advection and diffusion. As the CA can organize clusters -across adjacent NWP model grid-boxes, the method offers a novel approach to -enhance the probability of triggering of convection in nearby areas, -representing subgrid fluctuations in temperature and humidity, and triggering -in premoistened regions if convection is triggered in a cluster. The -stochastic nature of the CA may enhance organization in different -directions within the grid-box, and across grid-boxes, depending on the -initial seed. If the model is run as an ensemble, the convection scheme's -stochastic triggering function can help to improve uncertainty estimates -associated with subgrid fluctuations of temperature and humidity and -randomness in organization. In this work, model grid boxes in which the -CA's largest connecting plume exceeds a given threshold will be considered -as candidates for convective activation, in addition to saSAS’s current -triggering criteria. - -- Closure (\p ca_closure): We assume that convection that organizes into -plumes with larger radii tends to cover a larger area fraction of the -grid-box and thereby acts to enhance the cloud base mass flux. In this -coupling strategy, we again count the number of plumes (represented by -connected cellular automaton cells), and their associated size within -each NWP grid-box. If the largest cluster of cells found on the subgrid -is larger than a set radius, then the cloud base mass-flux is enhanced in -that grid-box by 25% (selected based on experimentation). This option is -being revisited by reformulating the entire closure using a prognostic -evolution of the updraft area fraction, and is in its current formulation -not recommended. +\subsection gfsv17updates_samf GFS saSAS Scheme Updates in GFSv17 + The updates to the SAMF parameterization described above, between GFSv16 and GFSv17 + are carefully outlined in Bengtsson and Han (2004)(submitted to WAF). The main updates include: -\subsection gen_enh Physics Updates in GFS Cumulus Convection + - Implementation of a positive definition mass-flux scheme and a method for removing the negative tracers (Han et al. 2022 \cite Han_et_al_2022) + - Introduction of a new closure based on a prognostic evolution of the convective updraft area fraction in both shallow and deep convection (Bengtsson et al. 2022 \cite Bengtsson_2022) + - Introduction of 3D effects of cold-pool dynamics and stochastic initiation using self-organizing \ref cellular_automata (Bengtsson et al. 2021 \cite bengtsson_et_al_2021) + - Introduction of environmental wind shear and TKE dependence in convection, to seek improvements in hurricane forecast prediction (Han et al. 2024 \cite Han_2024) + - Stricter convective initiation criteria to allow for more CAPE to build up to address a low CAPE bias in GFSv16 (Han et al. 2021 \cite han_2021) + - Reduction of convective rain evaporation rate to address a systematic cold bias near the surface in GFSv16 (Han et al. 2021 \cite han_2021) -- To enhance the surface-based convective available potential energy (CAPE), -more strict convection trigger conditions are applied. -- Enhanced downdraft detrainments start from 60 mb above the ground surface -rather than from the cloud base. -- Reduced rain evaporation with the removal of wind shear dependency, which -helps to reduce cold bias in tropospheric temperature profile especially over Tropics. -- Separation cloud depth of deep and shallow convection is -increased to 200 hPa from 150 hPa. -- Updraft entrainment rates for moisture, hydrometeors, and tracers are -increased by about 30%. -- A positive definite TVD (Total Variation Diminishing) mass-flux transport -scheme for moisture, hydrometeors and tracers and a method for removing negative tracer mixing ratio values have been implemented. \sa NCEP Office Note 505 \cite https://doi.org/10.25923/cybh-w893 and 506 \cite https://doi.org/10.25923/5051-3r70 \section intra_deep Intraphysics Communication diff --git a/physics/docs/pdftxt/RRFS_v1_suite.txt b/physics/docs/pdftxt/RRFS_v1_suite.txt index f44321b3f..568bc4872 100644 --- a/physics/docs/pdftxt/RRFS_v1_suite.txt +++ b/physics/docs/pdftxt/RRFS_v1_suite.txt @@ -6,7 +6,7 @@ The RRFS_v1 suite is one of the candidates for the future operational implementation of the Rapid Refresh Forecast System (RRFS), which can be configured using the UFS SRW App. -The RRFS_v1beta suite uses the parameterizations in the following order: +The RRFS_v1 suite uses the parameterizations in the following order: - \ref SGSCLOUD_page - \ref GFS_RRTMG_page - \ref SFC_MYNNSFL diff --git a/physics/docs/pdftxt/all_schemes_list.txt b/physics/docs/pdftxt/all_schemes_list.txt index aa28e26ce..82d081e38 100644 --- a/physics/docs/pdftxt/all_schemes_list.txt +++ b/physics/docs/pdftxt/all_schemes_list.txt @@ -24,7 +24,7 @@ which facilitates model development and code maintenance. While some individual \b Cumulus \b Parameterizations - \subpage GFS_SAMFdeep - - \ref ca_page + - \subpage cellular_automata - \subpage GFS_SAMFshal - \subpage CU_GF diff --git a/physics/docs/pdftxt/ccppv7_phy_updates.txt b/physics/docs/pdftxt/ccppv7_phy_updates.txt new file mode 100644 index 000000000..661ff2ff6 --- /dev/null +++ b/physics/docs/pdftxt/ccppv7_phy_updates.txt @@ -0,0 +1,77 @@ +/** +\page ccppv7_phy Physics Update Summary + +\b General \b Changes: + Add GFS_v17, GFS_v16_RRTMGP, and RRFS_v1 suites as new supported suite +- New the Community Lake Model \ref CLM_LAKE_model in RRFS_v1 suite +- New \ref GFS_ugwpv1_gsldrag in GFS_v17 suite +- New \ref GFS_RRTMGP_page in GFS_v16_RRTMGP suite +- New RRFS SD scheme in RRFS_v1 suite +- rename GSL drag suite to \todo gsldrag + +\b GFS \b Scale-aware \b TKE-EDMF \b PBL \b and \b Cumulus \b Schemes: + +The updates between GFSv16 and GFSv17 are carefully outlined in Bengtsson and Han (2004)(submitted to WAF). The main updates include: + +- Implementation of a positive definition mass-flux scheme and a method for removing the negative tracers (Han et al. 2022 \cite Han_et_al_2022) +- Introduction of a new closure based on a prognostic evolution of the convective updraft area fraction in both shallow and deep convection (Bengtsson et al. 2022 \cite Bengtsson_2022) +- Introduction of 3D effects of cold-pool dynamics and stochastic initiation using self-organizing \ref cellular_automata (Bengtsson et al. 2021 \cite bengtsson_et_al_2021) +- Introduction of environmental wind shear and TKE dependence in convection, to seek improvements in hurricane forecast prediction (Han et al. 2024 \cite Han_2024) +- Stricter convective initiation criteria to allow for more CAPE to build up to address a low CAPE bias in GFSv16 (Han et al. 2021 \cite han_2021) +- Reduction of convective rain evaporation rate to address a systematic cold bias near the surface in GFSv16 (Han et al. 2021 \cite han_2021) + +\b Thompson \b Microphysics \b Scheme: +- Ice generation supersaturation requirement reduced from 0.25 to 0.15 to generate more ice at the upper +levels and reduce the outgoing longwave radiation bias +- Cloud number concentration divided into two parts (over land and others). Number concentration over +ocean reduced to a smaller number (50/L) from its previous default (100/L). Both changes were made to reduce +excessive surface downward shortwave radiative flux off coastal regions including the Southeast Pacific +- Small fixes to the minimum size of snow and collision constants + +\note The above improvements were tested with the non-aerosol option (in GFS_v17 suite), so results with the aerosol-aware +Thompson (in RRFS_v1 suite) may vary. + +\b NoahMP \b Land \b Surface \b Model: +- Option for using the unified frozen precipitation fraction in NoahMP +- Diagnostic 2-meter temperature and humidity now based on vegetation and bare-ground tiles (new namelist option \a iopt_diag) +- Bug fixes for GFS-based thermal roughness length scheme +- New soil color dataset introduced to improve soil albedo to reduce the large warm bias found in the Sahel desert +- Wet leaf contribution factor is included +- Leaf-area index now depends on momentum roughness length + +\b RUC \b Land \b Surface \b Model: +- Initialization of land and ice emissivity and albedo with consideration of partial snow cover +- Initialization of water vapor mixing ratio over land ice +- Initialization of fractions of soil and vegetation types in a grid cell +- Changes in the computation of a flag for sea ice: set to true only if \a flag_ice=.false. (atmosphere uncoupled from the sea ice model) +- Separate variable for sea ice, for example: \a snowfallac is replaced with \a snowfallac_ice +- Solar angle dependence of albedo for snow-free land +- Stochastic physics perturbations (SPP) introduced for emissivity, albedo and vegetation fraction +- Coefficient in soil resistance formulation (Sakaguchi and Zeng, 2009 \cite sakaguchi_and_zeng_2009) raised from 0.7 to 1.0 to increase soil resistance to evaporation +- Computation of snow cover fraction and snow thermal conductivity updated + + +\b MYNN-EDMF \b PBL \b Scheme: +- Small increase of buoyancy length scale in convective environment +- Patch for ensuring non-zero cloud fractions for all grid cells where cloud mixing ratio is greater than 1e-6 or ice mixing ratio is greater than 1e-9 + +\b Subgrid-scale \b (SGS) \b Clouds \b Scheme: +- Bug fix for cloud condensate input into RRTMG radiation +- New code section for use with SAS cumulus scheme +- Cloud fraction now computed as a mix between the area-dependent form and the modified Chaboureau and Bechtold (2005) \cite Chaboureau_2005 form +- Adjusted limit for the boundary flux functions + +\b MYNN \b Surface-layer \b Scheme +- Reintroduce friction velocity averaging over water to reduce noise in 10-m winds in the hurricane regime + +\b Grell-Freitas \b Scale \b and \b Aerosol \b Aware \b Convection \b Scheme: +- Update for aerosol-awareness (experimental) +- Scale-awareness turned off when explicit microphysics is not active anywhere in the column +- Convection is completely suppressed at grid points where the MYNN PBL sheme produces shallow convection +- Radar reflectivity considers mass flux PDF as well as whether scale-awareness is turned on at the gird point in equation + +\b Unified \b Gravity \b Wave \b Physics \b Scheme: +\todo UGWP updates for HR4 + + +*/ diff --git a/physics/docs/pdftxt/mainpage.txt b/physics/docs/pdftxt/mainpage.txt index 6a5d0250b..b6314d4d4 100644 --- a/physics/docs/pdftxt/mainpage.txt +++ b/physics/docs/pdftxt/mainpage.txt @@ -23,12 +23,6 @@ by the Development Testbed Center (DTC), supports suites: - \ref RRFS_v1_page - \ref WoFS_v0_page - -New schemes and capability highlights in this release: -- \ref GFS_ugwpv1_gsldrag -- \ref GFS_RRTMGP_page -- \ref CLM_LAKE_model - In this website you will find documentation on various aspects of each parameterization, including a high-level overview of its function, the input/output argument list, and a description of the algorithm. From 8ca13740a1566dc0cebf1308cdc4a5ab46c35937 Mon Sep 17 00:00:00 2001 From: Man Zhang Date: Mon, 15 Jul 2024 14:21:03 -0600 Subject: [PATCH 12/29] scidoc updates --- physics/docs/pdftxt/GFS_SATMEDMFVDIFQ.txt | 11 -------- physics/docs/pdftxt/GFS_drag_suite.txt | 4 +-- physics/docs/pdftxt/GFS_ugwpv1_gsldrag.txt | 4 +-- physics/docs/pdftxt/ccppv7_phy_updates.txt | 30 +++++++++++++++++----- 4 files changed, 26 insertions(+), 23 deletions(-) diff --git a/physics/docs/pdftxt/GFS_SATMEDMFVDIFQ.txt b/physics/docs/pdftxt/GFS_SATMEDMFVDIFQ.txt index 270df521f..6f6e1f79b 100644 --- a/physics/docs/pdftxt/GFS_SATMEDMFVDIFQ.txt +++ b/physics/docs/pdftxt/GFS_SATMEDMFVDIFQ.txt @@ -42,17 +42,6 @@ and tracers and a method for removing negative tracer mixing ratio values have b \sa NCEP Office Note 505 \cite https://doi.org/10.25923/cybh-w893 and 506 \cite https://doi.org/10.25923/5051-3r70 -\section v6_pbl_enh CCPP Physics Updates -\version CCPP-SCM v7.0.0 -- To reduce the negative hurricane intensity biases, a parameterization for environmental wind shear effect -is included in the GFS TKE-EDMF PBL and cumulus schemes. In addition, the entrainment rates are enhanced -proportional to the sub-cloud or PBL mean TKE (turbulent kinetic energy) when TKE is larger than a threshold -value. - -- To enhance the underestimated CAPE forecasts in the GFS, the entrainment rate in the TKE-EDMF PBL scheme is -increased as a function of vegetation fraction and surface roughness length. - - \section intra_satmedmfvdifq Intraphysics Communication - \ref arg_table_satmedmfvdifq_run diff --git a/physics/docs/pdftxt/GFS_drag_suite.txt b/physics/docs/pdftxt/GFS_drag_suite.txt index ed059e1f9..0dafa54d5 100644 --- a/physics/docs/pdftxt/GFS_drag_suite.txt +++ b/physics/docs/pdftxt/GFS_drag_suite.txt @@ -1,8 +1,8 @@ /** -\page GFS_drag_suite GSL Drag Suite Scheme +\page GFS_drag_suite GFS Orographic Drag Scheme \section des_drag Description -The GSL drag suite, developed by NOAA's Global Systems Laboratory, is a set of subgrid-scale orographic drag parameterizations that calculate momentum tendencies due to the effects of unresolved topography. The drag forces they represent are those due to: 1) large-scale gravity (mountain) waves that propagate vertically and break in the free atmosphere of the troposphere, stratosphere and above; 2) low-level flow blocking; 3) small-scale gravity wave drag (GWD) due to mountain waves generated in stable planetary boundary layer (PBL) conditions, typically at nighttime, which break at or near the PBL top; and 4) turbulent orographic form drag (TOFD), which is generated by turbulent pressure perturbations that are correlated with the terrain slope. The distinction between the large-scale and small-scale gravity waves are that the former are generated by topography with horizontal scales on the order of 5 km and greater, which can support vertical propagation through the typical static stabilities found in the free atmosphere, while the latter are generated by topography with smaller horizontal scales down to about 1 km, which can support vertical propagation only in very stable conditions, typically found in nocturnal PBLs. +The GFS orographic drag suite, developed by NOAA's Global Systems Laboratory, Physical Sciences Laboratory and Environmental Modeling Center is a set of subgrid-scale orographic drag parameterizations that calculate momentum tendencies due to the effects of unresolved topography. The drag forces they represent are those due to: 1) large-scale gravity (mountain) waves that propagate vertically and break in the free atmosphere of the troposphere, stratosphere and above; 2) low-level flow blocking; 3) small-scale gravity wave drag (GWD) due to mountain waves generated in stable planetary boundary layer (PBL) conditions, typically at nighttime, which break at or near the PBL top; and 4) turbulent orographic form drag (TOFD), which is generated by turbulent pressure perturbations that are correlated with the terrain slope. The distinction between the large-scale and small-scale gravity waves are that the former are generated by topography with horizontal scales on the order of 5 km and greater, which can support vertical propagation through the typical static stabilities found in the free atmosphere, while the latter are generated by topography with smaller horizontal scales down to about 1 km, which can support vertical propagation only in very stable conditions, typically found in nocturnal PBLs. The large-scale GWD scheme is based on Kim and Doyle (2005) \cite kim_and_doyle_2005 and Choi and Hong (2015)\cite choi_and_hong_2015 and the code originated from the NCAR Weather Research and Forecasting (WRF) model and NOAA RAP/HRRR. The low-level blocking scheme is adapted from Kim and Doyle (2005)\cite kim_and_doyle_2005, with the code also originating from the WRF and RAP/HRRR. The small-scale orographic GWD scheme is based on Steeneveld et al.(2008)\cite steeneveld_et_al_2008 and Tsiringakis et al. (2017) \cite tsiringakis_et_al_2017, and the TOFD scheme is adapted from Beljaars et al. (2004)\cite beljaars_et_al_2004. diff --git a/physics/docs/pdftxt/GFS_ugwpv1_gsldrag.txt b/physics/docs/pdftxt/GFS_ugwpv1_gsldrag.txt index 7c96bbb2e..687f950b7 100644 --- a/physics/docs/pdftxt/GFS_ugwpv1_gsldrag.txt +++ b/physics/docs/pdftxt/GFS_ugwpv1_gsldrag.txt @@ -2,9 +2,7 @@ \page GFS_ugwpv1_gsldrag GFS Unified UGWP Version 1 Scheme \section des_ugwpv1 Description -The "ugwpv1_gsldrag" combines the orographic gravity wave drag (GWD) parameterizations of the GSL drag suite with the version 1 UGWP non-stationary gravity wave drag (NGW) scheme of \cite yudin_et_al_2020. - -For information on the GSL drag suite, click here. +The GFS Unified UGWP version 1 combines the \ref GFS_drag_suite with the version 1 UGWP non-stationary gravity wave drag (NGW) scheme of Yudin et al. (2020)\cite yudin_et_al_2020. The NGW physics scheme parameterizes the effects of non-stationary waves unresolved by dynamical cores. These non-stationary oscillations with periods diff --git a/physics/docs/pdftxt/ccppv7_phy_updates.txt b/physics/docs/pdftxt/ccppv7_phy_updates.txt index 661ff2ff6..a5b1eec66 100644 --- a/physics/docs/pdftxt/ccppv7_phy_updates.txt +++ b/physics/docs/pdftxt/ccppv7_phy_updates.txt @@ -4,23 +4,32 @@ \b General \b Changes: Add GFS_v17, GFS_v16_RRTMGP, and RRFS_v1 suites as new supported suite - New the Community Lake Model \ref CLM_LAKE_model in RRFS_v1 suite -- New \ref GFS_ugwpv1_gsldrag in GFS_v17 suite +- New \ref GFS_ugwpv1_gsldrag in GFS_v17 suite combines the \ref GFS_drag_suite with the version 1 UGWP non-stationary gravity wave drag (NGW) scheme of Yudin et al. (2020)\cite yudin_et_al_2020 - New \ref GFS_RRTMGP_page in GFS_v16_RRTMGP suite -- New RRFS SD scheme in RRFS_v1 suite -- rename GSL drag suite to \todo gsldrag +- New RRFS smoke/dust scheme in RRFS_v1 suite -\b GFS \b Scale-aware \b TKE-EDMF \b PBL \b and \b Cumulus \b Schemes: +\b GFS \b Scale-aware \b SAS \b Cumulus \b Schemes: The updates between GFSv16 and GFSv17 are carefully outlined in Bengtsson and Han (2004)(submitted to WAF). The main updates include: - Implementation of a positive definition mass-flux scheme and a method for removing the negative tracers (Han et al. 2022 \cite Han_et_al_2022) - Introduction of a new closure based on a prognostic evolution of the convective updraft area fraction in both shallow and deep convection (Bengtsson et al. 2022 \cite Bengtsson_2022) - Introduction of 3D effects of cold-pool dynamics and stochastic initiation using self-organizing \ref cellular_automata (Bengtsson et al. 2021 \cite bengtsson_et_al_2021) -- Introduction of environmental wind shear and TKE dependence in convection, to seek improvements in hurricane forecast prediction (Han et al. 2024 \cite Han_2024) +- Introduction of environmental wind shear effect and subgrid TKE dependence in convection, to seek improvements in hurricane forecast prediction (Han et al. 2024 \cite Han_2024) - Stricter convective initiation criteria to allow for more CAPE to build up to address a low CAPE bias in GFSv16 (Han et al. 2021 \cite han_2021) - Reduction of convective rain evaporation rate to address a systematic cold bias near the surface in GFSv16 (Han et al. 2021 \cite han_2021) -\b Thompson \b Microphysics \b Scheme: +\b GFS \b Scale-aware \b TKE-EDMF \b PBL \b Scheme: +- To reduce the negative hurricane intensity biases, a parameterization for environmental wind shear effect +is included in the GFS TKE-EDMF PBL and cumulus schemes. In addition, the entrainment rates are enhanced +proportional to the sub-cloud or PBL mean TKE (turbulent kinetic energy) when TKE is larger than a threshold +value. +- To enhance the underestimated CAPE forecasts in the GFS, the entrainment rate in the TKE-EDMF PBL scheme is +increased as a function of vegetation fraction and surface roughness length. + +\sa Han et al.(2024) \cite Han_2024 + +\b Thompson \b Cloud \b Microphysics \b Scheme: - Ice generation supersaturation requirement reduced from 0.25 to 0.15 to generate more ice at the upper levels and reduce the outgoing longwave radiation bias - Cloud number concentration divided into two parts (over land and others). Number concentration over @@ -55,7 +64,7 @@ Thompson (in RRFS_v1 suite) may vary. - Small increase of buoyancy length scale in convective environment - Patch for ensuring non-zero cloud fractions for all grid cells where cloud mixing ratio is greater than 1e-6 or ice mixing ratio is greater than 1e-9 -\b Subgrid-scale \b (SGS) \b Clouds \b Scheme: +\b Subgrid-scale (\b SGS) \b Clouds \b Scheme: - Bug fix for cloud condensate input into RRTMG radiation - New code section for use with SAS cumulus scheme - Cloud fraction now computed as a mix between the area-dependent form and the modified Chaboureau and Bechtold (2005) \cite Chaboureau_2005 form @@ -73,5 +82,12 @@ Thompson (in RRFS_v1 suite) may vary. \b Unified \b Gravity \b Wave \b Physics \b Scheme: \todo UGWP updates for HR4 +\b NSSL \b Cloud \b Microphysics \b Scheme: +- Update NSSL microphysics with 3-moment option + +\b Radiation +- Coupling of GOCART aerosols with radiation (iaer=2011) +- Add the convective cloud water (liquid water + ice water) in the calculations of cloud water path and ice water path for radiation cloud properties + */ From 58d9673cbb21610bbfcfee15bd38df659b391d57 Mon Sep 17 00:00:00 2001 From: Man Zhang Date: Mon, 22 Jul 2024 17:02:55 -0600 Subject: [PATCH 13/29] finalize the suite names --- .../UFS_SCM_NEPTUNE/GFS_rrtmgp_post.F90 | 2 +- physics/docs/ccpp_doxyfile | 6 +- physics/docs/library.bib | 27 ++- physics/docs/pdftxt/GFS_RRTMGP.txt | 86 ++++++++- physics/docs/pdftxt/GFS_v16_RRTMGP_suite.txt | 42 +++++ physics/docs/pdftxt/GFS_v17_HR3_GP_suite.txt | 72 -------- ..._suite.txt => GFS_v17_p8_ugwpv1_suite.txt} | 19 +- .../{RRFS_v1_suite.txt => HRRR_gf_suite.txt} | 16 +- .../docs/pdftxt/RE7/input_GFS_v16_RRTMGP.nml | 163 ++++++++++++++++++ ...17_HR3.nml => input_GFS_v17_p8_ugwpv1.nml} | 0 .../{input_RRFS_v1.nml => input_HRRR_gf.nml} | 0 .../pdftxt/RE7/suite_SCM_GFS_v16_RRTMGP.xml | 81 +++++++++ ...R3.xml => suite_SCM_GFS_v17_p8_ugwpv1.xml} | 2 +- ..._SCM_RRFS_v1.xml => suite_SCM_HRRR_gf.xml} | 4 +- physics/docs/pdftxt/mainpage.txt | 6 +- 15 files changed, 415 insertions(+), 111 deletions(-) create mode 100644 physics/docs/pdftxt/GFS_v16_RRTMGP_suite.txt delete mode 100644 physics/docs/pdftxt/GFS_v17_HR3_GP_suite.txt rename physics/docs/pdftxt/{GFS_v17_HR3_suite.txt => GFS_v17_p8_ugwpv1_suite.txt} (78%) rename physics/docs/pdftxt/{RRFS_v1_suite.txt => HRRR_gf_suite.txt} (50%) create mode 100644 physics/docs/pdftxt/RE7/input_GFS_v16_RRTMGP.nml rename physics/docs/pdftxt/RE7/{input_GFS_v17_HR3.nml => input_GFS_v17_p8_ugwpv1.nml} (100%) rename physics/docs/pdftxt/RE7/{input_RRFS_v1.nml => input_HRRR_gf.nml} (100%) create mode 100644 physics/docs/pdftxt/RE7/suite_SCM_GFS_v16_RRTMGP.xml rename physics/docs/pdftxt/RE7/{suite_SCM_GFS_v17_HR3.xml => suite_SCM_GFS_v17_p8_ugwpv1.xml} (98%) rename physics/docs/pdftxt/RE7/{suite_SCM_RRFS_v1.xml => suite_SCM_HRRR_gf.xml} (98%) diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.F90 index 0b4479877..a89e5c961 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.F90 @@ -14,7 +14,7 @@ module GFS_rrtmgp_post contains !> \section arg_table_GFS_rrtmgp_post_run Argument Table -!! \htmlinclude GFS_rrtmgp_post.html +!! \htmlinclude GFS_rrtmgp_post_run.html !!The all-sky radiation tendency is computed, the clear-sky tendency is computed !! if requested. !! diff --git a/physics/docs/ccpp_doxyfile b/physics/docs/ccpp_doxyfile index 1b6423813..c8f933e46 100644 --- a/physics/docs/ccpp_doxyfile +++ b/physics/docs/ccpp_doxyfile @@ -946,9 +946,9 @@ INPUT = pdftxt/mainpage.txt \ pdftxt/ccppv7_phy_updates.txt \ pdftxt/all_schemes_list.txt \ pdftxt/GFS_v16_suite.txt \ - pdftxt/GFS_v17_HR3_suite.txt \ - pdftxt/GFS_v17_HR3_GP_suite.txt \ - pdftxt/RRFS_v1_suite.txt \ + pdftxt/GFS_v16_RRTMGP_suite.txt \ + pdftxt/GFS_v17_p8_ugwpv1_suite.txt \ + pdftxt/HRRR_gf_suite.txt \ pdftxt/WoFS_v0_suite.txt \ pdftxt/RRFS_SGSCLOUD.txt \ pdftxt/GFS_RRTMG.txt \ diff --git a/physics/docs/library.bib b/physics/docs/library.bib index 6fe457f80..ae06b218f 100644 --- a/physics/docs/library.bib +++ b/physics/docs/library.bib @@ -1,11 +1,30 @@ %% This BibTeX bibliography file was created using BibDesk. %% https://bibdesk.sourceforge.io/ -%% Created for Man Zhang at 2024-07-02 13:44:09 -0600 +%% Created for Man Zhang at 2024-07-16 12:25:34 -0600 %% Saved with string encoding Unicode (UTF-8) + + +@article{Yang_2013, + author = {Yang, Ping and Bi, Lei and Baum, Bryan A. and Liou, Kuo-Nan and Kattawar, George W. and Mishchenko, Michael I. and Cole, Benjamin}, + date-added = {2024-07-16 12:25:15 -0600}, + date-modified = {2024-07-16 12:25:15 -0600}, + doi = {10.1175/jas-d-12-039.1}, + issn = {1520-0469}, + journal = {Journal of the Atmospheric Sciences}, + month = jan, + number = {1}, + pages = {330{\^a}€“347}, + publisher = {American Meteorological Society}, + title = {Spectrally Consistent Scattering, Absorption, and Polarization Properties of Atmospheric Ice Crystals at Wavelengths from 0.2 to 100 {\^I}¼m}, + url = {http://dx.doi.org/10.1175/JAS-D-12-039.1}, + volume = {70}, + year = {2013}, + bdsk-url-1 = {http://dx.doi.org/10.1175/JAS-D-12-039.1}} + @inproceedings{yudin_et_al_2020, author = {Yudin, V. A. and Yang, F. and Karol, S. I. and Fuller-Rowell T. J. and Kubaryk, A. and Juang, H. and Kar, S. and Alpert, J. C. and Li, Z.}, booktitle = {1st UFS Users' Workshop}, @@ -22,9 +41,9 @@ @article{han_2021 publisher = {National Centers for Environmental Prediction (U.S.)}, title = {Updates in the NCEP GFS Cumulus Convection, Vertical Turbulent Mixing, and Surface Layer Physics}, url = {https://repository.library.noaa.gov/view/noaa/33881}, - year = {2021}} - - + year = {2021}, + bdsk-url-1 = {https://repository.library.noaa.gov/view/noaa/33881}, + bdsk-url-2 = {https://doi.org/10.25923/CYBH-W893}} @article{Han_2024, author = {Han, Jongil and Peng, Jiayi and Li, Wei and Wang, Weiguo and Zhang, Zhan and Yang, Fanglin and Zheng, Weizhong}, diff --git a/physics/docs/pdftxt/GFS_RRTMGP.txt b/physics/docs/pdftxt/GFS_RRTMGP.txt index b5a40df8e..e31c9bc32 100644 --- a/physics/docs/pdftxt/GFS_RRTMGP.txt +++ b/physics/docs/pdftxt/GFS_RRTMGP.txt @@ -1,10 +1,92 @@ /** \page GFS_RRTMGP_page GFS RRTMGP Shortwave/Longwave Radiation Scheme -\section des_rrtmgp Description +\section des_rte_rrtmgp Description -\section intraphysics_rrtmgp Intraphysics Communication + RTE+RRTMGP is a set of codes for computing radiative fluxes in planetary atmospheres. + + RRTMGP uses a k-distribution to provide an optical description (absorption and possibly + Rayleigh optical depth) of the gaseous atmosphere, along with the relevant source functions, + on a pre-determined spectral grid given temperatures, pressures, and gas concentration. + The k-distribution currently distributed with this package is applicable to the Earth's + atmosphere under present-day, pre-industrial, and 4xCO2 conditions. + + RTE computes fluxes given spectrally-resolved optical descriptions and source functions. + The fluxes are normally summarized or reduced via a user extensible class. + +\subsection Clear-sky-opt Clear-sky Optical Properties + + The RRTMGP LW algorithm contains 128 unevenly distributed g-points (quadrature points) in 16 + broad spectral bands, while the SW algorithm includes 112 g-points + in 14 bands. In addition to the major atmospheric absorbing gases of + ozone, water vapor, and carbon dioxide, the algorithm also includes + various minor absorbing species such as methane, nitrous oxide, + oxygen, and in the longwave up to four types of halocarbons (CFCs). + +\subsection Aerosol-opt Aerosol Optical Properties + + Aerosol optical properties for the RRTMGP bands are computed externally and provided to + the radiation and incremented onto the gaseous optics. This is identical to how the aerosol + optics are included within RRTMG. There are no internal assumptions on aerosol properties + within the radiation scheme. + +\subsection Cloud-opt Cloud Optical Properties + + Cloud optical properties are computed as a function of effective radius for the + RRTMGP bands. Based on Mie calculations for liquid and results from Yang et al. 2013 \cite Yang_2013 + for ice with variable surface roughness. + + To represent statistically the unresolved subgrid cloud variability + when dealing multi layered clouds, a Monte-Carlo Independent Column + Approximation (\b McICA) method is used prior to calling the RTE. + Several cloud overlap methods, including maximum-random, exponential, + and exponential-random are available in both LW and SW + radiation calculations. (\b Unlike RRTMG, in RRTMGP the subgrid sampling + step is not within the spectral loop, but rather happens outside of + the RTE.) + +\subsection Radiative fields from model outputs (\f$W m^{-2}\f$) +- At surface total sky + - DLWRFsfc: Downward LW + - DSWRFsfc: Downward SW + - ULWRFsfc: Upward LW + - USWRFsfc: Upward SW + - NBDSFsfc: Near IR beam downward + - NDDSFsfc: Near IR diffuse downward + - VBDSFsfc: UV+Visible beam downward + - VDDSFsfc: UV+Visible diffuse downward + - DUVBsfc: UV-B downward flux +- At surface clear sky + - CSDLFsfc: Downward LW + - CSDSFsfc: Downward SW + - CSULFsfc: Upward LW + - CSULFsfc: Upward LW + - CSUSFsfc: Upward sw + - CDUVBsfc: UV-B downward flux +- At TOA total sky + - DSWRFtoa: Downward SW + - ULWRFtoa: Upward LW + - USWRFtoa: Upward SW +- At TOA clear sky: + - CSULFtoa: Upward LW + - CSUSFtoa: Upward SW + +\section intraphysics_rrtmgp Intraphysics Communication + + \b GFS RRTMGP pre-processing used, for both Longwave and Shortwave: \ref arg_table_GFS_rrtmgp_pre_run + + \b GFS surface-to-RRTMGP interface: \ref arg_table_GFS_radiation_surface_run + + \b GFS RRTMGP cloud microphysics interface: \ref arg_table_GFS_rrtmgp_cloud_mp_run + + \b GFS RRTMGP cloud overlap interface: \ref arg_table_GFS_rrtmgp_cloud_overlap_run + + \b GFS cloud diagnostics: \ref arg_table_GFS_cloud_diagnostics_run + + \b GFS RRTMGP aerosol interface: \ref arg_table_rrtmgp_aerosol_optics_run + + \b GFS RRTMGP-Longwave radiation driver: \ref arg_table_rrtmgp_lw_main_run + + \b GFS RRTMGP-Shortwave radiation driver: \ref arg_table_rrtmgp_sw_main_run + + \b GFS RRTMGP post-processing, for both Longwave and Shortwave: \ref arg_table_GFS_rrtmgp_post_run \section gen_al_rrtmgp General Algorithm + + \ref gen_rrtmgp_lw + + \ref gen_rrtmgp_sw + +\section rrtmgp_enh CCPP Physics Updates +\version CCPP v7.0.0 */ diff --git a/physics/docs/pdftxt/GFS_v16_RRTMGP_suite.txt b/physics/docs/pdftxt/GFS_v16_RRTMGP_suite.txt new file mode 100644 index 000000000..8b11cfc9c --- /dev/null +++ b/physics/docs/pdftxt/GFS_v16_RRTMGP_suite.txt @@ -0,0 +1,42 @@ +/** +\page GFS_v16_RRTMGP_page GFS_v16_RRTMGP Suite + +\section gfsv_16HR3_GP_suite_overview Overview + +This is an experimental version 16 of the Global Forecast System (GFS) with RRTMGP, which replaces RRTMG +in operational GFS v16 physics suite. + +\section sdf_gfsv16GP Suite Definition File +\include suite_SCM_GFS_v16_RRTMGP.xml + +\section gfs16GP_nml_opt_des Namelist +- General physics options +\snippet input_GFS_v16_RRTMGP.nml GFS_PHYSICS_NML +- \ref GFS_UNIFIED_UGWP related options +\snippet input_GFS_v16_RRTMGP.nml CIRES_UGWP_NML + +- nstf_name = \f$[2,0,0,0,0]^1 [2,1,0,0,0]^2\f$ + - \f$^1\f$ NSST is on and coupled with spin up off + - \f$^2\f$ NSST is on and coupled with spin up on + +- Grid-spacing dependency of \p cdmbgwd + - \b C48: cdmbgwd="0.071,2.1,1.0,1.0" + - \b C96: cdmbgwd="0.14,1.8,1.0,1.0" + - \b C192: cdmbgwd="0.23,1.5,1.0,1.0" + - \b C384: cdmbgwd="1.1,0.72,1.0,1.0" + - \b C768: cdmbgwd="4.0,0.15,1.0,1.0" + - \b C1152: cdmbgwd="4.0,0.10,1.0,1.0" + - \b C3072: cdmbgwd="4.0,0.05,1.0,1.0" + +- Grid-spacing dependency of \p knob_ugwp_tauamp + - \b C48: knob_ugwp_tauamp=6.0e-3 + - \b C96: knob_ugwp_tauamp=3.0e-3 + - \b C192: knob_ugwp_tauamp=1.5e-3 + - \b C384: knob_ugwp_tauamp=0.8e-3 + - \b C768: knob_ugwp_tauamp=0.5e-3 + - \b C1152: knob_ugwp_tauamp=0.35e-3 + - \b C3072: knob_ugwp_tauamp=0.13e-3 + +- Grid-spacing dependency of \p xr_cnvcld + - \b C48 and \b C96: xr_cnvcld =.false. +*/ diff --git a/physics/docs/pdftxt/GFS_v17_HR3_GP_suite.txt b/physics/docs/pdftxt/GFS_v17_HR3_GP_suite.txt deleted file mode 100644 index 6366d8086..000000000 --- a/physics/docs/pdftxt/GFS_v17_HR3_GP_suite.txt +++ /dev/null @@ -1,72 +0,0 @@ -/** -\page GFS_v17_HR3_RRTMGP_page GFS_v17_RRTMGP Suite - -\section gfsv_17HR3_GP_suite_overview Overview - -Version 17 of the Global Forecast System (GFS) is scheduled for operational implementation by the NOAA -National Centers for Environmental Prediction (NCEP) in 2024. The GFS_v17 suite is a prototype of -the GFS_v17 suite, and is expected to evolve before the implementation. It is available for use -with the CCPP SCM. The primary differences between the GFS_v16 and GFS_v17 suites are: -- \b Microphysics: The replacement of \ref GFDL_cloud with \ref THOMPSON -- PBL and Convection updates -- \b Gravity \b Wave \b Drag: The replacement of \ref GFS_UGWP_v0 with \ref GFS_ugwpv1_gsldrag -- \b Land \b Surface \b Model: The replacement of \ref GFS_NOAH with \ref NoahMP - -The GFS_v17 suite uses the parameterizations in the following order: - - \ref GFS_RRTMGP_page - - \ref GFS_SFCLYR - - \ref GFS_NSST - - \ref NoahMP - - \ref GFS_SFCSICE - - \ref GFS_SATMEDMFVDIFQ - - \ref GFS_ugwpv1_gsldrag - - \ref GFS_OZPHYS - - \ref GFS_H2OPHYS - - \ref GFS_SAMFdeep - - \ref GFS_SAMFshal - - \ref THOMPSON - - -\section sdf_gfsv17HR3GP Suite Definition File -\include suite_SCM_GFS_v17_HR3_RRTMGP.xml - -\section gfs17HR3GP_nml_opt_des Namelist -- General physics options -\snippet input_GFS_v17_HR3_RRTMGP.nml GFS_PHYSICS_NML -- \ref GFS_UNIFIED_UGWP related options -\snippet input_GFS_v17_HR3_RRTMGP.nml CIRES_UGWP_NML - -- nstf_name = \f$[2,0,0,0,0]^1 [2,1,0,0,0]^2\f$ - - \f$^1\f$ NSST is on and coupled with spin up off - - \f$^2\f$ NSST is on and coupled with spin up on - -- Grid-spacing dependency of \p cdmbgwd - - \b C48: cdmbgwd="0.071,2.1,1.0,1.0" - - \b C96: cdmbgwd="0.14,1.8,1.0,1.0" - - \b C192: cdmbgwd="0.23,1.5,1.0,1.0" - - \b C384: cdmbgwd="1.1,0.72,1.0,1.0" - - \b C768: cdmbgwd="4.0,0.15,1.0,1.0" - - \b C1152: cdmbgwd="4.0,0.10,1.0,1.0" - - \b C3072: cdmbgwd="4.0,0.05,1.0,1.0" - -- Grid-spacing dependency of \p cdmbgwd_gsl - - \b C48: cdmbgwd_gsl="40.0,1.77,1.0,1.0" - - \b C96: cdmbgwd_gsl="20.0,2.5,1.0,1.0" - - \b C192: cdmbgwd_gsl="10.0,3.5,1.0,1.0" - - \b C384: cdmbgwd_gsl="5.0,5.0,1.0,1.0" - - \b C768: cdmbgwd_gsl="2.5,7.5,1.0,1.0" - - \b C1152: cdmbgwd_gsl="1.67,8.8,1.0,1.0" - - \b C3072: cdmbgwd_gsl="0.625,14.1,1.0,1.0" - -- Grid-spacing dependency of \p knob_ugwp_tauamp - - \b C48: knob_ugwp_tauamp=6.0e-3 - - \b C96: knob_ugwp_tauamp=3.0e-3 - - \b C192: knob_ugwp_tauamp=1.5e-3 - - \b C384: knob_ugwp_tauamp=0.8e-3 - - \b C768: knob_ugwp_tauamp=0.5e-3 - - \b C1152: knob_ugwp_tauamp=0.35e-3 - - \b C3072: knob_ugwp_tauamp=0.13e-3 - -- Grid-spacing dependency of \p xr_cnvcld - - \b C48 and \b C96: xr_cnvcld =.false. -*/ diff --git a/physics/docs/pdftxt/GFS_v17_HR3_suite.txt b/physics/docs/pdftxt/GFS_v17_p8_ugwpv1_suite.txt similarity index 78% rename from physics/docs/pdftxt/GFS_v17_HR3_suite.txt rename to physics/docs/pdftxt/GFS_v17_p8_ugwpv1_suite.txt index dd0b27d4e..187ce8c5b 100644 --- a/physics/docs/pdftxt/GFS_v17_HR3_suite.txt +++ b/physics/docs/pdftxt/GFS_v17_p8_ugwpv1_suite.txt @@ -1,10 +1,10 @@ /** -\page GFS_v17_HR3_page GFS_v17 Suite +\page GFS_v17_p8_ugwpv1_page GFS_v17_p8_ugwpv1 Suite \section gfsv_17_suite_overview Overview Version 17 of the Global Forecast System (GFS) is scheduled for operational implementation by the NOAA -National Centers for Environmental Prediction (NCEP) in 2024. The GFS_v17 suite is a prototype of +National Centers for Environmental Prediction (NCEP) in 2024. The GFS_v17_p8_ugwpv1 suite is a prototype of the GFS_v17 suite, and is expected to evolve before the implementation. It is available for use with the CCPP SCM. The primary differences between the GFS_v16 and GFS_v17 suites are: - \b Microphysics: The replacement of \ref GFDL_cloud with \ref THOMPSON @@ -28,13 +28,13 @@ The GFS_v17 suite uses the parameterizations in the following order: \section sdf_gfsv17p8 Suite Definition File -\include suite_SCM_GFS_v17_HR3.xml +\include suite_SCM_GFS_v17_p8_ugwpv1.xml \section gfs17_nml_opt_des Namelist - General physics options -\snippet input_GFS_v17_HR3.nml GFS_PHYSICS_NML +\snippet input_GFS_v17_p8_ugwpv1.nml GFS_PHYSICS_NML - \ref GFS_UNIFIED_UGWP related options -\snippet input_GFS_v17_HR3.nml CIRES_UGWP_NML +\snippet input_GFS_v17_p8_ugwpv1.nml CIRES_UGWP_NML - nstf_name = \f$[2,0,0,0,0]^1 [2,1,0,0,0]^2\f$ - \f$^1\f$ NSST is on and coupled with spin up off @@ -49,15 +49,6 @@ The GFS_v17 suite uses the parameterizations in the following order: - \b C1152: cdmbgwd="4.0,0.10,1.0,1.0" - \b C3072: cdmbgwd="4.0,0.05,1.0,1.0" -- Grid-spacing dependency of \p cdmbgwd_gsl - - \b C48: cdmbgwd_gsl="40.0,1.77,1.0,1.0" - - \b C96: cdmbgwd_gsl="20.0,2.5,1.0,1.0" - - \b C192: cdmbgwd_gsl="10.0,3.5,1.0,1.0" - - \b C384: cdmbgwd_gsl="5.0,5.0,1.0,1.0" - - \b C768: cdmbgwd_gsl="2.5,7.5,1.0,1.0" - - \b C1152: cdmbgwd_gsl="1.67,8.8,1.0,1.0" - - \b C3072: cdmbgwd_gsl="0.625,14.1,1.0,1.0" - - Grid-spacing dependency of \p knob_ugwp_tauamp - \b C48: knob_ugwp_tauamp=6.0e-3 - \b C96: knob_ugwp_tauamp=3.0e-3 diff --git a/physics/docs/pdftxt/RRFS_v1_suite.txt b/physics/docs/pdftxt/HRRR_gf_suite.txt similarity index 50% rename from physics/docs/pdftxt/RRFS_v1_suite.txt rename to physics/docs/pdftxt/HRRR_gf_suite.txt index 568bc4872..5eba3a454 100644 --- a/physics/docs/pdftxt/RRFS_v1_suite.txt +++ b/physics/docs/pdftxt/HRRR_gf_suite.txt @@ -1,12 +1,12 @@ /** -\page RRFS_v1_page RRFS_v1 Suite +\page HRRR_gf_page HRRR_gf Suite \section RRFS_v1_suite_overview Overview -The RRFS_v1 suite is one of the candidates for the future operational implementation of +The HRRR_gf suite is one of the candidates for the future operational implementation of the Rapid Refresh Forecast System (RRFS), which can be configured using the UFS SRW App. -The RRFS_v1 suite uses the parameterizations in the following order: +The HRRR_gf suite uses the parameterizations in the following order: - \ref SGSCLOUD_page - \ref GFS_RRTMG_page - \ref SFC_MYNNSFL @@ -19,14 +19,12 @@ The RRFS_v1 suite uses the parameterizations in the following order: - \ref CU_GF - \ref THOMPSON -\section sdf_rrfsv1suite Suite Definition File -\include suite_SCM_RRFS_v1.xml +\section sdf_hrrrgfsuite Suite Definition File +\include suite_SCM_HRRR_gf.xml -\section rrfs_nml_option Namelist +\section hrrr_gf_nml_option Namelist - General physics options -\snippet input_RRFS_v1.nml GFS_PHYSICS_NML -- \ref GFS_UGWP_v0 related options -\snippet input_RRFS_v1.nml CIRES_UGWP_NML +\snippet input_HRRR_gf.nml GFS_PHYSICS_NML diff --git a/physics/docs/pdftxt/RE7/input_GFS_v16_RRTMGP.nml b/physics/docs/pdftxt/RE7/input_GFS_v16_RRTMGP.nml new file mode 100644 index 000000000..bf5fcf62e --- /dev/null +++ b/physics/docs/pdftxt/RE7/input_GFS_v16_RRTMGP.nml @@ -0,0 +1,163 @@ +!>[GFS_PHYSICS_NML] +&gfs_physics_nml + cal_pre = .false. + cdmbgwd = 4.0, 0.15, 1.0, 1.0 + cnvcld = .true. + cnvgwd = .true. + debug = .false. + do_shum = .false. + do_skeb = .false. + do_spp = .false. + do_sppt = .false. + do_tofd = .true. + do_ugwp = .false. + dspheat = .true. + effr_in = .true. + fhcyc = 0 + fhlwr = 1200.0 + fhswr = 1200.0 + fhzero = 1.0 + h2o_phys = .true. + hybedmf = .false. + iaer = 5111 + ialb = 1 + iau_inc_files = '' + icliq_sw = 2 + ico2 = 2 + iems = 1 + imfdeepcnv = 2 + imfshalcnv = 2 + imp_physics = 11 + iopt_alb = 2 + iopt_btr = 1 + iopt_crs = 1 + iopt_dveg = 1 + iopt_frz = 1 + iopt_inf = 1 + iopt_rad = 1 + iopt_run = 1 + iopt_sfc = 1 + iopt_snf = 4 + iopt_stc = 1 + iopt_tbot = 2 + iovr = 3 + isatmedmf = 1 + isol = 2 + isot = 1 + isubc_lw = 2 + isubc_sw = 2 + ivegsrc = 1 + ldiag3d = .true. + ldiag_ugwp = .false. + lgfdlmprad = .true. + lheatstrg = .true. + lndp_type = 0 + lsm = 1 + lsoil = 4 + lwhtr = .true. + n_var_lndp = 0 + n_var_spp = 0 + nsfullradar_diag = 3600 + nst_anl = .true. + nstf_name = 2, 1, 0, 0, 0 + oz_phys = .false. + oz_phys_2015 = .true. + pdfcld = .false. + prautco = 0.00015, 0.00015 + pre_rad = .false. + print_diff_pgr = .false. + prslrd0 = 0.0 + psautco = 0.0008, 0.0005 + qdiag3d = .true. + random_clds = .false. + redrag = .true. + satmedmf = .true. + shal_cnv = .true. + swhtr = .true. + trans_trac = .true. + use_ufo = .true. + do_RRTMGP = .true. + doGP_cldoptics_LUT = .true. + doGP_lwscat = .true. + active_gases = 'h2o_co2_o3_n2o_ch4_o2' + ngases = 6 + rrtmgp_root = '../../ccpp/physics/physics/rte-rrtmgp/' + lw_file_gas = 'rrtmgp/data/rrtmgp-data-lw-g128-210809.nc' + lw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-lw.nc' + sw_file_gas = 'rrtmgp/data/rrtmgp-data-sw-g112-210809.nc' + sw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-sw.nc' + rrtmgp_nGptsSW = 112 + rrtmgp_nGptsLW = 128 + rrtmgp_nBandsLW = 16 + rrtmgp_nBandsSW = 14 +/ +!![GFS_PHYSICS_NML] + +!>[GFDL_CLOUD_MICROPHYSICS_NML] +&gfdl_cloud_microphysics_nml + c_cracw = 0.8 + c_paut = 0.5 + c_pgacs = 0.01 + c_psaci = 0.05 + ccn_l = 300.0 + ccn_o = 100.0 + const_vg = .false. + const_vi = .false. + const_vr = .false. + const_vs = .false. + de_ice = .false. + do_qa = .false. + do_sedi_heat = .false. + dw_land = 0.16 + dw_ocean = 0.1 + fast_sat_adj = .false. + fix_negative = .true. + icloud_f = 1 + mono_prof = .true. + mp_time = 150.0 + prog_ccn = .false. + qi0_crt = 8e-05 + qi_lim = 1.0 + ql_gen = 0.001 + ql_mlt = 0.001 + qs0_crt = 0.001 + rad_graupel = .true. + rad_rain = .true. + rad_snow = .true. + reiflag = 2 + rh_inc = 0.3 + rh_inr = 0.3 + rh_ins = 0.3 + rthresh = 1e-05 + sedi_transport = .true. + tau_g2v = 900.0 + tau_i2s = 1000.0 + tau_l2v = 225.0 + tau_v2l = 150.0 + use_ccn = .true. + use_ppm = .false. + vg_max = 12.0 + vi_max = 1.0 + vr_max = 12.0 + vs_max = 2.0 + z_slope_ice = .true. + z_slope_liq = .true. +/ +!![GFDL_CLOUD_MICROPHYSICS_NML] + +!>[CIRES_UGWP_NML] +&cires_ugwp_nml + knob_ugwp_azdir = 2, 4, 4, 4 + knob_ugwp_doaxyz = 1 + knob_ugwp_doheat = 1 + knob_ugwp_dokdis = 1 + knob_ugwp_effac = 1, 1, 1, 1 + knob_ugwp_ndx4lh = 1 + knob_ugwp_solver = 2 + knob_ugwp_source = 1, 1, 0, 0 + knob_ugwp_stoch = 0, 0, 0, 0 + knob_ugwp_version = 0 + knob_ugwp_wvspec = 1, 25, 25, 25 + launch_level = 27 +/ +!! [CIRES_UGWP_NML] diff --git a/physics/docs/pdftxt/RE7/input_GFS_v17_HR3.nml b/physics/docs/pdftxt/RE7/input_GFS_v17_p8_ugwpv1.nml similarity index 100% rename from physics/docs/pdftxt/RE7/input_GFS_v17_HR3.nml rename to physics/docs/pdftxt/RE7/input_GFS_v17_p8_ugwpv1.nml diff --git a/physics/docs/pdftxt/RE7/input_RRFS_v1.nml b/physics/docs/pdftxt/RE7/input_HRRR_gf.nml similarity index 100% rename from physics/docs/pdftxt/RE7/input_RRFS_v1.nml rename to physics/docs/pdftxt/RE7/input_HRRR_gf.nml diff --git a/physics/docs/pdftxt/RE7/suite_SCM_GFS_v16_RRTMGP.xml b/physics/docs/pdftxt/RE7/suite_SCM_GFS_v16_RRTMGP.xml new file mode 100644 index 000000000..b427bcf25 --- /dev/null +++ b/physics/docs/pdftxt/RE7/suite_SCM_GFS_v16_RRTMGP.xml @@ -0,0 +1,81 @@ + + + + + + GFS_time_vary_pre + GFS_rrtmgp_setup + GFS_rad_time_vary + GFS_phys_time_vary + + + + + GFS_suite_interstitial_rad_reset + GFS_rrtmgp_pre + GFS_radiation_surface + GFS_rrtmgp_cloud_mp + GFS_rrtmgp_cloud_overlap + GFS_cloud_diagnostics + rrtmgp_aerosol_optics + rrtmgp_sw_main + rrtmgp_lw_main + GFS_rrtmgp_post + + + + + GFS_suite_interstitial_phys_reset + GFS_suite_stateout_reset + get_prs_fv3 + GFS_suite_interstitial_1 + GFS_surface_generic_pre + GFS_surface_composites_pre + dcyc2t3 + GFS_surface_composites_inter + GFS_suite_interstitial_2 + + + + sfc_diff + GFS_surface_loop_control_part1 + sfc_nst_pre + sfc_nst + sfc_nst_post + lsm_noah + sfc_sice + GFS_surface_loop_control_part2 + + + + GFS_surface_composites_post + sfc_diag + sfc_diag_post + GFS_surface_generic_post + GFS_PBL_generic_pre + satmedmfvdifq + GFS_PBL_generic_post + GFS_GWD_generic_pre + cires_ugwp + cires_ugwp_post + GFS_GWD_generic_post + GFS_suite_stateout_update + h2ophys + get_phi_fv3 + GFS_suite_interstitial_3 + GFS_DCNV_generic_pre + samfdeepcnv + GFS_DCNV_generic_post + GFS_SCNV_generic_pre + samfshalcnv + GFS_SCNV_generic_post + GFS_suite_interstitial_4 + cnvc90 + GFS_MP_generic_pre + gfdl_cloud_microphys + GFS_MP_generic_post + maximum_hourly_diagnostics + GFS_physics_post + + + diff --git a/physics/docs/pdftxt/RE7/suite_SCM_GFS_v17_HR3.xml b/physics/docs/pdftxt/RE7/suite_SCM_GFS_v17_p8_ugwpv1.xml similarity index 98% rename from physics/docs/pdftxt/RE7/suite_SCM_GFS_v17_HR3.xml rename to physics/docs/pdftxt/RE7/suite_SCM_GFS_v17_p8_ugwpv1.xml index 92effe13c..865fe47f6 100644 --- a/physics/docs/pdftxt/RE7/suite_SCM_GFS_v17_HR3.xml +++ b/physics/docs/pdftxt/RE7/suite_SCM_GFS_v17_p8_ugwpv1.xml @@ -1,6 +1,6 @@ - + diff --git a/physics/docs/pdftxt/RE7/suite_SCM_RRFS_v1.xml b/physics/docs/pdftxt/RE7/suite_SCM_HRRR_gf.xml similarity index 98% rename from physics/docs/pdftxt/RE7/suite_SCM_RRFS_v1.xml rename to physics/docs/pdftxt/RE7/suite_SCM_HRRR_gf.xml index ef1c73157..f80ab4c7c 100644 --- a/physics/docs/pdftxt/RE7/suite_SCM_RRFS_v1.xml +++ b/physics/docs/pdftxt/RE7/suite_SCM_HRRR_gf.xml @@ -1,6 +1,6 @@ - + GFS_time_vary_pre @@ -76,4 +76,4 @@ GFS_physics_post - \ No newline at end of file + diff --git a/physics/docs/pdftxt/mainpage.txt b/physics/docs/pdftxt/mainpage.txt index b6314d4d4..4bea16a13 100644 --- a/physics/docs/pdftxt/mainpage.txt +++ b/physics/docs/pdftxt/mainpage.txt @@ -18,9 +18,9 @@ behavior out to about two weeks. The CCPP parameterizations are aggregated in suites by the host models. In this release, the CCPP Single Column Model (SCM), developed by the Development Testbed Center (DTC), supports suites: - \ref GFS_v16_page -- \ref GFS_v17_HR3_page -- \ref GFS_v17_HR3_RRTMGP_page -- \ref RRFS_v1_page +- \ref GFS_v16_RRTMGP_page +- \ref GFS_v17_p8_ugwpv1_page +- \ref HRRR_gf_page - \ref WoFS_v0_page In this website you will find documentation on various aspects of each From c6da115eac35ce542b1e4515dbe202477be4cc3b Mon Sep 17 00:00:00 2001 From: Man Zhang Date: Tue, 23 Jul 2024 17:11:30 -0600 Subject: [PATCH 14/29] address Ligia's review --- physics/GWD/ugwpv1_gsldrag.F90 | 8 +- physics/MP/Morrison_Gettelman/micro_mg3_0.F90 | 2 - physics/docs/ccpp_doxyfile | 3 +- physics/docs/pdftxt/GFS_RRTMGP.txt | 6 - physics/docs/pdftxt/GFS_UGWPv0.txt | 2 +- ...{GFS_ugwpv1_gsldrag.txt => GFS_ugwpv1.txt} | 10 +- .../docs/pdftxt/GFS_v17_p8_ugwpv1_suite.txt | 4 +- .../docs/pdftxt/RE7/input_GFS_v16_RRTMGP.nml | 286 +++++++++--------- physics/docs/pdftxt/all_schemes_list.txt | 9 +- physics/docs/pdftxt/mainpage.txt | 20 +- 10 files changed, 171 insertions(+), 179 deletions(-) rename physics/docs/pdftxt/{GFS_ugwpv1_gsldrag.txt => GFS_ugwpv1.txt} (87%) diff --git a/physics/GWD/ugwpv1_gsldrag.F90 b/physics/GWD/ugwpv1_gsldrag.F90 index a7eb762b8..298a71047 100644 --- a/physics/GWD/ugwpv1_gsldrag.F90 +++ b/physics/GWD/ugwpv1_gsldrag.F90 @@ -288,9 +288,7 @@ end subroutine ugwpv1_gsldrag_finalize ! ----------------------------------------------------------------------- ! order = dry-adj=>conv=mp-aero=>radiation -sfc/land- chem -> vertdiff-> [rf-gws]=> ion-re ! ----------------------------------------------------------------------- -!>@brief These subroutines and modules execute the CIRES UGWP Version 0 -!>\defgroup ugwpv1_gsldrag_run Unified Gravity Wave Physics General Algorithm -!> @{ +!>\section gen_ugwpv1_gsldrag_run Unified Gravity Wave Physics General Algorithm !! The physics of NGWs in the UGWP framework (Yudin et al. 2018 \cite yudin_et_al_2018) is represented by four GW-solvers, which is introduced in Lindzen (1981) \cite lindzen_1981, Hines (1997) \cite hines_1997, Alexander and Dunkerton (1999) \cite alexander_and_dunkerton_1999, and Scinocca (2003) \cite scinocca_2003. The major modification of these GW solvers is represented by the addition of the background dissipation of temperature and winds to the saturation criteria for wave breaking. This feature is important in the mesosphere and thermosphere for WAM applications and it considers appropriate scale-dependent dissipation of waves near the model top lid providing the momentum and energy conservation in the vertical column physics (Shaw and Shepherd 2009 \cite shaw_and_shepherd_2009). In the UGWP-v0, the modification of Scinocca (2003) \cite scinocca_2003 scheme for NGWs with non-hydrostatic and rotational effects for GW propagations and background dissipation is represented by the subroutine fv3_ugwp_solv2_v0. In the next release of UGWP, additional GW-solvers will be implemented along with physics-based triggering of waves and stochastic approaches for selection of GW modes characterized by horizontal phase velocities, azimuthal directions and magnitude of the vertical momentum flux (VMF). !! !! In UGWP-v0, the specification for the VMF function is adopted from the GEOS-5 global atmosphere model of GMAO NASA/GSFC, as described in Molod et al. (2015) \cite molod_et_al_2015 and employed in the MERRRA-2 reanalysis (Gelaro et al., 2017 \cite gelaro_et_al_2017). The Fortran subroutine \ref slat_geos5_tamp describes the latitudinal shape of VMF-function as displayed in Figure 3 of Molod et al. (2015) \cite molod_et_al_2015. It shows that the enhanced values of VMF in the equatorial region gives opportunity to simulate the QBO-like oscillations in the equatorial zonal winds and lead to more realistic simulations of the equatorial dynamics in GEOS-5 operational and MERRA-2 reanalysis products. For the first vertically extended version of FV3GFS in the stratosphere and mesosphere, this simplified function of VMF allows us to tune the model climate and to evaluate multi-year simulations of FV3GFS with the MERRA-2 and ERA-5 reanalysis products, along with temperature, ozone, and water vapor observations of current satellite missions. After delivery of the UGWP-code, the EMC group developed and tested approach to modulate the zonal mean NGW forcing by 3D-distributions of the total precipitation as a proxy for the excitation of NGWs by convection and the vertically-integrated (surface - tropopause) Turbulent Kinetic Energy (TKE). The verification scores with updated NGW forcing, as reported elsewhere by EMC researchers, display noticeable improvements in the forecast scores produced by FV3GFS configuration extended into the mesosphere. @@ -298,8 +296,6 @@ end subroutine ugwpv1_gsldrag_finalize !> \section arg_table_ugwpv1_gsldrag_run Argument Table !! \htmlinclude ugwpv1_gsldrag_run.html !! -!> \section gen_ugwpv1_gsldrag CIRES UGWP Scheme General Algorithm -!! @{ subroutine ugwpv1_gsldrag_run(me, master, im, levs, ak, bk, ntrac, lonr, dtp, & fhzero, kdt, ldiag3d, lssav, flag_for_gwd_generic_tend, do_gsl_drag_ls_bl, & do_gsl_drag_ss, do_gsl_drag_tofd, do_ugwp_v1, do_ugwp_v1_orog_only, & @@ -731,6 +727,4 @@ subroutine ugwpv1_gsldrag_run(me, master, im, levs, ak, bk, ntrac, lonr, dtp, dtdt = dtdt + dtdt_gw end subroutine ugwpv1_gsldrag_run -!! @} -!>@} end module ugwpv1_gsldrag diff --git a/physics/MP/Morrison_Gettelman/micro_mg3_0.F90 b/physics/MP/Morrison_Gettelman/micro_mg3_0.F90 index bca005bc9..6e650e915 100644 --- a/physics/MP/Morrison_Gettelman/micro_mg3_0.F90 +++ b/physics/MP/Morrison_Gettelman/micro_mg3_0.F90 @@ -4,7 +4,6 @@ !>\ingroup mg2mg3 !>\defgroup mg3_mp Morrison-Gettelman MP version 3.0 -!> @{ !!--------------------------------------------------------------------------------- !! Purpose: !! MG microphysics version 3.0 - Update of MG microphysics with @@ -4528,4 +4527,3 @@ end subroutine calc_rercld !======================================================================== end module micro_mg3_0 -!>@} diff --git a/physics/docs/ccpp_doxyfile b/physics/docs/ccpp_doxyfile index c8f933e46..7e7f109e6 100644 --- a/physics/docs/ccpp_doxyfile +++ b/physics/docs/ccpp_doxyfile @@ -962,8 +962,7 @@ INPUT = pdftxt/mainpage.txt \ pdftxt/GFS_SATMEDMFVDIFQ.txt \ pdftxt/GFS_NOAHMP.txt \ pdftxt/GFS_UGWPv0.txt \ - pdftxt/GFS_unified_ugwp.txt \ - pdftxt/GFS_ugwpv1_gsldrag.txt \ + pdftxt/GFS_ugwpv1.txt \ pdftxt/GFS_drag_suite.txt \ pdftxt/GFS_GWDPS.txt \ pdftxt/GFS_OZPHYS.txt \ diff --git a/physics/docs/pdftxt/GFS_RRTMGP.txt b/physics/docs/pdftxt/GFS_RRTMGP.txt index e31c9bc32..c5d7b2f19 100644 --- a/physics/docs/pdftxt/GFS_RRTMGP.txt +++ b/physics/docs/pdftxt/GFS_RRTMGP.txt @@ -82,11 +82,5 @@ + \b GFS RRTMGP-Shortwave radiation driver: \ref arg_table_rrtmgp_sw_main_run + \b GFS RRTMGP post-processing, for both Longwave and Shortwave: \ref arg_table_GFS_rrtmgp_post_run -\section gen_al_rrtmgp General Algorithm - + \ref gen_rrtmgp_lw - + \ref gen_rrtmgp_sw - -\section rrtmgp_enh CCPP Physics Updates -\version CCPP v7.0.0 */ diff --git a/physics/docs/pdftxt/GFS_UGWPv0.txt b/physics/docs/pdftxt/GFS_UGWPv0.txt index 81b3c7018..e3e3d4295 100644 --- a/physics/docs/pdftxt/GFS_UGWPv0.txt +++ b/physics/docs/pdftxt/GFS_UGWPv0.txt @@ -1,5 +1,5 @@ /** -\page GFS_UGWP_v0 Unified Gravity Wave Physics Scheme - Version 0 +\page GFS_UGWP_v0 GFS Unified Gravity Wave Physics (GWP) Scheme - Version 0 \section des_UGWP Description Gravity waves (GWs) are generated by a variety of sources in the atmosphere diff --git a/physics/docs/pdftxt/GFS_ugwpv1_gsldrag.txt b/physics/docs/pdftxt/GFS_ugwpv1.txt similarity index 87% rename from physics/docs/pdftxt/GFS_ugwpv1_gsldrag.txt rename to physics/docs/pdftxt/GFS_ugwpv1.txt index 687f950b7..0161d5303 100644 --- a/physics/docs/pdftxt/GFS_ugwpv1_gsldrag.txt +++ b/physics/docs/pdftxt/GFS_ugwpv1.txt @@ -1,8 +1,8 @@ /** -\page GFS_ugwpv1_gsldrag GFS Unified UGWP Version 1 Scheme +\page GFS_ugwpv1_gsldrag GFS Unified Gravity Wave Physics (GWP) Version 1 Scheme \section des_ugwpv1 Description -The GFS Unified UGWP version 1 combines the \ref GFS_drag_suite with the version 1 UGWP non-stationary gravity wave drag (NGW) scheme of Yudin et al. (2020)\cite yudin_et_al_2020. +The GFS Unified GWP version 1 combines the \ref GFS_drag_suite with the version 1 UGWP non-stationary gravity wave drag (NGW) scheme of Yudin et al. (2020)\cite yudin_et_al_2020. The NGW physics scheme parameterizes the effects of non-stationary waves unresolved by dynamical cores. These non-stationary oscillations with periods @@ -45,4 +45,10 @@ the effects of unresolved GWs in global forecast models, the representation of subgrid OGWs and NGWs has been implemented in the self-consistent manner using the UGWP framework. +\section intra_UGWPv1 Intraphysics Communication +- \ref arg_table_ugwpv1_gsldrag_run + +\section gen_al_ugwpv1 General Algorithm +- \ref gen_ugwpv1_gsldrag_run + */ diff --git a/physics/docs/pdftxt/GFS_v17_p8_ugwpv1_suite.txt b/physics/docs/pdftxt/GFS_v17_p8_ugwpv1_suite.txt index 187ce8c5b..f0324701f 100644 --- a/physics/docs/pdftxt/GFS_v17_p8_ugwpv1_suite.txt +++ b/physics/docs/pdftxt/GFS_v17_p8_ugwpv1_suite.txt @@ -3,8 +3,8 @@ \section gfsv_17_suite_overview Overview -Version 17 of the Global Forecast System (GFS) is scheduled for operational implementation by the NOAA -National Centers for Environmental Prediction (NCEP) in 2024. The GFS_v17_p8_ugwpv1 suite is a prototype of + +The GFS_v17_p8_ugwpv1 suite is a prototype of the GFS_v17 suite, and is expected to evolve before the implementation. It is available for use with the CCPP SCM. The primary differences between the GFS_v16 and GFS_v17 suites are: - \b Microphysics: The replacement of \ref GFDL_cloud with \ref THOMPSON diff --git a/physics/docs/pdftxt/RE7/input_GFS_v16_RRTMGP.nml b/physics/docs/pdftxt/RE7/input_GFS_v16_RRTMGP.nml index bf5fcf62e..381f4ed39 100644 --- a/physics/docs/pdftxt/RE7/input_GFS_v16_RRTMGP.nml +++ b/physics/docs/pdftxt/RE7/input_GFS_v16_RRTMGP.nml @@ -1,163 +1,163 @@ !>[GFS_PHYSICS_NML] &gfs_physics_nml - cal_pre = .false. - cdmbgwd = 4.0, 0.15, 1.0, 1.0 - cnvcld = .true. - cnvgwd = .true. - debug = .false. - do_shum = .false. - do_skeb = .false. - do_spp = .false. - do_sppt = .false. - do_tofd = .true. - do_ugwp = .false. - dspheat = .true. - effr_in = .true. - fhcyc = 0 - fhlwr = 1200.0 - fhswr = 1200.0 - fhzero = 1.0 - h2o_phys = .true. - hybedmf = .false. - iaer = 5111 - ialb = 1 + cal_pre = .false. + cdmbgwd = 4.0, 0.15, 1.0, 1.0 + cnvcld = .true. + cnvgwd = .true. + debug = .false. + do_shum = .false. + do_skeb = .false. + do_spp = .false. + do_sppt = .false. + do_tofd = .true. + do_ugwp = .false. + dspheat = .true. + effr_in = .true. + fhcyc = 0 + fhlwr = 1200.0 + fhswr = 1200.0 + fhzero = 1.0 + h2o_phys = .true. + hybedmf = .false. + iaer = 5111 + ialb = 1 iau_inc_files = '' - icliq_sw = 2 - ico2 = 2 - iems = 1 - imfdeepcnv = 2 - imfshalcnv = 2 - imp_physics = 11 - iopt_alb = 2 - iopt_btr = 1 - iopt_crs = 1 - iopt_dveg = 1 - iopt_frz = 1 - iopt_inf = 1 - iopt_rad = 1 - iopt_run = 1 - iopt_sfc = 1 - iopt_snf = 4 - iopt_stc = 1 - iopt_tbot = 2 - iovr = 3 - isatmedmf = 1 - isol = 2 - isot = 1 - isubc_lw = 2 - isubc_sw = 2 - ivegsrc = 1 - ldiag3d = .true. - ldiag_ugwp = .false. - lgfdlmprad = .true. - lheatstrg = .true. - lndp_type = 0 - lsm = 1 - lsoil = 4 - lwhtr = .true. - n_var_lndp = 0 - n_var_spp = 0 + icliq_sw = 2 + ico2 = 2 + iems = 1 + imfdeepcnv = 2 + imfshalcnv = 2 + imp_physics = 11 + iopt_alb = 2 + iopt_btr = 1 + iopt_crs = 1 + iopt_dveg = 1 + iopt_frz = 1 + iopt_inf = 1 + iopt_rad = 1 + iopt_run = 1 + iopt_sfc = 1 + iopt_snf = 4 + iopt_stc = 1 + iopt_tbot = 2 + iovr = 3 + isatmedmf = 1 + isol = 2 + isot = 1 + isubc_lw = 2 + isubc_sw = 2 + ivegsrc = 1 + ldiag3d = .true. + ldiag_ugwp = .false. + lgfdlmprad = .true. + lheatstrg = .true. + lndp_type = 0 + lsm = 1 + lsoil = 4 + lwhtr = .true. + n_var_lndp = 0 + n_var_spp = 0 nsfullradar_diag = 3600 - nst_anl = .true. - nstf_name = 2, 1, 0, 0, 0 - oz_phys = .false. - oz_phys_2015 = .true. - pdfcld = .false. - prautco = 0.00015, 0.00015 - pre_rad = .false. + nst_anl = .true. + nstf_name = 2, 1, 0, 0, 0 + oz_phys = .false. + oz_phys_2015 = .true. + pdfcld = .false. + prautco = 0.00015, 0.00015 + pre_rad = .false. print_diff_pgr = .false. - prslrd0 = 0.0 - psautco = 0.0008, 0.0005 - qdiag3d = .true. - random_clds = .false. - redrag = .true. - satmedmf = .true. - shal_cnv = .true. - swhtr = .true. - trans_trac = .true. - use_ufo = .true. + prslrd0 = 0.0 + psautco = 0.0008, 0.0005 + qdiag3d = .true. + random_clds = .false. + redrag = .true. + satmedmf = .true. + shal_cnv = .true. + swhtr = .true. + trans_trac = .true. + use_ufo = .true. do_RRTMGP = .true. doGP_cldoptics_LUT = .true. doGP_lwscat = .true. - active_gases = 'h2o_co2_o3_n2o_ch4_o2' - ngases = 6 - rrtmgp_root = '../../ccpp/physics/physics/rte-rrtmgp/' - lw_file_gas = 'rrtmgp/data/rrtmgp-data-lw-g128-210809.nc' - lw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-lw.nc' - sw_file_gas = 'rrtmgp/data/rrtmgp-data-sw-g112-210809.nc' - sw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-sw.nc' - rrtmgp_nGptsSW = 112 - rrtmgp_nGptsLW = 128 - rrtmgp_nBandsLW = 16 - rrtmgp_nBandsSW = 14 + active_gases = 'h2o_co2_o3_n2o_ch4_o2' + ngases = 6 + rrtmgp_root = '../../ccpp/physics/physics/rte-rrtmgp/' + lw_file_gas = 'rrtmgp/data/rrtmgp-data-lw-g128-210809.nc' + lw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-lw.nc' + sw_file_gas = 'rrtmgp/data/rrtmgp-data-sw-g112-210809.nc' + sw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-sw.nc' + rrtmgp_nGptsSW = 112 + rrtmgp_nGptsLW = 128 + rrtmgp_nBandsLW = 16 + rrtmgp_nBandsSW = 14 / !![GFS_PHYSICS_NML] !>[GFDL_CLOUD_MICROPHYSICS_NML] &gfdl_cloud_microphysics_nml - c_cracw = 0.8 - c_paut = 0.5 - c_pgacs = 0.01 - c_psaci = 0.05 - ccn_l = 300.0 - ccn_o = 100.0 - const_vg = .false. - const_vi = .false. - const_vr = .false. - const_vs = .false. - de_ice = .false. - do_qa = .false. - do_sedi_heat = .false. - dw_land = 0.16 - dw_ocean = 0.1 - fast_sat_adj = .false. - fix_negative = .true. - icloud_f = 1 - mono_prof = .true. - mp_time = 150.0 - prog_ccn = .false. - qi0_crt = 8e-05 - qi_lim = 1.0 - ql_gen = 0.001 - ql_mlt = 0.001 - qs0_crt = 0.001 - rad_graupel = .true. - rad_rain = .true. - rad_snow = .true. - reiflag = 2 - rh_inc = 0.3 - rh_inr = 0.3 - rh_ins = 0.3 - rthresh = 1e-05 - sedi_transport = .true. - tau_g2v = 900.0 - tau_i2s = 1000.0 - tau_l2v = 225.0 - tau_v2l = 150.0 - use_ccn = .true. - use_ppm = .false. - vg_max = 12.0 - vi_max = 1.0 - vr_max = 12.0 - vs_max = 2.0 - z_slope_ice = .true. - z_slope_liq = .true. + c_cracw = 0.8 + c_paut = 0.5 + c_pgacs = 0.01 + c_psaci = 0.05 + ccn_l = 300.0 + ccn_o = 100.0 + const_vg = .false. + const_vi = .false. + const_vr = .false. + const_vs = .false. + de_ice = .false. + do_qa = .false. + do_sedi_heat = .false. + dw_land = 0.16 + dw_ocean = 0.1 + fast_sat_adj = .false. + fix_negative = .true. + icloud_f = 1 + mono_prof = .true. + mp_time = 150.0 + prog_ccn = .false. + qi0_crt = 8e-05 + qi_lim = 1.0 + ql_gen = 0.001 + ql_mlt = 0.001 + qs0_crt = 0.001 + rad_graupel = .true. + rad_rain = .true. + rad_snow = .true. + reiflag = 2 + rh_inc = 0.3 + rh_inr = 0.3 + rh_ins = 0.3 + rthresh = 1e-05 + sedi_transport = .true. + tau_g2v = 900.0 + tau_i2s = 1000.0 + tau_l2v = 225.0 + tau_v2l = 150.0 + use_ccn = .true. + use_ppm = .false. + vg_max = 12.0 + vi_max = 1.0 + vr_max = 12.0 + vs_max = 2.0 + z_slope_ice = .true. + z_slope_liq = .true. / !![GFDL_CLOUD_MICROPHYSICS_NML] !>[CIRES_UGWP_NML] &cires_ugwp_nml - knob_ugwp_azdir = 2, 4, 4, 4 - knob_ugwp_doaxyz = 1 - knob_ugwp_doheat = 1 - knob_ugwp_dokdis = 1 - knob_ugwp_effac = 1, 1, 1, 1 - knob_ugwp_ndx4lh = 1 - knob_ugwp_solver = 2 - knob_ugwp_source = 1, 1, 0, 0 - knob_ugwp_stoch = 0, 0, 0, 0 - knob_ugwp_version = 0 - knob_ugwp_wvspec = 1, 25, 25, 25 - launch_level = 27 + knob_ugwp_azdir = 2, 4, 4, 4 + knob_ugwp_doaxyz = 1 + knob_ugwp_doheat = 1 + knob_ugwp_dokdis = 1 + knob_ugwp_effac = 1, 1, 1, 1 + knob_ugwp_ndx4lh = 1 + knob_ugwp_solver = 2 + knob_ugwp_source = 1, 1, 0, 0 + knob_ugwp_stoch = 0, 0, 0, 0 + knob_ugwp_version = 0 + knob_ugwp_wvspec = 1, 25, 25, 25 + launch_level = 27 / !! [CIRES_UGWP_NML] diff --git a/physics/docs/pdftxt/all_schemes_list.txt b/physics/docs/pdftxt/all_schemes_list.txt index 82d081e38..7a13b8f16 100644 --- a/physics/docs/pdftxt/all_schemes_list.txt +++ b/physics/docs/pdftxt/all_schemes_list.txt @@ -41,7 +41,6 @@ which facilitates model development and code maintenance. While some individual \b Gravity \b Wave \b Drag - \subpage GFS_UGWP_v0 - - \subpage GFS_UNIFIED_UGWP - \subpage GFS_drag_suite - \subpage GFS_ugwpv1_gsldrag @@ -83,17 +82,17 @@ convection. Table 1. Physics suites and primary schemes supported in CCPP v7.0.0 \tableofcontents -| Physics suites | GFS_v16 | GFS_v17 | GFS_v17_RRTMGP | RRFS_v1 | WoFS_v0 | +| Physics suites | GFS_v16 | GFS_v17_p8_ugwpv1 | GFS_v16_RRTMGP | HRRR_gf | WoFS_v0 | |------------------|--------------------|----------------------|-----------------------------|-----------------------|------------------| |\b Host | SCM \n SRWv2 | SCM \n MWR | SCM | SCM \n RRFS | SCM \n WoFS | |\b Deep \b Cu | \ref GFS_SAMFdeep | \ref GFS_SAMFdeep | \ref GFS_SAMFdeep | \ref CU_GF | \a off | |\b Shallow \b Cu | \ref GFS_SAMFshal | \ref GFS_SAMFshal | \ref GFS_SAMFshal | \ref CU_GF | \ref MYNNEDMF | -|\b Microphysics | \ref GFDL_cloud | \ref THOMPSON w/o aerosol-aware | \ref THOMPSON w/o aerosol-aware | \ref THOMPSON | \ref NSSLMICRO_page | +|\b Microphysics | \ref GFDL_cloud | \ref THOMPSON w/o aerosol-aware | \ref GFDL_cloud | \ref THOMPSON | \ref NSSLMICRO_page | |\b PBL/TURB | \ref GFS_SATMEDMFVDIFQ | \ref GFS_SATMEDMFVDIFQ | \ref GFS_SATMEDMFVDIFQ | \ref MYNNEDMF | \ref MYNNEDMF | |\b Radiation | \ref GFS_RRTMG_page | \ref GFS_RRTMG_page | \ref GFS_RRTMGP_page | \ref GFS_RRTMG_page | \ref GFS_RRTMG_page | |\b Surface \b Layer | \ref GFS_SFCLYR | \ref GFS_SFCLYR | \ref GFS_SFCLYR | \ref SFC_MYNNSFL | \ref SFC_MYNNSFL | -|\b LSM | \ref GFS_NOAH | \ref NoahMP | \ref NoahMP | \ref RUCLSM | \ref GFS_NOAH | -|\b Gravity \b Wave \b Drag| \ref GFS_UGWP_v0 | \ref GFS_ugwpv1_gsldrag | \ref GFS_ugwpv1_gsldrag | \ref GFS_drag_suite | \ref GFS_UGWP_v0 | +|\b LSM | \ref GFS_NOAH | \ref NoahMP | \ref GFS_NOAH | \ref RUCLSM | \ref GFS_NOAH | +|\b Gravity \b Wave \b Drag| \ref GFS_UGWP_v0 | \ref GFS_ugwpv1_gsldrag | \ref GFS_UGWP_v0 | \ref GFS_drag_suite | \ref GFS_UGWP_v0 | |\b Sea \b Ice | \ref GFS_SFCSICE | \ref GFS_SFCSICE | \ref GFS_SFCSICE | \ref RUCLSM | \ref GFS_SFCSICE | \tableofcontents diff --git a/physics/docs/pdftxt/mainpage.txt b/physics/docs/pdftxt/mainpage.txt index 4bea16a13..6ac4dde23 100644 --- a/physics/docs/pdftxt/mainpage.txt +++ b/physics/docs/pdftxt/mainpage.txt @@ -37,15 +37,17 @@ CCPP team would like to express our deepest gratitude for UFS physics developers development of CCPP-Physics. \n We would also like to give special thanks to: -- \b NOAA \b Global \b Systems \b Laboratory: -- \b NOAA \b Physical \b Sciences \b Laboratory: -- \b NOAA \b National \b Severe \b Storms \b Laboratory: -- \b NOAA \b Environmental \b Modeling \b Center: -- \b Atmospheric \b and \b Environmental \b Research, \b Inc.: -- \b Joint \b Center \b for \b Satellite \b Data \b Assimilation: -- \b NASA \b Goddard \b Space \b Flight \b Center: - -as a whole for their support and contribution for this CCPP scientific documentation (SciDoc). +- \b NOAA \b OAR \b Global \b Systems \b Laboratory +- \b NOAA \b OAR \b Physical \b Sciences \b Laboratory +- \b NOAA \b OAR \b National \b Severe \b Storms \b Laboratory +- \b NOAA \b OAR \b Atlantic \b Oceanographic \b & \b Meteorological \b Laboratory +- \b NOAA \b NWS \b Environmental \b Modeling \b Center +- \b NOAA \b OAR \b Atlantic \b Oceanographic \b & \b Meteorological \b Laboratory +- \b Atmospheric \b and \b Environmental \b Research, \b Inc. +- \b Joint \b Center \b for \b Satellite \b Data \b Assimilation +- \b NASA \b Goddard \b Space \b Flight \b Center + +for their support and contribution for this CCPP scientific documentation (SciDoc). \b CCPP \b SciDoc \b Team: From 4ac41235907e53b319ab9e754609df6bcb914ee8 Mon Sep 17 00:00:00 2001 From: Man Zhang Date: Wed, 24 Jul 2024 12:17:29 -0600 Subject: [PATCH 15/29] continue addressing reviews --- .../UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 | 7 ++-- physics/docs/pdftxt/GFS_RRTMGP.txt | 2 +- physics/docs/pdftxt/all_schemes_list.txt | 6 +-- physics/docs/pdftxt/ccppv7_phy_updates.txt | 37 ++++++++++--------- physics/docs/pdftxt/mainpage.txt | 12 +++--- 5 files changed, 32 insertions(+), 32 deletions(-) diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 index fe172c162..1022acac9 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 @@ -28,11 +28,12 @@ module GFS_rrtmgp_cloud_mp contains -!> \section arg_table_GFS_rrtmgp_cloud_mp_run Argument Table -!! \htmlinclude GFS_rrtmgp_cloud_mp_run_html -!! Here the cloud-radiative properties (optical-path, particle-size and sometimes cloud- +!> Here the cloud-radiative properties (optical-path, particle-size and sometimes cloud- !! fraction) are computed for cloud producing physics schemes (e.g GFDL-MP, Thompson-MP, !! MYNN-EDMF-pbl, GF-convective, and SAMF-convective clouds). +!> \section arg_table_GFS_rrtmgp_cloud_mp_run Argument Table +!! \htmlinclude GFS_rrtmgp_cloud_mp_run.html +!! subroutine GFS_rrtmgp_cloud_mp_run(nCol, nLev, nTracers, ncnd, i_cldliq, i_cldice, & i_cldrain, i_cldsnow, i_cldgrpl, i_cldtot, i_cldliq_nc, i_cldice_nc, i_twa, kdt, & imfdeepcnv, imfdeepcnv_gf, imfdeepcnv_samf, doSWrad, doLWrad, effr_in, lmfshal, & diff --git a/physics/docs/pdftxt/GFS_RRTMGP.txt b/physics/docs/pdftxt/GFS_RRTMGP.txt index c5d7b2f19..6a0862dac 100644 --- a/physics/docs/pdftxt/GFS_RRTMGP.txt +++ b/physics/docs/pdftxt/GFS_RRTMGP.txt @@ -1,5 +1,5 @@ /** -\page GFS_RRTMGP_page GFS RRTMGP Shortwave/Longwave Radiation Scheme +\page GFS_RRTMGP_page RRTMGP Shortwave/Longwave Radiation Scheme \section des_rte_rrtmgp Description diff --git a/physics/docs/pdftxt/all_schemes_list.txt b/physics/docs/pdftxt/all_schemes_list.txt index 7a13b8f16..2f8950e96 100644 --- a/physics/docs/pdftxt/all_schemes_list.txt +++ b/physics/docs/pdftxt/all_schemes_list.txt @@ -20,11 +20,9 @@ which facilitates model development and code maintenance. While some individual - \subpage GFS_NOAH - \subpage RUCLSM - \subpage NoahMP - - \subpage CLM_LAKE_model \b Cumulus \b Parameterizations - \subpage GFS_SAMFdeep - - \subpage cellular_automata - \subpage GFS_SAMFshal - \subpage CU_GF @@ -54,7 +52,7 @@ which facilitates model development and code maintenance. While some individual - \subpage GFS_SFCSICE \b Others - - \subpage GFS_SPP + - \subpage CLM_LAKE_mode The input information for the parameterizations includes the values of the gridbox mean prognostic variables (wind components, temperature, specific humidity, cloud fraction, water contents for cloud liquid, cloud ice, rain, snow, graupel, and ozone concentration), the provisional @@ -75,7 +73,7 @@ to the parameterization. \section allsuite_overview Physics Suites -The publicly supported host model that use CCPP v7.0.0 is the UFS Weather Model and the CCPP Single Column Model (CCPP-SCM). +The obly publicly supported host model for CCPP v7.0.0 is the CCPP Single Column Model (CCPP-SCM). The forcing datasets included in the CCPP-SCM v7.0.0 public release were created by averaging observations and large-eddy simulations over areas that are too coarse to resolve convection. Therefore, best results will be obtained with the CCPP-SCM v7.0.0 when using suites that include parameterized convection. diff --git a/physics/docs/pdftxt/ccppv7_phy_updates.txt b/physics/docs/pdftxt/ccppv7_phy_updates.txt index a5b1eec66..52690eb2b 100644 --- a/physics/docs/pdftxt/ccppv7_phy_updates.txt +++ b/physics/docs/pdftxt/ccppv7_phy_updates.txt @@ -1,31 +1,34 @@ /** \page ccppv7_phy Physics Update Summary +This page provides an overview of the major updates in CCPP Physics v7.0.0. + \b General \b Changes: - Add GFS_v17, GFS_v16_RRTMGP, and RRFS_v1 suites as new supported suite -- New the Community Lake Model \ref CLM_LAKE_model in RRFS_v1 suite -- New \ref GFS_ugwpv1_gsldrag in GFS_v17 suite combines the \ref GFS_drag_suite with the version 1 UGWP non-stationary gravity wave drag (NGW) scheme of Yudin et al. (2020)\cite yudin_et_al_2020 +- New supported suites: GFS_v17_p8_ugwpv1, GFS_v16_RRTMGP, and HRRR_gf suites +- New the Community Lake Model \ref CLM_LAKE_model in HRRR_gf suite +- New \ref GFS_ugwpv1_gsldrag in GFS_v17_p8_ugwpv1 suite combines the \ref GFS_drag_suite with the version 1 UGWP non-stationary gravity wave drag (NGW) scheme of Yudin et al. (2020)\cite yudin_et_al_2020 - New \ref GFS_RRTMGP_page in GFS_v16_RRTMGP suite -- New RRFS smoke/dust scheme in RRFS_v1 suite +- New RRFS smoke/dust scheme in HRRR_gf suite + +GFS_v17_p8, HRRR, RRFS_v1beta, RAP suites in CCPP v6.0.0 are no longer supported. + \b GFS \b Scale-aware \b SAS \b Cumulus \b Schemes: -The updates between GFSv16 and GFSv17 are carefully outlined in Bengtsson and Han (2004)(submitted to WAF). The main updates include: +The updates between GFSv16 and GFSv17 are carefully outlined in Bengtsson and Han (2024)(submitted to \a Weather \a and \a Forecasting). The main updates include: - Implementation of a positive definition mass-flux scheme and a method for removing the negative tracers (Han et al. 2022 \cite Han_et_al_2022) - Introduction of a new closure based on a prognostic evolution of the convective updraft area fraction in both shallow and deep convection (Bengtsson et al. 2022 \cite Bengtsson_2022) - Introduction of 3D effects of cold-pool dynamics and stochastic initiation using self-organizing \ref cellular_automata (Bengtsson et al. 2021 \cite bengtsson_et_al_2021) - Introduction of environmental wind shear effect and subgrid TKE dependence in convection, to seek improvements in hurricane forecast prediction (Han et al. 2024 \cite Han_2024) -- Stricter convective initiation criteria to allow for more CAPE to build up to address a low CAPE bias in GFSv16 (Han et al. 2021 \cite han_2021) +- Introduction of stricter convective initiation criteria to allow for more CAPE to build up to address a low CAPE bias in GFSv16 (Han et al. 2021 \cite han_2021) - Reduction of convective rain evaporation rate to address a systematic cold bias near the surface in GFSv16 (Han et al. 2021 \cite han_2021) \b GFS \b Scale-aware \b TKE-EDMF \b PBL \b Scheme: -- To reduce the negative hurricane intensity biases, a parameterization for environmental wind shear effect -is included in the GFS TKE-EDMF PBL and cumulus schemes. In addition, the entrainment rates are enhanced -proportional to the sub-cloud or PBL mean TKE (turbulent kinetic energy) when TKE is larger than a threshold -value. -- To enhance the underestimated CAPE forecasts in the GFS, the entrainment rate in the TKE-EDMF PBL scheme is -increased as a function of vegetation fraction and surface roughness length. +- Implementation of a parameterization for environmental wind shear effect in the GFS TKE-EDMF PBL and cumulus schemes to reduce +the negative hurricane intensity biases. In addition, the entrainment rates are enhanced +proportionally to the sub-cloud or PBL mean TKE (turbulent kinetic energy) when TKE is larger than a threshold value +- Increased entrainment rate as a function of vegetation fraction and surface roughness length to enhance the underestimated CAPE forecasts in the GFS \sa Han et al.(2024) \cite Han_2024 @@ -37,8 +40,8 @@ ocean reduced to a smaller number (50/L) from its previous default (100/L). Both excessive surface downward shortwave radiative flux off coastal regions including the Southeast Pacific - Small fixes to the minimum size of snow and collision constants -\note The above improvements were tested with the non-aerosol option (in GFS_v17 suite), so results with the aerosol-aware -Thompson (in RRFS_v1 suite) may vary. +\note The above improvements were tested with the non-aerosol option (in GFS_v17_p8_ugwpv1 suite), so results with the aerosol-aware +Thompson (in HRRR_gf suite) may vary. \b NoahMP \b Land \b Surface \b Model: - Option for using the unified frozen precipitation fraction in NoahMP @@ -74,7 +77,7 @@ Thompson (in RRFS_v1 suite) may vary. - Reintroduce friction velocity averaging over water to reduce noise in 10-m winds in the hurricane regime \b Grell-Freitas \b Scale \b and \b Aerosol \b Aware \b Convection \b Scheme: -- Update for aerosol-awareness (experimental) +- Update for aerosol-awareness (experimental and not supported) - Scale-awareness turned off when explicit microphysics is not active anywhere in the column - Convection is completely suppressed at grid points where the MYNN PBL sheme produces shallow convection - Radar reflectivity considers mass flux PDF as well as whether scale-awareness is turned on at the gird point in equation @@ -83,11 +86,11 @@ Thompson (in RRFS_v1 suite) may vary. \todo UGWP updates for HR4 \b NSSL \b Cloud \b Microphysics \b Scheme: -- Update NSSL microphysics with 3-moment option +- Updated with 3-moment option \b Radiation - Coupling of GOCART aerosols with radiation (iaer=2011) -- Add the convective cloud water (liquid water + ice water) in the calculations of cloud water path and ice water path for radiation cloud properties +- Convective cloud water (liquid water + ice water) added to the calculations of cloud water path and ice water path for radiation cloud properties */ diff --git a/physics/docs/pdftxt/mainpage.txt b/physics/docs/pdftxt/mainpage.txt index 6ac4dde23..d0b2d0c6b 100644 --- a/physics/docs/pdftxt/mainpage.txt +++ b/physics/docs/pdftxt/mainpage.txt @@ -11,8 +11,9 @@ developmental schemes under consideration for upcoming operational implementatio applications, including the UFS Short-Range Weather (SRW) Application (available through https://github.com/ufs-community/ufs-srweather-app/), which targets predictions of atmospheric behavior on a limited spatial domain and on time scales from less than an hour out to several days, and the UFS Medium-Range Weather (MRW) -Application (available through https://github.com/ufs-community/ufs-mrweather-app/), which targets predictions of global atmospheric -behavior out to about two weeks. +Application (available through https://github.com/ufs-community/ufs-mrweather-app/)(which targets predictions of global atmospheric +behavior out to about two weeks), the Subseasonal-to-Seasonal (S2S) Application (which predicts the Earth System out to several months), and the +Hurricane Application (which predicts tropical cyclones). The CCPP parameterizations are aggregated in suites by the host models. In this release, the CCPP Single Column Model (SCM), developed @@ -37,20 +38,17 @@ CCPP team would like to express our deepest gratitude for UFS physics developers development of CCPP-Physics. \n We would also like to give special thanks to: +- \b NOAA \b NWS \b Environmental \b Modeling \b Center - \b NOAA \b OAR \b Global \b Systems \b Laboratory - \b NOAA \b OAR \b Physical \b Sciences \b Laboratory - \b NOAA \b OAR \b National \b Severe \b Storms \b Laboratory - \b NOAA \b OAR \b Atlantic \b Oceanographic \b & \b Meteorological \b Laboratory -- \b NOAA \b NWS \b Environmental \b Modeling \b Center - \b NOAA \b OAR \b Atlantic \b Oceanographic \b & \b Meteorological \b Laboratory - \b Atmospheric \b and \b Environmental \b Research, \b Inc. - \b Joint \b Center \b for \b Satellite \b Data \b Assimilation - \b NASA \b Goddard \b Space \b Flight \b Center for their support and contribution for this CCPP scientific documentation (SciDoc). - - -\b CCPP \b SciDoc \b Team: -\n Developmental Testbed Center +\n Thanks also to the CCPP SciDoc Team at the Developmental Testbed Center. */ From 4355f699e381f79cb4ae8e1f1a72ce50e38cbc2c Mon Sep 17 00:00:00 2001 From: Man Zhang Date: Wed, 24 Jul 2024 13:27:06 -0600 Subject: [PATCH 16/29] more tweaks --- physics/docs/ccpp_doxyfile | 2 - physics/docs/pdftxt/CLM_LAKE.txt | 2 +- physics/docs/pdftxt/GFS_RRTMG.txt | 2 +- physics/docs/pdftxt/GFS_drag_suite.txt | 4 +- physics/docs/pdftxt/GFS_ugwpv1.txt | 2 +- physics/docs/pdftxt/GFS_v17_p8_RRTMGP.txt | 32 ---- .../pdftxt/RE7/input_GFS_v17_HR3_RRTMGP.nml | 175 ------------------ .../RE7/suite_SCM_GFS_v17_HR3_RRTMGP.xml | 89 --------- physics/docs/pdftxt/all_schemes_list.txt | 2 +- physics/docs/pdftxt/ccppv7_phy_updates.txt | 4 +- physics/docs/pdftxt/mainpage.txt | 1 - 11 files changed, 8 insertions(+), 307 deletions(-) delete mode 100644 physics/docs/pdftxt/GFS_v17_p8_RRTMGP.txt delete mode 100644 physics/docs/pdftxt/RE7/input_GFS_v17_HR3_RRTMGP.nml delete mode 100644 physics/docs/pdftxt/RE7/suite_SCM_GFS_v17_HR3_RRTMGP.xml diff --git a/physics/docs/ccpp_doxyfile b/physics/docs/ccpp_doxyfile index 7e7f109e6..ddb7e03f0 100644 --- a/physics/docs/ccpp_doxyfile +++ b/physics/docs/ccpp_doxyfile @@ -968,7 +968,6 @@ INPUT = pdftxt/mainpage.txt \ pdftxt/GFS_OZPHYS.txt \ pdftxt/GFS_H2OPHYS.txt \ pdftxt/GFS_SAMFdeep.txt \ - pdftxt/GFS_CAUTOMATA.txt \ pdftxt/GFS_SAMFshal.txt \ pdftxt/GFDL_cloud.txt \ pdftxt/NSSLMICRO.txt \ @@ -978,7 +977,6 @@ INPUT = pdftxt/mainpage.txt \ pdftxt/CLM_LAKE.txt \ pdftxt/THOMPSON.txt \ pdftxt/suite_input.nml.txt \ - pdftxt/GFS_SPP.txt \ ../MP \ ../CONV \ ../GWD \ diff --git a/physics/docs/pdftxt/CLM_LAKE.txt b/physics/docs/pdftxt/CLM_LAKE.txt index 498797511..493935b49 100644 --- a/physics/docs/pdftxt/CLM_LAKE.txt +++ b/physics/docs/pdftxt/CLM_LAKE.txt @@ -1,5 +1,5 @@ /** -\page CLM_LAKE_model CLM Lake Model +\page CLM_LAKE_page Community Land Model (CLM) Lake Model \section des_clmlake Description The Community Land Model (CLM) lake model is a multi-level one-dimensional lake model that has been implemented within the operational 3-km HRRR and diff --git a/physics/docs/pdftxt/GFS_RRTMG.txt b/physics/docs/pdftxt/GFS_RRTMG.txt index 39628ab93..f21a4fb97 100644 --- a/physics/docs/pdftxt/GFS_RRTMG.txt +++ b/physics/docs/pdftxt/GFS_RRTMG.txt @@ -1,5 +1,5 @@ /** -\page GFS_RRTMG_page GFS RRTMG Shortwave/Longwave Radiation Scheme +\page GFS_RRTMG_page RRTMG Shortwave/Longwave Radiation Scheme \section des_rrtmg Description Radiative processes are among the most complex and diff --git a/physics/docs/pdftxt/GFS_drag_suite.txt b/physics/docs/pdftxt/GFS_drag_suite.txt index 0dafa54d5..80ce32684 100644 --- a/physics/docs/pdftxt/GFS_drag_suite.txt +++ b/physics/docs/pdftxt/GFS_drag_suite.txt @@ -1,8 +1,8 @@ /** -\page GFS_drag_suite GFS Orographic Drag Scheme +\page GFS_drag_suite Orographic Drag Scheme \section des_drag Description -The GFS orographic drag suite, developed by NOAA's Global Systems Laboratory, Physical Sciences Laboratory and Environmental Modeling Center is a set of subgrid-scale orographic drag parameterizations that calculate momentum tendencies due to the effects of unresolved topography. The drag forces they represent are those due to: 1) large-scale gravity (mountain) waves that propagate vertically and break in the free atmosphere of the troposphere, stratosphere and above; 2) low-level flow blocking; 3) small-scale gravity wave drag (GWD) due to mountain waves generated in stable planetary boundary layer (PBL) conditions, typically at nighttime, which break at or near the PBL top; and 4) turbulent orographic form drag (TOFD), which is generated by turbulent pressure perturbations that are correlated with the terrain slope. The distinction between the large-scale and small-scale gravity waves are that the former are generated by topography with horizontal scales on the order of 5 km and greater, which can support vertical propagation through the typical static stabilities found in the free atmosphere, while the latter are generated by topography with smaller horizontal scales down to about 1 km, which can support vertical propagation only in very stable conditions, typically found in nocturnal PBLs. +The orographic drag suite, developed by NOAA's Global Systems Laboratory, Physical Sciences Laboratory and Environmental Modeling Center is a set of subgrid-scale orographic drag parameterizations that calculate momentum tendencies due to the effects of unresolved topography. The drag forces they represent are those due to: 1) large-scale gravity (mountain) waves that propagate vertically and break in the free atmosphere of the troposphere, stratosphere and above; 2) low-level flow blocking; 3) small-scale gravity wave drag (GWD) due to mountain waves generated in stable planetary boundary layer (PBL) conditions, typically at nighttime, which break at or near the PBL top; and 4) turbulent orographic form drag (TOFD), which is generated by turbulent pressure perturbations that are correlated with the terrain slope. The distinction between the large-scale and small-scale gravity waves are that the former are generated by topography with horizontal scales on the order of 5 km and greater, which can support vertical propagation through the typical static stabilities found in the free atmosphere, while the latter are generated by topography with smaller horizontal scales down to about 1 km, which can support vertical propagation only in very stable conditions, typically found in nocturnal PBLs. The large-scale GWD scheme is based on Kim and Doyle (2005) \cite kim_and_doyle_2005 and Choi and Hong (2015)\cite choi_and_hong_2015 and the code originated from the NCAR Weather Research and Forecasting (WRF) model and NOAA RAP/HRRR. The low-level blocking scheme is adapted from Kim and Doyle (2005)\cite kim_and_doyle_2005, with the code also originating from the WRF and RAP/HRRR. The small-scale orographic GWD scheme is based on Steeneveld et al.(2008)\cite steeneveld_et_al_2008 and Tsiringakis et al. (2017) \cite tsiringakis_et_al_2017, and the TOFD scheme is adapted from Beljaars et al. (2004)\cite beljaars_et_al_2004. diff --git a/physics/docs/pdftxt/GFS_ugwpv1.txt b/physics/docs/pdftxt/GFS_ugwpv1.txt index 0161d5303..c881ad2b9 100644 --- a/physics/docs/pdftxt/GFS_ugwpv1.txt +++ b/physics/docs/pdftxt/GFS_ugwpv1.txt @@ -1,5 +1,5 @@ /** -\page GFS_ugwpv1_gsldrag GFS Unified Gravity Wave Physics (GWP) Version 1 Scheme +\page GFS_ugwpv1_gsldrag GFS Unified Gravity Wave Physics (GWP) Scheme -Version 1 \section des_ugwpv1 Description The GFS Unified GWP version 1 combines the \ref GFS_drag_suite with the version 1 UGWP non-stationary gravity wave drag (NGW) scheme of Yudin et al. (2020)\cite yudin_et_al_2020. diff --git a/physics/docs/pdftxt/GFS_v17_p8_RRTMGP.txt b/physics/docs/pdftxt/GFS_v17_p8_RRTMGP.txt deleted file mode 100644 index 29fa38222..000000000 --- a/physics/docs/pdftxt/GFS_v17_p8_RRTMGP.txt +++ /dev/null @@ -1,32 +0,0 @@ -/** -\page GFS_v17_gp_page GFS_v17_RRTMGP Suite - -\section gfsv_17_p8_gp_overview Overview - - -The GFS_v17_RRTMGP suite uses the parameterizations in the following order: - - \ref GFS_RRTMGP_page - - \ref GFS_SFCLYR - - \ref GFS_NSST - - \ref NoahMP - - \ref GFS_SFCSICE - - \ref GFS_SATMEDMFVDIFQ - - \ref GFS_UNIFIED_UGWP - - \ref GFS_OZPHYS - - \ref GFS_H2OPHYS - - \ref GFS_SAMFdeep - - \ref GFS_SAMFshal - - \ref THOMPSON - - -\section sdf_gfsv17p8gp Suite Definition File -\include suite_SCM_GFS_v17_p8_RRTMGP.xml - -\section gfs17_nml_opt_des Namelist -- General physics options -\snippet SCM_GFS_v17_p8_gp_input.nml GFS_PHYSICS_NML -- \ref GFS_UNIFIED_UGWP related options -\snippet SCM_GFS_v17_p8_gp_input.nml CIRES_UGWP_NML - - -*/ diff --git a/physics/docs/pdftxt/RE7/input_GFS_v17_HR3_RRTMGP.nml b/physics/docs/pdftxt/RE7/input_GFS_v17_HR3_RRTMGP.nml deleted file mode 100644 index 323439437..000000000 --- a/physics/docs/pdftxt/RE7/input_GFS_v17_HR3_RRTMGP.nml +++ /dev/null @@ -1,175 +0,0 @@ -!> [GFS_PHYSICS_NML] -&gfs_physics_nml - fhzero = 6 - h2o_phys = .true. - ldiag3d = .true. - qdiag3d = .true. - print_diff_pgr = .false. - fhcyc = 24 - use_ufo = .true. - pre_rad = .false. - imp_physics = 8 - iovr = 3 - ltaerosol = .false. - lradar = .true. - ttendlim = -999 - dt_inner = 150 - sedi_semi = .true. - decfl = 10 - oz_phys = .false. - oz_phys_2015 = .true. - lsoil_lsm = 4 - do_mynnedmf = .false. - do_mynnsfclay = .false. - icloud_bl = 1 - bl_mynn_edmf = 1 - bl_mynn_tkeadvect = .true. - bl_mynn_edmf_mom = 1 - do_ugwp = .false. - do_tofd = .false. - gwd_opt = 2 - do_ugwp_v0 = .false. - do_ugwp_v1 = .true. - do_ugwp_v0_orog_only = .false. - do_ugwp_v0_nst_only = .false. - do_gsl_drag_ls_bl = .true. - do_gsl_drag_ss = .true. - do_gsl_drag_tofd = .true. - do_ugwp_v1_orog_only = .false. - min_lakeice = 0.15 - min_seaice = 1.0e-6 - use_cice_alb = .true. - pdfcld = .false. - fhswr = 1200. - fhlwr = 1200. - progsigma = .true. - betascu = 8.0 - betamcu = 1.0 - betadcu = 2.0 - ialb = 2 - iems = 2 - iaer = 1011 - icliq_sw = 2 - ico2 = 2 - isubc_sw = 2 - isubc_lw = 2 - isol = 2 - lwhtr = .true. - swhtr = .true. - cnvgwd = .true. - shal_cnv = .true. - cal_pre = .false. - redrag = .true. - dspheat = .true. - hybedmf = .false. - satmedmf = .true. - isatmedmf = 1 - lheatstrg = .true. - lseaspray = .true. - random_clds = .false. - trans_trac = .true. - cnvcld = .true. - imfshalcnv = 2 - imfdeepcnv = 2 - ras = .false. - cdmbgwd = 2.5,7.5,1.0,1.0 - prslrd0 = 0. - ivegsrc = 1 - isot = 1 - lsoil = 4 - lsm = 2 - iopt_dveg = 4 - iopt_crs = 2 - iopt_btr = 1 - iopt_run = 1 - iopt_sfc = 3 - iopt_trs = 2 - iopt_frz = 1 - iopt_inf = 1 - iopt_rad = 3 - iopt_alb = 1 - iopt_snf = 4 - iopt_tbot = 2 - iopt_stc = 3 - debug = .false. - nstf_name = 2,0,0,0,0 - nst_anl = .true. - psautco = 0.0008,0.0005 - prautco = 0.00015,0.00015 - lgfdlmprad = .false. - effr_in = .true. - ldiag_ugwp = .false. - do_sppt = .false. - do_shum = .false. - do_skeb = .false. - do_RRTMGP = .true. - doGP_cldoptics_LUT = .true. - doGP_lwscat = .true. - active_gases = 'h2o_co2_o3_n2o_ch4_o2' - ngases = 6 - rrtmgp_root = '../../ccpp/physics/physics/Radiation/RRTMGP/rte-rrtmgp/' - lw_file_gas = 'rrtmgp/data/rrtmgp-data-lw-g128-210809.nc' - lw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-lw.nc' - sw_file_gas = 'rrtmgp/data/rrtmgp-data-sw-g112-210809.nc' - sw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-reordered-sw.nc' - rrtmgp_nGptsSW = 112 - rrtmgp_nGptsLW = 128 - rrtmgp_nBandsLW = 16 - rrtmgp_nBandsSW = 14 - frac_grid = .true. - cplchm = .false. - cplflx = .false. - cplice = .false. - cplwav = .false. - cplwav2atm = .false. - do_ca = .false. - ca_global = .false. - ca_sgs = .true. - nca = 1 - ncells = 5 - nlives = 12 - nseed = 1 - nfracseed = 0.5 - nthresh = 18 - ca_trigger = .true. - nspinup = 1 - iseed_ca = 1448371824 -/ -!! [GFS_PHYSICS_NML] - -!>[CIRES_UGWP_NML] -&cires_ugwp_nml - knob_ugwp_solver = 2 - knob_ugwp_version = 1 - knob_ugwp_source = 1,1,0,0 - knob_ugwp_wvspec = 1,25,25,25 - knob_ugwp_azdir = 2,4,4,4 - knob_ugwp_stoch = 0,0,0,0 - knob_ugwp_effac = 1,1,1,1 - knob_ugwp_doaxyz = 1 - knob_ugwp_doheat = 1 - knob_ugwp_dokdis = 2 - knob_ugwp_ndx4lh = 4 - knob_ugwp_palaunch = 275.0e2 - knob_ugwp_nslope = 1 - knob_ugwp_lzmax = 15.750e3 - knob_ugwp_lzmin = 0.75e3 - knob_ugwp_lzstar = 2.0e3 - knob_ugwp_taumin = 0.25e-3 - knob_ugwp_tauamp = 0.5e-3 - knob_ugwp_lhmet = 200.0e3 - knob_ugwp_orosolv = 'pss-1986' -/ -!! [CIRES_UGWP_NML] - -&ccpp_suite_sim_nml - suite_sim_file = '' - nprc_sim = 7 - prc_LWRAD_cfg = 0, 0, 1 - prc_SWRAD_cfg = 0, 0, 2 - prc_PBL_cfg = 1, 0, 3 - prc_GWD_cfg = 1, 0, 4 - prc_SCNV_cfg = 1, 1, 5 - prc_DCNV_cfg = 1, 1, 6 - prc_cldMP_cfg = 1, 1, 7 -/ diff --git a/physics/docs/pdftxt/RE7/suite_SCM_GFS_v17_HR3_RRTMGP.xml b/physics/docs/pdftxt/RE7/suite_SCM_GFS_v17_HR3_RRTMGP.xml deleted file mode 100644 index 09bcbfa64..000000000 --- a/physics/docs/pdftxt/RE7/suite_SCM_GFS_v17_HR3_RRTMGP.xml +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - GFS_time_vary_pre - GFS_rrtmgp_setup - GFS_rad_time_vary - GFS_phys_time_vary - - - - - GFS_suite_interstitial_rad_reset - GFS_rrtmgp_pre - GFS_radiation_surface - GFS_rrtmgp_cloud_mp - GFS_rrtmgp_cloud_overlap - GFS_cloud_diagnostics - rrtmgp_aerosol_optics - rrtmgp_sw_main - rrtmgp_lw_main - GFS_rrtmgp_post - - - - - GFS_suite_interstitial_phys_reset - GFS_suite_stateout_reset - get_prs_fv3 - GFS_suite_interstitial_1 - GFS_surface_generic_pre - GFS_surface_composites_pre - dcyc2t3 - GFS_surface_composites_inter - GFS_suite_interstitial_2 - - - - sfc_diff - GFS_surface_loop_control_part1 - sfc_nst_pre - sfc_nst - sfc_nst_post - noahmpdrv - sfc_sice - GFS_surface_loop_control_part2 - - - - GFS_surface_composites_post - sfc_diag - sfc_diag_post - GFS_surface_generic_post - GFS_PBL_generic_pre - satmedmfvdifq - GFS_PBL_generic_post - GFS_GWD_generic_pre - ugwpv1_gsldrag - ugwpv1_gsldrag_post - GFS_GWD_generic_post - GFS_suite_stateout_update - h2ophys - get_phi_fv3 - GFS_suite_interstitial_3 - GFS_DCNV_generic_pre - samfdeepcnv - GFS_DCNV_generic_post - GFS_SCNV_generic_pre - samfshalcnv - GFS_SCNV_generic_post - GFS_suite_interstitial_4 - cnvc90 - GFS_MP_generic_pre - mp_thompson_pre - - - mp_thompson - - - mp_thompson_post - GFS_MP_generic_post - maximum_hourly_diagnostics - GFS_physics_post - - - - diff --git a/physics/docs/pdftxt/all_schemes_list.txt b/physics/docs/pdftxt/all_schemes_list.txt index 2f8950e96..313b2edec 100644 --- a/physics/docs/pdftxt/all_schemes_list.txt +++ b/physics/docs/pdftxt/all_schemes_list.txt @@ -52,7 +52,7 @@ which facilitates model development and code maintenance. While some individual - \subpage GFS_SFCSICE \b Others - - \subpage CLM_LAKE_mode + - \subpage CLM_LAKE_page The input information for the parameterizations includes the values of the gridbox mean prognostic variables (wind components, temperature, specific humidity, cloud fraction, water contents for cloud liquid, cloud ice, rain, snow, graupel, and ozone concentration), the provisional diff --git a/physics/docs/pdftxt/ccppv7_phy_updates.txt b/physics/docs/pdftxt/ccppv7_phy_updates.txt index 52690eb2b..4582453c4 100644 --- a/physics/docs/pdftxt/ccppv7_phy_updates.txt +++ b/physics/docs/pdftxt/ccppv7_phy_updates.txt @@ -5,7 +5,7 @@ This page provides an overview of the major updates in CCPP Physics v7.0.0. \b General \b Changes: - New supported suites: GFS_v17_p8_ugwpv1, GFS_v16_RRTMGP, and HRRR_gf suites -- New the Community Lake Model \ref CLM_LAKE_model in HRRR_gf suite +- New \ref CLM_LAKE_page in HRRR_gf suite - New \ref GFS_ugwpv1_gsldrag in GFS_v17_p8_ugwpv1 suite combines the \ref GFS_drag_suite with the version 1 UGWP non-stationary gravity wave drag (NGW) scheme of Yudin et al. (2020)\cite yudin_et_al_2020 - New \ref GFS_RRTMGP_page in GFS_v16_RRTMGP suite - New RRFS smoke/dust scheme in HRRR_gf suite @@ -19,7 +19,7 @@ The updates between GFSv16 and GFSv17 are carefully outlined in Bengtsson and Ha - Implementation of a positive definition mass-flux scheme and a method for removing the negative tracers (Han et al. 2022 \cite Han_et_al_2022) - Introduction of a new closure based on a prognostic evolution of the convective updraft area fraction in both shallow and deep convection (Bengtsson et al. 2022 \cite Bengtsson_2022) -- Introduction of 3D effects of cold-pool dynamics and stochastic initiation using self-organizing \ref cellular_automata (Bengtsson et al. 2021 \cite bengtsson_et_al_2021) +- Introduction of 3D effects of cold-pool dynamics and stochastic initiation using self-organizing cellular automata stochastic convective organization scheme (not supported; Bengtsson et al. 2021 \cite bengtsson_et_al_2021) - Introduction of environmental wind shear effect and subgrid TKE dependence in convection, to seek improvements in hurricane forecast prediction (Han et al. 2024 \cite Han_2024) - Introduction of stricter convective initiation criteria to allow for more CAPE to build up to address a low CAPE bias in GFSv16 (Han et al. 2021 \cite han_2021) - Reduction of convective rain evaporation rate to address a systematic cold bias near the surface in GFSv16 (Han et al. 2021 \cite han_2021) diff --git a/physics/docs/pdftxt/mainpage.txt b/physics/docs/pdftxt/mainpage.txt index d0b2d0c6b..1752f9e29 100644 --- a/physics/docs/pdftxt/mainpage.txt +++ b/physics/docs/pdftxt/mainpage.txt @@ -43,7 +43,6 @@ development of CCPP-Physics. - \b NOAA \b OAR \b Physical \b Sciences \b Laboratory - \b NOAA \b OAR \b National \b Severe \b Storms \b Laboratory - \b NOAA \b OAR \b Atlantic \b Oceanographic \b & \b Meteorological \b Laboratory -- \b NOAA \b OAR \b Atlantic \b Oceanographic \b & \b Meteorological \b Laboratory - \b Atmospheric \b and \b Environmental \b Research, \b Inc. - \b Joint \b Center \b for \b Satellite \b Data \b Assimilation - \b NASA \b Goddard \b Space \b Flight \b Center From 59040c223c8b1e5f8d2ddab79133885d7d810e28 Mon Sep 17 00:00:00 2001 From: Man Zhang Date: Thu, 25 Jul 2024 11:40:32 -0600 Subject: [PATCH 17/29] scidoc updates --- physics/docs/pdftxt/HRRR_gf_suite.txt | 3 +-- physics/docs/pdftxt/all_schemes_list.txt | 2 +- physics/docs/pdftxt/ccppv7_phy_updates.txt | 4 ++-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/physics/docs/pdftxt/HRRR_gf_suite.txt b/physics/docs/pdftxt/HRRR_gf_suite.txt index 5eba3a454..32a008fb4 100644 --- a/physics/docs/pdftxt/HRRR_gf_suite.txt +++ b/physics/docs/pdftxt/HRRR_gf_suite.txt @@ -11,9 +11,8 @@ The HRRR_gf suite uses the parameterizations in the following order: - \ref GFS_RRTMG_page - \ref SFC_MYNNSFL - \ref RUCLSM - - \ref CLM_LAKE_model + - \ref CLM_LAKE_page - \ref MYNNEDMF - - smokedust - \ref GFS_drag_suite - \ref GFS_H2OPHYS - \ref CU_GF diff --git a/physics/docs/pdftxt/all_schemes_list.txt b/physics/docs/pdftxt/all_schemes_list.txt index 313b2edec..d8bdd3770 100644 --- a/physics/docs/pdftxt/all_schemes_list.txt +++ b/physics/docs/pdftxt/all_schemes_list.txt @@ -82,7 +82,7 @@ Table 1. Physics suites and primary schemes supported in CCPP v7.0.0 \tableofcontents | Physics suites | GFS_v16 | GFS_v17_p8_ugwpv1 | GFS_v16_RRTMGP | HRRR_gf | WoFS_v0 | |------------------|--------------------|----------------------|-----------------------------|-----------------------|------------------| -|\b Host | SCM \n SRWv2 | SCM \n MWR | SCM | SCM \n RRFS | SCM \n WoFS | +|\b Host | SCM | SCM | SCM | SCM | SCM | |\b Deep \b Cu | \ref GFS_SAMFdeep | \ref GFS_SAMFdeep | \ref GFS_SAMFdeep | \ref CU_GF | \a off | |\b Shallow \b Cu | \ref GFS_SAMFshal | \ref GFS_SAMFshal | \ref GFS_SAMFshal | \ref CU_GF | \ref MYNNEDMF | |\b Microphysics | \ref GFDL_cloud | \ref THOMPSON w/o aerosol-aware | \ref GFDL_cloud | \ref THOMPSON | \ref NSSLMICRO_page | diff --git a/physics/docs/pdftxt/ccppv7_phy_updates.txt b/physics/docs/pdftxt/ccppv7_phy_updates.txt index 4582453c4..49eb3f248 100644 --- a/physics/docs/pdftxt/ccppv7_phy_updates.txt +++ b/physics/docs/pdftxt/ccppv7_phy_updates.txt @@ -36,8 +36,8 @@ proportionally to the sub-cloud or PBL mean TKE (turbulent kinetic energy) when - Ice generation supersaturation requirement reduced from 0.25 to 0.15 to generate more ice at the upper levels and reduce the outgoing longwave radiation bias - Cloud number concentration divided into two parts (over land and others). Number concentration over -ocean reduced to a smaller number (50/L) from its previous default (100/L). Both changes were made to reduce -excessive surface downward shortwave radiative flux off coastal regions including the Southeast Pacific +ocean reduced to a smaller number (50/L) from its previous default (100/L). Both changes were made to increase +the downward shortwave radiative flux and reduce the negative bias off coastal regions including the Southeast Pacific - Small fixes to the minimum size of snow and collision constants \note The above improvements were tested with the non-aerosol option (in GFS_v17_p8_ugwpv1 suite), so results with the aerosol-aware From 1dff8835f80c85b20849d4aa5a72e36318ecb599 Mon Sep 17 00:00:00 2001 From: Man Zhang Date: Mon, 29 Jul 2024 16:02:39 -0600 Subject: [PATCH 18/29] implement S. Hong's modification --- physics/docs/ccpp_doxyfile | 2 +- physics/docs/library.bib | 60 ++++++++++++---------- physics/docs/pdftxt/GFS_UGWPV1_ORO.txt | 19 +++++++ physics/docs/pdftxt/GFS_ugwpv1.txt | 4 +- physics/docs/pdftxt/ccppv7_phy_updates.txt | 8 ++- 5 files changed, 62 insertions(+), 31 deletions(-) create mode 100644 physics/docs/pdftxt/GFS_UGWPV1_ORO.txt diff --git a/physics/docs/ccpp_doxyfile b/physics/docs/ccpp_doxyfile index ddb7e03f0..136ae55d8 100644 --- a/physics/docs/ccpp_doxyfile +++ b/physics/docs/ccpp_doxyfile @@ -963,7 +963,7 @@ INPUT = pdftxt/mainpage.txt \ pdftxt/GFS_NOAHMP.txt \ pdftxt/GFS_UGWPv0.txt \ pdftxt/GFS_ugwpv1.txt \ - pdftxt/GFS_drag_suite.txt \ + pdftxt/GFS_UGWPV1_ORO.txt \ pdftxt/GFS_GWDPS.txt \ pdftxt/GFS_OZPHYS.txt \ pdftxt/GFS_H2OPHYS.txt \ diff --git a/physics/docs/library.bib b/physics/docs/library.bib index ae06b218f..0bab22b02 100644 --- a/physics/docs/library.bib +++ b/physics/docs/library.bib @@ -1,23 +1,40 @@ %% This BibTeX bibliography file was created using BibDesk. %% https://bibdesk.sourceforge.io/ -%% Created for Man Zhang at 2024-07-16 12:25:34 -0600 +%% Created for Man Zhang at 2024-07-29 15:49:56 -0600 %% Saved with string encoding Unicode (UTF-8) +@article{kim_et_al_2003, + author = {Y-J. Kim, S.D. Eckermann and H-Y. Chun}, + date-added = {2024-07-29 15:36:07 -0600}, + date-modified = {2024-07-29 15:44:35 -0600}, + doi = {10.3137/ao.410105}, + issn = {1480-9214}, + journal = {Atmosphere-Ocean}, + month = mar, + number = {1}, + pages = {65-98}, + publisher = {Informa UK Limited}, + title = {An overview of the past, present and future of gravity-wave drag parametrization for numerical climate and weather prediction models}, + url = {http://dx.doi.org/10.3137/ao.410105}, + volume = {41}, + year = {2003}, + bdsk-url-1 = {http://dx.doi.org/10.3137/ao.410105}} + @article{Yang_2013, author = {Yang, Ping and Bi, Lei and Baum, Bryan A. and Liou, Kuo-Nan and Kattawar, George W. and Mishchenko, Michael I. and Cole, Benjamin}, date-added = {2024-07-16 12:25:15 -0600}, - date-modified = {2024-07-16 12:25:15 -0600}, + date-modified = {2024-07-29 15:48:40 -0600}, doi = {10.1175/jas-d-12-039.1}, issn = {1520-0469}, journal = {Journal of the Atmospheric Sciences}, month = jan, number = {1}, - pages = {330{\^a}€“347}, + pages = {330-347}, publisher = {American Meteorological Society}, title = {Spectrally Consistent Scattering, Absorption, and Polarization Properties of Atmospheric Ice Crystals at Wavelengths from 0.2 to 100 {\^I}¼m}, url = {http://dx.doi.org/10.1175/JAS-D-12-039.1}, @@ -48,13 +65,13 @@ @article{han_2021 @article{Han_2024, author = {Han, Jongil and Peng, Jiayi and Li, Wei and Wang, Weiguo and Zhang, Zhan and Yang, Fanglin and Zheng, Weizhong}, date-added = {2024-07-02 13:44:05 -0600}, - date-modified = {2024-07-02 13:44:05 -0600}, + date-modified = {2024-07-29 15:45:21 -0600}, doi = {10.1175/waf-d-23-0134.1}, issn = {1520-0434}, journal = {Weather and Forecasting}, month = apr, number = {4}, - pages = {679{\^a}€“688}, + pages = {679-688}, publisher = {American Meteorological Society}, title = {Updates in the NCEP GFS PBL and Convection Models with Environmental Wind Shear Effect and Modified Entrainment and Detrainment Rates and Their Impacts on the GFS Hurricane and CAPE Forecasts}, url = {http://dx.doi.org/10.1175/WAF-D-23-0134.1}, @@ -88,15 +105,15 @@ @article{Han_et_al_2022 year = {2022}} @article{xu_and_randall_1996, - author = {Xu, Kuan-Man and Randall, David A.}, + author = {Xu, K-M. and Randall, D. A.}, date-added = {2024-06-27 13:17:39 -0600}, - date-modified = {2024-06-27 13:18:31 -0600}, + date-modified = {2024-07-29 15:48:17 -0600}, doi = {10.1175/1520-0469(1996)053<3084:ascpfu>2.0.co;2}, issn = {1520-0469}, journal = {Journal of the Atmospheric Sciences}, month = nov, number = {21}, - pages = {3084{\^a}€“3102}, + pages = {3084-3102}, publisher = {American Meteorological Society}, title = {A Semiempirical Cloudiness Parameterization for Use in Climate Models}, url = {http://dx.doi.org/10.1175/1520-0469(1996)053<3084:ASCPFU>2.0.CO;2}, @@ -105,15 +122,15 @@ @article{xu_and_randall_1996 bdsk-url-1 = {http://dx.doi.org/10.1175/1520-0469(1996)053%3C3084:ASCPFU%3E2.0.CO;2}} @article{Mansell_2020, - author = {Mansell, Edward R. and Dawson II, Daniel T. and Straka, Jerry M.}, + author = {Mansell, E. R. and Dawson II, Daniel T. and Straka, Jerry M.}, date-added = {2024-06-24 12:43:58 -0600}, - date-modified = {2024-06-24 12:43:58 -0600}, + date-modified = {2024-07-29 15:46:57 -0600}, doi = {10.1175/jas-d-19-0268.1}, issn = {1520-0469}, journal = {Journal of the Atmospheric Sciences}, month = oct, number = {10}, - pages = {3361{\^a}€“3385}, + pages = {3361-3385}, publisher = {American Meteorological Society}, title = {Bin-Emulating Hail Melting in Three-Moment Bulk Microphysics}, url = {http://dx.doi.org/10.1175/JAS-D-19-0268.1}, @@ -156,15 +173,15 @@ @article{choi_and_hong_2015 @article{Liou_1973, author = {Liou, Kuo-Nan}, date-added = {2024-06-17 12:33:23 -0600}, - date-modified = {2024-06-17 12:33:23 -0600}, + date-modified = {2024-07-29 15:42:52 -0600}, doi = {10.1175/1520-0469(1973)030<1303:aneocd>2.0.co;2}, issn = {1520-0469}, journal = {Journal of the Atmospheric Sciences}, month = oct, number = {7}, - pages = {1303{\^a}€“1326}, + pages = {1303-1326}, publisher = {American Meteorological Society}, - title = {A Numerical Experiment on Chandrasekhar{\^a}€™s Discrete-Ordinate Method for Radiative Transfer: Applications to Cloudy and Hazy Atmospheres}, + title = {A Numerical Experiment on Chandrasekhar's Discrete-Ordinate Method for Radiative Transfer: Applications to Cloudy and Hazy Atmospheres}, url = {http://dx.doi.org/10.1175/1520-0469(1973)030<1303:ANEOCD>2.0.CO;2}, volume = {30}, year = {1973}, @@ -173,13 +190,13 @@ @article{Liou_1973 @article{Joseph_1976, author = {Joseph, J. H. and Wiscombe, W. J. and Weinman, J. A.}, date-added = {2024-06-17 12:28:00 -0600}, - date-modified = {2024-06-17 12:28:00 -0600}, + date-modified = {2024-07-29 15:49:55 -0600}, doi = {10.1175/1520-0469(1976)033<2452:tdeafr>2.0.co;2}, issn = {1520-0469}, journal = {Journal of the Atmospheric Sciences}, month = dec, number = {12}, - pages = {2452{\^a}€“2459}, + pages = {2452-2459}, publisher = {American Meteorological Society}, title = {The Delta-Eddington Approximation for Radiative Flux Transfer}, url = {http://dx.doi.org/10.1175/1520-0469(1976)033<2452:TDEAFR>2.0.CO;2}, @@ -2373,17 +2390,6 @@ @inbook{hooke_1986 title = {Mesoscale meteorology and forecasting}, year = {1986}} -@article{kim_et_al_2003, - author = {Y.-J. Kim and S. D. Eckermann and H.-Y. Chun}, - date-added = {2018-02-23 16:59:17 +0000}, - date-modified = {2018-02-23 17:02:12 +0000}, - journal = {Atmosphere-Ocean}, - number = {1}, - pages = {65-98}, - title = {An overview of the past, present and future of gravity-wave drag parameterization for numerical climate and weather prediction models}, - volume = {41}, - year = {2003}} - @article{paulson_and_simpson_1981, author = {C.A. Paulson and J.J. Simpson}, date-added = {2018-02-21 23:47:11 +0000}, diff --git a/physics/docs/pdftxt/GFS_UGWPV1_ORO.txt b/physics/docs/pdftxt/GFS_UGWPV1_ORO.txt new file mode 100644 index 000000000..b7d99b4d3 --- /dev/null +++ b/physics/docs/pdftxt/GFS_UGWPV1_ORO.txt @@ -0,0 +1,19 @@ +/** +\page GFS_drag_suite Orographic Drag Scheme +\section des_drag Description + +The orographic drag suite, developed by NOAA's Global Systems Laboratory, Physical Sciences Laboratory and Environmental Modeling Center is a set of subgrid-scale orographic drag parameterizations that calculate momentum tendencies due to the effects of unresolved topography. The drag forces they represent are those due to: 1) meso-scale gravity (mountain) waves that propagate vertically and break in the free atmosphere of the troposphere, stratosphere and above; 2) low-level flow blocking; 3) turbulent orographic form drag (TOFD), which is generated by turbulent pressure perturbations that are correlated with the terrain slope. The distinction between the meso-scale and turbulent-scale gravity waves are that the former are generated by topography with horizontal scales on the order of 5 km and greater, which can support vertical propagation through the typical static stabilities found in the free atmosphere, while the latter are generated by topography with smaller horizontal scales down to about 1 km. + +The GWD and flow-blocking scheme is based on Kim and Doyle (2005) \cite kim_and_doyle_2005 and Choi and Hong (2015)\cite choi_and_hong_2015 and its code originated from the NCAR Weather Research and Forecasting (WRF) model that was implemented by S. Hong. The TOFD scheme is adapted from Beljaars et al. (2004)\cite beljaars_et_al_2004. + +All orographic GWD schemes require static input data files that contain statistical information about the subgrid terrain within each model grid cell, such as the standard deviation of the subgrid topography, which comes from the high-resolution USGS 30-second GMETED2010 dataset. These data files augment the usual "oro_data.tile*.nc" files, which contain orographic height data and GWD static data for the orographic drag parameterization. The static data files for the meso-scale GWD and blocking schemes are named "oro_data_ls.tile*.nc". The source topography for the datasets are calculated from a 2.5-minute lat-lon grid to filter out small-scale topographic variations. The static data files for the small-scale GWD and TOFD schemes are named "oro_data_ss.tile*.nc". The data is from the 30-second topographic dataset, but band-passed filtered from ~20km down to ~2km as per Beljaars et al.(2004) \cite beljaars_et_al_2004. + +The meso-scale GWD and blocking schemes are explicitly tapered off from horizontal grid resolutions starting at ~13 km down to 3 km resolution, at and below which the scheme is not active. + + +\section instra_drag Intraphysics Communication +- \ref arg_table_drag_suite_run + +\section gen_drag General Algorithm +- \ref gen_drag_suite +*/ diff --git a/physics/docs/pdftxt/GFS_ugwpv1.txt b/physics/docs/pdftxt/GFS_ugwpv1.txt index c881ad2b9..c7665516b 100644 --- a/physics/docs/pdftxt/GFS_ugwpv1.txt +++ b/physics/docs/pdftxt/GFS_ugwpv1.txt @@ -1,5 +1,5 @@ /** -\page GFS_ugwpv1_gsldrag GFS Unified Gravity Wave Physics (GWP) Scheme -Version 1 +\page GFS_ugwpv1_gsldrag GFS Unified Gravity Wave Physics (GWP) Scheme - Version 1 \section des_ugwpv1 Description The GFS Unified GWP version 1 combines the \ref GFS_drag_suite with the version 1 UGWP non-stationary gravity wave drag (NGW) scheme of Yudin et al. (2020)\cite yudin_et_al_2020. @@ -28,7 +28,7 @@ dissipation on the large-scale circulation, mixing, and transport have been acknowledged in the physics of global weather and climate models after pioneering studies by Lindzen 1981 \cite lindzen_1981 and Holton 1983 \cite holton_1983. Comprehensive reviews on the physics of NGWs -and OGWs in climate and weather models have been discussted in Alexander +and OGWs in climate and weather models have been discussed in Kim et al. 2003 \cite kim_et_al_2003, Alexander et al. 2010 \cite alexander_et_al_2010, Geller et al. 2013 \cite geller_et_al_2013, and Garcia et al. 2017 \cite garcia_et_al_2017. They are formulated using different aspects of the nonlinear and linear diff --git a/physics/docs/pdftxt/ccppv7_phy_updates.txt b/physics/docs/pdftxt/ccppv7_phy_updates.txt index 49eb3f248..eecf94ed8 100644 --- a/physics/docs/pdftxt/ccppv7_phy_updates.txt +++ b/physics/docs/pdftxt/ccppv7_phy_updates.txt @@ -83,7 +83,13 @@ Thompson (in HRRR_gf suite) may vary. - Radar reflectivity considers mass flux PDF as well as whether scale-awareness is turned on at the gird point in equation \b Unified \b Gravity \b Wave \b Physics \b Scheme: -\todo UGWP updates for HR4 +- Replacement of the resolution-dependent effective grid spacing (cdmbgwd) with a constant (=6dx) +- Removal of the planetary boundary layer height in determining the reference level +- Weakening of the momentum stress over land ice to reduce the negative wind biases +- Introduction of a launching level to avoid the underestimation of the blocked stress +- Introduction of damped breaking to prevent the wind reversal in the lower troposphere +- Suppression of gravity wave breaking in the upper atmosphere (over 7.5 hPa) to avoid numerical instability +- Revision in sub-grid orography data considering the mathematical definition of moments \b NSSL \b Cloud \b Microphysics \b Scheme: - Updated with 3-moment option From b62597bccf740ddd240188b767e05ce3a9233783 Mon Sep 17 00:00:00 2001 From: Man Zhang Date: Thu, 1 Aug 2024 14:06:53 -0600 Subject: [PATCH 19/29] address review and fix bugs --- physics/CONV/progsigma_calc.f90 | 2 - .../GFS_phys_time_vary.scm.F90 | 2 +- .../UFS_SCM_NEPTUNE/iccninterp.F90 | 3 + physics/MP/Morrison_Gettelman/micro_mg3_0.F90 | 17 +- physics/MP/calpreciptype.f90 | 13 +- .../RRTMGP/rrtmgp_aerosol_optics.F90 | 64 ++++---- physics/Radiation/RRTMGP/rrtmgp_lw_main.F90 | 132 ++++++++-------- physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 | 148 +++++++++--------- physics/docs/ccpp_doxyfile | 8 +- physics/docs/library.bib | 41 ++++- physics/docs/pdftxt/GFS_RRTMGP.txt | 2 +- physics/docs/pdftxt/GFS_v16_RRTMGP_suite.txt | 17 +- .../docs/pdftxt/GFS_v17_p8_ugwpv1_suite.txt | 4 +- physics/docs/pdftxt/HRRR_gf_suite.txt | 8 +- .../pdftxt/{GFS_NOAHMP.txt => NOAHMP_LSM.txt} | 2 +- .../pdftxt/{GFS_NOAH.txt => NOAH_LSM.txt} | 2 +- .../pdftxt/{GFS_UGWPv0.txt => UGWPv0.txt} | 2 +- physics/docs/pdftxt/ccppv7_phy_updates.txt | 2 +- 18 files changed, 242 insertions(+), 227 deletions(-) rename physics/docs/pdftxt/{GFS_NOAHMP.txt => NOAHMP_LSM.txt} (96%) rename physics/docs/pdftxt/{GFS_NOAH.txt => NOAH_LSM.txt} (98%) rename physics/docs/pdftxt/{GFS_UGWPv0.txt => UGWPv0.txt} (99%) diff --git a/physics/CONV/progsigma_calc.f90 b/physics/CONV/progsigma_calc.f90 index 76e01987c..73f084d01 100644 --- a/physics/CONV/progsigma_calc.f90 +++ b/physics/CONV/progsigma_calc.f90 @@ -11,8 +11,6 @@ module progsigma contains -!>\ingroup SAMFdeep -!>\ingroup SAMF_shal !> This subroutine computes a prognostic updraft area fraction !! used in the closure computations in the samfdeepcnv.f scheme !! This subroutine computes a prognostic updraft area fracftion diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.F90 index 9006d96b3..a09bf367f 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.F90 @@ -232,7 +232,7 @@ subroutine GFS_phys_time_vary_init ( ntrcaer = size(aer_nm, dim=3) endif -!> - Call read_cidata() to read IN and CCN data +!> - Call iccninterp::read_cidata() to read IN and CCN data if (iccn == 1) then call read_cidata (me,master) ! No consistency check needed for in/ccn data, all values are diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/iccninterp.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/iccninterp.F90 index dd752d9b8..b90b6fca7 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/iccninterp.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/iccninterp.F90 @@ -15,6 +15,7 @@ module iccninterp contains +!> SUBROUTINE read_cidata (me, master) use machine, only: kind_phys use iccn_def @@ -65,6 +66,7 @@ END SUBROUTINE read_cidata ! !********************************************************************** ! +!> SUBROUTINE setindxci(npts,dlat,jindx1,jindx2,ddy,dlon, & iindx1,iindx2,ddx) ! @@ -126,6 +128,7 @@ END SUBROUTINE setindxci !********************************************************************** !********************************************************************** ! +!> SUBROUTINE ciinterpol(me,npts,IDATE,FHOUR,jindx1,jindx2,ddy, & iindx1,iindx2,ddx,lev, prsl, ciplout,ccnout) ! diff --git a/physics/MP/Morrison_Gettelman/micro_mg3_0.F90 b/physics/MP/Morrison_Gettelman/micro_mg3_0.F90 index 6e650e915..a28de2d74 100644 --- a/physics/MP/Morrison_Gettelman/micro_mg3_0.F90 +++ b/physics/MP/Morrison_Gettelman/micro_mg3_0.F90 @@ -2,11 +2,9 @@ !! This file contains Morrison-Gettelman MP version 3.0 - !! Update of MG microphysics with prognostic hail OR graupel. -!>\ingroup mg2mg3 -!>\defgroup mg3_mp Morrison-Gettelman MP version 3.0 -!!--------------------------------------------------------------------------------- -!! Purpose: -!! MG microphysics version 3.0 - Update of MG microphysics with +!--------------------------------------------------------------------------------- +! Purpose: +!> MG microphysics version 3.0 - Update of MG microphysics with !! prognostic hail OR graupel. !! !! \authors Andrew Gettelman, Hugh Morrison @@ -247,8 +245,7 @@ module micro_mg3_0 contains !=============================================================================== -!>\ingroup mg3_mp -!! This subroutine initializes the microphysics +!> This subroutine initializes the microphysics !! and needs to be called once at start of simulation. !!\author Andrew Gettelman, Dec 2005 subroutine micro_mg_init( & @@ -432,8 +429,7 @@ end subroutine micro_mg_init !=============================================================================== !microphysics routine for each timestep goes here... -!>\ingroup mg3_mp -!! This subroutine calculates the MG3 microphysical processes. +!> This subroutine calculates the MG3 microphysical processes. !>\authors Hugh Morrison, Andrew Gettelman, NCAR, Peter Caldwell, LLNL !! e-mail: morrison@ucar.edu, andrew@ucar.edu !!\section mg3_micro_mg_tend MG3 micro_mg_tend General Algorithm @@ -4483,8 +4479,7 @@ end subroutine micro_mg_tend !OUTPUT CALCULATIONS !======================================================================== -!>\ingroup mg3_mp -!! This subroutine calculates effective radii for rain and cloud. +!> This subroutine calculates effective radii for rain and cloud. subroutine calc_rercld(lamr, n0r, lamc, pgam, qric, qcic, ncic, rercld, mgncol,nlev) integer, intent(in) :: mgncol, nlev ! horizontal and vertical dimension real(r8), dimension(mgncol,nlev), intent(in) :: lamr ! rain size parameter (slope) diff --git a/physics/MP/calpreciptype.f90 b/physics/MP/calpreciptype.f90 index 2166e1b5c..f2d995946 100644 --- a/physics/MP/calpreciptype.f90 +++ b/physics/MP/calpreciptype.f90 @@ -3,8 +3,7 @@ module calpreciptype_mod contains -!>\ingroup gfs_calpreciptype -!! Foure algorithms are called to calculate dominant precipitation type, and the +!> Foure algorithms are called to calculate dominant precipitation type, and the !!tallies are sumed in calwxt_dominant(). !! !>\section gen_calp GFS calpreciptype General Algorithm @@ -215,10 +214,8 @@ subroutine calpreciptype(kdt,nrcm,im,ix,lm,lp1,randomno, & deallocate (twet,rh,td) return end -! -!&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& -!>\ingroup gfs_calpreciptype -!! This subroutine computes precipitation type using a decision tree approach that uses + +!> This subroutine computes precipitation type using a decision tree approach that uses !! variables such as integrated wet bulb temperatue below freezing and lowest layer !! temperature (Baldwin et al. 1994 \cite baldwin_et_al_1994) subroutine calwxt(lm,lp1,t,q,pmid,pint, & @@ -472,7 +469,6 @@ subroutine calwxt(lm,lp1,t,q,pmid,pint, & ! ! code adapted for wrf post 24 august 2005 g manikin !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -!>\ingroup gfs_calpreciptype !> This subroutine is written and provided by Jim Ramer at NOAA/ESRL !!(Ramer (1993) \cite ramer_1993). subroutine calwxt_ramer(lm,lp1,t,q,pmid,rh,td,pint,ptyp) @@ -875,7 +871,6 @@ function xmytw(t,td,p) ! and layer lmh = bottom ! !$$$ -!>\ingroup gfs_calpreciptype !>this routine computes precipitation type using a decision tree !! approach that uses the so-called "energy method" of Bourgouin(2000) !! \cite bourgouin_2000. @@ -1044,7 +1039,6 @@ subroutine calwxt_bourg(lm,lp1,rn,g,t,q,pmid,pint,zint,ptype) return end ! -!>\ingroup gfs_calpreciptype !> This subroutine computes precipitation type using a decision tree !! approach that uses variables such as integrated wet bulb temperature !! below freezing and lowest layer temperature (Baldwin et al.1994 @@ -1307,7 +1301,6 @@ subroutine calwxt_revised(lm,lp1,t,q,pmid,pint, & return end ! -!>\ingroup gfs_calpreciptype !> This subroutine takes the precipitation type solutions from !! different algorithms and sums them up to give a dominant type. !! diff --git a/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.F90 b/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.F90 index 23f943572..311b33bbd 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.F90 @@ -25,54 +25,54 @@ subroutine rrtmgp_aerosol_optics_run(doSWrad, doLWrad, nCol, nLev, nDay, idxday, ! Inputs logical, intent(in) :: & - doSWrad, & !< Logical flag for shortwave radiation call - doLWrad, & !< Logical flag for longwave radiation call - top_at_1 !< Logical flag for vertical grid direcetion + doSWrad, & ! Logical flag for shortwave radiation call + doLWrad, & ! Logical flag for longwave radiation call + top_at_1 ! Logical flag for vertical grid direcetion integer, intent(in) :: & - nCol, & !< Number of horizontal grid points - nDay, & !< Number of daylit points - nLev, & !< Number of vertical layers - iaermdl, & !< Aerosol model scheme flag - iaerflg !< Aerosol effects to include + nCol, & ! Number of horizontal grid points + nDay, & ! Number of daylit points + nLev, & ! Number of vertical layers + iaermdl, & ! Aerosol model scheme flag + iaerflg ! Aerosol effects to include integer,intent(in),dimension(:) :: & - idxday !< Indices for daylit points. + idxday ! Indices for daylit points. real(kind_phys),intent(in) :: & - con_pi, & !< Physical constant (pi) - con_rd, & !< Physical constant (gas constant for dry-air) - con_g !< Physical constant (gravitational constant) + con_pi, & ! Physical constant (pi) + con_rd, & ! Physical constant (gas constant for dry-air) + con_g ! Physical constant (gravitational constant) real(kind_phys), dimension(:), intent(in) :: & - lon, & !< Longitude - lat, & !< Latitude - lsmask !< Land/sea/sea-ice mask + lon, & ! Longitude + lat, & ! Latitude + lsmask ! Land/sea/sea-ice mask real(kind_phys), dimension(:,:),intent(in), optional :: & - p_lay, & !< Pressure @ layer-centers (Pa) - tv_lay, & !< Virtual-temperature @ layer-centers (K) - relhum !< Relative-humidity @ layer-centers + p_lay, & ! Pressure @ layer-centers (Pa) + tv_lay, & ! Virtual-temperature @ layer-centers (K) + relhum ! Relative-humidity @ layer-centers real(kind_phys), dimension(:,:),intent(in) :: & - p_lk !< Exner function @ layer-centers (1) + p_lk ! Exner function @ layer-centers (1) real(kind_phys), dimension(:, :,:),intent(in) :: & - tracer !< trace gas concentrations + tracer ! trace gas concentrations real(kind_phys), dimension(:, :,:),intent(in) :: & - aerfld !< aerosol input concentrations + aerfld ! aerosol input concentrations real(kind_phys), dimension(:,:),intent(in), optional :: & - p_lev !< Pressure @ layer-interfaces (Pa) + p_lev ! Pressure @ layer-interfaces (Pa) real (kind=kind_phys), dimension(:,:), intent(out) :: & - ext550 !< 3d optical extinction for total aerosol species + ext550 ! 3d optical extinction for total aerosol species ! Outputs real(kind_phys), dimension(:,:), intent(out) :: & - aerodp !< Vertical integrated optical depth for various aerosol species + aerodp ! Vertical integrated optical depth for various aerosol species real(kind_phys), dimension(:,:,:), intent(out) :: & - aerlw_tau, & !< Longwave aerosol optical depth - aerlw_ssa, & !< Longwave aerosol single scattering albedo - aerlw_g, & !< Longwave aerosol asymmetry parameter - aersw_tau, & !< Shortwave aerosol optical depth - aersw_ssa, & !< Shortwave aerosol single scattering albedo - aersw_g !< Shortwave aerosol asymmetry parameter + aerlw_tau, & ! Longwave aerosol optical depth + aerlw_ssa, & ! Longwave aerosol single scattering albedo + aerlw_g, & ! Longwave aerosol asymmetry parameter + aersw_tau, & ! Shortwave aerosol optical depth + aersw_ssa, & ! Shortwave aerosol single scattering albedo + aersw_g ! Shortwave aerosol asymmetry parameter integer, intent(out) :: & - errflg !< CCPP error flag + errflg ! CCPP error flag character(len=*), intent(out) :: & - errmsg !< CCPP error message + errmsg ! CCPP error message ! Local variables real(kind_phys), dimension(nCol, nLev, lw_gas_props%get_nband(), 3) :: & diff --git a/physics/Radiation/RRTMGP/rrtmgp_lw_main.F90 b/physics/Radiation/RRTMGP/rrtmgp_lw_main.F90 index e2bcf032e..81c959e64 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_lw_main.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_lw_main.F90 @@ -95,85 +95,85 @@ subroutine rrtmgp_lw_main_run(doLWrad, doLWclrsky, top_at_1, doGP_lwscat, ! Inputs logical, intent(in) :: & - doLWrad, & !< Flag to perform longwave calculation - doLWclrsky, & !< Flag to compute clear-sky fluxes - top_at_1, & !< Flag for vertical ordering convention - use_LW_jacobian, & !< Flag to compute Jacobian of longwave surface flux - doGP_sgs_pbl, & !< Flag to include sgs PBL clouds - doGP_sgs_cnv, & !< Flag to include sgs convective clouds - doGP_lwscat !< Flag to include scattering in clouds + doLWrad, & ! Flag to perform longwave calculation + doLWclrsky, & ! Flag to compute clear-sky fluxes + top_at_1, & ! Flag for vertical ordering convention + use_LW_jacobian, & ! Flag to compute Jacobian of longwave surface flux + doGP_sgs_pbl, & ! Flag to include sgs PBL clouds + doGP_sgs_cnv, & ! Flag to include sgs convective clouds + doGP_lwscat ! Flag to include scattering in clouds integer,intent(in) :: & - nCol, & !< Number of horizontal points - nLay, & !< Number of vertical grid points. - nGases, & !< Number of active gases - rrtmgp_phys_blksz, & !< Number of horizontal points to process at once. - nGauss_angles, & !< Number of gaussian quadrature angles used - iovr, & !< Choice of cloud-overlap method - iovr_convcld, & !< Choice of convective cloud-overlap - iovr_max, & !< Flag for maximum cloud overlap method - iovr_maxrand, & !< Flag for maximum-random cloud overlap method - iovr_rand, & !< Flag for random cloud overlap method - iovr_dcorr, & !< Flag for decorrelation-length cloud overlap method - iovr_exp, & !< Flag for exponential cloud overlap method - iovr_exprand, & !< Flag for exponential-random cloud overlap method - isubc_lw !< Flag for cloud-seeding (rng) for cloud-sampling + nCol, & ! Number of horizontal points + nLay, & ! Number of vertical grid points. + nGases, & ! Number of active gases + rrtmgp_phys_blksz, & ! Number of horizontal points to process at once. + nGauss_angles, & ! Number of gaussian quadrature angles used + iovr, & ! Choice of cloud-overlap method + iovr_convcld, & ! Choice of convective cloud-overlap + iovr_max, & ! Flag for maximum cloud overlap method + iovr_maxrand, & ! Flag for maximum-random cloud overlap method + iovr_rand, & ! Flag for random cloud overlap method + iovr_dcorr, & ! Flag for decorrelation-length cloud overlap method + iovr_exp, & ! Flag for exponential cloud overlap method + iovr_exprand, & ! Flag for exponential-random cloud overlap method + isubc_lw ! Flag for cloud-seeding (rng) for cloud-sampling integer,intent(in),dimension(:), optional :: & - icseed_lw !< Seed for random number generation for longwave radiation + icseed_lw ! Seed for random number generation for longwave radiation real(kind_phys), dimension(:), intent(in) :: & - semis, & !< Surface-emissivity (1) - tsfg !< Skin temperature (K) + semis, & ! Surface-emissivity (1) + tsfg ! Skin temperature (K) real(kind_phys), dimension(:,:), intent(in), optional :: & - p_lay, & !< Pressure @ model layer-centers (Pa) - t_lay, & !< Temperature (K) - p_lev, & !< Pressure @ model layer-interfaces (Pa) - t_lev, & !< Temperature @ model levels (K) - vmr_o2, & !< Molar-mixing ratio oxygen - vmr_h2o, & !< Molar-mixing ratio water vapor - vmr_o3, & !< Molar-mixing ratio ozone - vmr_ch4, & !< Molar-mixing ratio methane - vmr_n2o, & !< Molar-mixing ratio nitrous oxide - vmr_co2 !< Molar-mixing ratio carbon dioxide + p_lay, & ! Pressure @ model layer-centers (Pa) + t_lay, & ! Temperature (K) + p_lev, & ! Pressure @ model layer-interfaces (Pa) + t_lev, & ! Temperature @ model levels (K) + vmr_o2, & ! Molar-mixing ratio oxygen + vmr_h2o, & ! Molar-mixing ratio water vapor + vmr_o3, & ! Molar-mixing ratio ozone + vmr_ch4, & ! Molar-mixing ratio methane + vmr_n2o, & ! Molar-mixing ratio nitrous oxide + vmr_co2 ! Molar-mixing ratio carbon dioxide real(kind_phys), dimension(:,:), intent(in) :: & - cld_frac, & !< Cloud-fraction for stratiform clouds - cld_lwp, & !< Water path for stratiform liquid cloud-particles - cld_reliq, & !< Effective radius for stratiform liquid cloud-particles - cld_iwp, & !< Water path for stratiform ice cloud-particles - cld_reice, & !< Effective radius for stratiform ice cloud-particles - cld_swp, & !< Water path for snow hydrometeors - cld_resnow, & !< Effective radius for snow hydrometeors - cld_rwp, & !< Water path for rain hydrometeors - cld_rerain !< Effective radius for rain hydrometeors + cld_frac, & ! Cloud-fraction for stratiform clouds + cld_lwp, & ! Water path for stratiform liquid cloud-particles + cld_reliq, & ! Effective radius for stratiform liquid cloud-particles + cld_iwp, & ! Water path for stratiform ice cloud-particles + cld_reice, & ! Effective radius for stratiform ice cloud-particles + cld_swp, & ! Water path for snow hydrometeors + cld_resnow, & ! Effective radius for snow hydrometeors + cld_rwp, & ! Water path for rain hydrometeors + cld_rerain ! Effective radius for rain hydrometeors real(kind_phys), dimension(:,:), intent(in), optional :: & - precip_frac, & !< Precipitation fraction (not active, currently precipitation optics uses cloud-fraction) - cld_cnv_lwp, & !< Water path for convective liquid cloud-particles - cld_cnv_reliq, & !< Effective radius for convective liquid cloud-particles - cld_cnv_iwp, & !< Water path for convective ice cloud-particles - cld_cnv_reice, & !< Effective radius for convective ice cloud-particles - cld_pbl_lwp, & !< Water path for PBL liquid cloud-particles - cld_pbl_reliq, & !< Effective radius for PBL liquid cloud-particles - cld_pbl_iwp, & !< Water path for PBL ice cloud-particles - cld_pbl_reice, & !< Effective radius for PBL ice cloud-particles - cloud_overlap_param !< Cloud overlap parameter + precip_frac, & ! Precipitation fraction (not active, currently precipitation optics uses cloud-fraction) + cld_cnv_lwp, & ! Water path for convective liquid cloud-particles + cld_cnv_reliq, & ! Effective radius for convective liquid cloud-particles + cld_cnv_iwp, & ! Water path for convective ice cloud-particles + cld_cnv_reice, & ! Effective radius for convective ice cloud-particles + cld_pbl_lwp, & ! Water path for PBL liquid cloud-particles + cld_pbl_reliq, & ! Effective radius for PBL liquid cloud-particles + cld_pbl_iwp, & ! Water path for PBL ice cloud-particles + cld_pbl_reice, & ! Effective radius for PBL ice cloud-particles + cloud_overlap_param ! Cloud overlap parameter real(kind_phys), dimension(:,:,:), intent(in) :: & - aerlw_tau, & !< Aerosol optical depth - aerlw_ssa, & !< Aerosol single scattering albedo - aerlw_g !< Aerosol asymmetry paramter + aerlw_tau, & ! Aerosol optical depth + aerlw_ssa, & ! Aerosol single scattering albedo + aerlw_g ! Aerosol asymmetry paramter character(len=*), dimension(:), intent(in), optional :: & - active_gases_array !< List of active gases from namelist as array + active_gases_array ! List of active gases from namelist as array ! Outputs real(kind_phys), dimension(:,:), intent(inout), optional :: & - fluxlwUP_jac, & !< Jacobian of upwelling LW surface radiation (W/m2/K) - fluxlwUP_allsky, & !< All-sky flux (W/m2) - fluxlwDOWN_allsky, & !< All-sky flux (W/m2) - fluxlwUP_clrsky, & !< Clear-sky flux (W/m2) - fluxlwDOWN_clrsky, & !< All-sky flux (W/m2) - fluxlwUP_radtime, & !< Copy of fluxes (Used for coupling) - fluxlwDOWN_radtime !< + fluxlwUP_jac, & ! Jacobian of upwelling LW surface radiation (W/m2/K) + fluxlwUP_allsky, & ! All-sky flux (W/m2) + fluxlwDOWN_allsky, & ! All-sky flux (W/m2) + fluxlwUP_clrsky, & ! Clear-sky flux (W/m2) + fluxlwDOWN_clrsky, & ! All-sky flux (W/m2) + fluxlwUP_radtime, & ! Copy of fluxes (Used for coupling) + fluxlwDOWN_radtime ! character(len=*), intent(out) :: & - errmsg !< CCPP error message + errmsg ! CCPP error message integer, intent(out) :: & - errflg !< CCPP error flag + errflg ! CCPP error flag ! Local variables type(ty_fluxes_byband) :: flux_allsky, flux_clrsky diff --git a/physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 b/physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 index 28ed9e41c..c9fd3bbda 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 @@ -93,98 +93,98 @@ subroutine rrtmgp_sw_main_run(doSWrad, doSWclrsky, top_at_1, doGP_sgs_cnv, doGP_ ! Inputs logical, intent(in) :: & - doSWrad, & !< Flag to perform shortwave calculation - doSWclrsky, & !< Flag to compute clear-sky fluxes - top_at_1, & !< Flag for vertical ordering convention - doGP_sgs_pbl, & !< Flag to include sgs PBL clouds - doGP_sgs_cnv !< Flag to include sgs convective clouds + doSWrad, & ! Flag to perform shortwave calculation + doSWclrsky, & ! Flag to compute clear-sky fluxes + top_at_1, & ! Flag for vertical ordering convention + doGP_sgs_pbl, & ! Flag to include sgs PBL clouds + doGP_sgs_cnv ! Flag to include sgs convective clouds integer,intent(in) :: & - nCol, & !< Number of horizontal points - nDay, & !< Number of daytime points - nLay, & !< Number of vertical grid points. - nGases, & !< Number of active gases - rrtmgp_phys_blksz, & !< Number of horizontal points to process at once. - iovr, & !< Choice of cloud-overlap method - iovr_convcld, & !< Choice of convective cloud-overlap - iovr_max, & !< Flag for maximum cloud overlap method - iovr_maxrand, & !< Flag for maximum-random cloud overlap method - iovr_rand, & !< Flag for random cloud overlap method - iovr_dcorr, & !< Flag for decorrelation-length cloud overlap method - iovr_exp, & !< Flag for exponential cloud overlap method - iovr_exprand, & !< Flag for exponential-random cloud overlap method - isubc_sw, & !< + nCol, & ! Number of horizontal points + nDay, & ! Number of daytime points + nLay, & ! Number of vertical grid points. + nGases, & ! Number of active gases + rrtmgp_phys_blksz, & ! Number of horizontal points to process at once. + iovr, & ! Choice of cloud-overlap method + iovr_convcld, & ! Choice of convective cloud-overlap + iovr_max, & ! Flag for maximum cloud overlap method + iovr_maxrand, & ! Flag for maximum-random cloud overlap method + iovr_rand, & ! Flag for random cloud overlap method + iovr_dcorr, & ! Flag for decorrelation-length cloud overlap method + iovr_exp, & ! Flag for exponential cloud overlap method + iovr_exprand, & ! Flag for exponential-random cloud overlap method + isubc_sw, & ! iSFC integer,intent(in),dimension(:) :: & - idx !< Index array for daytime points + idx ! Index array for daytime points integer,intent(in),dimension(:), optional :: & - icseed_sw !< Seed for random number generation for shortwave radiation + icseed_sw ! Seed for random number generation for shortwave radiation real(kind_phys), dimension(:), intent(in) :: & - sfc_alb_nir_dir, & !< Surface albedo (direct) - sfc_alb_nir_dif, & !< Surface albedo (diffuse) - sfc_alb_uvvis_dir, & !< Surface albedo (direct) - sfc_alb_uvvis_dif, & !< Surface albedo (diffuse) - coszen !< Cosize of SZA + sfc_alb_nir_dir, & ! Surface albedo (direct) + sfc_alb_nir_dif, & ! Surface albedo (diffuse) + sfc_alb_uvvis_dir, & ! Surface albedo (direct) + sfc_alb_uvvis_dif, & ! Surface albedo (diffuse) + coszen ! Cosize of SZA real(kind_phys), dimension(:,:), intent(in), optional :: & - p_lay, & !< Pressure @ model layer-centers (Pa) - t_lay, & !< Temperature (K) - p_lev, & !< Pressure @ model layer-interfaces (Pa) - t_lev, & !< Temperature @ model levels (K) - vmr_o2, & !< Molar-mixing ratio oxygen - vmr_h2o, & !< Molar-mixing ratio water vapor - vmr_o3, & !< Molar-mixing ratio ozone - vmr_ch4, & !< Molar-mixing ratio methane - vmr_n2o, & !< Molar-mixing ratio nitrous oxide - vmr_co2 !< Molar-mixing ratio carbon dioxide + p_lay, & ! Pressure @ model layer-centers (Pa) + t_lay, & ! Temperature (K) + p_lev, & ! Pressure @ model layer-interfaces (Pa) + t_lev, & ! Temperature @ model levels (K) + vmr_o2, & ! Molar-mixing ratio oxygen + vmr_h2o, & ! Molar-mixing ratio water vapor + vmr_o3, & ! Molar-mixing ratio ozone + vmr_ch4, & ! Molar-mixing ratio methane + vmr_n2o, & ! Molar-mixing ratio nitrous oxide + vmr_co2 ! Molar-mixing ratio carbon dioxide real(kind_phys), dimension(:,:), intent(in) :: & - cld_frac, & !< Cloud-fraction for stratiform clouds - cld_lwp, & !< Water path for stratiform liquid cloud-particles - cld_reliq, & !< Effective radius for stratiform liquid cloud-particles - cld_iwp, & !< Water path for stratiform ice cloud-particles - cld_reice, & !< Effective radius for stratiform ice cloud-particles - cld_swp, & !< Water path for snow hydrometeors - cld_resnow, & !< Effective radius for snow hydrometeors - cld_rwp, & !< Water path for rain hydrometeors - cld_rerain !< Effective radius for rain hydrometeors + cld_frac, & ! Cloud-fraction for stratiform clouds + cld_lwp, & ! Water path for stratiform liquid cloud-particles + cld_reliq, & ! Effective radius for stratiform liquid cloud-particles + cld_iwp, & ! Water path for stratiform ice cloud-particles + cld_reice, & ! Effective radius for stratiform ice cloud-particles + cld_swp, & ! Water path for snow hydrometeors + cld_resnow, & ! Effective radius for snow hydrometeors + cld_rwp, & ! Water path for rain hydrometeors + cld_rerain ! Effective radius for rain hydrometeors real(kind_phys), dimension(:,:), intent(in), optional :: & - precip_frac, & !< Precipitation fraction - cld_cnv_lwp, & !< Water path for convective liquid cloud-particles - cld_cnv_reliq, & !< Effective radius for convective liquid cloud-particles - cld_cnv_iwp, & !< Water path for convective ice cloud-particles - cld_cnv_reice, & !< Effective radius for convective ice cloud-particles - cld_pbl_lwp, & !< Water path for PBL liquid cloud-particles - cld_pbl_reliq, & !< Effective radius for PBL liquid cloud-particles - cld_pbl_iwp, & !< Water path for PBL ice cloud-particles - cld_pbl_reice, & !< Effective radius for PBL ice cloud-particles - cloud_overlap_param !< + precip_frac, & ! Precipitation fraction + cld_cnv_lwp, & ! Water path for convective liquid cloud-particles + cld_cnv_reliq, & ! Effective radius for convective liquid cloud-particles + cld_cnv_iwp, & ! Water path for convective ice cloud-particles + cld_cnv_reice, & ! Effective radius for convective ice cloud-particles + cld_pbl_lwp, & ! Water path for PBL liquid cloud-particles + cld_pbl_reliq, & ! Effective radius for PBL liquid cloud-particles + cld_pbl_iwp, & ! Water path for PBL ice cloud-particles + cld_pbl_reice, & ! Effective radius for PBL ice cloud-particles + cloud_overlap_param ! real(kind_phys), dimension(:,:,:), intent(in) :: & - aersw_tau, & !< Aerosol optical depth - aersw_ssa, & !< Aerosol single scattering albedo - aersw_g !< Aerosol asymmetry paramter + aersw_tau, & ! Aerosol optical depth + aersw_ssa, & ! Aerosol single scattering albedo + aersw_g ! Aerosol asymmetry paramter character(len=*), dimension(:), intent(in), optional :: & - active_gases_array !< List of active gases from namelist as array + active_gases_array ! List of active gases from namelist as array real(kind_phys), intent(in) :: & - solcon !< Solar constant + solcon ! Solar constant ! Outputs character(len=*), intent(out) :: & - errmsg !< CCPP error message + errmsg ! CCPP error message integer, intent(out) :: & - errflg !< CCPP error flag + errflg ! CCPP error flag real(kind_phys), dimension(:,:), intent(inout) :: & - cldtausw !< Approx 10.mu band layer cloud optical depth + cldtausw ! Approx 10.mu band layer cloud optical depth real(kind_phys), dimension(:,:), intent(inout), optional :: & - fluxswUP_allsky, & !< RRTMGP upward all-sky flux profiles (W/m2) - fluxswDOWN_allsky, & !< RRTMGP downward all-sky flux profiles (W/m2) - fluxswUP_clrsky, & !< RRTMGP upward clear-sky flux profiles (W/m2) - fluxswDOWN_clrsky !< RRTMGP downward clear-sky flux profiles (W/m2) + fluxswUP_allsky, & ! RRTMGP upward all-sky flux profiles (W/m2) + fluxswDOWN_allsky, & ! RRTMGP downward all-sky flux profiles (W/m2) + fluxswUP_clrsky, & ! RRTMGP upward clear-sky flux profiles (W/m2) + fluxswDOWN_clrsky ! RRTMGP downward clear-sky flux profiles (W/m2) type(cmpfsw_type), dimension(:), intent(inout) :: & - scmpsw !< 2D surface fluxes, components: - !< uvbfc - total sky downward uv-b flux (W/m2) - !< uvbf0 - clear sky downward uv-b flux (W/m2) - !< nirbm - downward nir direct beam flux (W/m2) - !< nirdf - downward nir diffused flux (W/m2) - !< visbm - downward uv+vis direct beam flux (W/m2) - !< visdf - downward uv+vis diffused flux (W/m2) + scmpsw ! 2D surface fluxes, components: + ! uvbfc - total sky downward uv-b flux (W/m2) + ! uvbf0 - clear sky downward uv-b flux (W/m2) + ! nirbm - downward nir direct beam flux (W/m2) + ! nirdf - downward nir diffused flux (W/m2) + ! visbm - downward uv+vis direct beam flux (W/m2) + ! visdf - downward uv+vis diffused flux (W/m2) ! Local variables type(cmpfsw_type), dimension(rrtmgp_phys_blksz) :: scmpsw_clrsky, scmpsw_allsky diff --git a/physics/docs/ccpp_doxyfile b/physics/docs/ccpp_doxyfile index 136ae55d8..6e1d11cd7 100644 --- a/physics/docs/ccpp_doxyfile +++ b/physics/docs/ccpp_doxyfile @@ -957,11 +957,11 @@ INPUT = pdftxt/mainpage.txt \ pdftxt/MYNN_SFCLAYER.txt \ pdftxt/GFS_NSST.txt \ pdftxt/GFS_OCEAN.txt \ - pdftxt/GFS_NOAH.txt \ + pdftxt/NOAH_LSM.txt \ pdftxt/GFS_SFCSICE.txt \ pdftxt/GFS_SATMEDMFVDIFQ.txt \ - pdftxt/GFS_NOAHMP.txt \ - pdftxt/GFS_UGWPv0.txt \ + pdftxt/NOAHMP_LSM.txt \ + pdftxt/UGWPv0.txt \ pdftxt/GFS_ugwpv1.txt \ pdftxt/GFS_UGWPV1_ORO.txt \ pdftxt/GFS_GWDPS.txt \ @@ -1047,7 +1047,7 @@ RECURSIVE = YES # Note that relative paths are relative to the directory from which doxygen is # run. -EXCLUDE = +EXCLUDE = ../Radiation/RRTMGP/rte-rrtmgp # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded diff --git a/physics/docs/library.bib b/physics/docs/library.bib index 0bab22b02..d331d6398 100644 --- a/physics/docs/library.bib +++ b/physics/docs/library.bib @@ -1,13 +1,48 @@ %% This BibTeX bibliography file was created using BibDesk. %% https://bibdesk.sourceforge.io/ -%% Created for Man Zhang at 2024-07-29 15:49:56 -0600 +%% Created for Man Zhang at 2024-08-01 13:16:14 -0600 %% Saved with string encoding Unicode (UTF-8) +@article{Dowell_2022, + author = {Dowell, David C. and Alexander, Curtis R. and James, Eric P. and Weygandt, Stephen S. and Benjamin, Stanley G. and Manikin, Geoffrey S. and Blake, Benjamin T. and Brown, John M. and Olson, Joseph B. and Hu, Ming and Smirnova, Tatiana G. and Ladwig, Terra and Kenyon, Jaymes S. and Ahmadov, Ravan and Turner, David D. and Duda, Jeffrey D. and Alcott, Trevor I.}, + date-added = {2024-08-01 13:13:04 -0600}, + date-modified = {2024-08-01 13:16:11 -0600}, + doi = {10.1175/waf-d-21-0151.1}, + issn = {1520-0434}, + journal = {Weather and Forecasting}, + month = aug, + number = {8}, + pages = {1371-1395}, + publisher = {American Meteorological Society}, + title = {The High-Resolution Rapid Refresh (HRRR): An Hourly Updating Convection-Allowing Forecast Model. Part I: Motivation and System Description}, + url = {http://dx.doi.org/10.1175/WAF-D-21-0151.1}, + volume = {37}, + year = {2022}, + bdsk-url-1 = {http://dx.doi.org/10.1175/WAF-D-21-0151.1}} + +@article{pincus_et_al_2019, + abstract = {Abstract This paper describes the initial implementation of a new toolbox that seeks to balance accuracy, efficiency, and flexibility in radiation calculations for dynamical models. The toolbox consists of two related code bases: Radiative Transfer for Energetics (RTE), which computes fluxes given a radiative transfer problem defined in terms of optical properties, boundary conditions, and source functions; and RRTM for General circulation model applications---Parallel (RRTMGP), which combines data and algorithms to map a physical description of the gaseous atmosphere into such a radiative transfer problem. The toolbox is an implementation of well-established ideas, including the use of a k-distribution to represent the spectral variation of absorption by gases and the use of two-stream, plane-parallel methods for solving the radiative transfer equation. The focus is instead on accuracy, by basing the k-distribution on state-of-the-art spectroscopy and on the sometimes-conflicting goals of flexibility and efficiency. Flexibility is facilitated by making extensive use of computational objects encompassing code and data, the latter provisioned at runtime and potentially tailored to specific problems. The computational objects provide robust access to a set of high-efficiency computational kernels that can be adapted to new computational environments. Accuracy is obtained by careful choice of algorithms and through tuning and validation of the k-distribution against benchmark calculations. Flexibility with respect to the host model implies user responsibility for maps between clouds and aerosols and the radiative transfer problem, although comprehensive examples are provided for clouds.}, + author = {Pincus, Robert and Mlawer, Eli J. and Delamere, Jennifer S.}, + date-added = {2024-07-30 16:26:37 -0600}, + date-modified = {2024-07-30 16:27:28 -0600}, + doi = {https://doi.org/10.1029/2019MS001621}, + eprint = {https://agupubs.onlinelibrary.wiley.com/doi/pdf/10.1029/2019MS001621}, + journal = {Journal of Advances in Modeling Earth Systems}, + keywords = {radiation, atmospheric model, parameterization}, + number = {10}, + pages = {3074-3089}, + title = {Balancing Accuracy, Efficiency, and Flexibility in Radiation Calculations for Dynamical Models}, + url = {https://agupubs.onlinelibrary.wiley.com/doi/abs/10.1029/2019MS001621}, + volume = {11}, + year = {2019}, + bdsk-url-1 = {https://agupubs.onlinelibrary.wiley.com/doi/abs/10.1029/2019MS001621}, + bdsk-url-2 = {https://doi.org/10.1029/2019MS001621}} + @article{kim_et_al_2003, author = {Y-J. Kim, S.D. Eckermann and H-Y. Chun}, date-added = {2024-07-29 15:36:07 -0600}, @@ -348,10 +383,6 @@ @article{Lawrence_2019 bdsk-url-1 = {https://doi.org/10.1029%2F2018ms001583}, bdsk-url-2 = {https://doi.org/10.1029/2018ms001583}} -@article{cite-key, - date-added = {2023-05-24 11:18:09 -0600}, - date-modified = {2023-05-24 11:18:09 -0600}} - @article{gmd-15-6659-2022, author = {Benjamin, S. G. and Smirnova, T. G. and James, E. P. and Anderson, E. J. and Fujisaki-Manome, A. and Kelley, J. G. W. and Mann, G. E. and Gronewold, A. D. and Chu, P. and Kelley, S. G. T.}, date-added = {2023-05-24 10:51:47 -0600}, diff --git a/physics/docs/pdftxt/GFS_RRTMGP.txt b/physics/docs/pdftxt/GFS_RRTMGP.txt index 6a0862dac..f4ab8679c 100644 --- a/physics/docs/pdftxt/GFS_RRTMGP.txt +++ b/physics/docs/pdftxt/GFS_RRTMGP.txt @@ -1,5 +1,5 @@ /** -\page GFS_RRTMGP_page RRTMGP Shortwave/Longwave Radiation Scheme +\page GFS_RRTMGP_page RTE+RRTMGP Shortwave/Longwave Radiation Scheme \section des_rte_rrtmgp Description diff --git a/physics/docs/pdftxt/GFS_v16_RRTMGP_suite.txt b/physics/docs/pdftxt/GFS_v16_RRTMGP_suite.txt index 8b11cfc9c..68b36264e 100644 --- a/physics/docs/pdftxt/GFS_v16_RRTMGP_suite.txt +++ b/physics/docs/pdftxt/GFS_v16_RRTMGP_suite.txt @@ -3,8 +3,8 @@ \section gfsv_16HR3_GP_suite_overview Overview -This is an experimental version 16 of the Global Forecast System (GFS) with RRTMGP, which replaces RRTMG -in operational GFS v16 physics suite. +This is an experimental version of the Global Forecast System (GFS) in which the RRTMG radiation parameterization used +operationally is replaced with the RTE-RRTMGP parameterization for research and development. \section sdf_gfsv16GP Suite Definition File \include suite_SCM_GFS_v16_RRTMGP.xml @@ -12,7 +12,7 @@ in operational GFS v16 physics suite. \section gfs16GP_nml_opt_des Namelist - General physics options \snippet input_GFS_v16_RRTMGP.nml GFS_PHYSICS_NML -- \ref GFS_UNIFIED_UGWP related options +- \ref GFS_UGWP_v0_UGWP related options \snippet input_GFS_v16_RRTMGP.nml CIRES_UGWP_NML - nstf_name = \f$[2,0,0,0,0]^1 [2,1,0,0,0]^2\f$ @@ -28,15 +28,4 @@ in operational GFS v16 physics suite. - \b C1152: cdmbgwd="4.0,0.10,1.0,1.0" - \b C3072: cdmbgwd="4.0,0.05,1.0,1.0" -- Grid-spacing dependency of \p knob_ugwp_tauamp - - \b C48: knob_ugwp_tauamp=6.0e-3 - - \b C96: knob_ugwp_tauamp=3.0e-3 - - \b C192: knob_ugwp_tauamp=1.5e-3 - - \b C384: knob_ugwp_tauamp=0.8e-3 - - \b C768: knob_ugwp_tauamp=0.5e-3 - - \b C1152: knob_ugwp_tauamp=0.35e-3 - - \b C3072: knob_ugwp_tauamp=0.13e-3 - -- Grid-spacing dependency of \p xr_cnvcld - - \b C48 and \b C96: xr_cnvcld =.false. */ diff --git a/physics/docs/pdftxt/GFS_v17_p8_ugwpv1_suite.txt b/physics/docs/pdftxt/GFS_v17_p8_ugwpv1_suite.txt index f0324701f..9b150360a 100644 --- a/physics/docs/pdftxt/GFS_v17_p8_ugwpv1_suite.txt +++ b/physics/docs/pdftxt/GFS_v17_p8_ugwpv1_suite.txt @@ -4,8 +4,8 @@ \section gfsv_17_suite_overview Overview -The GFS_v17_p8_ugwpv1 suite is a prototype of -the GFS_v17 suite, and is expected to evolve before the implementation. It is available for use +The GFS_v17_p8_ugwpv1 suite is a prototype for +the GFS v17, and is expected to evolve before the operational implementation. It is supported for use with the CCPP SCM. The primary differences between the GFS_v16 and GFS_v17 suites are: - \b Microphysics: The replacement of \ref GFDL_cloud with \ref THOMPSON - PBL and Convection updates diff --git a/physics/docs/pdftxt/HRRR_gf_suite.txt b/physics/docs/pdftxt/HRRR_gf_suite.txt index 32a008fb4..96ac44869 100644 --- a/physics/docs/pdftxt/HRRR_gf_suite.txt +++ b/physics/docs/pdftxt/HRRR_gf_suite.txt @@ -4,7 +4,13 @@ \section RRFS_v1_suite_overview Overview The HRRR_gf suite is one of the candidates for the future operational implementation of -the Rapid Refresh Forecast System (RRFS), which can be configured using the UFS SRW App. +the Rapid Refresh Forecast System (RRFS). Simplified configurations of RRFS can be configured using +the UFS SRW App. This suite is similar to the one used by the NOAA operational HRRR v4 (Dowell et al. 2022 \cite Dowell_2022), with the addition of the Grell-Freitas +convective parameterization. + +While the parameterization for smoke and dust representation is used RRFS prototype tests and is included in the +HRRR_gf Suite Definition File, is not active in the CCPP Single Column Model since the smoke and dust tracers are initialized +with new zero values. The HRRR_gf suite uses the parameterizations in the following order: - \ref SGSCLOUD_page diff --git a/physics/docs/pdftxt/GFS_NOAHMP.txt b/physics/docs/pdftxt/NOAHMP_LSM.txt similarity index 96% rename from physics/docs/pdftxt/GFS_NOAHMP.txt rename to physics/docs/pdftxt/NOAHMP_LSM.txt index 537d27527..d5a17fc44 100644 --- a/physics/docs/pdftxt/GFS_NOAHMP.txt +++ b/physics/docs/pdftxt/NOAHMP_LSM.txt @@ -1,5 +1,5 @@ /** -\page NoahMP GFS NoahMP Land Surface Model +\page NoahMP NoahMP Land Surface Model \section des_noahmp Description This implementation of the NoahMP Land Surface Model (LSM) is adapted from the version implemented in WRF v3.7 with additions by NOAA EMC staff to work with the UFS Atmosphere model. Authoritative documentation of the NoahMP scheme can be accessed at the following links: diff --git a/physics/docs/pdftxt/GFS_NOAH.txt b/physics/docs/pdftxt/NOAH_LSM.txt similarity index 98% rename from physics/docs/pdftxt/GFS_NOAH.txt rename to physics/docs/pdftxt/NOAH_LSM.txt index 74dc42127..7a9be7d5a 100644 --- a/physics/docs/pdftxt/GFS_NOAH.txt +++ b/physics/docs/pdftxt/NOAH_LSM.txt @@ -1,5 +1,5 @@ /** -\page GFS_NOAH GFS Noah Land Surface Model +\page GFS_NOAH Noah Land Surface Model \section des_noah Description Land-atmosphere interactions are a main driver of Earth's surface water and energy budgets. The importance of the land surface is diff --git a/physics/docs/pdftxt/GFS_UGWPv0.txt b/physics/docs/pdftxt/UGWPv0.txt similarity index 99% rename from physics/docs/pdftxt/GFS_UGWPv0.txt rename to physics/docs/pdftxt/UGWPv0.txt index e3e3d4295..7e84e9c85 100644 --- a/physics/docs/pdftxt/GFS_UGWPv0.txt +++ b/physics/docs/pdftxt/UGWPv0.txt @@ -1,5 +1,5 @@ /** -\page GFS_UGWP_v0 GFS Unified Gravity Wave Physics (GWP) Scheme - Version 0 +\page GFS_UGWP_v0 Unified Gravity Wave Physics (GWP) Scheme - Version 0 \section des_UGWP Description Gravity waves (GWs) are generated by a variety of sources in the atmosphere diff --git a/physics/docs/pdftxt/ccppv7_phy_updates.txt b/physics/docs/pdftxt/ccppv7_phy_updates.txt index eecf94ed8..84745f1fd 100644 --- a/physics/docs/pdftxt/ccppv7_phy_updates.txt +++ b/physics/docs/pdftxt/ccppv7_phy_updates.txt @@ -7,7 +7,7 @@ This page provides an overview of the major updates in CCPP Physics v7.0.0. - New supported suites: GFS_v17_p8_ugwpv1, GFS_v16_RRTMGP, and HRRR_gf suites - New \ref CLM_LAKE_page in HRRR_gf suite - New \ref GFS_ugwpv1_gsldrag in GFS_v17_p8_ugwpv1 suite combines the \ref GFS_drag_suite with the version 1 UGWP non-stationary gravity wave drag (NGW) scheme of Yudin et al. (2020)\cite yudin_et_al_2020 -- New \ref GFS_RRTMGP_page in GFS_v16_RRTMGP suite +- New \ref GFS_RRTMGP_page (Pincus et al. 2019 \cite pincus_et_al_2019) in GFS_v16_RRTMGP suite - New RRFS smoke/dust scheme in HRRR_gf suite GFS_v17_p8, HRRR, RRFS_v1beta, RAP suites in CCPP v6.0.0 are no longer supported. From 6d98b1ef40ab659ed520ace2664045494cd3e326 Mon Sep 17 00:00:00 2001 From: Man Zhang Date: Thu, 8 Aug 2024 11:38:44 -0600 Subject: [PATCH 20/29] address Scidoc reviews --- physics/CONV/Grell_Freitas/cu_gf_deep.F90 | 1 + physics/CONV/Grell_Freitas/cu_gf_driver.F90 | 2 +- .../CONV/Grell_Freitas/cu_gf_driver_post.F90 | 1 + .../CONV/Grell_Freitas/cu_gf_driver_pre.F90 | 1 + physics/CONV/Grell_Freitas/cu_gf_sh.F90 | 1 + physics/GWD/cires_orowam2017.f | 5 +- physics/GWD/cires_tauamf_data.F90 | 7 +++ physics/GWD/cires_ugwp.F90 | 18 +++--- physics/GWD/cires_ugwp_module.F90 | 40 ++++++------- physics/GWD/cires_ugwp_post.F90 | 3 +- physics/GWD/cires_ugwp_triggers.F90 | 5 +- physics/GWD/drag_suite.F90 | 3 +- physics/MP/calpreciptype.f90 | 6 +- physics/PBL/MYNN_EDMF/bl_mynn_common.f90 | 2 +- physics/SFC_Models/Lake/CLM/clm_lake.f90 | 3 +- physics/docs/ccpp_dox_layout.xml | 14 ++--- physics/docs/ccpp_doxyfile | 40 +++++++++++-- physics/docs/library.bib | 21 ++----- physics/docs/pdftxt/GFS_H2OPHYS.txt | 2 +- physics/docs/pdftxt/GFS_NSST.txt | 2 +- physics/docs/pdftxt/GFS_OZPHYS.txt | 2 +- physics/docs/pdftxt/GFS_RRTMG.txt | 15 ++--- physics/docs/pdftxt/GFS_SFCLYR.txt | 5 +- physics/docs/pdftxt/GFS_SFCSICE.txt | 2 +- physics/docs/pdftxt/GFS_ugwpv1.txt | 2 +- physics/docs/pdftxt/GFS_v16_suite.txt | 4 +- .../docs/pdftxt/GFS_v17_p8_ugwpv1_suite.txt | 4 +- physics/docs/pdftxt/HRRR_gf_suite.txt | 4 +- physics/docs/pdftxt/RUCLSM.txt | 14 ----- physics/docs/pdftxt/all_schemes_list.txt | 8 +-- physics/docs/pdftxt/ccppv7_phy_updates.txt | 57 +++++++++---------- physics/docs/pdftxt/mainpage.txt | 2 +- 32 files changed, 151 insertions(+), 145 deletions(-) diff --git a/physics/CONV/Grell_Freitas/cu_gf_deep.F90 b/physics/CONV/Grell_Freitas/cu_gf_deep.F90 index 0f324244a..34960f037 100644 --- a/physics/CONV/Grell_Freitas/cu_gf_deep.F90 +++ b/physics/CONV/Grell_Freitas/cu_gf_deep.F90 @@ -1,6 +1,7 @@ !>\file cu_gf_deep.F90 !! This file is the Grell-Freitas deep convection scheme. +!> This module contains the Grell_Freitas deep convection scheme module cu_gf_deep use machine , only : kind_phys use physcons, only : qamin diff --git a/physics/CONV/Grell_Freitas/cu_gf_driver.F90 b/physics/CONV/Grell_Freitas/cu_gf_driver.F90 index df5a196b1..e14e3786d 100644 --- a/physics/CONV/Grell_Freitas/cu_gf_driver.F90 +++ b/physics/CONV/Grell_Freitas/cu_gf_driver.F90 @@ -1,7 +1,7 @@ !>\file cu_gf_driver.F90 !! This file is scale-aware Grell-Freitas cumulus scheme driver. - +!> This module contains the scale-aware Grell-Freitas cumulus scheme driver. module cu_gf_driver ! DH* TODO: replace constants with arguments to cu_gf_driver_run diff --git a/physics/CONV/Grell_Freitas/cu_gf_driver_post.F90 b/physics/CONV/Grell_Freitas/cu_gf_driver_post.F90 index 02bb3cb84..8380e2dae 100644 --- a/physics/CONV/Grell_Freitas/cu_gf_driver_post.F90 +++ b/physics/CONV/Grell_Freitas/cu_gf_driver_post.F90 @@ -1,6 +1,7 @@ !> \file cu_gf_driver_post.F90 !! Contains code related to GF convective schemes to be used within the GFS physics suite. +!> This module contains code related to GF convective schemes to be used within the GFS physics suite module cu_gf_driver_post implicit none diff --git a/physics/CONV/Grell_Freitas/cu_gf_driver_pre.F90 b/physics/CONV/Grell_Freitas/cu_gf_driver_pre.F90 index 1bc9aed34..1266d7a62 100644 --- a/physics/CONV/Grell_Freitas/cu_gf_driver_pre.F90 +++ b/physics/CONV/Grell_Freitas/cu_gf_driver_pre.F90 @@ -1,6 +1,7 @@ !> \file cu_gf_driver_pre.F90 !! Contains code related to GF convective schemes to be used within the GFS physics suite. +!> This module contains code related to GF convective schemes to be used within the GFS physics suite. module cu_gf_driver_pre implicit none diff --git a/physics/CONV/Grell_Freitas/cu_gf_sh.F90 b/physics/CONV/Grell_Freitas/cu_gf_sh.F90 index 9af9567ad..527b662e5 100644 --- a/physics/CONV/Grell_Freitas/cu_gf_sh.F90 +++ b/physics/CONV/Grell_Freitas/cu_gf_sh.F90 @@ -1,6 +1,7 @@ !>\file cu_gf_sh.F90 !! This file contains Grell-Freitas shallow convection scheme. +!> This module contains the Grell-Freitas shallow convection scheme module cu_gf_sh use machine , only : kind_phys !real(kind=kind_phys), parameter:: c1_shal=0.0015! .0005 diff --git a/physics/GWD/cires_orowam2017.f b/physics/GWD/cires_orowam2017.f index 9f04ac3b0..8f9599f24 100644 --- a/physics/GWD/cires_orowam2017.f +++ b/physics/GWD/cires_orowam2017.f @@ -1,12 +1,12 @@ !>\file cires_orowam2017.f +!! - +!> This module includes the OROGW solver of WAM2017. module cires_orowam2017 contains !>\defgroup cires_orowam2017_mod CIRES UGWP orowam2017 Module !>This is the OROGW-solver of WAM2017. -!>@{ !> subroutine oro_wam_2017(im, levs,npt,ipt, kref,kdt,me,master, @@ -394,4 +394,3 @@ subroutine ugwpv0_tofd1d(levs, sigflt, elvmax, zsurf, ! end subroutine ugwpv0_tofd1d end module cires_orowam2017 -!>@} diff --git a/physics/GWD/cires_tauamf_data.F90 b/physics/GWD/cires_tauamf_data.F90 index 4f12b2ec1..364c79409 100644 --- a/physics/GWD/cires_tauamf_data.F90 +++ b/physics/GWD/cires_tauamf_data.F90 @@ -1,3 +1,6 @@ +!>\file cires_tauamf_data.F90 +!! + module cires_tauamf_data use machine, only: kind_phys @@ -16,6 +19,7 @@ module cires_tauamf_data contains +!> subroutine read_tau_amf(me, master, errmsg, errflg) use netcdf @@ -70,6 +74,7 @@ subroutine read_tau_amf(me, master, errmsg, errflg) end subroutine read_tau_amf +!> subroutine cires_indx_ugwp (npts, me, master, dlat,j1_tau,j2_tau, w1_j1tau, w2_j2tau) use machine, only: kind_phys @@ -110,6 +115,7 @@ subroutine cires_indx_ugwp (npts, me, master, dlat,j1_tau,j2_tau, w1_j1tau, w2_j return end subroutine cires_indx_ugwp +!> subroutine tau_amf_interp(me, master, im, idate, fhour, j1_tau,j2_tau, ddy_j1, ddy_j2, tau_ddd) use machine, only: kind_phys implicit none @@ -163,6 +169,7 @@ subroutine tau_amf_interp(me, master, im, idate, fhour, j1_tau,j2_tau, ddy_j1, d end subroutine tau_amf_interp +!> subroutine gfs_idate_calendar(idate, fhour, ddd, fddd) use machine, only: kind_phys diff --git a/physics/GWD/cires_ugwp.F90 b/physics/GWD/cires_ugwp.F90 index cab602252..beb7dbbc7 100644 --- a/physics/GWD/cires_ugwp.F90 +++ b/physics/GWD/cires_ugwp.F90 @@ -1,16 +1,17 @@ !> \file cires_ugwp.F90 !! This file contains the Unified Gravity Wave Physics (UGWP) scheme by Valery Yudin (University of Colorado, CIRES) + +!> This module contains the UGWP v0 scheme by Valery Yudin (University of Colorado, CIRES) +!! !! See Valery Yudin's presentation at 2017 NGGPS PI meeting: !! Gravity waves (GWs): Mesoscale GWs transport momentum, energy (heat) , and create eddy mixing in the whole atmosphere domain; Breaking and dissipating GWs deposit: (a) momentum; (b) heat (energy); and create (c) turbulent mixing of momentum, heat, and tracers !! To properly incorporate GW effects (a-c) unresolved by DYCOREs we need GW physics !! "Unified": a) all GW effects due to both dissipation/breaking; b) identical GW solvers for all GW sources; c) ability to replace solvers. !! Unified Formalism: -!! 1. GW Sources: Stochastic and physics based mechanisms for GW-excitations in the lower atmosphere, calibrated by the high-res analyses/forecasts, and observations (3 types of GW sources: orography, convection, fronts/jets). -!! 2. GW Propagation: Unified solver for "propagation, dissipation and breaking" excited from all type of GW sources. -!! 3. GW Effects: Unified representation of GW impacts on the "resolved" flow for all sources (energy-balanced schemes for momentum, heat and mixing). +!! - GW Sources: Stochastic and physics based mechanisms for GW-excitations in the lower atmosphere, calibrated by the high-res analyses/forecasts, and observations (3 types of GW sources: orography, convection, fronts/jets). +!! - GW Propagation: Unified solver for "propagation, dissipation and breaking" excited from all type of GW sources. +!! - GW Effects: Unified representation of GW impacts on the "resolved" flow for all sources (energy-balanced schemes for momentum, heat and mixing). !! https://www.weather.gov/media/sti/nggps/Presentations%202017/02%20NGGPS_VYUDIN_2017_.pdf - - module cires_ugwp use machine, only: kind_phys @@ -33,9 +34,7 @@ module cires_ugwp ! ------------------------------------------------------------------------ ! CCPP entry points for CIRES Unified Gravity Wave Physics (UGWP) scheme v0 ! ------------------------------------------------------------------------ -!>\defgroup cires_ugwp_run_mod CIRES Unified Gravity Wave Physics v0 Module -!> @{ -!>@ The subroutine initializes the CIRES UGWP V0. +!> The subroutine initializes the CIRES UGWP V0. !> \section arg_table_cires_ugwp_init Argument Table !! \htmlinclude cires_ugwp_init.html !! @@ -112,7 +111,7 @@ end subroutine cires_ugwp_init ! finalize of cires_ugwp (_finalize) ! ----------------------------------------------------------------------- -!>@brief The subroutine finalizes the CIRES UGWP +!> The subroutine finalizes the CIRES UGWP #if 0 !> \section arg_table_cires_ugwp_finalize Argument Table !! \htmlinclude cires_ugwp_finalize.html @@ -445,5 +444,4 @@ subroutine cires_ugwp_run(do_ugwp, me, master, im, levs, ntrac, dtp, kdt, lonr endif end subroutine cires_ugwp_run -!> @} end module cires_ugwp diff --git a/physics/GWD/cires_ugwp_module.F90 b/physics/GWD/cires_ugwp_module.F90 index 3b3ce3114..a454a5eae 100644 --- a/physics/GWD/cires_ugwp_module.F90 +++ b/physics/GWD/cires_ugwp_module.F90 @@ -1,5 +1,7 @@ !>\file cires_ugwp_module.F90 +!! +!>This module contains the UGWPv0 driver module cires_ugwpv0_module ! @@ -9,8 +11,8 @@ module cires_ugwpv0_module implicit none logical :: module_is_initialized - logical :: do_physb_gwsrcs = .false. ! control for physics-based GW-sources - logical :: do_rfdamp = .false. ! control for Rayleigh friction inside ugwp_driver + logical :: do_physb_gwsrcs = .false. !< control for physics-based GW-sources + logical :: do_rfdamp = .false. !< control for Rayleigh friction inside ugwp_driver real, parameter :: arad=6370.e3 real, parameter :: pi = atan(1.0) @@ -18,24 +20,24 @@ module cires_ugwpv0_module real, parameter :: hps = 7000. real, parameter :: hpskm = hps/1000. ! - real :: kxw = 6.28e-3/100. ! single horizontal wavenumber of ugwp schemes + real :: kxw = 6.28e-3/100. !< single horizontal wavenumber of ugwp schemes real, parameter :: ricrit = 0.25 real, parameter :: frcrit = 0.50 real, parameter :: linsat = 1.00 real, parameter :: linsat2 = linsat*linsat ! - integer :: knob_ugwp_solver=1 ! 1, 2, 3, 4 - (linsat, ifs_2010, ad_gfdl, dsp_dis) - integer, dimension(4) :: knob_ugwp_source ! [1,1,1,0] - (oro, fronts, conv, imbf-owp] - integer, dimension(4) :: knob_ugwp_wvspec ! number of waves for- (oro, fronts, conv, imbf-owp] - integer, dimension(4) :: knob_ugwp_azdir ! number of wave azimuths for- (oro, fronts, conv, imbf-owp] - integer, dimension(4) :: knob_ugwp_stoch ! 1 - deterministic ; 0 - stochastic - real, dimension(4) :: knob_ugwp_effac ! efficiency factors for- (oro, fronts, conv, imbf-owp] + integer :: knob_ugwp_solver=1 !< 1, 2, 3, 4 - (linsat, ifs_2010, ad_gfdl, dsp_dis) + integer, dimension(4) :: knob_ugwp_source !< [1,1,1,0] - (oro, fronts, conv, imbf-owp] + integer, dimension(4) :: knob_ugwp_wvspec !< number of waves for- (oro, fronts, conv, imbf-owp] + integer, dimension(4) :: knob_ugwp_azdir !< number of wave azimuths for- (oro, fronts, conv, imbf-owp] + integer, dimension(4) :: knob_ugwp_stoch !< 1 - deterministic ; 0 - stochastic + real, dimension(4) :: knob_ugwp_effac !< efficiency factors for- (oro, fronts, conv, imbf-owp] - integer :: knob_ugwp_doaxyz=1 ! 1 -gwdrag - integer :: knob_ugwp_doheat=1 ! 1 -gwheat - integer :: knob_ugwp_dokdis=0 ! 1 -gwmixing - integer :: knob_ugwp_ndx4lh = 2 ! n-number of "unresolved" "n*dx" for lh_gw + integer :: knob_ugwp_doaxyz=1 !< 1 -gwdrag + integer :: knob_ugwp_doheat=1 !< 1 -gwheat + integer :: knob_ugwp_dokdis=0 !< 1 -gwmixing + integer :: knob_ugwp_ndx4lh = 2 !< n-number of "unresolved" "n*dx" for lh_gw ! integer :: ugwp_azdir integer :: ugwp_stoch @@ -45,12 +47,12 @@ module cires_ugwpv0_module real :: ugwp_effac ! - data knob_ugwp_source / 1,0, 1, 0 / ! oro-conv-fjet-okw-taub_lat: 1-active 0-off - data knob_ugwp_wvspec /1,32,32,32/ ! number of waves for- (oro, fronts, conv, imbf-owp, taulat] - data knob_ugwp_azdir /2, 4, 4,4/ ! number of wave azimuths for- (oro, fronts, conv, imbf-okwp] - data knob_ugwp_stoch /0, 0, 0,0/ ! 0 - deterministic ; 1 - stochastic, non-activated option - data knob_ugwp_effac /1.,1.,1.,1./ ! efficiency factors for- (oro, fronts, conv, imbf-owp] - integer :: knob_ugwp_version = 0 ! version control had sense under IPD in CCPP=> to SUITES + data knob_ugwp_source / 1,0, 1, 0 / !< oro-conv-fjet-okw-taub_lat: 1-active 0-off + data knob_ugwp_wvspec /1,32,32,32/ !< number of waves for- (oro, fronts, conv, imbf-owp, taulat] + data knob_ugwp_azdir /2, 4, 4,4/ !< number of wave azimuths for- (oro, fronts, conv, imbf-okwp] + data knob_ugwp_stoch /0, 0, 0,0/ !< 0 - deterministic ; 1 - stochastic, non-activated option + data knob_ugwp_effac /1.,1.,1.,1./ !< efficiency factors for- (oro, fronts, conv, imbf-owp] + integer :: knob_ugwp_version = 0 !< version control had sense under IPD in CCPP=> to SUITES integer :: launch_level = 55 ! namelist /cires_ugwp_nml/ knob_ugwp_solver, knob_ugwp_source,knob_ugwp_wvspec, knob_ugwp_azdir, & diff --git a/physics/GWD/cires_ugwp_post.F90 b/physics/GWD/cires_ugwp_post.F90 index 3efb2b7e8..2ae20ac84 100644 --- a/physics/GWD/cires_ugwp_post.F90 +++ b/physics/GWD/cires_ugwp_post.F90 @@ -1,6 +1,7 @@ !> \file cires_ugwp_post.F90 -!! This file contains +!! This file contains the calcualtion of the UGWP v0 diagnostics +!> This module contains the calculation of the UGWP v0 diagnostics (ldiag_ugwp) module cires_ugwp_post contains diff --git a/physics/GWD/cires_ugwp_triggers.F90 b/physics/GWD/cires_ugwp_triggers.F90 index ba7483eca..82cf11ebb 100644 --- a/physics/GWD/cires_ugwp_triggers.F90 +++ b/physics/GWD/cires_ugwp_triggers.F90 @@ -5,6 +5,7 @@ module cires_ugwp_triggers contains ! +!> subroutine slat_geos5_tamp_v0(im, tau_amp, xlatdeg, tau_gw) !================= ! GEOS-5 & MERRA-2 lat-dependent GW-source function tau(z=Zlaunch) =rho* @@ -38,6 +39,7 @@ subroutine slat_geos5_tamp_v0(im, tau_amp, xlatdeg, tau_gw) ! end subroutine slat_geos5_tamp_v0 +!> subroutine slat_geos5_v0(im, xlatdeg, tau_gw) !================= ! GEOS-5 & MERRA-2 lat-dependent GW-source function tau(z=Zlaunch) =rho* @@ -76,7 +78,8 @@ subroutine slat_geos5_v0(im, xlatdeg, tau_gw) enddo ! end subroutine slat_geos5_v0 -! + +!> subroutine init_nazdir_v0(naz, xaz, yaz) use ugwp_common_v0 , only : pi2 implicit none diff --git a/physics/GWD/drag_suite.F90 b/physics/GWD/drag_suite.F90 index 1c4d115b7..634c4f1a1 100644 --- a/physics/GWD/drag_suite.F90 +++ b/physics/GWD/drag_suite.F90 @@ -2,12 +2,11 @@ !! This file is the parameterization of orographic gravity wave !! drag, mountain blocking, and form drag. +!> This module contains the orographic gravity wave drag scheme module drag_suite contains -!> This module contains the CCPP-compliant GSL orographic gravity wave drag scheme. -!! !> \brief This subroutine initializes the orographic gravity wave drag scheme. !! !> \section arg_table_drag_suite_init Argument Table diff --git a/physics/MP/calpreciptype.f90 b/physics/MP/calpreciptype.f90 index f2d995946..792c0ba84 100644 --- a/physics/MP/calpreciptype.f90 +++ b/physics/MP/calpreciptype.f90 @@ -1,11 +1,11 @@ !>\file calpreciptype.f90 !! This file contains the subroutines that calculates dominant precipitation type. +!> This module defines four algorithms that are called to calculate dominant precipitation type, and the +!!tallies are sumed in calwxt_dominant(). module calpreciptype_mod contains -!> Foure algorithms are called to calculate dominant precipitation type, and the -!!tallies are sumed in calwxt_dominant(). -!! + !>\section gen_calp GFS calpreciptype General Algorithm subroutine calpreciptype(kdt,nrcm,im,ix,lm,lp1,randomno, & xlat,xlon, & diff --git a/physics/PBL/MYNN_EDMF/bl_mynn_common.f90 b/physics/PBL/MYNN_EDMF/bl_mynn_common.f90 index 3e02f94b0..47b172808 100644 --- a/physics/PBL/MYNN_EDMF/bl_mynn_common.f90 +++ b/physics/PBL/MYNN_EDMF/bl_mynn_common.f90 @@ -7,7 +7,7 @@ !! module (module_bl_mynn) further below: !>\ingroup gp_mynnedmf -!! Define Model-specific constants/parameters +!! This module defines model-specific constants/parameters. module bl_mynn_common !------------------------------------------ diff --git a/physics/SFC_Models/Lake/CLM/clm_lake.f90 b/physics/SFC_Models/Lake/CLM/clm_lake.f90 index 8686221fa..c004e6c32 100644 --- a/physics/SFC_Models/Lake/CLM/clm_lake.f90 +++ b/physics/SFC_Models/Lake/CLM/clm_lake.f90 @@ -1,5 +1,7 @@ !> \file clm_lake.f90 !! Contains code related to the CLM lake model + +!> This module contains the CLM Lake model. !! !! This lake scheme was taken from module_sf_lake in WRF 4.3.1, and !! modified for CCPP by Sam Trahan in June 2022. @@ -17,7 +19,6 @@ !! can be used with any land surface scheme embedded in WRF. The lake scheme !! developments and evaluations were included in Subin et al. (2012) \cite Subin_2012 !! and Gu et al. (2015) \cite Gu2015 . - MODULE clm_lake use machine, only: kind_phys, kind_dbl_prec diff --git a/physics/docs/ccpp_dox_layout.xml b/physics/docs/ccpp_dox_layout.xml index 6242933b7..b844b5c1b 100644 --- a/physics/docs/ccpp_dox_layout.xml +++ b/physics/docs/ccpp_dox_layout.xml @@ -1,16 +1,16 @@ + - + - - + + - - - - + + + diff --git a/physics/docs/ccpp_doxyfile b/physics/docs/ccpp_doxyfile index 6e1d11cd7..4efdb161f 100644 --- a/physics/docs/ccpp_doxyfile +++ b/physics/docs/ccpp_doxyfile @@ -984,10 +984,7 @@ INPUT = pdftxt/mainpage.txt \ ../PBL \ ../SFC_Models \ ../photochem \ - ../Radiation \ - ../hooks \ - ../tools \ - ../Interstitials + ../Radiation # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses @@ -1047,7 +1044,38 @@ RECURSIVE = YES # Note that relative paths are relative to the directory from which doxygen is # run. -EXCLUDE = ../Radiation/RRTMGP/rte-rrtmgp +EXCLUDE = ../Radiation/RRTMGP/rte-rrtmgp \ + ../MP/Morrison_Gettelman \ + ../MP/Ferrier_Aligo \ + ../MP/Zhao_Carr \ + ../PBL/MYJ \ + ../PBL/HEDMF \ + ../PBL/SHOC \ + ../PBL/saYSU \ + ../PBL/YSU \ + ../SFC_Models/Lake/Flake \ + ../smoke_dust \ + ../SFC_Layer/GFDL \ + ../SFC_Layer/MYJ \ + ../tools \ + ../CONV/C3 \ + ../CONV/Chikira_Sugiyama \ + ../CONV/nTiedtke \ + ../CONV/RAS \ + ../CONV/SAS \ + ../GWD/cires_ugwpv1_module.F90 \ + ../GWD/cires_ugwpv1_initialize.F90 \ + ../GWD/cires_ugwpv1_oro.F90 \ + ../GWD/cires_ugwpv1_solv2.F90 \ + ../GWD/cires_ugwpv1_sporo.F90 \ + ../GWD/cires_ugwpv1_triggers.F90 \ + ../GWD/cires_tauamf_data.F90 \ + ../GWD/unified_ugwp.F90 \ + ../GWD/unified_ugwp_post.F90 \ + ../GWD/gwdc.f \ + ../GWD/gwdc_post.f \ + ../GWD/gwdc_pre.f \ + ../GWD/rayleigh_damp.f # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded @@ -1181,7 +1209,7 @@ FORTRAN_COMMENT_AFTER = 72 # also VERBATIM_HEADERS is set to NO. # The default value is: NO. -SOURCE_BROWSER = NO +SOURCE_BROWSER = YES # Setting the INLINE_SOURCES tag to YES will include the body of functions, # multi-line macros, enums or list initialized variables directly into the diff --git a/physics/docs/library.bib b/physics/docs/library.bib index d331d6398..b5f8b467b 100644 --- a/physics/docs/library.bib +++ b/physics/docs/library.bib @@ -1,7 +1,7 @@ %% This BibTeX bibliography file was created using BibDesk. %% https://bibdesk.sourceforge.io/ -%% Created for Man Zhang at 2024-08-01 13:16:14 -0600 +%% Created for Man Zhang at 2024-08-06 10:37:12 -0600 %% Saved with string encoding Unicode (UTF-8) @@ -86,9 +86,9 @@ @inproceedings{yudin_et_al_2020 bdsk-url-1 = {https://dtcenter.org/sites/default/files/events/2020/4-valery-yudin.pdf}} @article{han_2021, - author = {J. Han, J. Peng, W. Li, W. Wang, Z. Zhang, F. Yang and W. Zheng}, + author = {Han, J. and J. Peng and W. Li and W. Wang and Z. Zhang and F. Yang and W. Zheng}, date-added = {2024-07-02 13:49:10 -0600}, - date-modified = {2024-07-02 13:49:10 -0600}, + date-modified = {2024-08-06 10:36:52 -0600}, doi = {10.25923/CYBH-W893}, publisher = {National Centers for Environmental Prediction (U.S.)}, title = {Updates in the NCEP GFS Cumulus Convection, Vertical Turbulent Mixing, and Surface Layer Physics}, @@ -132,9 +132,9 @@ @article{Bengtsson_et_al_2020 bdsk-url-2 = {https://doi.org/10.1029/2020MS002260}} @article{Han_et_al_2022, - author = {J. Han, F. Yang, R. Montuoro, W. Li, R. Sun}, + author = {Han, J. and F. Yang and R. Montuoro and W. Li and R. Sun}, date-added = {2024-07-02 11:17:39 -0600}, - date-modified = {2024-07-02 11:20:58 -0600}, + date-modified = {2024-08-06 10:35:59 -0600}, institution = {NCEP Office Note 506}, title = {Implementation of a positive definite mass-flux scheme and a method for removing the negative tracers in the NCEP GFS planetary boundary layer and cumulus convection scheme}, year = {2022}} @@ -613,17 +613,6 @@ @article{Henry_Juang_2010 bdsk-url-1 = {https://doi.org/10.1175%2F2009mwr3109.1}, bdsk-url-2 = {https://doi.org/10.1175/2009mwr3109.1}} -@article{https://doi.org/10.25923/5051-3r70, - author = {Han, Jongil}, - date-added = {2022-04-14 18:24:47 -0600}, - date-modified = {2022-04-14 18:24:47 -0600}, - publisher = {National Centers for Environmental Prediction (U.S.)}, - title = {Implementation of a positive definite mass-flux scheme and a method for removing the negative tracers in the NCEP GFS planetary boundary layer and cumulus convection schemes}, - url = {https://repository.library.noaa.gov/view/noaa/36734}, - year = {2022}, - bdsk-url-1 = {https://repository.library.noaa.gov/view/noaa/36734}, - bdsk-url-2 = {https://doi.org/10.25923/5051-3R70}} - @article{https://doi.org/10.25923/cybh-w893, author = {Han, Jongil}, date-added = {2022-04-14 18:17:43 -0600}, diff --git a/physics/docs/pdftxt/GFS_H2OPHYS.txt b/physics/docs/pdftxt/GFS_H2OPHYS.txt index 190cede52..24de44b9c 100644 --- a/physics/docs/pdftxt/GFS_H2OPHYS.txt +++ b/physics/docs/pdftxt/GFS_H2OPHYS.txt @@ -1,5 +1,5 @@ /** -\page GFS_H2OPHYS GFS Stratospheric H2O Scheme +\page GFS_H2OPHYS Stratospheric H2O Scheme \section des_h2o Description To improve the treatment of stratospheric water vapor in the global model, NCEP implemented a parameterization of photochemical production and loss (P-L) of water vapor through methane oxidation and photolysis of H2O in the upper mesosphere due to solar Lyman alpha absorption is implemented in GFS. diff --git a/physics/docs/pdftxt/GFS_NSST.txt b/physics/docs/pdftxt/GFS_NSST.txt index b74e99328..ed3537aa9 100644 --- a/physics/docs/pdftxt/GFS_NSST.txt +++ b/physics/docs/pdftxt/GFS_NSST.txt @@ -1,5 +1,5 @@ /** -\page GFS_NSST GFS Near-Surface Sea Temperature Scheme +\page GFS_NSST Near-Surface Sea Temperature Scheme \section des_nst Description Sea Surface Temperature (SST) is required in a Numerical Weather Prediction (NWP) system as the lower thermal diff --git a/physics/docs/pdftxt/GFS_OZPHYS.txt b/physics/docs/pdftxt/GFS_OZPHYS.txt index 8c3db97ce..8bd6a0da5 100644 --- a/physics/docs/pdftxt/GFS_OZPHYS.txt +++ b/physics/docs/pdftxt/GFS_OZPHYS.txt @@ -1,5 +1,5 @@ /** -\page GFS_OZPHYS GFS Ozone Photochemistry (2015) Scheme +\page GFS_OZPHYS Ozone Photochemistry (2015) Scheme \section des_ozone Description In recent years, the leading NWP centers have extended the vertical range of their NWP and DA systems from the surface up through the stratosphere (~10-50 km altitude) and lower mesosphere (~50-65 km). Some diff --git a/physics/docs/pdftxt/GFS_RRTMG.txt b/physics/docs/pdftxt/GFS_RRTMG.txt index f21a4fb97..181d32308 100644 --- a/physics/docs/pdftxt/GFS_RRTMG.txt +++ b/physics/docs/pdftxt/GFS_RRTMG.txt @@ -71,10 +71,8 @@ - CSULFtoa: Upward LW - CSUSFtoa: Upward SW -\section rrtmg_enh CCPP Physics Updates -\version CCPP v6.0.0 -Requests have been made by many physics developers and users to rewrite +In 2022, requests have been made by many physics developers and users to rewrite the cloud routines (routines progcld) for radiation computation in the program radiation_clouds.f. Those cloud subroutines are very similar, and have many lines of common code. We modified the radiation_clouds.f module, @@ -86,9 +84,8 @@ radiation_clouds_prop can connect to the calculations of the cloud radiation properties for all the microphysics schemes. Summary of the major changes: -- \ref radiation_clouds.f +- \ref radiation_clouds.f : A new subroutine module_radiation_clouds::radiation_clouds_prop was added to radiation_clouds.f. This new subroutine calculates all cloud radiation properties for all the microphysics schemes. - A new subroutine module_radiation_clouds::radiation_clouds_prop was added to radiation_clouds.f. This new subroutine calculates all cloud radiation properties for all the microphysics schemes. - module_radiation_clouds::progcld_zhao_carr() - module_radiation_clouds::progcld_zhao_carr_pdf() - module_radiation_clouds::progcld_gfdl_lin() @@ -97,13 +94,9 @@ Summary of the major changes: - module_radiation_clouds::progclduni() - module_radiation_clouds::progcld_thompson() -- \ref GFS_rrtmg_pre.F90 +- \ref GFS_rrtmg_pre.F90 : Removed the “progcld” subroutine calls, and replaced them with a single subroutine call to module_radiation_clouds::radiation_clouds_prop. - Removed the “progcld” subroutine calls, and replaced them with a single subroutine call to module_radiation_clouds::radiation_clouds_prop. - -- \ref radiation_cloud_overlap.F90 - - Replaced subroutine “get_alpha_exp” with module_radiation_cloud_overlap::get_alpha_exper(). The new subroutine revises alpha for exponential random cloud overlap option. This new subroutine is used in programs GFS_rrtmgp_cloud_overlap_pre.F90 and GFS_rrtmgp_gfdlmp_pre.F90. +- \ref radiation_cloud_overlap.F90 : Replaced subroutine “get_alpha_exp” with module_radiation_cloud_overlap::get_alpha_exper(). The new subroutine revises alpha for exponential random cloud overlap option. This new subroutine is used in programs GFS_rrtmgp_cloud_overlap_pre.F90 and GFS_rrtmgp_gfdlmp_pre.F90. - Subroutine module_radiation_clouds::gethml() has been modified. The subroutine computes low, mid, high, total and boundary clouds, and is used in GFS_cloud_diagnostics.F90. diff --git a/physics/docs/pdftxt/GFS_SFCLYR.txt b/physics/docs/pdftxt/GFS_SFCLYR.txt index 5498f510d..dfb071a81 100644 --- a/physics/docs/pdftxt/GFS_SFCLYR.txt +++ b/physics/docs/pdftxt/GFS_SFCLYR.txt @@ -54,15 +54,12 @@ Here \f$z\f$ is the height, \f$L\f$ is the Obukhov length, \f$z_{0M}\f$ is the m The pertinent features of the GFS stable surface layer parameterization scheme are described in the appendix of Zheng et al. (2017) \cite zheng_et_al_2017. -\section version_gfsslay_enh Physics Updates -\version CCPP v6.0.0 - +Recently, Han et al.(2021) \cite https://doi.org/10.25923/cybh-w893 and Han et al.(2022) \cite Han_et_al_2022 introduced a few new features: - A new canopy heat storage algorithm was implemented. The reduction of the sensible heat flux into the PBL, as a function of surface roughness and vegetation fraction, helps to reduce nighttime cold and daytime warm 2-meter temperature biases over forested regions. - A sea spray effect algorithm was included to enhance sensible and latent heat fluxes, especially for strong wind conditions. - To better represent sub-grid scale turbulence variability in the surface layer, a new algorithm for maximum surface layer stability parameter was developed as an inverse function of the background turbulent eddy diffusivity. - The thermal roughness length calculation over land has been modified. -\sa Han et al.(2021) \cite https://doi.org/10.25923/cybh-w893 and Han et al.(2022) \cite https://doi.org/10.25923/5051-3r70 \section intra_rough Intraphysics Communication \ref arg_table_sfc_diff_run diff --git a/physics/docs/pdftxt/GFS_SFCSICE.txt b/physics/docs/pdftxt/GFS_SFCSICE.txt index 4cd61f316..9b0afd74f 100644 --- a/physics/docs/pdftxt/GFS_SFCSICE.txt +++ b/physics/docs/pdftxt/GFS_SFCSICE.txt @@ -1,5 +1,5 @@ /** -\page GFS_SFCSICE GFS Sea Ice Scheme +\page GFS_SFCSICE Sea Ice Scheme \section des_sice Description Sea ice is a thin skin of frozen water covering the polar oceans. The sea ice strongly interacts with both the atmosphere above and the ocean underneath in the high diff --git a/physics/docs/pdftxt/GFS_ugwpv1.txt b/physics/docs/pdftxt/GFS_ugwpv1.txt index c7665516b..dc2599be3 100644 --- a/physics/docs/pdftxt/GFS_ugwpv1.txt +++ b/physics/docs/pdftxt/GFS_ugwpv1.txt @@ -1,5 +1,5 @@ /** -\page GFS_ugwpv1_gsldrag GFS Unified Gravity Wave Physics (GWP) Scheme - Version 1 +\page ugwpv1_gsldrag Unified Gravity Wave Physics (GWP) Scheme - Version 1 \section des_ugwpv1 Description The GFS Unified GWP version 1 combines the \ref GFS_drag_suite with the version 1 UGWP non-stationary gravity wave drag (NGW) scheme of Yudin et al. (2020)\cite yudin_et_al_2020. diff --git a/physics/docs/pdftxt/GFS_v16_suite.txt b/physics/docs/pdftxt/GFS_v16_suite.txt index 1d4cf2a32..5b3e5fabb 100644 --- a/physics/docs/pdftxt/GFS_v16_suite.txt +++ b/physics/docs/pdftxt/GFS_v16_suite.txt @@ -4,7 +4,9 @@ \section gfsv16_suite_overview Overview Version 16 of the Global Forecast System (GFS) was implemented operationally by the NOAA -National Centers for Environmental Prediction (NCEP) in 2021. The GFS_v16 suite uses the parameterizations in the following order: +National Centers for Environmental Prediction (NCEP) in 2021. While GFS version 16 did not make +use of CCPP physics suites, the GFS_v16 suite is meant to emulate the physics used in that operational implementation. +The GFS_v16 suite uses the parameterizations in the following order: - \ref GFS_RRTMG_page - \ref GFS_SFCLYR - \ref GFS_NSST diff --git a/physics/docs/pdftxt/GFS_v17_p8_ugwpv1_suite.txt b/physics/docs/pdftxt/GFS_v17_p8_ugwpv1_suite.txt index 9b150360a..9483192e6 100644 --- a/physics/docs/pdftxt/GFS_v17_p8_ugwpv1_suite.txt +++ b/physics/docs/pdftxt/GFS_v17_p8_ugwpv1_suite.txt @@ -9,7 +9,7 @@ the GFS v17, and is expected to evolve before the operational implementation. It with the CCPP SCM. The primary differences between the GFS_v16 and GFS_v17 suites are: - \b Microphysics: The replacement of \ref GFDL_cloud with \ref THOMPSON - PBL and Convection updates -- \b Gravity \b Wave \b Drag: The replacement of \ref GFS_UGWP_v0 with \ref GFS_ugwpv1_gsldrag +- \b Gravity \b Wave \b Drag: The replacement of \ref GFS_UGWP_v0 with \ref ugwpv1_gsldrag - \b Land \b Surface \b Model: The replacement of \ref GFS_NOAH with \ref NoahMP The GFS_v17 suite uses the parameterizations in the following order: @@ -19,7 +19,7 @@ The GFS_v17 suite uses the parameterizations in the following order: - \ref NoahMP - \ref GFS_SFCSICE - \ref GFS_SATMEDMFVDIFQ - - \ref GFS_ugwpv1_gsldrag + - \ref ugwpv1_gsldrag - \ref GFS_OZPHYS - \ref GFS_H2OPHYS - \ref GFS_SAMFdeep diff --git a/physics/docs/pdftxt/HRRR_gf_suite.txt b/physics/docs/pdftxt/HRRR_gf_suite.txt index 96ac44869..5ec1e4afd 100644 --- a/physics/docs/pdftxt/HRRR_gf_suite.txt +++ b/physics/docs/pdftxt/HRRR_gf_suite.txt @@ -5,8 +5,8 @@ The HRRR_gf suite is one of the candidates for the future operational implementation of the Rapid Refresh Forecast System (RRFS). Simplified configurations of RRFS can be configured using -the UFS SRW App. This suite is similar to the one used by the NOAA operational HRRR v4 (Dowell et al. 2022 \cite Dowell_2022), with the addition of the Grell-Freitas -convective parameterization. +the UFS SRW App. This suite is similar to the one used by the NOAA operational HRRR v4 (Dowell et al. 2022 \cite Dowell_2022), +with the addition of the Grell-Freitas deep convective parameterization. While the parameterization for smoke and dust representation is used RRFS prototype tests and is included in the HRRR_gf Suite Definition File, is not active in the CCPP Single Column Model since the smoke and dust tracers are initialized diff --git a/physics/docs/pdftxt/RUCLSM.txt b/physics/docs/pdftxt/RUCLSM.txt index f7e821f34..d444eedef 100644 --- a/physics/docs/pdftxt/RUCLSM.txt +++ b/physics/docs/pdftxt/RUCLSM.txt @@ -103,20 +103,6 @@ snow accumulation, and high amounts of snow in the product with 10:1 ratio are t precipitation had a high content of sleet. There is even larger improvement in the Chicago area, where observed and model precipitation were almost totally sleet. -\section v6_updates_ruc Physics Updates -- Initialization of land and ice emissivity with consideration of partial snow cover -- Initialization of land and ice albedo with consideration of partial snow cover -- Initialization of water vapor mixing ratio over land and ice -- Initialization of fractions of soil and vegetation types in a grid cell -- Changes in the computation of a flag for sea ice: it is set to true only if \p flag_cice = .false. (uncoupled sea ice model) -- Introduced separate variables for sea ice, for example: \p showfallac is replaced with \p snowfallac_ice -- Added accommodation of fractional surface grid (land and ice fractions are possible within the grid cell) -- Solar angle dependence of albedo for snow-free land -- SPP option for stochastic perturbations for emissivity, albedo and vegetation fraction -- Based on RRFS testing, the coefficient in the soil resistance formulation (Sakaguchi and Zeng (2009) \cite sakaguchi_and_zeng_2009) -was increased from 0.7 to 1.0 to increase soil resistance to evaporation - - \section intra_ruclsm Intraphysics Communication - \ref arg_table_lsm_ruc_run diff --git a/physics/docs/pdftxt/all_schemes_list.txt b/physics/docs/pdftxt/all_schemes_list.txt index d8bdd3770..73668cc15 100644 --- a/physics/docs/pdftxt/all_schemes_list.txt +++ b/physics/docs/pdftxt/all_schemes_list.txt @@ -4,7 +4,7 @@ \section allscheme_overview Physical Parameterizations In the CCPP, each parameterization is in its own modern Fortran module (see rules for a scheme to be considered CCPP-compliant at - CCPP-Compliant Physics Parameterizations ), + CCPP-Compliant Physics Parameterizations ), which facilitates model development and code maintenance. While some individual parameterization can be invoked for the SCM, most host models will assemble the parameterizations in suites. @@ -40,7 +40,7 @@ which facilitates model development and code maintenance. While some individual \b Gravity \b Wave \b Drag - \subpage GFS_UGWP_v0 - \subpage GFS_drag_suite - - \subpage GFS_ugwpv1_gsldrag + - \subpage ugwpv1_gsldrag \b Surface \b Layer - \subpage GFS_SFCLYR @@ -51,7 +51,7 @@ which facilitates model development and code maintenance. While some individual - \subpage GFS_OCEAN - \subpage GFS_SFCSICE -\b Others +\b Lakes - \subpage CLM_LAKE_page The input information for the parameterizations includes the values of the gridbox mean prognostic variables (wind components, temperature, @@ -90,7 +90,7 @@ Table 1. Physics suites and primary schemes supported in CCPP v7.0.0 |\b Radiation | \ref GFS_RRTMG_page | \ref GFS_RRTMG_page | \ref GFS_RRTMGP_page | \ref GFS_RRTMG_page | \ref GFS_RRTMG_page | |\b Surface \b Layer | \ref GFS_SFCLYR | \ref GFS_SFCLYR | \ref GFS_SFCLYR | \ref SFC_MYNNSFL | \ref SFC_MYNNSFL | |\b LSM | \ref GFS_NOAH | \ref NoahMP | \ref GFS_NOAH | \ref RUCLSM | \ref GFS_NOAH | -|\b Gravity \b Wave \b Drag| \ref GFS_UGWP_v0 | \ref GFS_ugwpv1_gsldrag | \ref GFS_UGWP_v0 | \ref GFS_drag_suite | \ref GFS_UGWP_v0 | +|\b Gravity \b Wave \b Drag| \ref GFS_UGWP_v0 | \ref ugwpv1_gsldrag | \ref GFS_UGWP_v0 | \ref GFS_drag_suite | \ref GFS_UGWP_v0 | |\b Sea \b Ice | \ref GFS_SFCSICE | \ref GFS_SFCSICE | \ref GFS_SFCSICE | \ref RUCLSM | \ref GFS_SFCSICE | \tableofcontents diff --git a/physics/docs/pdftxt/ccppv7_phy_updates.txt b/physics/docs/pdftxt/ccppv7_phy_updates.txt index 84745f1fd..5751cca74 100644 --- a/physics/docs/pdftxt/ccppv7_phy_updates.txt +++ b/physics/docs/pdftxt/ccppv7_phy_updates.txt @@ -6,17 +6,15 @@ This page provides an overview of the major updates in CCPP Physics v7.0.0. \b General \b Changes: - New supported suites: GFS_v17_p8_ugwpv1, GFS_v16_RRTMGP, and HRRR_gf suites - New \ref CLM_LAKE_page in HRRR_gf suite -- New \ref GFS_ugwpv1_gsldrag in GFS_v17_p8_ugwpv1 suite combines the \ref GFS_drag_suite with the version 1 UGWP non-stationary gravity wave drag (NGW) scheme of Yudin et al. (2020)\cite yudin_et_al_2020 +- New \ref ugwpv1_gsldrag in GFS_v17_p8_ugwpv1 suite combines the \ref GFS_drag_suite with the version 1 UGWP non-stationary gravity wave drag (NGW) scheme of Yudin et al. (2020)\cite yudin_et_al_2020 - New \ref GFS_RRTMGP_page (Pincus et al. 2019 \cite pincus_et_al_2019) in GFS_v16_RRTMGP suite -- New RRFS smoke/dust scheme in HRRR_gf suite -GFS_v17_p8, HRRR, RRFS_v1beta, RAP suites in CCPP v6.0.0 are no longer supported. +Suites GFS_v17_p8, HRRR, RRFS_v1beta, and RAP, which were supported with CCPP v6.0.0, have been phased out. \b GFS \b Scale-aware \b SAS \b Cumulus \b Schemes: The updates between GFSv16 and GFSv17 are carefully outlined in Bengtsson and Han (2024)(submitted to \a Weather \a and \a Forecasting). The main updates include: - - Implementation of a positive definition mass-flux scheme and a method for removing the negative tracers (Han et al. 2022 \cite Han_et_al_2022) - Introduction of a new closure based on a prognostic evolution of the convective updraft area fraction in both shallow and deep convection (Bengtsson et al. 2022 \cite Bengtsson_2022) - Introduction of 3D effects of cold-pool dynamics and stochastic initiation using self-organizing cellular automata stochastic convective organization scheme (not supported; Bengtsson et al. 2021 \cite bengtsson_et_al_2021) @@ -24,14 +22,30 @@ The updates between GFSv16 and GFSv17 are carefully outlined in Bengtsson and Ha - Introduction of stricter convective initiation criteria to allow for more CAPE to build up to address a low CAPE bias in GFSv16 (Han et al. 2021 \cite han_2021) - Reduction of convective rain evaporation rate to address a systematic cold bias near the surface in GFSv16 (Han et al. 2021 \cite han_2021) +\b Grell-Freitas \b Scale \b and \b Aerosol \b Aware \b Convection \b Scheme: +- Update for aerosol-awareness (experimental and not supported) +- Scale-awareness turned off when explicit microphysics is not active anywhere in the column +- Convection is completely suppressed at grid points where the MYNN PBL sheme produces shallow convection +- Radar reflectivity considers mass flux PDF as well as whether scale-awareness is turned on at the gird point in equation + \b GFS \b Scale-aware \b TKE-EDMF \b PBL \b Scheme: - Implementation of a parameterization for environmental wind shear effect in the GFS TKE-EDMF PBL and cumulus schemes to reduce -the negative hurricane intensity biases. In addition, the entrainment rates are enhanced -proportionally to the sub-cloud or PBL mean TKE (turbulent kinetic energy) when TKE is larger than a threshold value +the negative hurricane intensity biases. +- Entrainment rates are enhanced proportionally to the sub-cloud or PBL mean TKE (turbulent kinetic energy) when TKE is larger than a threshold value - Increased entrainment rate as a function of vegetation fraction and surface roughness length to enhance the underestimated CAPE forecasts in the GFS \sa Han et al.(2024) \cite Han_2024 +\b MYNN-EDMF \b PBL \b Scheme: +- Small increase of buoyancy length scale in convective environment +- Patch for ensuring non-zero cloud fractions for all grid cells where cloud mixing ratio is greater than 1e-6 or ice mixing ratio is greater than 1e-9 + +\b Subgrid-scale (\b SGS) \b Clouds \b Scheme: +- Bug fix for cloud condensate input into RRTMG radiation +- New code section for use with SAS cumulus scheme +- Cloud fraction now computed as a mix between the area-dependent form and the modified Chaboureau and Bechtold (2005) \cite Chaboureau_2005 form +- Adjusted limit for the boundary flux functions + \b Thompson \b Cloud \b Microphysics \b Scheme: - Ice generation supersaturation requirement reduced from 0.25 to 0.15 to generate more ice at the upper levels and reduce the outgoing longwave radiation bias @@ -43,6 +57,13 @@ the downward shortwave radiative flux and reduce the negative bias off coastal r \note The above improvements were tested with the non-aerosol option (in GFS_v17_p8_ugwpv1 suite), so results with the aerosol-aware Thompson (in HRRR_gf suite) may vary. +\b NSSL \b Cloud \b Microphysics \b Scheme: +- Updated with 3-moment option + +\b Radiation +- Coupling of GOCART aerosols with radiation (iaer=2011) +- Convective cloud water (liquid water + ice water) added to the calculations of cloud water path and ice water path for radiation cloud properties + \b NoahMP \b Land \b Surface \b Model: - Option for using the unified frozen precipitation fraction in NoahMP - Diagnostic 2-meter temperature and humidity now based on vegetation and bare-ground tiles (new namelist option \a iopt_diag) @@ -62,26 +83,9 @@ Thompson (in HRRR_gf suite) may vary. - Coefficient in soil resistance formulation (Sakaguchi and Zeng, 2009 \cite sakaguchi_and_zeng_2009) raised from 0.7 to 1.0 to increase soil resistance to evaporation - Computation of snow cover fraction and snow thermal conductivity updated - -\b MYNN-EDMF \b PBL \b Scheme: -- Small increase of buoyancy length scale in convective environment -- Patch for ensuring non-zero cloud fractions for all grid cells where cloud mixing ratio is greater than 1e-6 or ice mixing ratio is greater than 1e-9 - -\b Subgrid-scale (\b SGS) \b Clouds \b Scheme: -- Bug fix for cloud condensate input into RRTMG radiation -- New code section for use with SAS cumulus scheme -- Cloud fraction now computed as a mix between the area-dependent form and the modified Chaboureau and Bechtold (2005) \cite Chaboureau_2005 form -- Adjusted limit for the boundary flux functions - \b MYNN \b Surface-layer \b Scheme - Reintroduce friction velocity averaging over water to reduce noise in 10-m winds in the hurricane regime -\b Grell-Freitas \b Scale \b and \b Aerosol \b Aware \b Convection \b Scheme: -- Update for aerosol-awareness (experimental and not supported) -- Scale-awareness turned off when explicit microphysics is not active anywhere in the column -- Convection is completely suppressed at grid points where the MYNN PBL sheme produces shallow convection -- Radar reflectivity considers mass flux PDF as well as whether scale-awareness is turned on at the gird point in equation - \b Unified \b Gravity \b Wave \b Physics \b Scheme: - Replacement of the resolution-dependent effective grid spacing (cdmbgwd) with a constant (=6dx) - Removal of the planetary boundary layer height in determining the reference level @@ -91,12 +95,5 @@ Thompson (in HRRR_gf suite) may vary. - Suppression of gravity wave breaking in the upper atmosphere (over 7.5 hPa) to avoid numerical instability - Revision in sub-grid orography data considering the mathematical definition of moments -\b NSSL \b Cloud \b Microphysics \b Scheme: -- Updated with 3-moment option - -\b Radiation -- Coupling of GOCART aerosols with radiation (iaer=2011) -- Convective cloud water (liquid water + ice water) added to the calculations of cloud water path and ice water path for radiation cloud properties - */ diff --git a/physics/docs/pdftxt/mainpage.txt b/physics/docs/pdftxt/mainpage.txt index 1752f9e29..c065c3fd2 100644 --- a/physics/docs/pdftxt/mainpage.txt +++ b/physics/docs/pdftxt/mainpage.txt @@ -48,6 +48,6 @@ development of CCPP-Physics. - \b NASA \b Goddard \b Space \b Flight \b Center for their support and contribution for this CCPP scientific documentation (SciDoc). -\n Thanks also to the CCPP SciDoc Team at the Developmental Testbed Center. +\n Thanks also to the CCPP SciDoc Team at the Developmental Testbed Center: Man Zhang, Ligia Bernardet, and Mike Kavulich */ From 36abac92aa914fe296c7502b24510d67ab92e153 Mon Sep 17 00:00:00 2001 From: Man Zhang Date: Wed, 14 Aug 2024 16:24:40 -0600 Subject: [PATCH 21/29] scidoc updates --- physics/MP/GFDL/gfdl_cloud_microphys.F90 | 3 + .../MP/GFDL/module_gfdl_cloud_microphys.F90 | 2 +- physics/MP/NSSL/module_mp_nssl_2mom.F90 | 13 ++-- physics/MP/Thompson/module_mp_thompson.F90 | 2 +- ...mp_thompson_make_number_concentrations.F90 | 2 + physics/PBL/MYNN_EDMF/module_bl_mynn.F90 | 1 + physics/PBL/SATMEDMF/mfscu.f | 2 + physics/PBL/mfpbl.f | 3 + physics/PBL/mfpblt.f | 4 ++ physics/PBL/mfpbltq.f | 6 +- physics/Radiation/RRTMG/iounitdef.f | 2 + physics/Radiation/mersenne_twister.f | 8 +-- physics/Radiation/radiation_aerosols.f | 6 +- physics/Radiation/radiation_cloud_overlap.F90 | 3 +- physics/SFC_Layer/MYNN/module_sf_mynn.F90 | 2 + .../SFC_Layer/UFS/module_nst_parameters.f90 | 7 ++- .../SFC_Layer/UFS/module_nst_water_prop.f90 | 4 +- physics/SFC_Models/Land/RUC/lsm_ruc.F90 | 1 + physics/docs/ccpp_doxyfile | 1 + physics/docs/library.bib | 59 ++++++++++++++++++- physics/docs/pdftxt/suite_input.nml.txt | 23 +++++++- 21 files changed, 124 insertions(+), 30 deletions(-) diff --git a/physics/MP/GFDL/gfdl_cloud_microphys.F90 b/physics/MP/GFDL/gfdl_cloud_microphys.F90 index 8b149616e..b0b632646 100644 --- a/physics/MP/GFDL/gfdl_cloud_microphys.F90 +++ b/physics/MP/GFDL/gfdl_cloud_microphys.F90 @@ -1,6 +1,9 @@ !> \file gfdl_cloud_microphys.F90 !! This file contains the CCPP entry point for the column GFDL cloud microphysics ( Chen and Lin (2013) !! \cite chen_and_lin_2013 ). + +!> This module contains the CCPP entry point for the column GFDL cloud microphysics ( Chen and Lin (2013) +!! \cite chen_and_lin_2013 ). module gfdl_cloud_microphys use gfdl_cloud_microphys_mod, only: gfdl_cloud_microphys_mod_init, & diff --git a/physics/MP/GFDL/module_gfdl_cloud_microphys.F90 b/physics/MP/GFDL/module_gfdl_cloud_microphys.F90 index 5cab1abbc..4db36c9a3 100644 --- a/physics/MP/GFDL/module_gfdl_cloud_microphys.F90 +++ b/physics/MP/GFDL/module_gfdl_cloud_microphys.F90 @@ -27,7 +27,7 @@ ! ======================================================================= !>\defgroup mod_gfdl_cloud_mp GFDL Cloud MP modules !!\ingroup gfdlmp -!! This module contains the column GFDL Cloud microphysics scheme. +!> This module contains the column GFDL Cloud microphysics scheme. module gfdl_cloud_microphys_mod ! use mpp_mod, only: stdlog, mpp_pe, mpp_root_pe, mpp_clock_id, & diff --git a/physics/MP/NSSL/module_mp_nssl_2mom.F90 b/physics/MP/NSSL/module_mp_nssl_2mom.F90 index 875898dcc..c57110bad 100644 --- a/physics/MP/NSSL/module_mp_nssl_2mom.F90 +++ b/physics/MP/NSSL/module_mp_nssl_2mom.F90 @@ -1,11 +1,5 @@ !> \file module_mp_nssl_2mom.F90 - - - - - - - +!! !--------------------------------------------------------------------- ! code snapshot: "Sep 22 2023" at "22:01:53" @@ -177,7 +171,10 @@ !>\defgroup mod_nsslmp NSSL 2-moment microphysics modules !!\ingroup nsslmp -!! Module for NSSL cloud physics + +!> This module contains 1/2/3-moment bulk microphysics scheme based on a combination of +!! Straka and Mansell (2005, JAM) and Zeigler (1985, JAS) and modified/upgraded in +!! in Mansell, Zeigler, and Bruning (2010, JAS). MODULE module_mp_nssl_2mom IMPLICIT NONE diff --git a/physics/MP/Thompson/module_mp_thompson.F90 b/physics/MP/Thompson/module_mp_thompson.F90 index aa1361c3b..c19df1eaa 100644 --- a/physics/MP/Thompson/module_mp_thompson.F90 +++ b/physics/MP/Thompson/module_mp_thompson.F90 @@ -3,7 +3,7 @@ !>\ingroup aathompson -!! This module computes the moisture tendencies of water vapor, +!> This module computes the moisture tendencies of water vapor, !! cloud droplets, rain, cloud ice (pristine), snow, and graupel. !! Prior to WRFv2.2 this code was based on Reisner et al (1998), but !! few of those pieces remain. A complete description is now found in diff --git a/physics/MP/Thompson/module_mp_thompson_make_number_concentrations.F90 b/physics/MP/Thompson/module_mp_thompson_make_number_concentrations.F90 index 72a1055dd..b00242966 100644 --- a/physics/MP/Thompson/module_mp_thompson_make_number_concentrations.F90 +++ b/physics/MP/Thompson/module_mp_thompson_make_number_concentrations.F90 @@ -2,6 +2,8 @@ !! This file contains !>\ingroup aathompson + +!>This module ocntains lookup tables of radiative effective radius of cloud ice, rain and water. module module_mp_thompson_make_number_concentrations use physcons, only: PI => con_pi diff --git a/physics/PBL/MYNN_EDMF/module_bl_mynn.F90 b/physics/PBL/MYNN_EDMF/module_bl_mynn.F90 index 04f8faa59..aa81e0999 100644 --- a/physics/PBL/MYNN_EDMF/module_bl_mynn.F90 +++ b/physics/PBL/MYNN_EDMF/module_bl_mynn.F90 @@ -248,6 +248,7 @@ ! Many of these changes are now documented in references listed above. !==================================================================== +!> This module contains the entity of MYNN-EDMF PBL scheme MODULE module_bl_mynn use bl_mynn_common,only: & diff --git a/physics/PBL/SATMEDMF/mfscu.f b/physics/PBL/SATMEDMF/mfscu.f index e0c184139..a9faa735e 100644 --- a/physics/PBL/SATMEDMF/mfscu.f +++ b/physics/PBL/SATMEDMF/mfscu.f @@ -1,6 +1,8 @@ !>\file mfscu.f !! This file contains the mass flux and downdraft parcel preperties !! parameterization for stratocumulus-top-driven turbulence. + + module mfscu_mod contains !>\ingroup satmedmf diff --git a/physics/PBL/mfpbl.f b/physics/PBL/mfpbl.f index dac548711..ef4fa3860 100644 --- a/physics/PBL/mfpbl.f +++ b/physics/PBL/mfpbl.f @@ -1,5 +1,8 @@ !> \file mfpbl.f !! This file contains the subroutine that calculates the updraft properties and mass flux for use in the Hybrid EDMF PBL scheme. + +!> This module contains the subroutine that calculates the updraft properties and mass flux +!! for use in the Hybrid EDMF PBL scheme. module mfpbl_mod contains !> \ingroup HEDMF diff --git a/physics/PBL/mfpblt.f b/physics/PBL/mfpblt.f index 67e554b92..68b8d67a7 100644 --- a/physics/PBL/mfpblt.f +++ b/physics/PBL/mfpblt.f @@ -1,6 +1,10 @@ !>\file mfpblt.f !! This file contains the subroutine that calculates mass flux and !! updraft parcel properties for thermals driven by surface heating +!! for use in the TKE-EDMF PBL scheme. + +!> This module contains the subroutine that calculates mass flux and +!! updraft parcel properties for thermals driven by surface heating !! for use in the TKE-EDMF PBL scheme. module mfpblt_mod contains diff --git a/physics/PBL/mfpbltq.f b/physics/PBL/mfpbltq.f index a93862a41..2812a7eab 100644 --- a/physics/PBL/mfpbltq.f +++ b/physics/PBL/mfpbltq.f @@ -1,5 +1,9 @@ !>\file mfpbltq.f -!! This file contains the subroutine that calculates mass flux and +!! This file contains the subroutine that computes mass flux and +!! updraft parcel properties for +!! thermals driven by surface heating + +!> This module contains the subroutine that calculates mass flux and !! updraft parcel properties for thermals driven by surface heating !! for use in the TKE-EDMF PBL scheme (updated version). module mfpbltq_mod diff --git a/physics/Radiation/RRTMG/iounitdef.f b/physics/Radiation/RRTMG/iounitdef.f index af3a700b8..3f298b9d3 100644 --- a/physics/Radiation/RRTMG/iounitdef.f +++ b/physics/Radiation/RRTMG/iounitdef.f @@ -48,6 +48,8 @@ !!!!! ========================================================== !!!!! !========================================! +!> this module defines fortran unit numbers for input/output data +!! files for the ncep gfs model. module module_iounitdef ! !........................................! ! diff --git a/physics/Radiation/mersenne_twister.f b/physics/Radiation/mersenne_twister.f index 58bf43487..bdd0da080 100644 --- a/physics/Radiation/mersenne_twister.f +++ b/physics/Radiation/mersenne_twister.f @@ -2,10 +2,10 @@ !! This file contains the module that calculates random numbers using the !! Mersenne twister -!> \defgroup mersenne_ge Mersenne Twister Module -!! Module: mersenne_twister Modern random number generator -!!\author Iredell Org: W/NX23 date: 2005-06-14 -!! Abstract: This module calculates random numbers using the Mersenne twister. +! Module: mersenne_twister Modern random number generator +!\author Iredell Org: W/NX23 date: 2005-06-14 +!> This module calculates random numbers using the Mersenne twister. +!! !! (It has been adapted to a Fortran 90 module from open source software. !! The comments from the original software are given below in the remarks.) !! The Mersenne twister (aka MT19937) is a state-of-the-art random number diff --git a/physics/Radiation/radiation_aerosols.f b/physics/Radiation/radiation_aerosols.f index 0a906fcf3..983d592c1 100644 --- a/physics/Radiation/radiation_aerosols.f +++ b/physics/Radiation/radiation_aerosols.f @@ -122,9 +122,9 @@ !!!!! ========================================================== !!!!! -!========================================! - module module_radiation_aerosols ! -!........................................! +!> This module contains climatological atmospheric aerosol schemes for +!! radiation computations. + module module_radiation_aerosols ! use machine, only : kind_phys, kind_io4, kind_io8 use module_iounitdef, only : NIAERCM diff --git a/physics/Radiation/radiation_cloud_overlap.F90 b/physics/Radiation/radiation_cloud_overlap.F90 index e69adcb7f..358db5cd0 100644 --- a/physics/Radiation/radiation_cloud_overlap.F90 +++ b/physics/Radiation/radiation_cloud_overlap.F90 @@ -1,8 +1,7 @@ !>\file radiation_cloud_overlap.F90 !! -!>\defgroup rad_cld_ovr_mod Radiation Cloud Overlap Module -!! This module contains the calculation of cloud overlap parameters for both RRTMG and RRTMGP. +!> This module contains the calculation of cloud overlap parameters for both RRTMG and RRTMGP. module module_radiation_cloud_overlap use machine, only : kind_phys implicit none diff --git a/physics/SFC_Layer/MYNN/module_sf_mynn.F90 b/physics/SFC_Layer/MYNN/module_sf_mynn.F90 index 09aa54af6..06db25441 100644 --- a/physics/SFC_Layer/MYNN/module_sf_mynn.F90 +++ b/physics/SFC_Layer/MYNN/module_sf_mynn.F90 @@ -3,6 +3,8 @@ !WRF:MODEL_LAYER:PHYSICS ! !>\ingroup mynn_sfc +!> This module contain routines to calculate stability parameters, kinematic siscosity +!! in MYNN surface layer scheme MODULE module_sf_mynn !------------------------------------------------------------------- diff --git a/physics/SFC_Layer/UFS/module_nst_parameters.f90 b/physics/SFC_Layer/UFS/module_nst_parameters.f90 index 5308345e2..984335cc8 100644 --- a/physics/SFC_Layer/UFS/module_nst_parameters.f90 +++ b/physics/SFC_Layer/UFS/module_nst_parameters.f90 @@ -4,11 +4,12 @@ !>\defgroup nst_parameters GFS NSST Parameter Module !! \ingroup gfs_nst_main_mod -!! This module contains constants and parameters used in GFS + +!> This module contains constants and parameters used in GFS !! near surface sea temperature scheme. -!! history: -!! 20210305: X.Li, reduce z_w_max from 30 m to 20 m module module_nst_parameters +! history: +! 20210305: X.Li, reduce z_w_max from 30 m to 20 m use machine, only : kind_phys ! diff --git a/physics/SFC_Layer/UFS/module_nst_water_prop.f90 b/physics/SFC_Layer/UFS/module_nst_water_prop.f90 index 858659e90..f71c35e8b 100644 --- a/physics/SFC_Layer/UFS/module_nst_water_prop.f90 +++ b/physics/SFC_Layer/UFS/module_nst_water_prop.f90 @@ -1,10 +1,10 @@ - !>\file module_nst_water_prop.f90 !! This file contains GFS NSST water property subroutines. !>\defgroup waterprop GFS NSST Water Property -!!This module contains GFS NSST water property subroutines. !!\ingroup gfs_nst_main_mod + +!> This module contains GFS NSST water property subroutines. module module_nst_water_prop use machine , only : kind_phys use module_nst_parameters , only : t0k, zero, one, half diff --git a/physics/SFC_Models/Land/RUC/lsm_ruc.F90 b/physics/SFC_Models/Land/RUC/lsm_ruc.F90 index 0bb655e45..9a41b066b 100644 --- a/physics/SFC_Models/Land/RUC/lsm_ruc.F90 +++ b/physics/SFC_Models/Land/RUC/lsm_ruc.F90 @@ -1,6 +1,7 @@ !>\file lsm_ruc.F90 !! This file contains the RUC land surface scheme driver. +!> This module contain the RUC land surface model driver module lsm_ruc use machine, only: kind_phys, kind_dbl_prec diff --git a/physics/docs/ccpp_doxyfile b/physics/docs/ccpp_doxyfile index 4efdb161f..6a7554417 100644 --- a/physics/docs/ccpp_doxyfile +++ b/physics/docs/ccpp_doxyfile @@ -1063,6 +1063,7 @@ EXCLUDE = ../Radiation/RRTMGP/rte-rrtmgp \ ../CONV/nTiedtke \ ../CONV/RAS \ ../CONV/SAS \ + ../SFC_Layer/UFS/date_def.f \ ../GWD/cires_ugwpv1_module.F90 \ ../GWD/cires_ugwpv1_initialize.F90 \ ../GWD/cires_ugwpv1_oro.F90 \ diff --git a/physics/docs/library.bib b/physics/docs/library.bib index b5f8b467b..84d780687 100644 --- a/physics/docs/library.bib +++ b/physics/docs/library.bib @@ -1,13 +1,68 @@ %% This BibTeX bibliography file was created using BibDesk. %% https://bibdesk.sourceforge.io/ -%% Created for Man Zhang at 2024-08-06 10:37:12 -0600 +%% Created for Man Zhang at 2024-08-09 15:31:41 -0600 %% Saved with string encoding Unicode (UTF-8) +@article{Yang_2008, + author = {Yang, Kun and Koike, Toshio and Ishikawa, Hirohiko and Kim, Joon and Li, Xin and Liu, Huizhi and Liu, Shaomin and Ma, Yaoming and Wang, Jieming}, + date-added = {2024-08-09 15:31:11 -0600}, + date-modified = {2024-08-09 15:31:11 -0600}, + doi = {10.1175/2007jamc1547.1}, + issn = {1558-8424}, + journal = {Journal of Applied Meteorology and Climatology}, + month = jan, + number = {1}, + pages = {276{\^a}€“290}, + publisher = {American Meteorological Society}, + title = {Turbulent Flux Transfer over Bare-Soil Surfaces: Characteristics and Parameterization}, + url = {http://dx.doi.org/10.1175/2007JAMC1547.1}, + volume = {47}, + year = {2008}, + bdsk-url-1 = {http://dx.doi.org/10.1175/2007JAMC1547.1}} + +@article{yang_et_al_2002, + abstract = {Abstract In surface flux parametrizations, aerodynamic roughness length zm0, and thermal roughness length zh0, are used to account for different resistances for momentum transfer and heat transfer. This paper introduces a turbulence-related length hT and parametrizes the quantity kA−1=ln(hT/zh0) in order to estimate zh0. Based on data at three sites on the Tibetan Plateau, a general formula for kA−1 is obtained for the surfaces covered by bare soil or partially covered by very short vegetation. A surface flux parametrization with this formula provides better estimates of heat flux than either profile flux parametrization or surface flux parametrization with kB−1 (i.e. ln(zm0/zh0)). Therefore, the use of a reasonable length to scale zh0 can contribute to the improvement of surface flux parametrizations. Copyright {\copyright} 2002 Royal Meteorological Society}, + author = {Yang, K. and Koike, T. and Fujii, H. and Tamagawa, K. and Hirose, N.}, + doi = {https://doi.org/10.1256/003590002320603548}, + eprint = {https://rmets.onlinelibrary.wiley.com/doi/pdf/10.1256/003590002320603548}, + journal = {Quarterly Journal of the Royal Meteorological Society}, + keywords = {Heat transfer, Surface temperature, Thermal roughness length, Turbulence}, + number = {584}, + pages = {2073-2087}, + title = {Improvement of surface flux parametrizations with a turbulence-related length}, + url = {https://rmets.onlinelibrary.wiley.com/doi/abs/10.1256/003590002320603548}, + volume = {128}, + year = {2002}, + bdsk-url-1 = {https://rmets.onlinelibrary.wiley.com/doi/abs/10.1256/003590002320603548}, + bdsk-url-2 = {https://doi.org/10.1256/003590002320603548}} + +@article{chen_and_zhang_2009, + abstract = {This study addresses the land-atmospheric coupling strength by using long-term AmeriFlux data from a wide range of land covers and climate regimes to reconstitute the surface exchange coefficient, Ch, which governs the total surface heat fluxes. For spring and summer, results show stronger coupling for tall canopy with Ch values ten times larger than for shorter vegetation. Observed Ch are then compared to values from the Noah land model. Results indicate that Noah underestimated (overestimated) Ch for forest (grass and crops), implying an insufficient (too efficient) coupling for tall canopy (short canopy). This discrepancy is attributed to the treatment of the roughness length for heat. With modest adjustments, the Noah model can reproduce the observed Ch. This study highlights the crucial role of treating the surface exchange processes in coupled land/weather/climate models and the need to use long-term flux data for different vegetation types and climate regimes to assess and mitigate their deficiencies.}, + author = {Chen, Fei and Zhang, Ying}, + doi = {https://doi.org/10.1029/2009GL037980}, + eprint = {https://agupubs.onlinelibrary.wiley.com/doi/pdf/10.1029/2009GL037980}, + journal = {Geophysical Research Letters}, + keywords = {land-atmospheric coupling strength, land-atmospheric interactions, surface exchange coefficients}, + number = {10}, + title = {On the coupling strength between the land surface and the atmosphere: From viewpoint of surface exchange coefficients}, + url = {https://agupubs.onlinelibrary.wiley.com/doi/abs/10.1029/2009GL037980}, + volume = {36}, + year = {2009}, + bdsk-url-1 = {https://agupubs.onlinelibrary.wiley.com/doi/abs/10.1029/2009GL037980}, + bdsk-url-2 = {https://doi.org/10.1029/2009GL037980}} + +@inproceedings{Zilitinkevich_1995, + author = {Sergej Zilitinkevich}, + title = {Non-local turbulent transport pollution dispersion aspects of coherent structure of convective flows}, + url = {https://api.semanticscholar.org/CorpusID:119885197}, + year = {1995}, + bdsk-url-1 = {https://api.semanticscholar.org/CorpusID:119885197}} + @article{Dowell_2022, author = {Dowell, David C. and Alexander, Curtis R. and James, Eric P. and Weygandt, Stephen S. and Benjamin, Stanley G. and Manikin, Geoffrey S. and Blake, Benjamin T. and Brown, John M. and Olson, Joseph B. and Hu, Ming and Smirnova, Tatiana G. and Ladwig, Terra and Kenyon, Jaymes S. and Ahmadov, Ravan and Turner, David D. and Duda, Jeffrey D. and Alcott, Trevor I.}, date-added = {2024-08-01 13:13:04 -0600}, @@ -132,7 +187,7 @@ @article{Bengtsson_et_al_2020 bdsk-url-2 = {https://doi.org/10.1029/2020MS002260}} @article{Han_et_al_2022, - author = {Han, J. and F. Yang and R. Montuoro and W. Li and R. Sun}, + author = {Han, J. and F. Yang and R. Montuoro and W. Li and R. Sun}, date-added = {2024-07-02 11:17:39 -0600}, date-modified = {2024-08-06 10:35:59 -0600}, institution = {NCEP Office Note 506}, diff --git a/physics/docs/pdftxt/suite_input.nml.txt b/physics/docs/pdftxt/suite_input.nml.txt index d8080f813..71aa5783d 100644 --- a/physics/docs/pdftxt/suite_input.nml.txt +++ b/physics/docs/pdftxt/suite_input.nml.txt @@ -536,7 +536,7 @@ show some variables in the namelist that must match the SDF.
    1 lsoil lsm_noah number of soil layers 4 -lsoil_lsm +lsoil_lsm GFS_phys_time_vary.scm.F90 number of soil layers internal to land surface model; -1 use lsoil -1 rdlai lsm_ruc flag to read leaf area index from input files .false. ivegsrc lsm_noah, lsm_ruc, noahmpdrv, sfc_diff flag for vegetation type dataset choice: \n
      @@ -723,8 +723,24 @@ lsoil_lsm lheatstrg gfs_surface_generic_post flag for canopy heat storage parameterization .false. z0fac gfs_surface_generic_post surface roughness fraction factor 0.3 e0fac gfs_surface_generic_post latent heat flux fraction factor relative to sensible heat flux,e.g., e0fac=0.5 indicates that canopy heat storage for latent heat flux is 50% of that for sensible heat flux 0.5 -isftcflx mynnsfc_wrapper flag for thermal roughness lengths over water in MYNN-SFCLAY 0 -iz0tlnd mynnsfc_wrapper flag for thermal roughness lengths over land in MYNN-SFCLAY 0 +isftcflx mynnsfc_wrapper flag for thermal roughness lengths over water in MYNN-SFCLAY +
        +
      • 0: z0,zt, and zq from the COARE algorithm. +
      • 1: z0 from Davis et al.(2008), zt&zq from COARE 3.0/3.5 +
      • 2: z0 from Davis et al.(2008), zt&zq from Garratt (1992) +
      • 3: z0 from Taylor and Yelland (2004), zt and zq from COARE 3.0/3.5 +
      • 4: GFS -taken from sfc_diff.f, for comparison/testing +
      + 0 +iz0tlnd mynnsfc_wrapper flag for thermal roughness lengths over land in MYNN-SFCLAY +
        +
      • 0: Zilitinkevich (1995) \cite Zilitinkevich_1995; Czil now set to 0.095 +
      • 1: Czil_new (modified according to Chen and Zhang (2009) \cite chen_and_zhang_2009) +
      • 2: Modified Yang et al.(2002, 2008)\cite yang_et_al_2002 \cite Yang_2008 - generalized for all landuse +
      • 3: constant zt = z0/7.4 (original form; Garratt 1992) +
      • 4: GFS - taken from sfc_diff.f, for comparison/testing +
      + 0 sfclay_compute_flux mynnsfc_wrapper flag for computing surface scalar fluxes in MYNN-SFCLAY .false. sfclay_compute_diag mynnsfc_wrapper flag for computing surface diagnostics in MYNN-SFCLAY .false. thsfc_loc GFS_surface_composites_post, sfc_diff, sfc_diag, sfc_nst, noahmpdrv, sfc_sice flag for local .vs. standard potential temperature .true. @@ -747,5 +763,6 @@ iccn kice sfc_sice number of layers in ice 2 lrefres flag for radar reflectivity in restart file .false. +
    */ From 9085a244d46408dd16b55f380e6542c7af6705f8 Mon Sep 17 00:00:00 2001 From: Man Zhang Date: Fri, 16 Aug 2024 11:48:16 -0600 Subject: [PATCH 22/29] scidoc update --- physics/CONV/SAMF/samfshalcnv.f | 3 +- physics/GWD/cires_ugwp_initialize.F90 | 3 +- physics/GWD/ugwp_driver_v0.F | 4 +- physics/GWD/ugwpv1_gsldrag_post.F90 | 3 +- .../MP/GFDL/module_gfdl_cloud_microphys.F90 | 1 + physics/MP/NSSL/mp_nssl.F90 | 3 +- physics/MP/Thompson/mp_thompson.F90 | 3 +- physics/MP/Thompson/mp_thompson_post.F90 | 8 +- physics/MP/Thompson/mp_thompson_pre.F90 | 3 +- physics/PBL/SATMEDMF/mfscuq.f | 4 +- physics/PBL/SATMEDMF/satmedmfvdifq.F | 4 +- physics/PBL/tridi.f | 3 + .../Radiation/RRTMG/rrtmg_lw_cloud_optics.F90 | 9 +- .../Radiation/RRTMG/rrtmg_sw_cloud_optics.F90 | 1 + .../RRTMGP/rrtmgp_aerosol_optics.F90 | 1 + .../RRTMGP/rrtmgp_lw_cloud_optics.F90 | 5 +- .../Radiation/RRTMGP/rrtmgp_lw_gas_optics.F90 | 5 +- physics/Radiation/RRTMGP/rrtmgp_lw_main.F90 | 3 +- physics/Radiation/RRTMGP/rrtmgp_sampling.F90 | 4 +- .../RRTMGP/rrtmgp_sw_cloud_optics.F90 | 1 + .../Radiation/RRTMGP/rrtmgp_sw_gas_optics.F90 | 5 +- physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 | 1 + physics/Radiation/radiation_tools.F90 | 1 + physics/SFC_Layer/MYNN/mynnsfc_wrapper.F90 | 3 +- physics/SFC_Layer/UFS/sfc_diag.f | 2 +- physics/SFC_Layer/UFS/sfc_diag_post.F90 | 2 +- physics/SFC_Layer/UFS/sfc_nst_post.f90 | 3 +- physics/SFC_Layer/UFS/sfc_nst_pre.f90 | 5 +- .../SFC_Models/Land/Noah/namelist_soilveg.f | 2 + physics/SFC_Models/Land/Noah/sflx.f | 4 +- .../Land/Noah/surface_perturbation.F90 | 1 + .../SFC_Models/Land/Noahmp/noahmp_tables.f90 | 3 +- .../Land/RUC/namelist_soilveg_ruc.F90 | 1 + physics/docs/ccpp_doxyfile | 3 + .../pdftxt/RE7/input_GFS_v17_p8_ugwpv1.nml | 300 +++++++++--------- physics/docs/pdftxt/RE7/input_HRRR_gf.nml | 4 +- 36 files changed, 226 insertions(+), 185 deletions(-) diff --git a/physics/CONV/SAMF/samfshalcnv.f b/physics/CONV/SAMF/samfshalcnv.f index f720c4701..184f302cd 100644 --- a/physics/CONV/SAMF/samfshalcnv.f +++ b/physics/CONV/SAMF/samfshalcnv.f @@ -1,6 +1,7 @@ !> \file samfshalcnv.f -!! This file contains the Scale-Aware mass flux Shallow Convection scheme. +!! +!> This module contains the Scale-Aware mass flux Shallow Convection scheme. module samfshalcnv use samfcnv_aerosols, only : samfshalcnv_aerosols diff --git a/physics/GWD/cires_ugwp_initialize.F90 b/physics/GWD/cires_ugwp_initialize.F90 index ddcbdadf7..e391093a0 100644 --- a/physics/GWD/cires_ugwp_initialize.F90 +++ b/physics/GWD/cires_ugwp_initialize.F90 @@ -6,7 +6,7 @@ ! init gw-background dissipation !=============================== -!> Define constants +!> This module contains UGWP v0 initialization schemes module ugwp_common_v0 ! use machine, only: kind_phys @@ -95,6 +95,7 @@ end subroutine init_global_gwdis_v0 ! ugwpv0_oro_init ! !========================================================================= +!> This module contains orographic wave source schemes for UGWP v0. module ugwpv0_oro_init use ugwp_common_v0, only : bnv2min, grav, grcp, fv, grav, cpd, grcp, pi diff --git a/physics/GWD/ugwp_driver_v0.F b/physics/GWD/ugwp_driver_v0.F index 0f4ad447e..1bbb2770d 100644 --- a/physics/GWD/ugwp_driver_v0.F +++ b/physics/GWD/ugwp_driver_v0.F @@ -1,4 +1,6 @@ !>\file ugwp_driver_v0.F + +!> This module contains the UGWP v0 driver module module ugwp_driver_v0 use cires_orowam2017 contains @@ -9,7 +11,7 @@ module ugwp_driver_v0 ! !===================================================================== !>\ingroup cires_ugwp_run_mod -!>\defgroup ugwp_driverv0_mod GFS UGWP V0 Driver Module +!>\defgroup ugwp_driverv0_mod UGWP V0 Driver Module !! This is the CIRES UGWP V0 driver module !! !! Note for the sub-grid scale orography scheme in UGWP-v0: Due to degraded forecast diff --git a/physics/GWD/ugwpv1_gsldrag_post.F90 b/physics/GWD/ugwpv1_gsldrag_post.F90 index b020060af..c57ce55f5 100644 --- a/physics/GWD/ugwpv1_gsldrag_post.F90 +++ b/physics/GWD/ugwpv1_gsldrag_post.F90 @@ -1,5 +1,6 @@ !> \file ugwpv1_gsldrag_post.F90 -!! This file contains + +!> This module contains code to be executed after the UGWP v1 scheme module ugwpv1_gsldrag_post contains diff --git a/physics/MP/GFDL/module_gfdl_cloud_microphys.F90 b/physics/MP/GFDL/module_gfdl_cloud_microphys.F90 index 4db36c9a3..72f3211b5 100644 --- a/physics/MP/GFDL/module_gfdl_cloud_microphys.F90 +++ b/physics/MP/GFDL/module_gfdl_cloud_microphys.F90 @@ -27,6 +27,7 @@ ! ======================================================================= !>\defgroup mod_gfdl_cloud_mp GFDL Cloud MP modules !!\ingroup gfdlmp + !> This module contains the column GFDL Cloud microphysics scheme. module gfdl_cloud_microphys_mod diff --git a/physics/MP/NSSL/mp_nssl.F90 b/physics/MP/NSSL/mp_nssl.F90 index 7b21fbbe1..38621d591 100644 --- a/physics/MP/NSSL/mp_nssl.F90 +++ b/physics/MP/NSSL/mp_nssl.F90 @@ -3,7 +3,8 @@ !>\defgroup nsslmp NSSL MP Module -!! This module contains the front end to NSSL microphysics scheme. + +!> This module contains the front end to NSSL microphysics scheme. module mp_nssl use machine, only : kind_phys diff --git a/physics/MP/Thompson/mp_thompson.F90 b/physics/MP/Thompson/mp_thompson.F90 index 3b99deec1..6bc6bcb98 100644 --- a/physics/MP/Thompson/mp_thompson.F90 +++ b/physics/MP/Thompson/mp_thompson.F90 @@ -3,7 +3,8 @@ !>\defgroup aathompson Aerosol-Aware Thompson MP Module -!! This module contains the aerosol-aware Thompson microphysics scheme. + +!> This module contains the aerosol-aware Thompson microphysics scheme. module mp_thompson use mpi_f08 diff --git a/physics/MP/Thompson/mp_thompson_post.F90 b/physics/MP/Thompson/mp_thompson_post.F90 index c48c932f7..7b333f2b1 100644 --- a/physics/MP/Thompson/mp_thompson_post.F90 +++ b/physics/MP/Thompson/mp_thompson_post.F90 @@ -1,3 +1,7 @@ +!> \file mp_thompson_post.F90 +!! + +!>This module contain the post processing of Thompson microphysics module mp_thompson_post use mpi_f08 @@ -15,7 +19,7 @@ module mp_thompson_post contains -!! \section arg_table_mp_thompson_post_init Argument Table +!> \section arg_table_mp_thompson_post_init Argument Table !! \htmlinclude mp_thompson_post_init.html !! subroutine mp_thompson_post_init(ttendlim, errmsg, errflg) @@ -125,7 +129,7 @@ subroutine mp_thompson_post_run(ncol, nlev, tgrs_save, tgrs, prslk, dtp, ttendli end subroutine mp_thompson_post_run -!! \section arg_table_mp_thompson_post_finalize Argument Table +!> \section arg_table_mp_thompson_post_finalize Argument Table !! \htmlinclude mp_thompson_post_finalize.html !! subroutine mp_thompson_post_finalize(errmsg, errflg) diff --git a/physics/MP/Thompson/mp_thompson_pre.F90 b/physics/MP/Thompson/mp_thompson_pre.F90 index 3e65fd478..3fe78e4d1 100644 --- a/physics/MP/Thompson/mp_thompson_pre.F90 +++ b/physics/MP/Thompson/mp_thompson_pre.F90 @@ -1,8 +1,9 @@ !>\file mp_thompson_pre.F90 !! -! CCPP license goes here, as well as further documentation !>\ingroup aathompson + +!> This module contains the pre-processing of Thompson cloud microphysics module mp_thompson_pre use machine, only : kind_phys diff --git a/physics/PBL/SATMEDMF/mfscuq.f b/physics/PBL/SATMEDMF/mfscuq.f index d690dce05..b2a48d1b6 100644 --- a/physics/PBL/SATMEDMF/mfscuq.f +++ b/physics/PBL/SATMEDMF/mfscuq.f @@ -1,5 +1,7 @@ !>\file mfscuq.f -!! This file contains the mass flux and downdraft parcel preperties +!! + +!> This module contains the mass flux and downdraft parcel properties !! parameterization for stratocumulus-top-driven turbulence (updated version). module mfscuq_mod contains diff --git a/physics/PBL/SATMEDMF/satmedmfvdifq.F b/physics/PBL/SATMEDMF/satmedmfvdifq.F index 95a1e35e5..e8dbb0f91 100644 --- a/physics/PBL/SATMEDMF/satmedmfvdifq.F +++ b/physics/PBL/SATMEDMF/satmedmfvdifq.F @@ -1,8 +1,8 @@ !> \file satmedmfvdifq.F -!! This file contains the CCPP-compliant SATMEDMF scheme (updated version) which + +!> This file contains the CCPP-compliant SATMEDMF scheme (updated version) which !! computes subgrid vertical turbulence mixing using scale-aware TKE-based moist !! eddy-diffusion mass-flux (TKE-EDMF) parameterization (by Jongil Han). - module satmedmfvdifq use mfpbltq_mod use tridi_mod diff --git a/physics/PBL/tridi.f b/physics/PBL/tridi.f index 13898ad43..28faaed2e 100644 --- a/physics/PBL/tridi.f +++ b/physics/PBL/tridi.f @@ -1,5 +1,8 @@ !>\file tridi.f !! These subroutines are originally internal subroutines in moninedmf.f + +!> This module contains routine to compute tridiagonal matrix elements for TKE, heat, moist +!! and momentum module tridi_mod contains diff --git a/physics/Radiation/RRTMG/rrtmg_lw_cloud_optics.F90 b/physics/Radiation/RRTMG/rrtmg_lw_cloud_optics.F90 index 7477a498e..082428b08 100644 --- a/physics/Radiation/RRTMG/rrtmg_lw_cloud_optics.F90 +++ b/physics/Radiation/RRTMG/rrtmg_lw_cloud_optics.F90 @@ -1,16 +1,17 @@ !>\file rrtmg_lw_cloud_optics.F90 !! +!>This module contains the cloud optics property module for RRTMG-LW module mo_rrtmg_lw_cloud_optics use machine, only: kind_phys use mersenne_twister, only: random_setseed, random_number, random_stat implicit none - !< Parameter used for RRTMG cloud-optics + !> Parameter used for RRTMG cloud-optics integer,parameter :: & nBandsLW_RRTMG = 16 - !< ipat is bands index for ebert & curry ice cloud (for iflagice=1) + !> ipat is bands index for ebert & curry ice cloud (for iflagice=1) integer,dimension(nBandsLW_RRTMG),parameter :: & ipat = (/ 1, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5 /) real(kind_phys), parameter :: & @@ -18,7 +19,7 @@ module mo_rrtmg_lw_cloud_optics abssnow0 = 1.5, & !< Snow flake absorption coefficient (micron), fu coeff abssnow1 = 2.34e-3 !< Snow flake absorption coefficient \f$(m^{2}/g)\f$, ncar coef - !< Reset diffusivity angle for Bands 2-3 and 5-9 to vary (between 1.50 + !> Reset diffusivity angle for Bands 2-3 and 5-9 to vary (between 1.50 !! and 1.80) as a function of total column water vapor. the function !! has been defined to minimize flux and cooling rate errors in these bands !! over a wide range of precipitable water values. @@ -35,7 +36,7 @@ module mo_rrtmg_lw_cloud_optics diffusivityHigh = 1.80, & !< Maximum diffusivity angle for bands 2-3 and 5-9 diffusivityB1410 = 1.66 !< Diffusivity for bands 1, 4, and 10 - !< RRTMG LW cloud property coefficients + !> RRTMG LW cloud property coefficients real(kind_phys) , dimension(58,nBandsLW_RRTMG),parameter :: & absliq1 = reshape(source=(/ & 1.64047e-03, 6.90533e-02, 7.72017e-02, 7.78054e-02, 7.69523e-02, & !1 diff --git a/physics/Radiation/RRTMG/rrtmg_sw_cloud_optics.F90 b/physics/Radiation/RRTMG/rrtmg_sw_cloud_optics.F90 index 7a6f649b7..ea38f85cd 100644 --- a/physics/Radiation/RRTMG/rrtmg_sw_cloud_optics.F90 +++ b/physics/Radiation/RRTMG/rrtmg_sw_cloud_optics.F90 @@ -1,6 +1,7 @@ !>\file rrtmg_sw_cloud_optics.F90 !! +!> This module contains the cloud optics property module for RRTMG-SW module mo_rrtmg_sw_cloud_optics use machine, only: kind_phys use mersenne_twister, only: random_setseed, random_number, random_stat diff --git a/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.F90 b/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.F90 index 311b33bbd..974d71b9a 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.F90 @@ -1,6 +1,7 @@ !>\file rrtmgp_aerosol_optics.F90 !! +!> This module contains aerosol optics properties for RRTMGP module rrtmgp_aerosol_optics use machine, only: kind_phys use radiation_tools, only: check_error_msg diff --git a/physics/Radiation/RRTMGP/rrtmgp_lw_cloud_optics.F90 b/physics/Radiation/RRTMGP/rrtmgp_lw_cloud_optics.F90 index 3adbe40b8..df44fbeda 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_lw_cloud_optics.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_lw_cloud_optics.F90 @@ -1,10 +1,11 @@ !> \file rrtmgp_lw_cloud_optics.F90 -!! This module contains two routines: The first initializes data and functions +!! + +!> This module contains two routines: The first initializes data and functions !! needed to compute the longwave cloud radiative properteis in RRTMGP. The second routine !! is a ccpp scheme within the "radiation loop", where the shortwave optical prperties !! (optical-depth, single-scattering albedo, asymmetry parameter) are computed for ALL !! cloud types visible to RRTMGP. -!! module rrtmgp_lw_cloud_optics use machine, only: kind_phys use mo_rte_kind, only: wl diff --git a/physics/Radiation/RRTMGP/rrtmgp_lw_gas_optics.F90 b/physics/Radiation/RRTMGP/rrtmgp_lw_gas_optics.F90 index fd2dbae32..0bfdd87e5 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_lw_gas_optics.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_lw_gas_optics.F90 @@ -1,9 +1,10 @@ !> \file rrtmgp_lw_gas_optics.F90 -!! This module contains two routines: One to initialize the k-distribution data +!! + +!> This module contains two routines: One to initialize the k-distribution data !! and functions needed to compute the longwave gaseous optical properties in RRTMGP. !! The second routine is a ccpp scheme within the "radiation loop", where the longwave !! optical prperties (optical-depth) are computed for clear-sky conditions (no aerosols). -!! module rrtmgp_lw_gas_optics use machine, only: kind_phys use mo_rte_kind, only: wl diff --git a/physics/Radiation/RRTMGP/rrtmgp_lw_main.F90 b/physics/Radiation/RRTMGP/rrtmgp_lw_main.F90 index 81c959e64..2e8de2dd4 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_lw_main.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_lw_main.F90 @@ -1,6 +1,7 @@ !> \file rrtmgp_lw_main.F90 !! This file contains the longwave RRTMGP radiation scheme. -!! + +!> This module contains the RRTMGP-LW radiation scheme module rrtmgp_lw_main use mpi_f08 use machine, only: kind_phys, kind_dbl_prec diff --git a/physics/Radiation/RRTMGP/rrtmgp_sampling.F90 b/physics/Radiation/RRTMGP/rrtmgp_sampling.F90 index b2f37f219..a678d3163 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_sampling.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_sampling.F90 @@ -11,8 +11,8 @@ ! BSD 3-clause license, see http://opensource.org/licenses/BSD-3-Clause ! ------------------------------------------------------------------------------------------------- ! -! This module provides a simple implementation of sampling for the -! Monte Carlo Independent Pixel Approximation (McICA, doi:10.1029/2002jd003322) +!> This module provides a simple implementation of sampling for the +!! Monte Carlo Independent Pixel Approximation (McICA, doi:10.1029/2002jd003322) ! Cloud optical properties, defined by band and assumed homogenous within each cell (column/layer), ! are randomly sampled to preserve the mean cloud fraction and one of several possible overlap assumptions ! Users supply random numbers with order ngpt,nlay,ncol diff --git a/physics/Radiation/RRTMGP/rrtmgp_sw_cloud_optics.F90 b/physics/Radiation/RRTMGP/rrtmgp_sw_cloud_optics.F90 index 7198f8e91..d7d54846f 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_sw_cloud_optics.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_sw_cloud_optics.F90 @@ -1,6 +1,7 @@ !>\file rrtmgp_sw_cloud_optics.F90 !! +!> This module contains the cloud optics properties calculation for RRTMGP-SW module rrtmgp_sw_cloud_optics use machine, only: kind_phys use mo_rte_kind, only: wl diff --git a/physics/Radiation/RRTMGP/rrtmgp_sw_gas_optics.F90 b/physics/Radiation/RRTMGP/rrtmgp_sw_gas_optics.F90 index 4862acdd1..7872bc04d 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_sw_gas_optics.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_sw_gas_optics.F90 @@ -1,7 +1,8 @@ !> \file rrtmgp_sw_gas_optics.F90 -!! This module contains a routine to initialize the k-distribution data used -!! by the RRTMGP shortwave radiation scheme. +!! +!> This module contains a routine to initialize the k-distribution data used +!! by the RRTMGP shortwave radiation scheme. module rrtmgp_sw_gas_optics use machine, only: kind_phys use mo_rte_kind, only: wl diff --git a/physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 b/physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 index c9fd3bbda..2138356a9 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 @@ -1,6 +1,7 @@ !>\file rrtmgp_sw_main.F90 !! +!> This module contain the RRTMGP-SW radiation scheme module rrtmgp_sw_main use mpi_f08 use machine, only: kind_phys, kind_dbl_prec diff --git a/physics/Radiation/radiation_tools.F90 b/physics/Radiation/radiation_tools.F90 index bc7a81db8..e941a3461 100644 --- a/physics/Radiation/radiation_tools.F90 +++ b/physics/Radiation/radiation_tools.F90 @@ -1,6 +1,7 @@ !>\file radiation_tools.F90 !! +!> This module contains tools for radiation module radiation_tools use machine, only: & kind_phys ! Working type diff --git a/physics/SFC_Layer/MYNN/mynnsfc_wrapper.F90 b/physics/SFC_Layer/MYNN/mynnsfc_wrapper.F90 index 8df0116a8..779a56da4 100644 --- a/physics/SFC_Layer/MYNN/mynnsfc_wrapper.F90 +++ b/physics/SFC_Layer/MYNN/mynnsfc_wrapper.F90 @@ -1,6 +1,7 @@ !> \file mynnsfc_wrapper.F90 -!! Contains all of the code related to running the MYNN surface layer scheme +!! +!> This Model ontains all of the code related to running the MYNN surface layer scheme MODULE mynnsfc_wrapper USE module_sf_mynn diff --git a/physics/SFC_Layer/UFS/sfc_diag.f b/physics/SFC_Layer/UFS/sfc_diag.f index fb4d4fdaa..66ec95c50 100644 --- a/physics/SFC_Layer/UFS/sfc_diag.f +++ b/physics/SFC_Layer/UFS/sfc_diag.f @@ -1,11 +1,11 @@ !> \file sfc_diag.f !! This file contains the land surface diagnose calculation scheme. +!> This module contains the land surface diagnose calcualtion module sfc_diag contains !> \defgroup sfc_diag_mod GFS sfc_diag module -!! This module contains the land surface diagose calculation. !! \section arg_table_sfc_diag_run Argument Table !! \htmlinclude sfc_diag_run.html !! diff --git a/physics/SFC_Layer/UFS/sfc_diag_post.F90 b/physics/SFC_Layer/UFS/sfc_diag_post.F90 index c1e69ae48..ce3d9c595 100644 --- a/physics/SFC_Layer/UFS/sfc_diag_post.F90 +++ b/physics/SFC_Layer/UFS/sfc_diag_post.F90 @@ -1,12 +1,12 @@ !> \file sfc_diag_post.F90 !! Contains code related to the surface diagnostic scheme. +!> This module contains code related to the surface diagnostic scheme. module sfc_diag_post contains !>\defgroup sfc_diag_post_mod GFS sfc_diag_post Module -!! This module contains code related to the surface diagnostic scheme. !> @{ #if 0 !> \section arg_table_sfc_diag_post_run Argument Table diff --git a/physics/SFC_Layer/UFS/sfc_nst_post.f90 b/physics/SFC_Layer/UFS/sfc_nst_post.f90 index 0357a86f0..ca1194e3d 100644 --- a/physics/SFC_Layer/UFS/sfc_nst_post.f90 +++ b/physics/SFC_Layer/UFS/sfc_nst_post.f90 @@ -1,6 +1,7 @@ !> \file sfc_nst_post.f90 -!! This file contains code to be executed after the GFS NSST model. +!! This file contains code to be executed after the near-surface sea temperature scheme. +!> This module contains code to be executed after the near-surface sea temperature scheme module sfc_nst_post use machine , only : kind_phys, kp => kind_phys diff --git a/physics/SFC_Layer/UFS/sfc_nst_pre.f90 b/physics/SFC_Layer/UFS/sfc_nst_pre.f90 index c61f9b903..dec6722ed 100644 --- a/physics/SFC_Layer/UFS/sfc_nst_pre.f90 +++ b/physics/SFC_Layer/UFS/sfc_nst_pre.f90 @@ -1,6 +1,7 @@ !> \file sfc_nst_pre.f90 -!! This file contains preparation for the GFS NSST model. +!! This file contains preparation for the near-surface sea temperature scheme. +!> This module contain preparation for the near-surface sea temperature scheme module sfc_nst_pre use machine , only : kind_phys @@ -11,7 +12,7 @@ module sfc_nst_pre contains - !> \defgroup GFS_NSST_PRE GFS Near-Surface Sea Temperature Pre + !> \defgroup GFS_NSST_PRE Near-Surface Sea Temperature Pre !! !! The NSST scheme is one of the three schemes used to represent the !! surface in the GFS physics suite. The other two are the Noah land diff --git a/physics/SFC_Models/Land/Noah/namelist_soilveg.f b/physics/SFC_Models/Land/Noah/namelist_soilveg.f index c0517000e..7b3c41a72 100644 --- a/physics/SFC_Models/Land/Noah/namelist_soilveg.f +++ b/physics/SFC_Models/Land/Noah/namelist_soilveg.f @@ -1,6 +1,8 @@ !>\file namelist_soilveg.f !>\ingroup Noah_LSM + +!> This module contains namelist options for Noah LSM module namelist_soilveg implicit none save diff --git a/physics/SFC_Models/Land/Noah/sflx.f b/physics/SFC_Models/Land/Noah/sflx.f index b2fb38ae1..5f0c6c747 100644 --- a/physics/SFC_Models/Land/Noah/sflx.f +++ b/physics/SFC_Models/Land/Noah/sflx.f @@ -1,5 +1,7 @@ !>\file sflx.f -!! This file is the entity of GFS Noah LSM Model(Version 2.7). +!! + +!> This module contains the entity of GFS Noah LSM Model(Version 2.7). module sflx contains !>\ingroup Noah_LSM diff --git a/physics/SFC_Models/Land/Noah/surface_perturbation.F90 b/physics/SFC_Models/Land/Noah/surface_perturbation.F90 index e0429a5fc..acf722754 100644 --- a/physics/SFC_Models/Land/Noah/surface_perturbation.F90 +++ b/physics/SFC_Models/Land/Noah/surface_perturbation.F90 @@ -3,6 +3,7 @@ !! albedo and vegetation fraction perturbations. !>\defgroup gfs_sfcpert GFS Surface Perturbation Module + !> This module contains routines used in the percentile matching algorithm for the !! albedo and vegetation fraction perturbations. module surface_perturbation diff --git a/physics/SFC_Models/Land/Noahmp/noahmp_tables.f90 b/physics/SFC_Models/Land/Noahmp/noahmp_tables.f90 index 753c8ff24..d6e9963da 100644 --- a/physics/SFC_Models/Land/Noahmp/noahmp_tables.f90 +++ b/physics/SFC_Models/Land/Noahmp/noahmp_tables.f90 @@ -2,7 +2,8 @@ !! This file contains Fortran versions of the data tables included with NoahMP in mptable.tbl, soilparm.tbl, and genparm.tbl. !> \ingroup NoahMP_LSM -!! \brief Data from MPTABLE.TBL, SOILPARM.TBL, GENPARM.TBL for NoahMP + +!> brief Data from MPTABLE.TBL, SOILPARM.TBL, GENPARM.TBL for NoahMP !! !! Note that a subset of the data in the *.TBL files is represented in this file. For example, !! only the data in the noah_mp_modis_parameters section of MPTABLE.TBL and the STAS section of diff --git a/physics/SFC_Models/Land/RUC/namelist_soilveg_ruc.F90 b/physics/SFC_Models/Land/RUC/namelist_soilveg_ruc.F90 index d93dc5c64..f50a264cc 100644 --- a/physics/SFC_Models/Land/RUC/namelist_soilveg_ruc.F90 +++ b/physics/SFC_Models/Land/RUC/namelist_soilveg_ruc.F90 @@ -1,6 +1,7 @@ !>\file namelist_soilveg_ruc.F90 !>\ingroup RUC_lsm +!> This module contains the namelist options of soil/vegetation in RUC module namelist_soilveg_ruc use machine , only : kind_phys diff --git a/physics/docs/ccpp_doxyfile b/physics/docs/ccpp_doxyfile index 6a7554417..337995657 100644 --- a/physics/docs/ccpp_doxyfile +++ b/physics/docs/ccpp_doxyfile @@ -1053,6 +1053,8 @@ EXCLUDE = ../Radiation/RRTMGP/rte-rrtmgp \ ../PBL/SHOC \ ../PBL/saYSU \ ../PBL/YSU \ + ../PBL/SATMEDMF/mfscu.f \ + ../PBL/SATMEDMF/satmedmfvdif.F \ ../SFC_Models/Lake/Flake \ ../smoke_dust \ ../SFC_Layer/GFDL \ @@ -1063,6 +1065,7 @@ EXCLUDE = ../Radiation/RRTMGP/rte-rrtmgp \ ../CONV/nTiedtke \ ../CONV/RAS \ ../CONV/SAS \ + ../CONV/SAMF/samfaerosols.F \ ../SFC_Layer/UFS/date_def.f \ ../GWD/cires_ugwpv1_module.F90 \ ../GWD/cires_ugwpv1_initialize.F90 \ diff --git a/physics/docs/pdftxt/RE7/input_GFS_v17_p8_ugwpv1.nml b/physics/docs/pdftxt/RE7/input_GFS_v17_p8_ugwpv1.nml index e40f05cda..1cc0f692e 100644 --- a/physics/docs/pdftxt/RE7/input_GFS_v17_p8_ugwpv1.nml +++ b/physics/docs/pdftxt/RE7/input_GFS_v17_p8_ugwpv1.nml @@ -1,164 +1,166 @@ !>[GFS_PHYSICS_NML] &gfs_physics_nml - fhzero = 6 - h2o_phys = .true. - ldiag3d = .true. - qdiag3d = .true. - print_diff_pgr = .false. - fhcyc = 24 - use_ufo = .true. - pre_rad = .false. - imp_physics = 8 - iovr = 3 - ltaerosol = .false. - lradar = .true. - ttendlim = -999 - dt_inner = 150 - sedi_semi = .true. - decfl = 10 - oz_phys = .false. - oz_phys_2015 = .true. - lsoil_lsm = 4 - do_mynnedmf = .false. - do_mynnsfclay = .false. - icloud_bl = 1 - bl_mynn_edmf = 1 - bl_mynn_tkeadvect = .true. - bl_mynn_edmf_mom = 1 - do_ugwp = .false. - do_tofd = .false. - gwd_opt = 2 - do_ugwp_v0 = .false. - do_ugwp_v1 = .true. + fhzero = 6 + h2o_phys = .true. + ldiag3d = .true. + qdiag3d = .true. + print_diff_pgr = .false. + fhcyc = 24 + use_ufo = .true. + pre_rad = .false. + imp_physics = 8 + iovr = 3 + ltaerosol = .false. + lradar = .true. + ttendlim = -999 + dt_inner = 150 + sedi_semi = .true. + decfl = 10 + oz_phys = .false. + oz_phys_2015 = .true. + lsoil_lsm = 4 + do_mynnedmf = .false. + do_mynnsfclay = .false. + icloud_bl = 1 + bl_mynn_edmf = 1 + bl_mynn_tkeadvect = .true. + bl_mynn_edmf_mom = 1 + do_ugwp = .false. + do_tofd = .false. + gwd_opt = 2 + do_ugwp_v0 = .false. + do_ugwp_v1 = .true. do_ugwp_v0_orog_only = .false. do_ugwp_v0_nst_only = .false. do_gsl_drag_ls_bl = .true. - do_gsl_drag_ss = .true. + do_gsl_drag_ss = .false. do_gsl_drag_tofd = .true. do_ugwp_v1_orog_only = .false. - min_lakeice = 0.15 - min_seaice = 1.0e-6 - use_cice_alb = .true. - pdfcld = .false. - fhswr = 1200. - fhlwr = 1200. - progsigma = .true. - betascu = 8.0 - betamcu = 1.0 - betadcu = 2.0 - ialb = 2 - iems = 2 - iaer = 1011 - icliq_sw = 2 - ico2 = 2 - isubc_sw = 2 - isubc_lw = 2 - isol = 2 - lwhtr = .true. - swhtr = .true. - cnvgwd = .true. - shal_cnv = .true. - cal_pre = .false. - redrag = .true. - dspheat = .true. - hybedmf = .false. - satmedmf = .true. - isatmedmf = 1 - lheatstrg = .true. - lseaspray = .true. - random_clds = .false. - trans_trac = .true. - cnvcld = .true. - imfshalcnv = 2 - imfdeepcnv = 2 - ras = .false. - cdmbgwd = 2.5,7.5,1.0,1.0 - prslrd0 = 0. - ivegsrc = 1 - isot = 1 - lsoil = 4 - lsm = 2 - iopt_dveg = 4 - iopt_crs = 2 - iopt_btr = 1 - iopt_run = 1 - iopt_sfc = 3 - iopt_trs = 2 - iopt_frz = 1 - iopt_inf = 1 - iopt_rad = 3 - iopt_alb = 1 - iopt_snf = 4 - iopt_tbot = 2 - iopt_stc = 3 - debug = .false. - nstf_name = 2,0,0,0,0 - nst_anl = .true. - psautco = 0.0008,0.0005 - prautco = 0.00015,0.00015 - lgfdlmprad = .false. - effr_in = .true. - ldiag_ugwp = .false. - do_sppt = .false. - do_shum = .false. - do_skeb = .false. - do_RRTMGP = .false. - doGP_cldoptics_LUT = .true. - doGP_lwscat = .true. - active_gases = 'h2o_co2_o3_n2o_ch4_o2' - ngases = 6 - rrtmgp_root = '../../ccpp/physics/physics/rte-rrtmgp/' - lw_file_gas = 'rrtmgp/data/rrtmgp-data-lw-g128-210809.nc' - lw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-lw.nc' - sw_file_gas = 'rrtmgp/data/rrtmgp-data-sw-g112-210809.nc' - sw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-sw.nc' - rrtmgp_nGptsSW = 112 - rrtmgp_nGptsLW = 128 - rrtmgp_nBandsLW = 16 - rrtmgp_nBandsSW = 14 - frac_grid = .true. - cplchm = .false. - cplflx = .false. - cplice = .false. - cplwav = .false. - cplwav2atm = .false. - do_ca = .false. - ca_global = .false. - ca_sgs = .true. - nca = 1 - ncells = 5 - nlives = 12 - nseed = 1 - nfracseed = 0.5 - nthresh = 18 - ca_trigger = .true. - nspinup = 1 - iseed_ca = 1448371824 + do_gwd_opt_psl = .true. + psl_gwd_dx_factor = 6.0 + min_lakeice = 0.15 + min_seaice = 1.0e-6 + use_cice_alb = .true. + pdfcld = .false. + fhswr = 1200. + fhlwr = 1200. + progsigma = .true. + betascu = 8.0 + betamcu = 1.0 + betadcu = 2.0 + ialb = 2 + iems = 2 + iaer = 1011 + icliq_sw = 2 + ico2 = 2 + isubc_sw = 2 + isubc_lw = 2 + isol = 2 + lwhtr = .true. + swhtr = .true. + cnvgwd = .true. + shal_cnv = .true. + cal_pre = .false. + redrag = .true. + dspheat = .true. + hybedmf = .false. + satmedmf = .true. + isatmedmf = 1 + lheatstrg = .true. + lseaspray = .true. + random_clds = .false. + trans_trac = .true. + cnvcld = .true. + imfshalcnv = 2 + imfdeepcnv = 2 + ras = .false. + cdmbgwd = 2.5,7.5,1.0,1.0 + prslrd0 = 0. + ivegsrc = 1 + isot = 1 + lsoil = 4 + lsm = 2 + iopt_dveg = 4 + iopt_crs = 2 + iopt_btr = 1 + iopt_run = 1 + iopt_sfc = 3 + iopt_trs = 2 + iopt_frz = 1 + iopt_inf = 1 + iopt_rad = 3 + iopt_alb = 1 + iopt_snf = 4 + iopt_tbot = 2 + iopt_stc = 3 + debug = .false. + nstf_name = 2,0,0,0,0 + nst_anl = .true. + psautco = 0.0008,0.0005 + prautco = 0.00015,0.00015 + lgfdlmprad = .false. + effr_in = .true. + ldiag_ugwp = .false. + do_sppt = .false. + do_shum = .false. + do_skeb = .false. + do_RRTMGP = .false. + doGP_cldoptics_LUT = .true. + doGP_lwscat = .true. + active_gases = 'h2o_co2_o3_n2o_ch4_o2' + ngases = 6 + rrtmgp_root = '../../ccpp/physics/physics/rte-rrtmgp/' + lw_file_gas = 'rrtmgp/data/rrtmgp-data-lw-g128-210809.nc' + lw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-lw.nc' + sw_file_gas = 'rrtmgp/data/rrtmgp-data-sw-g112-210809.nc' + sw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-sw.nc' + rrtmgp_nGptsSW = 112 + rrtmgp_nGptsLW = 128 + rrtmgp_nBandsLW = 16 + rrtmgp_nBandsSW = 14 + frac_grid = .true. + cplchm = .false. + cplflx = .false. + cplice = .false. + cplwav = .false. + cplwav2atm = .false. + do_ca = .false. + ca_global = .false. + ca_sgs = .true. + nca = 1 + ncells = 5 + nlives = 12 + nseed = 1 + nfracseed = 0.5 + nthresh = 18 + ca_trigger = .true. + nspinup = 1 + iseed_ca = 1448371824 / !! [GFS_PHYSICS_NML] !>[CIRES_UGWP_NML] &cires_ugwp_nml - knob_ugwp_solver = 2 - knob_ugwp_version = 1 - knob_ugwp_source = 1,1,0,0 - knob_ugwp_wvspec = 1,25,25,25 - knob_ugwp_azdir = 2,4,4,4 - knob_ugwp_stoch = 0,0,0,0 - knob_ugwp_effac = 1,1,1,1 - knob_ugwp_doaxyz = 1 - knob_ugwp_doheat = 1 - knob_ugwp_dokdis = 2 - knob_ugwp_ndx4lh = 4 - knob_ugwp_palaunch = 275.0e2 - knob_ugwp_nslope = 1 - knob_ugwp_lzmax = 15.750e3 - knob_ugwp_lzmin = 0.75e3 - knob_ugwp_lzstar = 2.0e3 - knob_ugwp_taumin = 0.25e-3 - knob_ugwp_tauamp = 0.5e-3 - knob_ugwp_lhmet = 200.0e3 - knob_ugwp_orosolv = 'pss-1986' + knob_ugwp_solver = 2 + knob_ugwp_version = 1 + knob_ugwp_source = 1,1,0,0 + knob_ugwp_wvspec = 1,25,25,25 + knob_ugwp_azdir = 2,4,4,4 + knob_ugwp_stoch = 0,0,0,0 + knob_ugwp_effac = 1,1,1,1 + knob_ugwp_doaxyz = 1 + knob_ugwp_doheat = 1 + knob_ugwp_dokdis = 2 + knob_ugwp_ndx4lh = 4 + knob_ugwp_palaunch = 275.0e2 + knob_ugwp_nslope = 1 + knob_ugwp_lzmax = 15.750e3 + knob_ugwp_lzmin = 0.75e3 + knob_ugwp_lzstar = 2.0e3 + knob_ugwp_taumin = 0.25e-3 + knob_ugwp_tauamp = 0.5e-3 + knob_ugwp_lhmet = 200.0e3 + knob_ugwp_orosolv = 'pss-1986' / !! [CIRES_UGWP_NML] diff --git a/physics/docs/pdftxt/RE7/input_HRRR_gf.nml b/physics/docs/pdftxt/RE7/input_HRRR_gf.nml index 9b8cbb1e0..e351384c6 100644 --- a/physics/docs/pdftxt/RE7/input_HRRR_gf.nml +++ b/physics/docs/pdftxt/RE7/input_HRRR_gf.nml @@ -92,15 +92,13 @@ lradar = .true. lrefres = .true. lsm = 3 - lsoil = 9 + lsoil = 4 lsoil_lsm = 9 ltaerosol = .true. lwhtr = .true. min_lakeice = 0.15 min_seaice = 0.15 mix_chem = .true. - mosaic_lu = 1 - mosaic_soil = 1 nsfullradar_diag = 3600 oz_phys = .false. oz_phys_2015 = .true. From 368877c154d38079b81107cb79efbc13cc6a313e Mon Sep 17 00:00:00 2001 From: Man Zhang Date: Fri, 16 Aug 2024 16:55:43 -0600 Subject: [PATCH 23/29] scidoc --- physics/CONV/progsigma_calc.f90 | 3 +- physics/GWD/cires_ugwp_initialize.F90 | 2 + physics/GWD/cires_ugwp_triggers.F90 | 2 + physics/GWD/cires_ugwpv1_initialize.F90 | 2 +- physics/GWD/ugwpv1_gsldrag.F90 | 5 +- physics/MP/GFDL/GFDL_parse_tracers.F90 | 4 + physics/Radiation/RRTMG/rrtmg_lw_post.F90 | 3 +- physics/Radiation/RRTMG/rrtmg_sw_post.F90 | 3 +- .../Land/Noahmp/module_sf_noahmp_glacier.F90 | 5 + .../SFC_Models/Land/RUC/module_soil_pre.F90 | 3 +- .../SFC_Models/Land/RUC/set_soilveg_ruc.F90 | 4 +- physics/docs/ccpp_doxyfile | 457 +++++++++--------- physics/docs/pdftxt/all_schemes_list.txt | 1 - 13 files changed, 267 insertions(+), 227 deletions(-) diff --git a/physics/CONV/progsigma_calc.f90 b/physics/CONV/progsigma_calc.f90 index 73f084d01..9da238429 100644 --- a/physics/CONV/progsigma_calc.f90 +++ b/physics/CONV/progsigma_calc.f90 @@ -1,5 +1,6 @@ !>\file progsigma_calc.f90 -!! This file contains the subroutine that calculates the prognostic + +!> This module contains the subroutine that calculates the prognostic !! updraft area fraction that is used for closure computations in !! saSAS deep and shallow convection, based on a moisture budget !! as described in Bengtsson et al. 2022 \cite Bengtsson_2022. diff --git a/physics/GWD/cires_ugwp_initialize.F90 b/physics/GWD/cires_ugwp_initialize.F90 index e391093a0..ae923671d 100644 --- a/physics/GWD/cires_ugwp_initialize.F90 +++ b/physics/GWD/cires_ugwp_initialize.F90 @@ -226,6 +226,7 @@ end module ugwpv0_oro_init ! Part -3 init wave solvers !=============================== +!> This module contains initialization of wave solvers for UGWP v0 module ugwpv0_lsatdis_init implicit none @@ -271,6 +272,7 @@ end subroutine initsolv_lsatdis_v0 end module ugwpv0_lsatdis_init ! ! +!>This module contains init-solvers for "broad" non-stationary multi-wave spectra module ugwpv0_wmsdis_init use ugwp_common_v0, only : pi, pi2 diff --git a/physics/GWD/cires_ugwp_triggers.F90 b/physics/GWD/cires_ugwp_triggers.F90 index 82cf11ebb..95cb79684 100644 --- a/physics/GWD/cires_ugwp_triggers.F90 +++ b/physics/GWD/cires_ugwp_triggers.F90 @@ -1,6 +1,8 @@ !>\file cires_ugwp_triggers.F90 !! +!> This module contains routines describing the the latitudinal shape of +!! vertical momentum flux function in UGWP v0. module cires_ugwp_triggers contains ! diff --git a/physics/GWD/cires_ugwpv1_initialize.F90 b/physics/GWD/cires_ugwpv1_initialize.F90 index aa54a46f3..65c96cf0d 100644 --- a/physics/GWD/cires_ugwpv1_initialize.F90 +++ b/physics/GWD/cires_ugwpv1_initialize.F90 @@ -12,7 +12,7 @@ ! Part-0 specifications of common constants, limiters and "criiical" values ! ! - +!> This module contains common constants, limiters and "critical" values in module ugwp_common ! use machine, only : kind_phys diff --git a/physics/GWD/ugwpv1_gsldrag.F90 b/physics/GWD/ugwpv1_gsldrag.F90 index 0a45fb791..3688218b3 100644 --- a/physics/GWD/ugwpv1_gsldrag.F90 +++ b/physics/GWD/ugwpv1_gsldrag.F90 @@ -1,5 +1,7 @@ !> \file ugwpv1_gsldrag.F90 -!! This introduces two gravity wave drag schemes ugwpv1/CIRES and GSL/drag_suite.F90 under "ugwpv1_gsldrag" suite: + +!> This module introduces two gravity wave drag schemes: UGWPv1 and orographic drag scheme +!! !! 1) The "V1 CIRES UGWP" scheme as tested in the FV3GFSv16-127L atmosphere model and workflow, which includes: !! a) the orograhic gravity wave drag, flow blocking scheme and TOFD (Beljaars et al, 2004). !! b) the v1 CIRE ugwp non-stationary GW scheme, new revision that generate realistic climate of FV3GFS-127L @@ -33,7 +35,6 @@ !! do_ugwp_v1_w_gsldrag -- activates V1 CIRES UGWP scheme with orographic drag of GSL !! Note that only one "large-scale" scheme can be activated at a time. !! - module ugwpv1_gsldrag use machine, only: kind_phys diff --git a/physics/MP/GFDL/GFDL_parse_tracers.F90 b/physics/MP/GFDL/GFDL_parse_tracers.F90 index c81127101..670c292ee 100644 --- a/physics/MP/GFDL/GFDL_parse_tracers.F90 +++ b/physics/MP/GFDL/GFDL_parse_tracers.F90 @@ -1,3 +1,7 @@ +!>\file GFDL_parse_tracers.F90 +!! + +!> This module contains code to parse tracers in GFDL MP module parse_tracers integer, parameter :: NO_TRACER = -99 diff --git a/physics/Radiation/RRTMG/rrtmg_lw_post.F90 b/physics/Radiation/RRTMG/rrtmg_lw_post.F90 index d9d3aa520..36661973d 100644 --- a/physics/Radiation/RRTMG/rrtmg_lw_post.F90 +++ b/physics/Radiation/RRTMG/rrtmg_lw_post.F90 @@ -1,5 +1,6 @@ !>\file rrtmg_lw_post.F90 -!!This file contains GFS RRTMG scheme post. + +!> This module contains code executed after RRTMG-LW scheme module rrtmg_lw_post contains diff --git a/physics/Radiation/RRTMG/rrtmg_sw_post.F90 b/physics/Radiation/RRTMG/rrtmg_sw_post.F90 index f39cba71c..893c093e9 100644 --- a/physics/Radiation/RRTMG/rrtmg_sw_post.F90 +++ b/physics/Radiation/RRTMG/rrtmg_sw_post.F90 @@ -1,5 +1,6 @@ !>\file rrtmg_sw_post.F90 -!! This file contains GFS RRTMG scheme post. + +!> This module contains RRTMG-SW scheme post module rrtmg_sw_post contains diff --git a/physics/SFC_Models/Land/Noahmp/module_sf_noahmp_glacier.F90 b/physics/SFC_Models/Land/Noahmp/module_sf_noahmp_glacier.F90 index fcbe40a70..bcb157c54 100644 --- a/physics/SFC_Models/Land/Noahmp/module_sf_noahmp_glacier.F90 +++ b/physics/SFC_Models/Land/Noahmp/module_sf_noahmp_glacier.F90 @@ -3,6 +3,8 @@ !! This file contains the NoahMP Glacier scheme. !>\ingroup NoahMP_LSM + +!> This module contains the NoahMP Glacier scheme module noahmp_glacier_globals use machine , only : kind_phys @@ -77,6 +79,8 @@ end module noahmp_glacier_globals !------------------------------------------------------------------------------------------! !>\ingroup NoahMP_LSM + +!> This module contains NoahMP glacier routines module noahmp_glacier_routines use noahmp_glacier_globals #ifndef CCPP @@ -3489,6 +3493,7 @@ end subroutine noahmp_options_glacier end module noahmp_glacier_routines ! ================================================================================================== +!> This module contains the interface of noahmp_glacier_routines and noahmp_glacier_globals module module_sf_noahmp_glacier use noahmp_glacier_routines diff --git a/physics/SFC_Models/Land/RUC/module_soil_pre.F90 b/physics/SFC_Models/Land/RUC/module_soil_pre.F90 index 8eb5a5775..d8cdf5b82 100644 --- a/physics/SFC_Models/Land/RUC/module_soil_pre.F90 +++ b/physics/SFC_Models/Land/RUC/module_soil_pre.F90 @@ -1,5 +1,6 @@ !>\file module_soil_pre.F90 -!! This file contains subroutines that initialize RUC LSM levels, soil + +!> This module contains subroutines that initialize RUC LSM levels, soil !! temperature/moisture. module module_soil_pre diff --git a/physics/SFC_Models/Land/RUC/set_soilveg_ruc.F90 b/physics/SFC_Models/Land/RUC/set_soilveg_ruc.F90 index 8ce6023ff..012c81323 100644 --- a/physics/SFC_Models/Land/RUC/set_soilveg_ruc.F90 +++ b/physics/SFC_Models/Land/RUC/set_soilveg_ruc.F90 @@ -1,7 +1,7 @@ !>\file set_soilveg_ruc.F90 -!! This file contains subroutine to specify vegetation and soil -!! parameters for a given soild and land-use classification. +!> This module contains subroutine to specify vegetation and soil +!! parameters for a given soild and land-use classification. module set_soilveg_ruc_mod use machine , only : kind_phys diff --git a/physics/docs/ccpp_doxyfile b/physics/docs/ccpp_doxyfile index 337995657..403499455 100644 --- a/physics/docs/ccpp_doxyfile +++ b/physics/docs/ccpp_doxyfile @@ -1,7 +1,7 @@ -# Doxyfile 1.11.0 +# Doxyfile 1.12.0 # This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project. +# Doxygen (www.doxygen.org) for a project. # # All text after a double hash (##) is considered a comment and is placed in # front of the TAG it is preceding. @@ -15,10 +15,10 @@ # # Note: # -# Use doxygen to compare the used configuration file with the template +# Use Doxygen to compare the used configuration file with the template # configuration file: # doxygen -x [configFile] -# Use doxygen to compare the used configuration file with the template +# Use Doxygen to compare the used configuration file with the template # configuration file without replacing the environment variables or CMake type # replacement variables: # doxygen -x_noenv [configFile] @@ -71,15 +71,15 @@ PROJECT_ICON = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # into which the generated documentation will be written. If a relative path is -# entered, it will be relative to the location where doxygen was started. If +# entered, it will be relative to the location where Doxygen was started. If # left blank the current directory will be used. OUTPUT_DIRECTORY = doc -# If the CREATE_SUBDIRS tag is set to YES then doxygen will create up to 4096 +# If the CREATE_SUBDIRS tag is set to YES then Doxygen will create up to 4096 # sub-directories (in 2 levels) under the output directory of each output format # and will distribute the generated files over these directories. Enabling this -# option can be useful when feeding doxygen a huge amount of source files, where +# option can be useful when feeding Doxygen a huge amount of source files, where # putting all generated files in the same directory would otherwise causes # performance problems for the file system. Adapt CREATE_SUBDIRS_LEVEL to # control the number of sub-directories. @@ -98,7 +98,7 @@ CREATE_SUBDIRS = NO CREATE_SUBDIRS_LEVEL = 8 -# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# If the ALLOW_UNICODE_NAMES tag is set to YES, Doxygen will allow non-ASCII # characters to appear in the names of generated files. If set to NO, non-ASCII # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode # U+3044. @@ -107,7 +107,7 @@ CREATE_SUBDIRS_LEVEL = 8 ALLOW_UNICODE_NAMES = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this +# documentation generated by Doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Bulgarian, # Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, English @@ -121,14 +121,14 @@ ALLOW_UNICODE_NAMES = NO OUTPUT_LANGUAGE = English -# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member +# If the BRIEF_MEMBER_DESC tag is set to YES, Doxygen will include brief member # descriptions after the members that are listed in the file and class # documentation (similar to Javadoc). Set to NO to disable this. # The default value is: YES. BRIEF_MEMBER_DESC = YES -# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief +# If the REPEAT_BRIEF tag is set to YES, Doxygen will prepend the brief # description of a member or function before the detailed description # # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the @@ -149,13 +149,13 @@ REPEAT_BRIEF = NO ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# doxygen will generate a detailed section even if there is only a brief +# Doxygen will generate a detailed section even if there is only a brief # description. # The default value is: NO. ALWAYS_DETAILED_SEC = NO -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# If the INLINE_INHERITED_MEMB tag is set to YES, Doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. @@ -163,7 +163,7 @@ ALWAYS_DETAILED_SEC = NO INLINE_INHERITED_MEMB = NO -# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path +# If the FULL_PATH_NAMES tag is set to YES, Doxygen will prepend the full path # before files name in the file list and in the header files. If set to NO the # shortest path that makes the file name unique will be used # The default value is: YES. @@ -173,11 +173,11 @@ FULL_PATH_NAMES = YES # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. # Stripping is only done if one of the specified strings matches the left-hand # part of the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the path to +# If left blank the directory from which Doxygen is run is used as the path to # strip. # # Note that you can specify absolute paths here, but also relative paths, which -# will be relative from the directory where doxygen is started. +# will be relative from the directory where Doxygen is started. # This tag requires that the tag FULL_PATH_NAMES is set to YES. STRIP_FROM_PATH = @@ -191,14 +191,14 @@ STRIP_FROM_PATH = STRIP_FROM_INC_PATH = -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but +# If the SHORT_NAMES tag is set to YES, Doxygen will generate much shorter (but # less readable) file names. This can be useful is your file systems doesn't # support long names like on DOS, Mac, or CD-ROM. # The default value is: NO. SHORT_NAMES = NO -# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen will interpret the # first line (until the first dot) of a Javadoc-style comment as the brief # description. If set to NO, the Javadoc-style will behave just like regular Qt- # style comments (thus requiring an explicit @brief command for a brief @@ -207,17 +207,17 @@ SHORT_NAMES = NO JAVADOC_AUTOBRIEF = NO -# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line +# If the JAVADOC_BANNER tag is set to YES then Doxygen will interpret a line # such as # /*************** # as being the beginning of a Javadoc-style comment "banner". If set to NO, the # Javadoc-style will behave just like regular comments and it will not be -# interpreted by doxygen. +# interpreted by Doxygen. # The default value is: NO. JAVADOC_BANNER = NO -# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will interpret the first # line (until the first dot) of a Qt-style comment as the brief description. If # set to NO, the Qt-style will behave just like regular Qt-style comments (thus # requiring an explicit \brief command for a brief description.) @@ -225,7 +225,7 @@ JAVADOC_BANNER = NO QT_AUTOBRIEF = NO -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen treat a # multi-line C++ special comment block (i.e. a block of //! or /// comments) as # a brief description. This used to be the default behavior. The new default is # to treat a multi-line C++ comment block as a detailed description. Set this @@ -237,10 +237,10 @@ QT_AUTOBRIEF = NO MULTILINE_CPP_IS_BRIEF = NO -# By default Python docstrings are displayed as preformatted text and doxygen's +# By default Python docstrings are displayed as preformatted text and Doxygen's # special commands cannot be used. By setting PYTHON_DOCSTRING to NO the -# doxygen's special commands can be used and the contents of the docstring -# documentation blocks is shown as doxygen documentation. +# Doxygen's special commands can be used and the contents of the docstring +# documentation blocks is shown as Doxygen documentation. # The default value is: YES. PYTHON_DOCSTRING = YES @@ -251,7 +251,7 @@ PYTHON_DOCSTRING = YES INHERIT_DOCS = YES -# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new +# If the SEPARATE_MEMBER_PAGES tag is set to YES then Doxygen will produce a new # page for each member. If set to NO, the documentation of a member will be part # of the file/class/namespace that contains it. # The default value is: NO. @@ -321,19 +321,19 @@ OPTIMIZE_OUTPUT_SLICE = NO # parses. With this tag you can assign which parser to use for a given # extension. Doxygen has a built-in mapping, but you can override or extend it # using this tag. The format is ext=language, where ext is a file extension, and -# language is one of the parsers supported by doxygen: IDL, Java, JavaScript, +# language is one of the parsers supported by Doxygen: IDL, Java, JavaScript, # Csharp (C#), C, C++, Lex, D, PHP, md (Markdown), Objective-C, Python, Slice, # VHDL, Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: # FortranFree, unknown formatted Fortran: Fortran. In the later case the parser # tries to guess whether the code is fixed or free formatted code, this is the -# default for Fortran type files). For instance to make doxygen treat .inc files +# default for Fortran type files). For instance to make Doxygen treat .inc files # as Fortran files (default is PHP), and .f files as C (default is Fortran), # use: inc=Fortran f=C. # # Note: For files without extension you can use no_extension as a placeholder. # # Note that for custom extensions you also need to set FILE_PATTERNS otherwise -# the files are not read by doxygen. When specifying no_extension you should add +# the files are not read by Doxygen. When specifying no_extension you should add # * to the FILE_PATTERNS. # # Note see also the list of default file extension mappings. @@ -343,11 +343,11 @@ EXTENSION_MAPPING = .f=FortranFree \ .F90=FortranFree \ .f90=FortranFree -# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments +# If the MARKDOWN_SUPPORT tag is enabled then Doxygen pre-processes all comments # according to the Markdown format, which allows for more readable # documentation. See https://daringfireball.net/projects/markdown/ for details. -# The output of markdown processing is further processed by doxygen, so you can -# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in +# The output of markdown processing is further processed by Doxygen, so you can +# mix Doxygen, HTML, and XML commands with Markdown formatting. Disable only in # case of backward compatibilities issues. # The default value is: YES. @@ -373,7 +373,7 @@ TOC_INCLUDE_HEADINGS = 5 MARKDOWN_ID_STYLE = DOXYGEN -# When enabled doxygen tries to link words that correspond to documented +# When enabled Doxygen tries to link words that correspond to documented # classes, or namespaces to their corresponding documentation. Such a link can # be prevented in individual cases by putting a % sign in front of the word or # globally by setting AUTOLINK_SUPPORT to NO. @@ -383,7 +383,7 @@ AUTOLINK_SUPPORT = YES # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should set this -# tag to YES in order to let doxygen match functions declarations and +# tag to YES in order to let Doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); # versus func(std::string) {}). This also makes the inheritance and # collaboration diagrams that involve STL classes more complete and accurate. @@ -407,7 +407,7 @@ SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate # getter and setter methods for a property. Setting this option to YES will make -# doxygen to replace the get and set methods by a property in the documentation. +# Doxygen to replace the get and set methods by a property in the documentation. # This will only work if the methods are indeed getting or setting a simple # type. If this is not the case, or you want to show the methods anyway, you # should set this option to NO. @@ -416,7 +416,7 @@ SIP_SUPPORT = NO IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES then doxygen will reuse the documentation of the first +# tag is set to YES then Doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. # The default value is: NO. @@ -474,18 +474,18 @@ TYPEDEF_HIDES_STRUCT = YES # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This # cache is used to resolve symbols given their name and scope. Since this can be # an expensive process and often the same symbol appears multiple times in the -# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small -# doxygen will become slower. If the cache is too large, memory is wasted. The +# code, Doxygen keeps a cache of pre-resolved symbols. If the cache is too small +# Doxygen will become slower. If the cache is too large, memory is wasted. The # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 -# symbols. At the end of a run doxygen will report the cache usage and suggest +# symbols. At the end of a run Doxygen will report the cache usage and suggest # the optimal cache size from a speed point of view. # Minimum value: 0, maximum value: 9, default value: 0. LOOKUP_CACHE_SIZE = 0 -# The NUM_PROC_THREADS specifies the number of threads doxygen is allowed to use -# during processing. When set to 0 doxygen will based this on the number of +# The NUM_PROC_THREADS specifies the number of threads Doxygen is allowed to use +# during processing. When set to 0 Doxygen will based this on the number of # cores available in the system. You can set it explicitly to a value larger # than 0 to get more control over the balance between CPU load and processing # speed. At this moment only the input processing can be done using multiple @@ -509,7 +509,7 @@ TIMESTAMP = NO # Build related configuration options #--------------------------------------------------------------------------- -# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in +# If the EXTRACT_ALL tag is set to YES, Doxygen will assume all entities in # documentation are documented, even if no documentation was available. Private # class members and static file members will be hidden unless the # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. @@ -575,7 +575,7 @@ EXTRACT_ANON_NSPACES = YES RESOLVE_UNNAMED_PARAMS = YES -# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members inside documented classes or files. If set to NO these # members will be included in the various overviews, but no documentation # section is generated. This option has no effect if EXTRACT_ALL is enabled. @@ -583,7 +583,7 @@ RESOLVE_UNNAMED_PARAMS = YES HIDE_UNDOC_MEMBERS = NO -# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. If set # to NO, these classes will be included in the various overviews. This option # will also hide undocumented C++ concepts if enabled. This option has no effect @@ -592,14 +592,14 @@ HIDE_UNDOC_MEMBERS = NO HIDE_UNDOC_CLASSES = NO -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all friend # declarations. If set to NO, these declarations will be included in the # documentation. # The default value is: NO. HIDE_FRIEND_COMPOUNDS = NO -# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. If set to NO, these # blocks will be appended to the function's detailed documentation block. # The default value is: NO. @@ -613,7 +613,7 @@ HIDE_IN_BODY_DOCS = NO INTERNAL_DOCS = YES -# With the correct setting of option CASE_SENSE_NAMES doxygen will better be +# With the correct setting of option CASE_SENSE_NAMES Doxygen will better be # able to match the capabilities of the underlying filesystem. In case the # filesystem is case sensitive (i.e. it supports files in the same directory # whose names only differ in casing), the option must be set to YES to properly @@ -622,7 +622,7 @@ INTERNAL_DOCS = YES # output files written for symbols that only differ in casing, such as for two # classes, one named CLASS and the other named Class, and to also support # references to files without having to specify the exact matching casing. On -# Windows (including Cygwin) and MacOS, users should typically set this option +# Windows (including Cygwin) and macOS, users should typically set this option # to NO, whereas on Linux or other Unix flavors it should typically be set to # YES. # Possible values are: SYSTEM, NO and YES. @@ -630,14 +630,14 @@ INTERNAL_DOCS = YES CASE_SENSE_NAMES = NO -# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with +# If the HIDE_SCOPE_NAMES tag is set to NO then Doxygen will show members with # their full class and namespace scopes in the documentation. If set to YES, the # scope will be hidden. # The default value is: NO. HIDE_SCOPE_NAMES = NO -# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will +# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then Doxygen will # append additional text to a page's title, such as Class Reference. If set to # YES the compound reference will be hidden. # The default value is: NO. @@ -650,7 +650,7 @@ HIDE_COMPOUND_REFERENCE= NO SHOW_HEADERFILE = YES -# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of +# If the SHOW_INCLUDE_FILES tag is set to YES then Doxygen will put a list of # the files that are included by a file in the documentation of that file. # The default value is: YES. @@ -663,7 +663,7 @@ SHOW_INCLUDE_FILES = YES SHOW_GROUPED_MEMB_INC = NO -# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include +# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen will list include # files with double quotes in the documentation rather than with sharp brackets. # The default value is: NO. @@ -675,14 +675,14 @@ FORCE_LOCAL_INCLUDES = NO INLINE_INFO = YES -# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the +# If the SORT_MEMBER_DOCS tag is set to YES then Doxygen will sort the # (detailed) documentation of file and class members alphabetically by member # name. If set to NO, the members will appear in declaration order. # The default value is: YES. SORT_MEMBER_DOCS = NO -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief +# If the SORT_BRIEF_DOCS tag is set to YES then Doxygen will sort the brief # descriptions of file, namespace and class members alphabetically by member # name. If set to NO, the members will appear in declaration order. Note that # this will also influence the order of the classes in the class list. @@ -690,7 +690,7 @@ SORT_MEMBER_DOCS = NO SORT_BRIEF_DOCS = NO -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then Doxygen will sort the # (brief and detailed) documentation of class members so that constructors and # destructors are listed first. If set to NO the constructors will appear in the # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. @@ -702,7 +702,7 @@ SORT_BRIEF_DOCS = NO SORT_MEMBERS_CTORS_1ST = NO -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy +# If the SORT_GROUP_NAMES tag is set to YES then Doxygen will sort the hierarchy # of group names into alphabetical order. If set to NO the group names will # appear in their defined order. # The default value is: NO. @@ -719,11 +719,11 @@ SORT_GROUP_NAMES = NO SORT_BY_SCOPE_NAME = NO -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper +# If the STRICT_PROTO_MATCHING option is enabled and Doxygen fails to do proper # type resolution of all parameters of a function it will reject a match between # the prototype and the implementation of a member function even if there is # only one candidate or it is obvious which candidate to choose by doing a -# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still +# simple string match. By disabling STRICT_PROTO_MATCHING Doxygen will still # accept a match between prototype and implementation in such cases. # The default value is: NO. @@ -793,25 +793,25 @@ SHOW_FILES = NO SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from +# Doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command command input-file, where command is the value of the # FILE_VERSION_FILTER tag, and input-file is the name of an input file provided -# by doxygen. Whatever the program writes to standard output is used as the file +# by Doxygen. Whatever the program writes to standard output is used as the file # version. For an example see the documentation. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated +# by Doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. To create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. You can +# that represents Doxygen's defaults, run Doxygen with the -l option. You can # optionally specify a file name after the option, if omitted DoxygenLayout.xml # will be used as the name of the layout file. See also section "Changing the # layout of pages" for information. # -# Note that if you run doxygen from a directory containing a file called -# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# Note that if you run Doxygen from a directory containing a file called +# DoxygenLayout.xml, Doxygen will parse it automatically even if the LAYOUT_FILE # tag is left empty. LAYOUT_FILE = ccpp_dox_layout.xml @@ -826,19 +826,35 @@ LAYOUT_FILE = ccpp_dox_layout.xml CITE_BIB_FILES = library.bib +# The EXTERNAL_TOOL_PATH tag can be used to extend the search path (PATH +# environment variable) so that external tools such as latex and gs can be +# found. +# Note: Directories specified with EXTERNAL_TOOL_PATH are added in front of the +# path already specified by the PATH variable, and are added in the order +# specified. +# Note: This option is particularly useful for macOS version 14 (Sonoma) and +# higher, when running Doxygen from Doxywizard, because in this case any user- +# defined changes to the PATH are ignored. A typical example on macOS is to set +# EXTERNAL_TOOL_PATH = /Library/TeX/texbin /usr/local/bin +# together with the standard path, the full search path used by doxygen when +# launching external tools will then become +# PATH=/Library/TeX/texbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin + +EXTERNAL_TOOL_PATH = + #--------------------------------------------------------------------------- # Configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated to -# standard output by doxygen. If QUIET is set to YES this implies that the +# standard output by Doxygen. If QUIET is set to YES this implies that the # messages are off. # The default value is: NO. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are -# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES +# generated to standard error (stderr) by Doxygen. If WARNINGS is set to YES # this implies that the warnings are on. # # Tip: Turn warnings on while writing the documentation. @@ -846,14 +862,14 @@ QUIET = NO WARNINGS = YES -# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate +# If the WARN_IF_UNDOCUMENTED tag is set to YES then Doxygen will generate # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag # will automatically be disabled. # The default value is: YES. WARN_IF_UNDOCUMENTED = NO -# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for +# If the WARN_IF_DOC_ERROR tag is set to YES, Doxygen will generate warnings for # potential errors in the documentation, such as documenting some parameters in # a documented function twice, or documenting parameters that don't exist or # using markup commands wrongly. @@ -861,8 +877,8 @@ WARN_IF_UNDOCUMENTED = NO WARN_IF_DOC_ERROR = YES -# If WARN_IF_INCOMPLETE_DOC is set to YES, doxygen will warn about incomplete -# function parameter documentation. If set to NO, doxygen will accept that some +# If WARN_IF_INCOMPLETE_DOC is set to YES, Doxygen will warn about incomplete +# function parameter documentation. If set to NO, Doxygen will accept that some # parameters have no documentation without warning. # The default value is: YES. @@ -870,7 +886,7 @@ WARN_IF_INCOMPLETE_DOC = YES # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that # are documented, but have no documentation for their parameters or return -# value. If set to NO, doxygen will only warn about wrong parameter +# value. If set to NO, Doxygen will only warn about wrong parameter # documentation, but not about the absence of documentation. If EXTRACT_ALL is # set to YES then this flag will automatically be disabled. See also # WARN_IF_INCOMPLETE_DOC @@ -878,20 +894,20 @@ WARN_IF_INCOMPLETE_DOC = YES WARN_NO_PARAMDOC = NO -# If WARN_IF_UNDOC_ENUM_VAL option is set to YES, doxygen will warn about -# undocumented enumeration values. If set to NO, doxygen will accept +# If WARN_IF_UNDOC_ENUM_VAL option is set to YES, Doxygen will warn about +# undocumented enumeration values. If set to NO, Doxygen will accept # undocumented enumeration values. If EXTRACT_ALL is set to YES then this flag # will automatically be disabled. # The default value is: NO. WARN_IF_UNDOC_ENUM_VAL = NO -# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when +# If the WARN_AS_ERROR tag is set to YES then Doxygen will immediately stop when # a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS -# then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but -# at the end of the doxygen process doxygen will return with a non-zero status. -# If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS_PRINT then doxygen behaves -# like FAIL_ON_WARNINGS but in case no WARN_LOGFILE is defined doxygen will not +# then Doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but +# at the end of the Doxygen process Doxygen will return with a non-zero status. +# If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS_PRINT then Doxygen behaves +# like FAIL_ON_WARNINGS but in case no WARN_LOGFILE is defined Doxygen will not # write the warning messages in between other messages but write them at the end # of a run, in case a WARN_LOGFILE is defined the warning messages will be # besides being in the defined file also be shown at the end of a run, unless @@ -902,7 +918,7 @@ WARN_IF_UNDOC_ENUM_VAL = NO WARN_AS_ERROR = NO -# The WARN_FORMAT tag determines the format of the warning messages that doxygen +# The WARN_FORMAT tag determines the format of the warning messages that Doxygen # can produce. The string should contain the $file, $line, and $text tags, which # will be replaced by the file and line number from which the warning originated # and the warning text. Optionally the format may contain $version, which will @@ -915,7 +931,7 @@ WARN_FORMAT = # In the $text part of the WARN_FORMAT command it is possible that a reference # to a more specific place is given. To make it easier to jump to this place -# (outside of doxygen) the user can define a custom "cut" / "paste" string. +# (outside of Doxygen) the user can define a custom "cut" / "paste" string. # Example: # WARN_LINE_FORMAT = "'vi $file +$line'" # See also: WARN_FORMAT @@ -984,10 +1000,10 @@ INPUT = pdftxt/mainpage.txt \ ../PBL \ ../SFC_Models \ ../photochem \ - ../Radiation + ../Radiation # This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses +# that Doxygen parses. Internally Doxygen uses the UTF-8 encoding. Doxygen uses # libiconv (or the iconv built into libc) for the transcoding. See the libiconv # documentation (see: # https://www.gnu.org/software/libiconv/) for the list of possible encodings. @@ -997,7 +1013,7 @@ INPUT = pdftxt/mainpage.txt \ INPUT_ENCODING = UTF-8 # This tag can be used to specify the character encoding of the source files -# that doxygen parses The INPUT_FILE_ENCODING tag can be used to specify +# that Doxygen parses The INPUT_FILE_ENCODING tag can be used to specify # character encoding on a per file pattern basis. Doxygen will compare the file # name with each pattern and apply the encoding instead of the default # INPUT_ENCODING) if there is a match. The character encodings are a list of the @@ -1012,7 +1028,7 @@ INPUT_FILE_ENCODING = # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not -# read by doxygen. +# read by Doxygen. # # Note the list of default checked file patterns might differ from the list of # default file extension mappings. @@ -1021,7 +1037,7 @@ INPUT_FILE_ENCODING = # *.cpp, *.cppm, *.ccm, *.c++, *.c++m, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, # *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, *.h++, *.ixx, *.l, *.cs, *.d, # *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, *.md, *.mm, *.dox (to -# be provided as doxygen C comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, +# be provided as Doxygen C comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, # *.f18, *.f, *.for, *.vhd, *.vhdl, *.ucf, *.qsf and *.ice. FILE_PATTERNS = *.f \ @@ -1041,44 +1057,45 @@ RECURSIVE = YES # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. # -# Note that relative paths are relative to the directory from which doxygen is +# Note that relative paths are relative to the directory from which Doxygen is # run. -EXCLUDE = ../Radiation/RRTMGP/rte-rrtmgp \ - ../MP/Morrison_Gettelman \ - ../MP/Ferrier_Aligo \ - ../MP/Zhao_Carr \ - ../PBL/MYJ \ - ../PBL/HEDMF \ - ../PBL/SHOC \ - ../PBL/saYSU \ - ../PBL/YSU \ - ../PBL/SATMEDMF/mfscu.f \ +EXCLUDE = ../Radiation/RRTMGP/rte-rrtmgp \ + ../MP/Morrison_Gettelman \ + ../MP/Ferrier_Aligo \ + ../MP/Zhao_Carr \ + ../PBL/MYJ \ + ../MP/GFDL/GFDL_parse_tracers.F90 \ + ../PBL/HEDMF \ + ../PBL/SHOC \ + ../PBL/saYSU \ + ../PBL/YSU \ + ../PBL/SATMEDMF/mfscu.f \ ../PBL/SATMEDMF/satmedmfvdif.F \ - ../SFC_Models/Lake/Flake \ - ../smoke_dust \ - ../SFC_Layer/GFDL \ - ../SFC_Layer/MYJ \ - ../tools \ - ../CONV/C3 \ - ../CONV/Chikira_Sugiyama \ - ../CONV/nTiedtke \ - ../CONV/RAS \ - ../CONV/SAS \ + ../SFC_Models/Lake/Flake \ + ../smoke_dust \ + ../SFC_Layer/GFDL \ + ../SFC_Layer/MYJ \ + ../tools \ + ../CONV/C3 \ + ../CONV/Chikira_Sugiyama \ + ../CONV/nTiedtke \ + ../CONV/RAS \ + ../CONV/SAS \ ../CONV/SAMF/samfaerosols.F \ ../SFC_Layer/UFS/date_def.f \ ../GWD/cires_ugwpv1_module.F90 \ ../GWD/cires_ugwpv1_initialize.F90 \ - ../GWD/cires_ugwpv1_oro.F90 \ - ../GWD/cires_ugwpv1_solv2.F90 \ - ../GWD/cires_ugwpv1_sporo.F90 \ - ../GWD/cires_ugwpv1_triggers.F90 \ - ../GWD/cires_tauamf_data.F90 \ - ../GWD/unified_ugwp.F90 \ - ../GWD/unified_ugwp_post.F90 \ - ../GWD/gwdc.f \ - ../GWD/gwdc_post.f \ - ../GWD/gwdc_pre.f \ + ../GWD/cires_ugwpv1_oro.F90 \ + ../GWD/cires_ugwpv1_solv2.F90 \ + ../GWD/cires_ugwpv1_sporo.F90 \ + ../GWD/cires_ugwpv1_triggers.F90 \ + ../GWD/cires_tauamf_data.F90 \ + ../GWD/unified_ugwp.F90 \ + ../GWD/unified_ugwp_post.F90 \ + ../GWD/gwdc.f \ + ../GWD/gwdc_post.f \ + ../GWD/gwdc_pre.f \ ../GWD/rayleigh_damp.f # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or @@ -1132,7 +1149,7 @@ EXAMPLE_RECURSIVE = NO IMAGE_PATH = img -# The INPUT_FILTER tag can be used to specify a program that doxygen should +# The INPUT_FILTER tag can be used to specify a program that Doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command: # @@ -1147,14 +1164,14 @@ IMAGE_PATH = img # code is scanned, but not when the output code is generated. If lines are added # or removed, the anchors will not be placed correctly. # -# Note that doxygen will use the data processed and written to standard output +# Note that Doxygen will use the data processed and written to standard output # for further processing, therefore nothing else, like debug statements or used # commands (so in case of a Windows batch file always use @echo OFF), should be # written to standard output. # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. +# properly processed by Doxygen. INPUT_FILTER = @@ -1167,7 +1184,7 @@ INPUT_FILTER = # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. +# properly processed by Doxygen. FILTER_PATTERNS = @@ -1189,7 +1206,7 @@ FILTER_SOURCE_PATTERNS = # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that # is part of the input, its contents will be placed on the main page # (index.html). This can be useful if you have a project on for instance GitHub -# and want to reuse the introduction page also for the doxygen output. +# and want to reuse the introduction page also for the Doxygen output. USE_MDFILE_AS_MAINPAGE = @@ -1222,7 +1239,7 @@ SOURCE_BROWSER = YES INLINE_SOURCES = NO -# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any +# Setting the STRIP_CODE_COMMENTS tag to YES will instruct Doxygen to hide any # special comment blocks from generated source code fragments. Normal C, C++ and # Fortran comments will always remain visible. # The default value is: YES. @@ -1260,7 +1277,7 @@ REFERENCES_LINK_SOURCE = YES SOURCE_TOOLTIPS = YES # If the USE_HTAGS tag is set to YES then the references to source code will -# point to the HTML generated by the htags(1) tool instead of doxygen built-in +# point to the HTML generated by the htags(1) tool instead of Doxygen built-in # source browser. The htags tool is part of GNU's global source tagging system # (see https://www.gnu.org/software/global/global.html). You will need version # 4.8.6 or higher. @@ -1274,14 +1291,14 @@ SOURCE_TOOLTIPS = YES # Doxygen will invoke htags (and that will in turn invoke gtags), so these # tools must be available from the command line (i.e. in the search path). # -# The result: instead of the source browser generated by doxygen, the links to +# The result: instead of the source browser generated by Doxygen, the links to # source code will now point to the output of htags. # The default value is: NO. # This tag requires that the tag SOURCE_BROWSER is set to YES. USE_HTAGS = NO -# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a +# If the VERBATIM_HEADERS tag is set the YES then Doxygen will generate a # verbatim copy of the header file for each class for which an include is # specified. Set to NO to disable this. # See also: Section \class. @@ -1313,7 +1330,7 @@ IGNORE_PREFIX = # Configuration options related to the HTML output #--------------------------------------------------------------------------- -# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output +# If the GENERATE_HTML tag is set to YES, Doxygen will generate HTML output # The default value is: YES. GENERATE_HTML = YES @@ -1334,40 +1351,40 @@ HTML_OUTPUT = html HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a user-defined HTML header file for -# each generated HTML page. If the tag is left blank doxygen will generate a +# each generated HTML page. If the tag is left blank Doxygen will generate a # standard header. # # To get valid HTML the header file that includes any scripts and style sheets -# that doxygen needs, which is dependent on the configuration options used (e.g. +# that Doxygen needs, which is dependent on the configuration options used (e.g. # the setting GENERATE_TREEVIEW). It is highly recommended to start with a # default header using # doxygen -w html new_header.html new_footer.html new_stylesheet.css # YourConfigFile # and then modify the file new_header.html. See also section "Doxygen usage" -# for information on how to generate the default header that doxygen normally +# for information on how to generate the default header that Doxygen normally # uses. # Note: The header is subject to change so you typically have to regenerate the -# default header when upgrading to a newer version of doxygen. For a description +# default header when upgrading to a newer version of Doxygen. For a description # of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_HEADER = _doxygen/header.html # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each -# generated HTML page. If the tag is left blank doxygen will generate a standard +# generated HTML page. If the tag is left blank Doxygen will generate a standard # footer. See HTML_HEADER for more information on how to generate a default # footer and what special commands can be used inside the footer. See also # section "Doxygen usage" for information on how to generate the default footer -# that doxygen normally uses. +# that Doxygen normally uses. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FOOTER = _doxygen/footer.html # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style # sheet that is used by each HTML page. It can be used to fine-tune the look of -# the HTML output. If left blank doxygen will generate a default style sheet. +# the HTML output. If left blank Doxygen will generate a default style sheet. # See also section "Doxygen usage" for information on how to generate the style -# sheet that doxygen normally uses. +# sheet that Doxygen normally uses. # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as # it is more robust and this tag (HTML_STYLESHEET) will in the future become # obsolete. @@ -1377,7 +1394,7 @@ HTML_STYLESHEET = # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined # cascading style sheets that are included after the standard style sheets -# created by doxygen. Using this option one can overrule certain style aspects. +# created by Doxygen. Using this option one can overrule certain style aspects. # This is preferred over using HTML_STYLESHEET since it does not replace the # standard style sheet and is therefore more robust against future updates. # Doxygen will copy the style sheet files to the output directory. @@ -1477,7 +1494,7 @@ HTML_DYNAMIC_SECTIONS = NO HTML_CODE_FOLDING = YES -# If the HTML_COPY_CLIPBOARD tag is set to YES then doxygen will show an icon in +# If the HTML_COPY_CLIPBOARD tag is set to YES then Doxygen will show an icon in # the top right corner of code and text fragments that allows the user to copy # its content to the clipboard. Note this only works if supported by the browser # and the web page is served via a secure context (see: @@ -1490,7 +1507,7 @@ HTML_COPY_CLIPBOARD = YES # Doxygen stores a couple of settings persistently in the browser (via e.g. # cookies). By default these settings apply to all HTML pages generated by -# doxygen across all projects. The HTML_PROJECT_COOKIE tag can be used to store +# Doxygen across all projects. The HTML_PROJECT_COOKIE tag can be used to store # the settings under a project specific key, such that the user preferences will # be stored separately. # This tag requires that the tag GENERATE_HTML is set to YES. @@ -1514,7 +1531,7 @@ HTML_INDEX_NUM_ENTRIES = 100 # generated that can be used as input for Apple's Xcode 3 integrated development # environment (see: # https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). To -# create a documentation set, doxygen will generate a Makefile in the HTML +# create a documentation set, Doxygen will generate a Makefile in the HTML # output directory. Running make will produce the docset in that directory and # running make install will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at @@ -1562,7 +1579,7 @@ DOCSET_PUBLISHER_ID = org.doxygen.Publisher DOCSET_PUBLISHER_NAME = Publisher -# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three +# If the GENERATE_HTMLHELP tag is set to YES then Doxygen generates three # additional HTML index files: index.hhp, index.hhc, and index.hhk. The # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop # on Windows. In the beginning of 2021 Microsoft took the original page, with @@ -1573,7 +1590,7 @@ DOCSET_PUBLISHER_NAME = Publisher # ad/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe). # # The HTML Help Workshop contains a compiler that can convert all HTML output -# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML +# generated by Doxygen into a single compiled HTML file (.chm). Compiled HTML # files are now used as the Windows 98 help format, and will replace the old # Windows help format (.hlp) on all Windows platforms in the future. Compressed # HTML files also contain an index, a table of contents, and you can search for @@ -1593,7 +1610,7 @@ CHM_FILE = # The HHC_LOCATION tag can be used to specify the location (absolute path # including file name) of the HTML help compiler (hhc.exe). If non-empty, -# doxygen will try to run the HTML help compiler on the generated index.hhp. +# Doxygen will try to run the HTML help compiler on the generated index.hhp. # The file has to be specified with full path. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. @@ -1695,7 +1712,7 @@ QHP_CUST_FILTER_ATTRS = QHP_SECT_FILTER_ATTRS = # The QHG_LOCATION tag can be used to specify the location (absolute path -# including file name) of Qt's qhelpgenerator. If non-empty doxygen will try to +# including file name) of Qt's qhelpgenerator. If non-empty Doxygen will try to # run qhelpgenerator on the generated .qhp file. # This tag requires that the tag GENERATE_QHP is set to YES. @@ -1740,7 +1757,7 @@ DISABLE_INDEX = YES # (i.e. any modern browser). Windows users are probably better off using the # HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can # further fine tune the look of the index (see "Fine-tuning the output"). As an -# example, the default style sheet generated by doxygen has an example that +# example, the default style sheet generated by Doxygen has an example that # shows how to put an image at the root of the tree instead of the PROJECT_NAME. # Since the tree basically has the same information as the tab index, you could # consider setting DISABLE_INDEX to YES when enabling this option. @@ -1762,7 +1779,7 @@ GENERATE_TREEVIEW = YES FULL_SIDEBAR = NO # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that -# doxygen will group on one line in the generated HTML documentation. +# Doxygen will group on one line in the generated HTML documentation. # # Note that a value of 0 will completely suppress the enum values from appearing # in the overview section. @@ -1771,6 +1788,12 @@ FULL_SIDEBAR = NO ENUM_VALUES_PER_LINE = 4 +# When the SHOW_ENUM_VALUES tag is set doxygen will show the specified +# enumeration values besides the enumeration mnemonics. +# The default value is: NO. + +SHOW_ENUM_VALUES = NO + # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used # to set the initial width (in pixels) of the frame in which the tree is shown. # Minimum value: 0, maximum value: 1500, default value: 250. @@ -1778,21 +1801,21 @@ ENUM_VALUES_PER_LINE = 4 TREEVIEW_WIDTH = 335 -# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to +# If the EXT_LINKS_IN_WINDOW option is set to YES, Doxygen will open links to # external symbols imported via tag files in a separate window. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. EXT_LINKS_IN_WINDOW = NO -# If the OBFUSCATE_EMAILS tag is set to YES, doxygen will obfuscate email +# If the OBFUSCATE_EMAILS tag is set to YES, Doxygen will obfuscate email # addresses. # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. OBFUSCATE_EMAILS = YES -# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg +# If the HTML_FORMULA_FORMAT option is set to svg, Doxygen will use the pdf2svg # tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see # https://inkscape.org) to generate formulas as SVG images instead of PNGs for # the HTML output. These images will generally look nicer at scaled resolutions. @@ -1805,7 +1828,7 @@ HTML_FORMULA_FORMAT = SVG # Use this tag to change the font size of LaTeX formulas included as images in # the HTML documentation. When you change the font size after a successful -# doxygen run you need to manually remove any form_*.png images from the HTML +# Doxygen run you need to manually remove any form_*.png images from the HTML # output directory to force them to be regenerated. # Minimum value: 8, maximum value: 50, default value: 10. # This tag requires that the tag GENERATE_HTML is set to YES. @@ -1883,7 +1906,7 @@ MATHJAX_RELPATH = https://cdn.jsdelivr.net/npm/mathjax@2 MATHJAX_EXTENSIONS = -# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces +# The MATHJAX_CODEFILE tag can be used to specify a file with JavaScript pieces # of code that will be used on startup of the MathJax code. See the MathJax site # (see: # http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an @@ -1892,12 +1915,12 @@ MATHJAX_EXTENSIONS = MATHJAX_CODEFILE = -# When the SEARCHENGINE tag is enabled doxygen will generate a search box for -# the HTML output. The underlying search engine uses javascript and DHTML and +# When the SEARCHENGINE tag is enabled Doxygen will generate a search box for +# the HTML output. The underlying search engine uses JavaScript and DHTML and # should work on any modern browser. Note that when using HTML help # (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) # there is already a search function so this one should typically be disabled. -# For large projects the javascript based search engine can be slow, then +# For large projects the JavaScript based search engine can be slow, then # enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to # search using the keyboard; to jump to the search box use + S # (what the is depends on the OS and browser, but it is typically @@ -1916,7 +1939,7 @@ SEARCHENGINE = YES # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a web server instead of a web client using JavaScript. There # are two flavors of web server based searching depending on the EXTERNAL_SEARCH -# setting. When disabled, doxygen will generate a PHP script for searching and +# setting. When disabled, Doxygen will generate a PHP script for searching and # an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing # and searching needs to be provided by external tools. See the section # "External Indexing and Searching" for details. @@ -1925,7 +1948,7 @@ SEARCHENGINE = YES SERVER_BASED_SEARCH = NO -# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP +# When EXTERNAL_SEARCH tag is enabled Doxygen will no longer generate the PHP # script for searching. Instead the search results are written to an XML file # which needs to be processed by an external indexer. Doxygen will invoke an # external search engine pointed to by the SEARCHENGINE_URL option to obtain the @@ -1970,7 +1993,7 @@ SEARCHDATA_FILE = searchdata.xml EXTERNAL_SEARCH_ID = -# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen +# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through Doxygen # projects other than the one defined by this configuration file, but that are # all added to the same external search index. Each project needs to have a # unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of @@ -1984,7 +2007,7 @@ EXTRA_SEARCH_MAPPINGS = # Configuration options related to the LaTeX output #--------------------------------------------------------------------------- -# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output. +# If the GENERATE_LATEX tag is set to YES, Doxygen will generate LaTeX output. # The default value is: YES. GENERATE_LATEX = NO @@ -2029,7 +2052,7 @@ MAKEINDEX_CMD_NAME = makeindex LATEX_MAKEINDEX_CMD = makeindex -# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX +# If the COMPACT_LATEX tag is set to YES, Doxygen generates more compact LaTeX # documents. This may be useful for small projects and may help to save some # trees in general. # The default value is: NO. @@ -2060,15 +2083,15 @@ EXTRA_PACKAGES = amsmath # The LATEX_HEADER tag can be used to specify a user-defined LaTeX header for # the generated LaTeX document. The header should contain everything until the -# first chapter. If it is left blank doxygen will generate a standard header. It +# first chapter. If it is left blank Doxygen will generate a standard header. It # is highly recommended to start with a default header using # doxygen -w latex new_header.tex new_footer.tex new_stylesheet.sty # and then modify the file new_header.tex. See also section "Doxygen usage" for -# information on how to generate the default header that doxygen normally uses. +# information on how to generate the default header that Doxygen normally uses. # # Note: Only use a user-defined header if you know what you are doing! # Note: The header is subject to change so you typically have to regenerate the -# default header when upgrading to a newer version of doxygen. The following +# default header when upgrading to a newer version of Doxygen. The following # commands have a special meaning inside the header (and footer): For a # description of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_LATEX is set to YES. @@ -2077,10 +2100,10 @@ LATEX_HEADER = # The LATEX_FOOTER tag can be used to specify a user-defined LaTeX footer for # the generated LaTeX document. The footer should contain everything after the -# last chapter. If it is left blank doxygen will generate a standard footer. See +# last chapter. If it is left blank Doxygen will generate a standard footer. See # LATEX_HEADER for more information on how to generate a default footer and what # special commands can be used inside the footer. See also section "Doxygen -# usage" for information on how to generate the default footer that doxygen +# usage" for information on how to generate the default footer that Doxygen # normally uses. Note: Only use a user-defined footer if you know what you are # doing! # This tag requires that the tag GENERATE_LATEX is set to YES. @@ -2089,7 +2112,7 @@ LATEX_FOOTER = # The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined # LaTeX style sheets that are included after the standard style sheets created -# by doxygen. Using this option one can overrule certain style aspects. Doxygen +# by Doxygen. Using this option one can overrule certain style aspects. Doxygen # will copy the style sheet files to the output directory. # Note: The order of the extra style sheet files is of importance (e.g. the last # style sheet in the list overrules the setting of the previous ones in the @@ -2115,7 +2138,7 @@ LATEX_EXTRA_FILES = PDF_HYPERLINKS = YES -# If the USE_PDFLATEX tag is set to YES, doxygen will use the engine as +# If the USE_PDFLATEX tag is set to YES, Doxygen will use the engine as # specified with LATEX_CMD_NAME to generate the PDF file directly from the LaTeX # files. Set this option to YES, to get a higher quality PDF documentation. # @@ -2140,7 +2163,7 @@ USE_PDFLATEX = YES LATEX_BATCHMODE = NO -# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the +# If the LATEX_HIDE_INDICES tag is set to YES then Doxygen will not include the # index chapters (such as File Index, Compound Index, etc.) in the output. # The default value is: NO. # This tag requires that the tag GENERATE_LATEX is set to YES. @@ -2167,7 +2190,7 @@ LATEX_EMOJI_DIRECTORY = # Configuration options related to the RTF output #--------------------------------------------------------------------------- -# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The +# If the GENERATE_RTF tag is set to YES, Doxygen will generate RTF output. The # RTF output is optimized for Word 97 and may not look too pretty with other RTF # readers/editors. # The default value is: NO. @@ -2182,7 +2205,7 @@ GENERATE_RTF = NO RTF_OUTPUT = rtf -# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF +# If the COMPACT_RTF tag is set to YES, Doxygen generates more compact RTF # documents. This may be useful for small projects and may help to save some # trees in general. # The default value is: NO. @@ -2202,18 +2225,18 @@ COMPACT_RTF = NO RTF_HYPERLINKS = NO -# Load stylesheet definitions from file. Syntax is similar to doxygen's +# Load stylesheet definitions from file. Syntax is similar to Doxygen's # configuration file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. # # See also section "Doxygen usage" for information on how to generate the -# default style sheet that doxygen normally uses. +# default style sheet that Doxygen normally uses. # This tag requires that the tag GENERATE_RTF is set to YES. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an RTF document. Syntax is -# similar to doxygen's configuration file. A template extensions file can be +# similar to Doxygen's configuration file. A template extensions file can be # generated using doxygen -e rtf extensionFile. # This tag requires that the tag GENERATE_RTF is set to YES. @@ -2231,7 +2254,7 @@ RTF_EXTRA_FILES = # Configuration options related to the man page output #--------------------------------------------------------------------------- -# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for +# If the GENERATE_MAN tag is set to YES, Doxygen will generate man pages for # classes and files. # The default value is: NO. @@ -2262,7 +2285,7 @@ MAN_EXTENSION = .3 MAN_SUBDIR = -# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, then it # will generate one additional man file for each entity documented in the real # man page(s). These additional files only source the real man page, but without # them the man command would be unable to find the correct page. @@ -2275,7 +2298,7 @@ MAN_LINKS = NO # Configuration options related to the XML output #--------------------------------------------------------------------------- -# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that +# If the GENERATE_XML tag is set to YES, Doxygen will generate an XML file that # captures the structure of the code including all documentation. # The default value is: NO. @@ -2289,7 +2312,7 @@ GENERATE_XML = NO XML_OUTPUT = xml -# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program +# If the XML_PROGRAMLISTING tag is set to YES, Doxygen will dump the program # listings (including syntax highlighting and cross-referencing information) to # the XML output. Note that enabling this will significantly increase the size # of the XML output. @@ -2298,7 +2321,7 @@ XML_OUTPUT = xml XML_PROGRAMLISTING = YES -# If the XML_NS_MEMB_FILE_SCOPE tag is set to YES, doxygen will include +# If the XML_NS_MEMB_FILE_SCOPE tag is set to YES, Doxygen will include # namespace members in file scope as well, matching the HTML output. # The default value is: NO. # This tag requires that the tag GENERATE_XML is set to YES. @@ -2309,7 +2332,7 @@ XML_NS_MEMB_FILE_SCOPE = NO # Configuration options related to the DOCBOOK output #--------------------------------------------------------------------------- -# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files +# If the GENERATE_DOCBOOK tag is set to YES, Doxygen will generate Docbook files # that can be used to generate PDF. # The default value is: NO. @@ -2327,7 +2350,7 @@ DOCBOOK_OUTPUT = docbook # Configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- -# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an +# If the GENERATE_AUTOGEN_DEF tag is set to YES, Doxygen will generate an # AutoGen Definitions (see https://autogen.sourceforge.net/) file that captures # the structure of the code including all documentation. Note that this feature # is still experimental and incomplete at the moment. @@ -2339,8 +2362,8 @@ GENERATE_AUTOGEN_DEF = NO # Configuration options related to Sqlite3 output #--------------------------------------------------------------------------- -# If the GENERATE_SQLITE3 tag is set to YES doxygen will generate a Sqlite3 -# database with symbols found by doxygen stored in tables. +# If the GENERATE_SQLITE3 tag is set to YES Doxygen will generate a Sqlite3 +# database with symbols found by Doxygen stored in tables. # The default value is: NO. GENERATE_SQLITE3 = NO @@ -2354,7 +2377,7 @@ GENERATE_SQLITE3 = NO SQLITE3_OUTPUT = sqlite3 # The SQLITE3_RECREATE_DB tag is set to YES, the existing doxygen_sqlite3.db -# database file will be recreated with each doxygen run. If set to NO, doxygen +# database file will be recreated with each Doxygen run. If set to NO, Doxygen # will warn if a database file is already found and not modify it. # The default value is: YES. # This tag requires that the tag GENERATE_SQLITE3 is set to YES. @@ -2365,7 +2388,7 @@ SQLITE3_RECREATE_DB = YES # Configuration options related to the Perl module output #--------------------------------------------------------------------------- -# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module +# If the GENERATE_PERLMOD tag is set to YES, Doxygen will generate a Perl module # file that captures the structure of the code including all documentation. # # Note that this feature is still experimental and incomplete at the moment. @@ -2373,7 +2396,7 @@ SQLITE3_RECREATE_DB = YES GENERATE_PERLMOD = NO -# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary +# If the PERLMOD_LATEX tag is set to YES, Doxygen will generate the necessary # Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI # output from the Perl module output. # The default value is: NO. @@ -2403,13 +2426,13 @@ PERLMOD_MAKEVAR_PREFIX = # Configuration options related to the preprocessor #--------------------------------------------------------------------------- -# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all +# If the ENABLE_PREPROCESSING tag is set to YES, Doxygen will evaluate all # C-preprocessor directives found in the sources and include files. # The default value is: YES. ENABLE_PREPROCESSING = NO -# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names +# If the MACRO_EXPANSION tag is set to YES, Doxygen will expand all macro names # in the source code. If set to NO, only conditional compilation will be # performed. Macro expansion can be done in a controlled way by setting # EXPAND_ONLY_PREDEF to YES. @@ -2470,7 +2493,7 @@ PREDEFINED = CCPP \ EXPAND_AS_DEFINED = -# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will +# If the SKIP_FUNCTION_MACROS tag is set to YES then Doxygen's preprocessor will # remove all references to function-like macros that are alone on a line, have # an all uppercase name, and do not end with a semicolon. Such function macros # are typically used for boiler-plate code, and will confuse the parser if not @@ -2494,12 +2517,12 @@ SKIP_FUNCTION_MACROS = YES # section "Linking to external documentation" for more information about the use # of tag files. # Note: Each tag file must have a unique name (where the name does NOT include -# the path). If a tag file is not located in the directory in which doxygen is +# the path). If a tag file is not located in the directory in which Doxygen is # run, you must also specify the path to the tagfile here. TAGFILES = -# When a file name is specified after GENERATE_TAGFILE, doxygen will create a +# When a file name is specified after GENERATE_TAGFILE, Doxygen will create a # tag file that is based on the input files it reads. See section "Linking to # external documentation" for more information about the usage of tag files. @@ -2536,7 +2559,7 @@ EXTERNAL_PAGES = YES HIDE_UNDOC_RELATIONS = YES -# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# If you set the HAVE_DOT tag to YES then Doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz (see: # https://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent # Bell Labs. The other options in this section have no effect if this option is @@ -2545,8 +2568,8 @@ HIDE_UNDOC_RELATIONS = YES HAVE_DOT = YES -# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed -# to run in parallel. When set to 0 doxygen will base this on the number of +# The DOT_NUM_THREADS specifies the number of dot invocations Doxygen is allowed +# to run in parallel. When set to 0 Doxygen will base this on the number of # processors available in the system. You can set it explicitly to a value # larger than 0 to get control over the balance between CPU load and processing # speed. @@ -2557,7 +2580,7 @@ DOT_NUM_THREADS = 0 # DOT_COMMON_ATTR is common attributes for nodes, edges and labels of # subgraphs. When you want a differently looking font in the dot files that -# doxygen generates you can specify fontname, fontcolor and fontsize attributes. +# Doxygen generates you can specify fontname, fontcolor and fontsize attributes. # For details please see Node, # Edge and Graph Attributes specification You need to make sure dot is able # to find the font, which can be done by putting it in a standard location or by @@ -2591,7 +2614,7 @@ DOT_NODE_ATTR = "shape=box,height=0.2,width=0.4" DOT_FONTPATH = -# If the CLASS_GRAPH tag is set to YES or GRAPH or BUILTIN then doxygen will +# If the CLASS_GRAPH tag is set to YES or GRAPH or BUILTIN then Doxygen will # generate a graph for each documented class showing the direct and indirect # inheritance relations. In case the CLASS_GRAPH tag is set to YES or GRAPH and # HAVE_DOT is enabled as well, then dot will be used to draw the graph. In case @@ -2608,7 +2631,7 @@ DOT_FONTPATH = CLASS_GRAPH = YES -# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a +# If the COLLABORATION_GRAPH tag is set to YES then Doxygen will generate a # graph for each documented class showing the direct and indirect implementation # dependencies (inheritance, containment, and class references variables) of the # class with other documented classes. Explicit enabling a collaboration graph, @@ -2620,7 +2643,7 @@ CLASS_GRAPH = YES COLLABORATION_GRAPH = YES -# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for +# If the GROUP_GRAPHS tag is set to YES then Doxygen will generate a graph for # groups, showing the direct groups dependencies. Explicit enabling a group # dependency graph, when GROUP_GRAPHS is set to NO, can be accomplished by means # of the command \groupgraph. Disabling a directory graph can be accomplished by @@ -2631,7 +2654,7 @@ COLLABORATION_GRAPH = YES GROUP_GRAPHS = YES -# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and +# If the UML_LOOK tag is set to YES, Doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. # The default value is: NO. @@ -2652,10 +2675,10 @@ UML_LOOK = YES UML_LIMIT_NUM_FIELDS = 10 -# If the DOT_UML_DETAILS tag is set to NO, doxygen will show attributes and +# If the DOT_UML_DETAILS tag is set to NO, Doxygen will show attributes and # methods without types and arguments in the UML graphs. If the DOT_UML_DETAILS -# tag is set to YES, doxygen will add type and arguments for attributes and -# methods in the UML graphs. If the DOT_UML_DETAILS tag is set to NONE, doxygen +# tag is set to YES, Doxygen will add type and arguments for attributes and +# methods in the UML graphs. If the DOT_UML_DETAILS tag is set to NONE, Doxygen # will not generate fields with class member information in the UML graphs. The # class diagrams will look similar to the default class diagrams but using UML # notation for the relationships. @@ -2683,7 +2706,7 @@ DOT_WRAP_THRESHOLD = 17 TEMPLATE_RELATIONS = NO # If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to -# YES then doxygen will generate a graph for each documented file showing the +# YES then Doxygen will generate a graph for each documented file showing the # direct and indirect include dependencies of the file with other documented # files. Explicit enabling an include graph, when INCLUDE_GRAPH is is set to NO, # can be accomplished by means of the command \includegraph. Disabling an @@ -2694,7 +2717,7 @@ TEMPLATE_RELATIONS = NO INCLUDE_GRAPH = YES # If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are -# set to YES then doxygen will generate a graph for each documented file showing +# set to YES then Doxygen will generate a graph for each documented file showing # the direct and indirect include dependencies of the file with other documented # files. Explicit enabling an included by graph, when INCLUDED_BY_GRAPH is set # to NO, can be accomplished by means of the command \includedbygraph. Disabling @@ -2705,7 +2728,7 @@ INCLUDE_GRAPH = YES INCLUDED_BY_GRAPH = NO -# If the CALL_GRAPH tag is set to YES then doxygen will generate a call +# If the CALL_GRAPH tag is set to YES then Doxygen will generate a call # dependency graph for every global function or class method. # # Note that enabling this option will significantly increase the time of a run. @@ -2717,7 +2740,7 @@ INCLUDED_BY_GRAPH = NO CALL_GRAPH = YES -# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller +# If the CALLER_GRAPH tag is set to YES then Doxygen will generate a caller # dependency graph for every global function or class method. # # Note that enabling this option will significantly increase the time of a run. @@ -2729,14 +2752,14 @@ CALL_GRAPH = YES CALLER_GRAPH = YES -# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical +# If the GRAPHICAL_HIERARCHY tag is set to YES then Doxygen will graphical # hierarchy of all classes instead of a textual one. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. GRAPHICAL_HIERARCHY = YES -# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the +# If the DIRECTORY_GRAPH tag is set to YES then Doxygen will show the # dependencies a directory has on other directories in a graphical way. The # dependency relations are determined by the #include relations between the # files in the directories. Explicit enabling a directory graph, when @@ -2795,7 +2818,7 @@ DOT_PATH = /opt/homebrew/bin DOTFILE_DIRS = -# You can include diagrams made with dia in doxygen documentation. Doxygen will +# You can include diagrams made with dia in Doxygen documentation. Doxygen will # then run dia to produce the diagram and insert it in the documentation. The # DIA_PATH tag allows you to specify the directory where the dia binary resides. # If left empty dia is assumed to be found in the default search path. @@ -2808,7 +2831,7 @@ DIA_PATH = DIAFILE_DIRS = -# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the +# When using PlantUML, the PLANTUML_JAR_PATH tag should be used to specify the # path where java can find the plantuml.jar file or to the filename of jar file # to be used. If left blank, it is assumed PlantUML is not used or called during # a preprocessing step. Doxygen will generate a warning when it encounters a @@ -2816,19 +2839,19 @@ DIAFILE_DIRS = PLANTUML_JAR_PATH = -# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a -# configuration file for plantuml. +# When using PlantUML, the PLANTUML_CFG_FILE tag can be used to specify a +# configuration file for PlantUML. PLANTUML_CFG_FILE = -# When using plantuml, the specified paths are searched for files specified by -# the !include statement in a plantuml block. +# When using PlantUML, the specified paths are searched for files specified by +# the !include statement in a PlantUML block. PLANTUML_INCLUDE_PATH = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes # that will be shown in the graph. If the number of nodes in a graph becomes -# larger than this value, doxygen will truncate the graph, which is visualized +# larger than this value, Doxygen will truncate the graph, which is visualized # by representing a node as a red box. Note that if the number of direct # children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that @@ -2859,17 +2882,17 @@ MAX_DOT_GRAPH_DEPTH = 0 DOT_MULTI_TARGETS = YES -# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page +# If the GENERATE_LEGEND tag is set to YES Doxygen will generate a legend page # explaining the meaning of the various boxes and arrows in the dot generated # graphs. -# Note: This tag requires that UML_LOOK isn't set, i.e. the doxygen internal +# Note: This tag requires that UML_LOOK isn't set, i.e. the Doxygen internal # graphical representation for inheritance and collaboration diagrams is used. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. GENERATE_LEGEND = YES -# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate +# If the DOT_CLEANUP tag is set to YES, Doxygen will remove the intermediate # files that are used to generate the various graphs. # # Note: This setting is not only used for dot files but also for msc temporary @@ -2878,11 +2901,11 @@ GENERATE_LEGEND = YES DOT_CLEANUP = YES -# You can define message sequence charts within doxygen comments using the \msc -# command. If the MSCGEN_TOOL tag is left empty (the default), then doxygen will +# You can define message sequence charts within Doxygen comments using the \msc +# command. If the MSCGEN_TOOL tag is left empty (the default), then Doxygen will # use a built-in version of mscgen tool to produce the charts. Alternatively, # the MSCGEN_TOOL tag can also specify the name an external tool. For instance, -# specifying prog as the value, doxygen will call the tool as prog -T +# specifying prog as the value, Doxygen will call the tool as prog -T # -o . The external tool should support # output file formats "png", "eps", "svg", and "ismap". diff --git a/physics/docs/pdftxt/all_schemes_list.txt b/physics/docs/pdftxt/all_schemes_list.txt index 73668cc15..b064abdc8 100644 --- a/physics/docs/pdftxt/all_schemes_list.txt +++ b/physics/docs/pdftxt/all_schemes_list.txt @@ -69,7 +69,6 @@ produce the tendencies. - The second part of the physics suite, comprised of the parameterizations of gravity wave physics, ozone, stratospheric water vapor, deep and shallow convection (if using), and microphysics, is computed using sequential splitting in the order listed above, in which the model state is updated between calls to the parameterization. -- If the in-core saturation adjustment is used (\p do_sat_adj=.true.), it is invoked at shorter timesteps along with the dynamical solver. \section allsuite_overview Physics Suites From 72e606a25242159477641eae1a2da5ac8e6204a9 Mon Sep 17 00:00:00 2001 From: Man Zhang Date: Mon, 19 Aug 2024 13:13:23 -0600 Subject: [PATCH 24/29] add acronyms pages and NMLs for PSL options --- physics/docs/ccpp_doxyfile | 1 + physics/docs/pdftxt/acronyms.txt | 70 +++++++++++++++++++++++++ physics/docs/pdftxt/suite_input.nml.txt | 6 +++ 3 files changed, 77 insertions(+) create mode 100644 physics/docs/pdftxt/acronyms.txt diff --git a/physics/docs/ccpp_doxyfile b/physics/docs/ccpp_doxyfile index 403499455..7e40361ae 100644 --- a/physics/docs/ccpp_doxyfile +++ b/physics/docs/ccpp_doxyfile @@ -993,6 +993,7 @@ INPUT = pdftxt/mainpage.txt \ pdftxt/CLM_LAKE.txt \ pdftxt/THOMPSON.txt \ pdftxt/suite_input.nml.txt \ + pdftxt/acronyms.txt \ ../MP \ ../CONV \ ../GWD \ diff --git a/physics/docs/pdftxt/acronyms.txt b/physics/docs/pdftxt/acronyms.txt new file mode 100644 index 000000000..ded61d34d --- /dev/null +++ b/physics/docs/pdftxt/acronyms.txt @@ -0,0 +1,70 @@ +/** +\page Acronyms_desp Acronyms + +\tableofcontents +| Abbreviation | Explanation | +|------------------|---------------------| +| aa | Aerosol-aware | +| CA | Cellular Automata | +| CCN | Cloud Condensation Nulei | +| CCPP | Common Community Physics Package | +| CIRES | Cooperative Institute for Research in Environmental Sciences | +| CLM | Community Land Model | +| CSAW | Chikira-Sugiyama convection with Arakawa-Wu extension | +| dycore | Dynamical core | +| EDMF | Eddy-Diffusivity Mass Flux | +| EMC | Environmental Modeling Center | +| FV3 | Finite-Volume Cubed Sphere | +| GF | Grell-Freitas convective scheme | +| GFDL | Geophysical Fluid Dynamics Laboratory | +| GFS | Global Forecast System | +| GOCART | Goddard Chemistry Aerosol Radiation and Transport model | +| GSL | NOAA Global Systems Laboratory | +| HEDMF | Hybrid eddy-diffusivity mass-flux | +| HRRR | High-Resolution Rapid Refresh | +| LSM | Land Surface Model | +| LW | Longwave | +| McICA | Monte-Carlo Independent Column Approximation | +| MERRA-2 | Modern-Era Retrospective Analysis for Research and Applications, Version2 | +| MF | Mass-Flux | +| MG | Morrison-Gettelman | +| MP | Microphysics | +| MYNN | Mellor-Yamada-Nakanishi-Niino | +| NASA | National Aeronautics and Space Administration | +| NCAR | National Center for Atmospheric Research | +| NOAA | National Oceanic and Atmospheric Administration | +| NoahMP | Noah-Multiparameterization Land Surface Model | +| NRL | Naval Research Laboratory | +| NSST | Near Sea Surface Temperature ocean scheme | +| NSSL | NOAA National Severe Storms Laboratory | +| NWP | Numerical Weather Prediction | +| PBL | Planetary Boundary Layer | +| PSD | Partical size distribution | +| PSL | NOAA Physics Sciences Laboratory | +| RRFS | Rapid Refresh Forecast System | +| RRTMG | Rapid Radiative Transfer Model for General circulation model applications | +| RRTMGP | Rapid Radiation Transfer Model for General circulation model applications-Parallel +| RTE | Radiative Transfer for Energetics | +| RUC | Rapid Update Cycle | +| sa | Scale-aware | +| SAS | Simplified Arakawa-Schubert | +| SCM | Single-Column Model | +| SDF | Suite Definition File | +| sfc | Surface | +| SHUM | Perturbed boundary layer specific humidity | +| SKEB | Stochastic Kinetic Energy Backscatter | +| SPPT | Stochastically Perturbed Physics Tendencies | +| SW | Shortwave | +| TOA | Top of the Atmosphere | +| TKE | Turbulent Kinetic Energy | +| YSU | Yonsei University | +| UFS | Unified Forecast System | +| UGWP | Unified Gravity Wave Physics | +| WoFS | Warn on Forecast | +| WRF | Weather Research and Forecasting | +\tableofcontents + + + + +*/ diff --git a/physics/docs/pdftxt/suite_input.nml.txt b/physics/docs/pdftxt/suite_input.nml.txt index 71aa5783d..1f192e750 100644 --- a/physics/docs/pdftxt/suite_input.nml.txt +++ b/physics/docs/pdftxt/suite_input.nml.txt @@ -527,6 +527,12 @@ show some variables in the namelist that must match the SDF. do_gsl_drag_ls_bl unified_ugwp, drag_suite flag for GSL drag (large-scale GWD and blocking only) .false. do_gsl_drag_ss unified_ugwp, drag_suite flag for GSL drag (small-scale GWD only) .false. do_gsl_drag_tofd unified_ugwp, drag_suite flag for GSL drag (turbulent orog form drag only) .false. +do_gwd_opt_psl unified_ugwp, ugwpv1_gsldrag flag for PSL drag (mesoscale GWD and blocking only) .false. +do_ugwp_v1 GFS_physics_time_vary flag for version 1 UGWP .false. +do_ugwp_v1_orog_only ugwpv1_gsldrag flag for version 1 UGWP (orographic drag only) .false. +do_ugwp_v1_w_gsldrag ugwpv1_gsldrag flag for version 1 UGWP (orographic drag only) .false. +alpha_fd ugwpv1_gsldrag, drag_suite, unified_ugwp alpha coefficient for turbulent orographic form drag 12.0 +psl_gwd_dx_factor ugwpv1_gsldrag, drag_suite, unified_ugwp multiplication factors for grid spacing 6.0 \b Parameters \b related \b to \b LSM \b options lsm see \a GFS_typedefs.F90 flag for land surface model to use \n
      From d42bc73759183e797a6ddf20ac92b741f6597dac Mon Sep 17 00:00:00 2001 From: Man Zhang Date: Thu, 22 Aug 2024 09:32:25 -0600 Subject: [PATCH 25/29] minor fix --- physics/docs/pdftxt/suite_input.nml.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/physics/docs/pdftxt/suite_input.nml.txt b/physics/docs/pdftxt/suite_input.nml.txt index 1f192e750..f25272615 100644 --- a/physics/docs/pdftxt/suite_input.nml.txt +++ b/physics/docs/pdftxt/suite_input.nml.txt @@ -388,6 +388,12 @@ show some variables in the namelist that must match the SDF. qc_crt gfdl_cloud_microphys minimum value of cloud condensate to allow partial cloudiness. Partial cloud can only exist when total cloud condensate exceeds \p qc_crt 5.0e-8 c_psaci gfdl_cloud_microphys accretion efficiency of cloud ice to snow (cloud ice -> snow). Increasing(decreasing) of \p c_psaci can boost(decrease) the accretion of cloud ice to snow 0.02 c_pgacs gfdl_cloud_microphys accretion efficiency of snow to graupel (snow -> graupel). Increasing(decreasing) of \p c_pgacs can boost(decrease) the accretion of snow to graupel 2.0e-3 +reiflag gfdl_cloud_microphys cloud ice effective radius schme \n +
        +
      • 1: Heymsfield and Mcfarquhar (1996) +
      • 2: Wyser (1998) +
      + 1 rh_inc gfdl_cloud_microphys relative humidity increment for complete evaporation of cloud water and cloud ice 0.25 rh_inr gfdl_cloud_microphys relative humidity increment for sublimation of snow 0.25 rh_ins gfdl_cloud_microphys relative humidity increment for minimum evaporation of rain 0.25 From 714cfe7042f4f535f52264bc47a505727f101199 Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Mon, 26 Aug 2024 21:35:48 -0400 Subject: [PATCH 26/29] add back Doxygen comments for passing ccpp_prebuild.py --- physics/GWD/ugwpv1_gsldrag.F90 | 1 + .../UFS_SCM_NEPTUNE/GFS_rad_time_vary.fv3.F90 | 2 ++ .../UFS_SCM_NEPTUNE/GFS_rad_time_vary.scm.F90 | 2 ++ .../UFS_SCM_NEPTUNE/GFS_radiation_surface.F90 | 2 ++ .../UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.F90 | 1 + physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.F90 | 1 + physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.F90 | 2 ++ .../Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_setup.F90 | 3 +++ .../UFS_SCM_NEPTUNE/GFS_surface_loop_control_part1.F90 | 1 + .../UFS_SCM_NEPTUNE/module_ccpp_suite_simulator.F90 | 6 +++++- physics/SFC_Models/Land/sfc_land.F90 | 1 + physics/SFC_Models/SeaIce/CICE/sfc_cice.f | 2 +- physics/hooks/machine.F | 4 ++++ physics/photochem/h2o_def.f | 4 ++++ physics/photochem/module_ozphys.F90 | 8 +++++++- 15 files changed, 37 insertions(+), 3 deletions(-) diff --git a/physics/GWD/ugwpv1_gsldrag.F90 b/physics/GWD/ugwpv1_gsldrag.F90 index 3688218b3..5dd76b8d1 100644 --- a/physics/GWD/ugwpv1_gsldrag.F90 +++ b/physics/GWD/ugwpv1_gsldrag.F90 @@ -63,6 +63,7 @@ module ugwpv1_gsldrag !>@brief The subroutine initializes the unified UGWP !> \section arg_table_ugwpv1_gsldrag_init Argument Table !! \htmlinclude ugwpv1_gsldrag_init.html +!! subroutine ugwpv1_gsldrag_init ( & me, master, nlunit, input_nml_file, logunit, & fn_nml2, jdat, lonr, latr, levs, ak, bk, dtp, & diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.fv3.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.fv3.F90 index 9cda780d3..cbd660414 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.fv3.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.fv3.F90 @@ -11,8 +11,10 @@ module GFS_rad_time_vary contains !> This module contains code related to GFS radiation setup. + !> \section arg_table_GFS_rad_time_vary_timestep_init Argument Table !! \htmlinclude GFS_rad_time_vary_timestep_init.html +!! subroutine GFS_rad_time_vary_timestep_init (lrseeds, rseeds, & lslwr, lsswr, isubc_lw, isubc_sw, icsdsw, icsdlw, cnx, cny, isc, jsc, & imap, jmap, sec, kdt, imp_physics, imp_physics_zhao_carr, ipsd0, ipsdlim,& diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.scm.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.scm.F90 index cd745bcc1..46585c9da 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.scm.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.scm.F90 @@ -11,8 +11,10 @@ module GFS_rad_time_vary contains !> This module contains code related to GFS radiation setup. + !> \section arg_table_GFS_rad_time_vary_timestep_init Argument Table !! \htmlinclude GFS_rad_time_vary_timestep_init.html +!! subroutine GFS_rad_time_vary_timestep_init (lrseeds, rseeds, & lslwr, lsswr, isubc_lw, isubc_sw, icsdsw, icsdlw, cnx, cny, isc, jsc, & imap, jmap, sec, kdt, imp_physics, imp_physics_zhao_carr, ipsd0, ipsdlim,& diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.F90 index ccce95ebd..5e8c5bc9d 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.F90 @@ -12,8 +12,10 @@ module GFS_radiation_surface !> This module contains calls to module_radiation_surface::setemis() to set up !! surface emissivity for LW radiation and to module_radiation_surface::setalb() !! to set up surface albedo for SW radiation. + !> \section arg_table_GFS_radiation_surface_init Argument Table !! \htmlinclude GFS_radiation_surface_init.html +!! subroutine GFS_radiation_surface_init (me, ialb, iems, semis_file, con_pi, errmsg, errflg) use module_radiation_surface, only: sfc_init diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.F90 index ed0445361..069f7545c 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.F90 @@ -14,6 +14,7 @@ module GFS_rrtmgp_cloud_overlap !> \section arg_table_GFS_rrtmgp_cloud_overlap_run Argument Table !! \htmlinclude GFS_rrtmgp_cloud_overlap_run.html +!! !! This is identical (shares common-code) to RRTMG. The motivation for RRTMGP to have !! its own scheme is both organizational and philosophical*. !! diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.F90 index a89e5c961..ec22f24d3 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.F90 @@ -15,6 +15,7 @@ module GFS_rrtmgp_post !> \section arg_table_GFS_rrtmgp_post_run Argument Table !! \htmlinclude GFS_rrtmgp_post_run.html +!! !!The all-sky radiation tendency is computed, the clear-sky tendency is computed !! if requested. !! diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.F90 index 9da0d6cf9..0a747aa44 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.F90 @@ -33,6 +33,7 @@ module GFS_rrtmgp_pre !> \section arg_table_GFS_rrtmgp_pre_init Argument Table !! \htmlinclude GFS_rrtmgp_pre_init.html +!! !! Actuve gas-names are read from namelist. Set to interstitial%active_gases. subroutine GFS_rrtmgp_pre_init(nGases, active_gases, active_gases_array, errmsg, errflg) ! Inputs @@ -95,6 +96,7 @@ end subroutine GFS_rrtmgp_pre_init !> \section arg_table_GFS_rrtmgp_pre_run Argument Table !! \htmlinclude GFS_rrtmgp_pre_run.html +!! !! Sanitize inputs for use in RRTMGP. subroutine GFS_rrtmgp_pre_run(me, nCol, nLev, i_o3, doSWrad, doLWrad, fhswr, fhlwr, & xlat, xlon, prsl, tgrs, prslk, prsi, qgrs, tsfc, coslat, sinlat, con_g, con_rd, & diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_setup.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_setup.F90 index 679185746..0ed936410 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_setup.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_setup.F90 @@ -33,6 +33,7 @@ module GFS_rrtmgp_setup !> \section arg_table_GFS_rrtmgp_setup_init Argument Table !! \htmlinclude GFS_rrtmgp_setup_init.html +!! subroutine GFS_rrtmgp_setup_init(do_RRTMGP, imp_physics, imp_physics_fer_hires, & imp_physics_gfdl, imp_physics_thompson, imp_physics_wsm6, imp_physics_zhao_carr, & imp_physics_zhao_carr_pdf, imp_physics_mg, si, levr, ictm, isol, ico2, iaer, & @@ -140,6 +141,7 @@ end subroutine GFS_rrtmgp_setup_init !> \section arg_table_GFS_rrtmgp_setup_timestep_init Argument Table !! \htmlinclude GFS_rrtmgp_setup_timestep_init.html +!! subroutine GFS_rrtmgp_setup_timestep_init (idate, jdate, deltsw, deltim, doSWrad, me, & iaermdl, aeros_file, isol, slag, sdec, cdec, solcon, con_pi, co2dat_file, & co2gbl_file, ictm, ico2, ntoz, ozphys, errmsg, errflg) @@ -247,6 +249,7 @@ end subroutine GFS_rrtmgp_setup_timestep_init !> \section arg_table_GFS_rrtmgp_setup_finalize Argument Table !! \htmlinclude GFS_rrtmgp_setup_finalize.html +!! subroutine GFS_rrtmgp_setup_finalize (errmsg, errflg) character(len=*), intent( out) :: errmsg integer, intent( out) :: errflg diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_loop_control_part1.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_loop_control_part1.F90 index 32d15f867..913c1a7b6 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_loop_control_part1.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_loop_control_part1.F90 @@ -9,6 +9,7 @@ module GFS_surface_loop_control_part1 !! !! \section arg_table_GFS_surface_loop_control_part1_run Arguments !! \htmlinclude GFS_surface_loop_control_part1_run.html +!! subroutine GFS_surface_loop_control_part1_run (im, iter, & wind, flag_guess, errmsg, errflg) diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/module_ccpp_suite_simulator.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/module_ccpp_suite_simulator.F90 index e8a4188d3..45d3dd4e0 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/module_ccpp_suite_simulator.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/module_ccpp_suite_simulator.F90 @@ -52,7 +52,11 @@ module module_ccpp_suite_simulator real(kind_phys), dimension(:,:,:,:), allocatable :: q end type phys_tend_4d -!> This type contains the meta information and data for each physics process. +!> \section arg_table_base_physics_process Argument Table +!! \htmlinclude base_physics_process.html +!! +!! This type contains the meta information and data for each physics process. +!! type base_physics_process character(len=16) :: name !< Physics process name logical :: time_split = .false. !< Is process time-split? diff --git a/physics/SFC_Models/Land/sfc_land.F90 b/physics/SFC_Models/Land/sfc_land.F90 index 3580f2e64..6f52452db 100644 --- a/physics/SFC_Models/Land/sfc_land.F90 +++ b/physics/SFC_Models/Land/sfc_land.F90 @@ -16,6 +16,7 @@ module sfc_land !> \brief Brief description of the subroutine !! \section arg_table_sfc_land_run Arguments !! \htmlinclude sfc_land_run.html +!! subroutine sfc_land_run(im, cpllnd, cpllnd2atm, flag_iter, dry, & sncovr1_lnd, qsurf_lnd, evap_lnd, hflx_lnd, & ep_lnd, t2mmp_lnd, q2mp_lnd, gflux_lnd, & diff --git a/physics/SFC_Models/SeaIce/CICE/sfc_cice.f b/physics/SFC_Models/SeaIce/CICE/sfc_cice.f index 334de4137..369e24cf0 100644 --- a/physics/SFC_Models/SeaIce/CICE/sfc_cice.f +++ b/physics/SFC_Models/SeaIce/CICE/sfc_cice.f @@ -14,7 +14,7 @@ module sfc_cice !> \brief Brief description of the subroutine !! \section arg_table_sfc_cice_run Arguments !! \htmlinclude sfc_cice_run.html - +!! !! use physcons, only : hvap => con_hvap, cp => con_cp, & !! & rvrdm1 => con_fvirt, rd => con_rd diff --git a/physics/hooks/machine.F b/physics/hooks/machine.F index d6f36305b..88cd28eae 100644 --- a/physics/hooks/machine.F +++ b/physics/hooks/machine.F @@ -2,6 +2,10 @@ !! module machine +!! \section arg_table_machine +!! \htmlinclude machine.html +!! + implicit none integer, parameter :: kind_sngl_prec = 4 & diff --git a/physics/photochem/h2o_def.f b/physics/photochem/h2o_def.f index 7602b1ffe..72748a613 100644 --- a/physics/photochem/h2o_def.f +++ b/physics/photochem/h2o_def.f @@ -5,6 +5,10 @@ !! This module defines arrays in H2O scheme. module h2o_def +!> \section arg_table_h2o_def +!! \htmlinclude h2o_def.html +!! + use machine , only : kind_phys implicit none diff --git a/physics/photochem/module_ozphys.F90 b/physics/photochem/module_ozphys.F90 index f9740d439..5ebec5af4 100644 --- a/physics/photochem/module_ozphys.F90 +++ b/physics/photochem/module_ozphys.F90 @@ -45,8 +45,14 @@ module module_ozphys public ty_ozphys -!> Derived type containing data and procedures needed by ozone photochemistry parameterization +! ######################################################################################### +!> \section arg_table_ty_ozphys Argument Table +!! \htmlinclude ty_ozphys.html +!! +!! Derived type containing data and procedures needed by ozone photochemistry parameterization !! *Note* All data field are ordered from surface-to-toa. +!! +! ######################################################################################### type ty_ozphys ! Prognostic ozone. integer :: nlat !< Number of latitudes. From 670b9786ee6d8e94df785beffcc585a11f16bdca Mon Sep 17 00:00:00 2001 From: Man Zhang Date: Tue, 27 Aug 2024 09:28:31 -0600 Subject: [PATCH 27/29] address reviewers' comments --- physics/GWD/drag_suite.F90 | 10 ++++------ physics/docs/pdftxt/GFS_UGWPV1_ORO.txt | 2 +- physics/docs/pdftxt/GFS_drag_suite.txt | 2 +- physics/docs/pdftxt/ccppv7_phy_updates.txt | 2 +- physics/docs/pdftxt/suite_input.nml.txt | 1 + 5 files changed, 8 insertions(+), 9 deletions(-) diff --git a/physics/GWD/drag_suite.F90 b/physics/GWD/drag_suite.F90 index 634c4f1a1..e78f2924a 100644 --- a/physics/GWD/drag_suite.F90 +++ b/physics/GWD/drag_suite.F90 @@ -1,14 +1,12 @@ !> \file drag_suite.F90 -!! This file is the parameterization of orographic gravity wave +!! This file is the parameterization of orographic drag !! drag, mountain blocking, and form drag. -!> This module contains the orographic gravity wave drag scheme +!> This module contains the orographic drag scheme module drag_suite contains -!> \brief This subroutine initializes the orographic gravity wave drag scheme. -!! !> \section arg_table_drag_suite_init Argument Table !! \htmlinclude drag_suite_init.html !! @@ -32,7 +30,7 @@ subroutine drag_suite_init(gwd_opt, errmsg, errflg) end if end subroutine drag_suite_init -!> \brief This subroutine includes orographic gravity wave drag, mountain +!> This subroutine includes orographic drag, mountain !! blocking, and form drag. !! !> The time tendencies of zonal and meridional wind are altered to @@ -43,7 +41,7 @@ end subroutine drag_suite_init !> \section arg_table_drag_suite_run Argument Table !! \htmlinclude drag_suite_run.html !! -!> \section gen_drag_suite GFS Orographic GWD Scheme General Algorithm +!> \section gen_drag_suite Orographic drag Scheme General Algorithm !! -# Calculate subgrid mountain blocking !! -# Calculate orographic wave drag !! diff --git a/physics/docs/pdftxt/GFS_UGWPV1_ORO.txt b/physics/docs/pdftxt/GFS_UGWPV1_ORO.txt index b7d99b4d3..490e5471e 100644 --- a/physics/docs/pdftxt/GFS_UGWPV1_ORO.txt +++ b/physics/docs/pdftxt/GFS_UGWPV1_ORO.txt @@ -2,7 +2,7 @@ \page GFS_drag_suite Orographic Drag Scheme \section des_drag Description -The orographic drag suite, developed by NOAA's Global Systems Laboratory, Physical Sciences Laboratory and Environmental Modeling Center is a set of subgrid-scale orographic drag parameterizations that calculate momentum tendencies due to the effects of unresolved topography. The drag forces they represent are those due to: 1) meso-scale gravity (mountain) waves that propagate vertically and break in the free atmosphere of the troposphere, stratosphere and above; 2) low-level flow blocking; 3) turbulent orographic form drag (TOFD), which is generated by turbulent pressure perturbations that are correlated with the terrain slope. The distinction between the meso-scale and turbulent-scale gravity waves are that the former are generated by topography with horizontal scales on the order of 5 km and greater, which can support vertical propagation through the typical static stabilities found in the free atmosphere, while the latter are generated by topography with smaller horizontal scales down to about 1 km. +The orographic drag scheme, developed by NOAA's Global Systems Laboratory, Physical Sciences Laboratory and Environmental Modeling Center is a set of subgrid-scale orographic drag parameterizations that calculate momentum tendencies due to the effects of unresolved topography. The drag forces they represent are those due to: 1) meso-scale gravity (mountain) waves that propagate vertically and break in the free atmosphere of the troposphere, stratosphere and above; 2) low-level flow blocking; 3) turbulent orographic form drag (TOFD), which is generated by turbulent pressure perturbations that are correlated with the terrain slope. The distinction between the meso-scale and turbulent-scale gravity waves are that the former are generated by topography with horizontal scales on the order of 5 km and greater, which can support vertical propagation through the typical static stabilities found in the free atmosphere, while the latter are generated by topography with smaller horizontal scales down to about 1 km. The GWD and flow-blocking scheme is based on Kim and Doyle (2005) \cite kim_and_doyle_2005 and Choi and Hong (2015)\cite choi_and_hong_2015 and its code originated from the NCAR Weather Research and Forecasting (WRF) model that was implemented by S. Hong. The TOFD scheme is adapted from Beljaars et al. (2004)\cite beljaars_et_al_2004. diff --git a/physics/docs/pdftxt/GFS_drag_suite.txt b/physics/docs/pdftxt/GFS_drag_suite.txt index 80ce32684..856d056a5 100644 --- a/physics/docs/pdftxt/GFS_drag_suite.txt +++ b/physics/docs/pdftxt/GFS_drag_suite.txt @@ -2,7 +2,7 @@ \page GFS_drag_suite Orographic Drag Scheme \section des_drag Description -The orographic drag suite, developed by NOAA's Global Systems Laboratory, Physical Sciences Laboratory and Environmental Modeling Center is a set of subgrid-scale orographic drag parameterizations that calculate momentum tendencies due to the effects of unresolved topography. The drag forces they represent are those due to: 1) large-scale gravity (mountain) waves that propagate vertically and break in the free atmosphere of the troposphere, stratosphere and above; 2) low-level flow blocking; 3) small-scale gravity wave drag (GWD) due to mountain waves generated in stable planetary boundary layer (PBL) conditions, typically at nighttime, which break at or near the PBL top; and 4) turbulent orographic form drag (TOFD), which is generated by turbulent pressure perturbations that are correlated with the terrain slope. The distinction between the large-scale and small-scale gravity waves are that the former are generated by topography with horizontal scales on the order of 5 km and greater, which can support vertical propagation through the typical static stabilities found in the free atmosphere, while the latter are generated by topography with smaller horizontal scales down to about 1 km, which can support vertical propagation only in very stable conditions, typically found in nocturnal PBLs. +The orographic drag scheme, developed by NOAA's Global Systems Laboratory, Physical Sciences Laboratory and Environmental Modeling Center is a set of subgrid-scale orographic drag parameterizations that calculate momentum tendencies due to the effects of unresolved topography. The drag forces they represent are those due to: 1) large-scale gravity (mountain) waves that propagate vertically and break in the free atmosphere of the troposphere, stratosphere and above; 2) low-level flow blocking; 3) small-scale gravity wave drag (GWD) due to mountain waves generated in stable planetary boundary layer (PBL) conditions, typically at nighttime, which break at or near the PBL top; and 4) turbulent orographic form drag (TOFD), which is generated by turbulent pressure perturbations that are correlated with the terrain slope. The distinction between the large-scale and small-scale gravity waves are that the former are generated by topography with horizontal scales on the order of 5 km and greater, which can support vertical propagation through the typical static stabilities found in the free atmosphere, while the latter are generated by topography with smaller horizontal scales down to about 1 km, which can support vertical propagation only in very stable conditions, typically found in nocturnal PBLs. The large-scale GWD scheme is based on Kim and Doyle (2005) \cite kim_and_doyle_2005 and Choi and Hong (2015)\cite choi_and_hong_2015 and the code originated from the NCAR Weather Research and Forecasting (WRF) model and NOAA RAP/HRRR. The low-level blocking scheme is adapted from Kim and Doyle (2005)\cite kim_and_doyle_2005, with the code also originating from the WRF and RAP/HRRR. The small-scale orographic GWD scheme is based on Steeneveld et al.(2008)\cite steeneveld_et_al_2008 and Tsiringakis et al. (2017) \cite tsiringakis_et_al_2017, and the TOFD scheme is adapted from Beljaars et al. (2004)\cite beljaars_et_al_2004. diff --git a/physics/docs/pdftxt/ccppv7_phy_updates.txt b/physics/docs/pdftxt/ccppv7_phy_updates.txt index 5751cca74..894b78b15 100644 --- a/physics/docs/pdftxt/ccppv7_phy_updates.txt +++ b/physics/docs/pdftxt/ccppv7_phy_updates.txt @@ -17,7 +17,7 @@ Suites GFS_v17_p8, HRRR, RRFS_v1beta, and RAP, which were supported with CCPP v6 The updates between GFSv16 and GFSv17 are carefully outlined in Bengtsson and Han (2024)(submitted to \a Weather \a and \a Forecasting). The main updates include: - Implementation of a positive definition mass-flux scheme and a method for removing the negative tracers (Han et al. 2022 \cite Han_et_al_2022) - Introduction of a new closure based on a prognostic evolution of the convective updraft area fraction in both shallow and deep convection (Bengtsson et al. 2022 \cite Bengtsson_2022) -- Introduction of 3D effects of cold-pool dynamics and stochastic initiation using self-organizing cellular automata stochastic convective organization scheme (not supported; Bengtsson et al. 2021 \cite bengtsson_et_al_2021) +- Introduction of 3D effects of cold-pool dynamics and stochastic initiation using self-organizing cellular automata stochastic convective organization scheme (not supported in SCM; Bengtsson et al. 2021 \cite bengtsson_et_al_2021) - Introduction of environmental wind shear effect and subgrid TKE dependence in convection, to seek improvements in hurricane forecast prediction (Han et al. 2024 \cite Han_2024) - Introduction of stricter convective initiation criteria to allow for more CAPE to build up to address a low CAPE bias in GFSv16 (Han et al. 2021 \cite han_2021) - Reduction of convective rain evaporation rate to address a systematic cold bias near the surface in GFSv16 (Han et al. 2021 \cite han_2021) diff --git a/physics/docs/pdftxt/suite_input.nml.txt b/physics/docs/pdftxt/suite_input.nml.txt index f25272615..acf5902b1 100644 --- a/physics/docs/pdftxt/suite_input.nml.txt +++ b/physics/docs/pdftxt/suite_input.nml.txt @@ -495,6 +495,7 @@ show some variables in the namelist that must match the SDF. knob_ugwp_effac cires_ugwp four-dimensional array that control efficiency of GWs triggerd by four types of physics-based sources. \n Default values: 1.,1.,1.,1. - reflect that calculated GW-tendencies will be applied for the model state. 1.,1.,1.,1. +knob_ugwp_tauamp ugwpv1_gsldrag amplitude for GEOS-5/MERRA-2 7.75e-3 launch_level cires_ugwp parameter has been introduced by EMC during implementation. It defines the interface model level from the surface at which NGWs are launched. \n Default value for FV3GFS-64L, launch_level=25 and for FV3GFS-128L, launch_level=52. 55 From e5fc1940e74ad12214e87c9363e356dccaaf4ab9 Mon Sep 17 00:00:00 2001 From: Man Zhang Date: Wed, 28 Aug 2024 14:41:16 -0600 Subject: [PATCH 28/29] address comments --- physics/docs/pdftxt/GFS_RRTMG.txt | 1 - physics/docs/pdftxt/GFS_RRTMGP.txt | 1 - 2 files changed, 2 deletions(-) diff --git a/physics/docs/pdftxt/GFS_RRTMG.txt b/physics/docs/pdftxt/GFS_RRTMG.txt index 181d32308..94a4c9398 100644 --- a/physics/docs/pdftxt/GFS_RRTMG.txt +++ b/physics/docs/pdftxt/GFS_RRTMG.txt @@ -60,7 +60,6 @@ - CSDLFsfc: Downward LW - CSDSFsfc: Downward SW - CSULFsfc: Upward LW - - CSULFsfc: Upward LW - CSUSFsfc: Upward sw - CDUVBsfc: UV-B downward flux - At TOA total sky diff --git a/physics/docs/pdftxt/GFS_RRTMGP.txt b/physics/docs/pdftxt/GFS_RRTMGP.txt index f4ab8679c..96f8d3d49 100644 --- a/physics/docs/pdftxt/GFS_RRTMGP.txt +++ b/physics/docs/pdftxt/GFS_RRTMGP.txt @@ -60,7 +60,6 @@ - CSDLFsfc: Downward LW - CSDSFsfc: Downward SW - CSULFsfc: Upward LW - - CSULFsfc: Upward LW - CSUSFsfc: Upward sw - CDUVBsfc: UV-B downward flux - At TOA total sky From 33595bac3ce330c54901e1ea4eac02719702df2c Mon Sep 17 00:00:00 2001 From: Man Zhang Date: Wed, 28 Aug 2024 14:46:05 -0600 Subject: [PATCH 29/29] address comments --- physics/docs/pdftxt/GFS_RRTMG.txt | 1 + physics/docs/pdftxt/GFS_RRTMGP.txt | 1 + 2 files changed, 2 insertions(+) diff --git a/physics/docs/pdftxt/GFS_RRTMG.txt b/physics/docs/pdftxt/GFS_RRTMG.txt index 94a4c9398..1e00e171f 100644 --- a/physics/docs/pdftxt/GFS_RRTMG.txt +++ b/physics/docs/pdftxt/GFS_RRTMG.txt @@ -60,6 +60,7 @@ - CSDLFsfc: Downward LW - CSDSFsfc: Downward SW - CSULFsfc: Upward LW + - CSDLFsfc: Downward LW - CSUSFsfc: Upward sw - CDUVBsfc: UV-B downward flux - At TOA total sky diff --git a/physics/docs/pdftxt/GFS_RRTMGP.txt b/physics/docs/pdftxt/GFS_RRTMGP.txt index 96f8d3d49..44e8b1bb2 100644 --- a/physics/docs/pdftxt/GFS_RRTMGP.txt +++ b/physics/docs/pdftxt/GFS_RRTMGP.txt @@ -60,6 +60,7 @@ - CSDLFsfc: Downward LW - CSDSFsfc: Downward SW - CSULFsfc: Upward LW + - CSDLFsfc: Downward LW - CSUSFsfc: Upward sw - CDUVBsfc: UV-B downward flux - At TOA total sky