From 6792ae315d59369982bc5e5d3dffc197dc188863 Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Tue, 20 Aug 2024 11:35:37 -0400 Subject: [PATCH 01/42] point to develop branch of ccpp-framework --- .gitmodules | 2 +- ccpp/framework | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index dc0798c32..56dee3ba7 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,7 +1,7 @@ [submodule "ccpp-framework"] path = ccpp/framework url = https://github.com/NCAR/ccpp-framework - branch = main + branch = develop [submodule "ccpp-physics"] path = ccpp/physics url = https://github.com/NCAR/ccpp-physics diff --git a/ccpp/framework b/ccpp/framework index 0f8232724..af90b948b 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit 0f8232724975c13289cad390c9a71fa2c6a9bff4 +Subproject commit af90b948b85b88649547b49d28ba98fd5cb8c4b1 From 1a3bb7245cc03d8fea213c7699e91c989c81606f Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Tue, 27 Aug 2024 18:06:05 -0400 Subject: [PATCH 02/42] fix chap_quick.rst that was not merged correctly from previous PR --- scm/doc/TechGuide/chap_quick.rst | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/scm/doc/TechGuide/chap_quick.rst b/scm/doc/TechGuide/chap_quick.rst index 5c7880535..df96e0f40 100644 --- a/scm/doc/TechGuide/chap_quick.rst +++ b/scm/doc/TechGuide/chap_quick.rst @@ -216,13 +216,6 @@ Unified Forecast System and related applications, only a minority of which are r install libraries manually if they wish, but they will need to make sure the appropriate environment variables are set to the correct values so that the build system can find them, as described in the following paragraphs. - -<<<<<<< HEAD -Setting up compilation environment -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -For users on a pre-configured platform, the spack-stack environment can be loaded via one of the provided modules in ``scm/etc/modules/`` as described in :numref:`Section %s `. -======= For users on a pre-configured platform, you can load the spack-stack environment via one of the provided modules in ``scm/etc/modules/``. For example, users on the NSF NCAR machine Derecho who wish to use Intel compilers can do the following: @@ -231,7 +224,6 @@ For example, users on the NSF NCAR machine Derecho who wish to use Intel compile cd [path/to/ccpp-scm/] module use scm/etc/modules/ module load derecho_intel ->>>>>>> feature/modulefile_updates Additionally, for users who have installed spack-stack on their own MacOS or Linux machine can use the provided ``macos_clang`` or ``linux_gnu`` modules. @@ -613,11 +605,7 @@ configuration files located in ``../etc/case_config`` (*without the .nml extensi specifying a suite other than the default, the suite name used must match the value of the suite name in one of the suite definition files located in ``../../ccpp/suites`` (Note: not the filename of the suite definition file). As -<<<<<<< HEAD -part of the CCPP SCM v7.0.0 release, the following suite names are supported: -======= part of the seventh CCPP release, the following suite names are supported: ->>>>>>> feature/modulefile_updates #. SCM_GFS_v16 From 1d2f8c290d0496ad27d449279808409664906f76 Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Tue, 27 Aug 2024 22:42:02 -0400 Subject: [PATCH 03/42] add info regarding the save_comp option in UFS_case_gen.py --- scm/doc/TechGuide/chap_cases.rst | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/scm/doc/TechGuide/chap_cases.rst b/scm/doc/TechGuide/chap_cases.rst index a9c9bbdaa..48e02aed4 100644 --- a/scm/doc/TechGuide/chap_cases.rst +++ b/scm/doc/TechGuide/chap_cases.rst @@ -422,6 +422,16 @@ appreciably different than the calculated geostrophic winds), this often leads t with time. An option exists within the script to assume that the mean three-dimensional winds are, in fact, identical to the geostrophic winds as well. Using this option eliminates any spurious turning. +Writing UFS Comparison Data + +The `--save_comp` (or `-sc`) options allow one to write out the UFS data for the chosen column in NetCDF format. The profiles of the state variables +`u`, `v`, `T`, and `q_v` are written out for the given point for each history file time. In addition, a collection of other +diagnostics like profiles of physics tendencies and scalar surface variables are saved and written. One can include any variable that is +provided in the UFS history files, although the specific variables are hard-coded in the `UFS_case_gen.py` file which will require editing +to change. The file with comparison data is automatically written out to the `scm/data/comparison_data` directory, although this is controlled +by the `COMPARISON_DATA_DIR` global variable in the `UFS_case_gen.py` script. The filename is a concatenation of the case name (specified by the +`--case_name (-n)` argument) and `_comp_data.nc`. + .. _`ufsforcingensemblegenerator`: UFS_forcing_ensemble_generator.py From 6ebd581494db21bcfd91edc28e8091d61f659f8d Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Wed, 28 Aug 2024 16:50:14 -0400 Subject: [PATCH 04/42] update chap_cases.rst --- scm/doc/TechGuide/chap_cases.rst | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/scm/doc/TechGuide/chap_cases.rst b/scm/doc/TechGuide/chap_cases.rst index 48e02aed4..92c86ff36 100644 --- a/scm/doc/TechGuide/chap_cases.rst +++ b/scm/doc/TechGuide/chap_cases.rst @@ -298,6 +298,21 @@ Activate environment: > conda activate env_ufscasegen +.. note:: + +It may be possible for conda to fail to solve for the environment when attempting to use the yml file. It +should still be possible to create the same environment manually: +.. code:: bash + + > conda create --name env_ufscasegen + > conda install -n env_ufscasegen --channel=conda-forge python=3.8.5 + > conda install -n env_ufscasegen --channel=conda-forge netcdf4 + > conda install -n env_ufscasegen --channel=conda-forge f90nml + > conda install -n env_ufscasegen --channel=conda-forge xarray + > conda install -n env_ufscasegen --channel=conda-forge numpy + > conda install -n env_ufscasegen --channel=conda-forge shapely + > conda install -n env_ufscasegen --channel=conda-forge xesmf + .. _`ufscasegen`: UFS_case_gen.py From a3027672adeece43bfc445261fcc9cd65d063126 Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Wed, 28 Aug 2024 17:42:59 -0400 Subject: [PATCH 05/42] add optional arguments for UFS_case_gen examples --- scm/doc/TechGuide/chap_cases.rst | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/scm/doc/TechGuide/chap_cases.rst b/scm/doc/TechGuide/chap_cases.rst index 92c86ff36..032d2227a 100644 --- a/scm/doc/TechGuide/chap_cases.rst +++ b/scm/doc/TechGuide/chap_cases.rst @@ -453,7 +453,8 @@ UFS_forcing_ensemble_generator.py ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ There is an additional script in ``scm/etc/scripts/UFS_forcing_ensemble_generator.py`` to create UFS-caseGen case(s) starting -with output from UFS Weather Model (UWM) Regression Tests (RTs). +with output from UFS Weather Model (UWM) Regression Tests (RTs). This script provides a wrapper for ``UFS_case_gen.py`` for +generating multiple cases at once. .. code:: bash @@ -514,11 +515,12 @@ staged UWM RTs located at: Example 1: UFS-caseGen for single point ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -UFS regression test, ``control_c192``, for single point. +UFS regression test, ``control_c192``, for a single point using calculated horizontal advective tendencies, +supplying the vertical velocity for the vertical advective terms and nudging the horizontal winds: .. code:: bash - ./UFS_forcing_ensemble_generator.py -d [path_to_regression_tests_output]/control_c192_intel/ -sc --C_RES 192 -dt 360 -n control_c192 -lons 300 -lats 34 + ./UFS_forcing_ensemble_generator.py -d [path_to_regression_tests_output]/control_c192_intel/ -sc --C_RES 192 -dt 360 -n control_c192 -lons 300 -lats 34 -fm 2 -vm 2 -wn Upon successful completion of the script, the command to run the case(s) will print to the screen. For example, @@ -534,11 +536,11 @@ The file ``scm_ufsens_control_c192.py`` is created in ``ccpp-scm/scm/bin/``, whe Example 2: UFS-caseGen for list of points ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -UFS regression test, ``control_c384``, for multiple points. +UFS regression test, ``control_c384``, for multiple points assuming the same forcing method as above: .. code:: bash - ./UFS_forcing_ensemble_generator.py -d /glade/derecho/scratch/epicufsrt/ufs-weather-model/RT/NEMSfv3gfs/develop-20240607/control_c384_intel/ -sc --C_RES 384 -dt 225 -n control_c384 -lons 300 300 300 300 -lats 34 35 35 37 + ./UFS_forcing_ensemble_generator.py -d /glade/derecho/scratch/epicufsrt/ufs-weather-model/RT/NEMSfv3gfs/develop-20240607/control_c384_intel/ -sc --C_RES 384 -dt 225 -n control_c384 -lons 300 300 300 300 -lats 34 35 35 37 -fm 2 -vm 2 -wn Upon successful completion of the script, the command to run the case(s) will print to the screen. For example, From 2ef6259a2daa50d63eea7ee97721d0124b1c199a Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Wed, 28 Aug 2024 17:44:59 -0400 Subject: [PATCH 06/42] fix formatting error --- scm/doc/TechGuide/chap_cases.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/scm/doc/TechGuide/chap_cases.rst b/scm/doc/TechGuide/chap_cases.rst index 032d2227a..eec004dea 100644 --- a/scm/doc/TechGuide/chap_cases.rst +++ b/scm/doc/TechGuide/chap_cases.rst @@ -302,6 +302,7 @@ Activate environment: It may be possible for conda to fail to solve for the environment when attempting to use the yml file. It should still be possible to create the same environment manually: + .. code:: bash > conda create --name env_ufscasegen From 1e402c7c43bae505f2512ffbc4570e350496fdba Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Wed, 28 Aug 2024 17:51:29 -0400 Subject: [PATCH 07/42] fix formatting error --- scm/doc/TechGuide/chap_cases.rst | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/scm/doc/TechGuide/chap_cases.rst b/scm/doc/TechGuide/chap_cases.rst index eec004dea..780eb2f1f 100644 --- a/scm/doc/TechGuide/chap_cases.rst +++ b/scm/doc/TechGuide/chap_cases.rst @@ -297,10 +297,8 @@ Activate environment: .. code:: bash > conda activate env_ufscasegen - -.. note:: -It may be possible for conda to fail to solve for the environment when attempting to use the yml file. It +Note that it may be possible for conda to fail to solve for the environment when attempting to use the yml file. It should still be possible to create the same environment manually: .. code:: bash From 923d03254267525319dc1870a58b47a323c76f83 Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Wed, 4 Sep 2024 22:11:37 -0400 Subject: [PATCH 08/42] update ccpp/physics submodule pointer --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index f0fbb34a3..da75531bf 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit f0fbb34a350acac90e71de6e51351f78174eb8de +Subproject commit da75531bf90a799e4c0dcb988cc591d82bd024de From 02d490a5eab589c0fd0be2e4ab991562aea1804b Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Thu, 5 Sep 2024 14:54:19 +0000 Subject: [PATCH 09/42] Add yaml script for python environment used in online tutorial. --- environment-tutorial.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 environment-tutorial.yml diff --git a/environment-tutorial.yml b/environment-tutorial.yml new file mode 100644 index 000000000..e64d9d7d8 --- /dev/null +++ b/environment-tutorial.yml @@ -0,0 +1,7 @@ +name: scm_py37_tutorial + +dependencies: + - conda-forge::python=3.7 + - conda-forge::netcdf4 + - conda-forge::f90nml + - conda-forge::configobj From 361ab1161cba963f12112c2704b798da371ad1b3 Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Thu, 5 Sep 2024 14:59:01 +0000 Subject: [PATCH 10/42] Renamed to match online tutorial --- environment-tutorial.yml => environment-scm_analysis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename environment-tutorial.yml => environment-scm_analysis.yml (83%) diff --git a/environment-tutorial.yml b/environment-scm_analysis.yml similarity index 83% rename from environment-tutorial.yml rename to environment-scm_analysis.yml index e64d9d7d8..298dbf072 100644 --- a/environment-tutorial.yml +++ b/environment-scm_analysis.yml @@ -1,4 +1,4 @@ -name: scm_py37_tutorial +name: env_scm_analysis dependencies: - conda-forge::python=3.7 From 999ab8864a5cdc52f7bddb4954e58ba96bdd56cc Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Thu, 5 Sep 2024 15:36:07 -0400 Subject: [PATCH 11/42] update twpice_all_suites.ini to use supported suites for v7 --- scm/etc/scripts/plot_configs/twpice_all_suites.ini | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/scm/etc/scripts/plot_configs/twpice_all_suites.ini b/scm/etc/scripts/plot_configs/twpice_all_suites.ini index 1cc5b1da0..47cf2d1e5 100644 --- a/scm/etc/scripts/plot_configs/twpice_all_suites.ini +++ b/scm/etc/scripts/plot_configs/twpice_all_suites.ini @@ -1,5 +1,5 @@ -scm_datasets = output_twpice_SCM_GFS_v16/output.nc, output_twpice_SCM_GFS_v17_p8/output.nc, output_twpice_SCM_RAP/output.nc, output_twpice_SCM_RRFS_v1beta/output.nc, output_twpice_SCM_WoFS_v0/output.nc, output_twpice_SCM_HRRR/output.nc -scm_datasets_labels = GFSv16, GFSv17p8, RAP, RRFSv1b, WoFSv0, HRRR +scm_datasets = output_twpice_SCM_GFS_v16/output.nc, output_twpice_SCM_GFS_v16_RRTMGP/output.nc, output_twpice_SCM_GFS_v17_p8_ugwpv1/output.nc, output_twpice_SCM_WoFS_v0/output.nc, output_twpice_SCM_HRRR_gf/output.nc +scm_datasets_labels = GFSv16, GFSv16-GP, GFSv17p8-ugwpv1, WoFSv0, HRRR-gf plot_dir = plots_twpice_all_suites/ obs_file = ../data/raw_case_input/twp180iopsndgvarana_v2.1_C3.c1.20060117.000000.cdf obs_compare = True @@ -38,9 +38,10 @@ time_series_resample = True [[profiles_instant]] [[time_series]] - vars = 'pres_s','lhf','shf','tprcp_rate_inst' + vars = 'pres_s','lhf','shf','tprcp_rate_accum' vars_labels = 'surface pressure (Pa)','latent heat flux ($W$ $m^{-2}$)','sensible heat flux ($W$ $m^{-2}$)','surface rainfall rate ($mm$ $hr{-1}$)' - + conversion_factor = 1.0, 1.0, 1.0, 3600000.0 + [[contours]] vars = qv, vars_labels = 'Water Vapor ($g$ $kg^{-1}$)', From 5f747c927a202ec4f9c00b3a5bc7fbc7e7bd03e8 Mon Sep 17 00:00:00 2001 From: Soren Rasmussen Date: Fri, 6 Sep 2024 14:00:34 -0600 Subject: [PATCH 12/42] Adding documentation on run_scm.py --mpi_command argument --- scm/doc/TechGuide/chap_quick.rst | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scm/doc/TechGuide/chap_quick.rst b/scm/doc/TechGuide/chap_quick.rst index df96e0f40..969c1e758 100644 --- a/scm/doc/TechGuide/chap_quick.rst +++ b/scm/doc/TechGuide/chap_quick.rst @@ -594,6 +594,12 @@ If using the main branch, you should run the above command to ensure you have th - Use this to specify the timestep to use (if different than the default specified in ``../src/suite_info.py``). +- ``--mpi_command`` + + - Provide argument to define the MPI command that will be invoked. + Default MPI command is ``mpirun -np 1``. + (Note: to run on a Derecho login node the empty argument ``--mpi_command ''`` is required.) + - ``--verbose [-v]`` - Use this option to see additional debugging output from the run @@ -876,7 +882,7 @@ Running the Docker image #. To run the SCM, you can run the Docker container that was just created and give it the same run commands as discussed in :numref:`Section %s ` - **Be sure to remember to include the ``-d`` and ``--mpi_command "mpirun -np 1 --allow-run-as-root"`` + **Be sure to remember to include the ``-d`` and ``--mpi_command "mpirun -np 1 --allow-run-as-root"`` options for all run commands**. For example, .. code:: bash From b044346c29a28e469acab2b51ffa5c9acf7bcb40 Mon Sep 17 00:00:00 2001 From: Soren Rasmussen Date: Fri, 6 Sep 2024 14:03:31 -0600 Subject: [PATCH 13/42] Fix to Derecho script so it will run run_scm.py in the directory the batch script was called from --- scm/etc/scm_qsub_example.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scm/etc/scm_qsub_example.py b/scm/etc/scm_qsub_example.py index e34d80ab4..70b3d82a4 100755 --- a/scm/etc/scm_qsub_example.py +++ b/scm/etc/scm_qsub_example.py @@ -34,7 +34,7 @@ WALLTIME = "walltime=00:20:00" PROCESSORS = "select=1:ncpus=1" QUEUE = "develop" -COMMAND = "./run_scm.py -c twpice" +COMMAND = "cd $PBS_O_WORKDIR; ./run_scm.py -c twpice" EMAIL_ADDR = MY_EMAIL SERIAL_MEM = "512M" WORKING_DIR = os.path.dirname(os.path.abspath(__file__)) From 8cb66031b17f7f99d27aea0a4d897e5d16f8b69e Mon Sep 17 00:00:00 2001 From: Tracy Date: Sat, 7 Sep 2024 00:17:39 +0000 Subject: [PATCH 14/42] additions to tutorial yaml --- environment-scm_analysis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/environment-scm_analysis.yml b/environment-scm_analysis.yml index 298dbf072..b8ce5d17b 100644 --- a/environment-scm_analysis.yml +++ b/environment-scm_analysis.yml @@ -5,3 +5,5 @@ dependencies: - conda-forge::netcdf4 - conda-forge::f90nml - conda-forge::configobj + - conda-forge::matplotlib + - conda-forge::pandas From 311908934289e1606b1ab7b3b6fb4846b5559b6c Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Mon, 9 Sep 2024 11:02:01 -0400 Subject: [PATCH 15/42] change conversion_factors --- scm/etc/scripts/plot_configs/twpice_all_suites.ini | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scm/etc/scripts/plot_configs/twpice_all_suites.ini b/scm/etc/scripts/plot_configs/twpice_all_suites.ini index 47cf2d1e5..f9a57798a 100644 --- a/scm/etc/scripts/plot_configs/twpice_all_suites.ini +++ b/scm/etc/scripts/plot_configs/twpice_all_suites.ini @@ -23,17 +23,19 @@ time_series_resample = True y_log = False y_min_option = min #min, max, val (if val, add y_min = float value) y_max_option = max #min, max, val (if val, add y_max = float value) - conversion_factor = 1000.0, 1000.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 + conversion_factor = 1000.0, 1000.0, 1.0, 86400.0, 86400.0, 86400.0, 86400.0, 86400.0 [[profiles_mean_multi]] [[[T_forcing]]] vars = T_force_tend, dT_dt_pbl, dT_dt_conv, dT_dt_micro, dT_dt_lwrad, dT_dt_swrad vars_labels = 'force', 'PBL', 'Conv', 'MP', 'LW', 'SW' x_label = 'K/day' + conversion_factor = 86400.0 [[[conv_tendencies]]] vars = dT_dt_deepconv, dT_dt_shalconv vars_labels = 'deep', 'shallow' x_label = 'K/day' + conversion_factor = 86400.0 [[profiles_instant]] From 5542079033609b4ff73c5ec361182f7e594fe6a4 Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Mon, 9 Sep 2024 15:24:26 -0400 Subject: [PATCH 16/42] update contrib scripts to grab v7.0.0 release assets --- contrib/get_aerosol_climo.sh | 2 +- contrib/get_all_static_data.sh | 2 +- contrib/get_mg_inccn_data.sh | 2 +- contrib/get_thompson_tables.sh | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/contrib/get_aerosol_climo.sh b/contrib/get_aerosol_climo.sh index 695d1c7a7..37f0a8cf2 100755 --- a/contrib/get_aerosol_climo.sh +++ b/contrib/get_aerosol_climo.sh @@ -20,7 +20,7 @@ data_files=("FV3_aeroclim1" "FV3_aeroclim2" "FV3_aeroclim3" "FV3_aeroclim_optics cd $BASEDIR/scm/data/physics_input_data/ for file in "${data_files[@]}"; do echo "Retrieving $file.tar.gz" - wget https://github.com/NCAR/ccpp-scm/releases/download/v7.0.0-beta/${file}.tar.gz + wget https://github.com/NCAR/ccpp-scm/releases/download/v7.0.0/${file}.tar.gz tar -xvf ${file}.tar.gz rm -f ${file}.tar.gz done diff --git a/contrib/get_all_static_data.sh b/contrib/get_all_static_data.sh index 99c0cd4de..b4b85e9f0 100755 --- a/contrib/get_all_static_data.sh +++ b/contrib/get_all_static_data.sh @@ -21,7 +21,7 @@ for file in "${data_files[@]}"; do mkdir -p $BASEDIR/scm/data/$file cd $BASEDIR/scm/data/$file echo "Retrieving $file" - wget https://github.com/NCAR/ccpp-scm/releases/download/v7.0.0-beta/${file}.tar.gz + wget https://github.com/NCAR/ccpp-scm/releases/download/v7.0.0/${file}.tar.gz tar -xf ${file}.tar.gz rm -f ${file}.tar.gz done diff --git a/contrib/get_mg_inccn_data.sh b/contrib/get_mg_inccn_data.sh index e98c277a8..b650ce338 100755 --- a/contrib/get_mg_inccn_data.sh +++ b/contrib/get_mg_inccn_data.sh @@ -16,7 +16,7 @@ BASEDIR=$MYDIR/.. # Change to directory containing the physics input data, download and extract archive cd $BASEDIR/scm/data/physics_input_data/ -wget https://github.com/NCAR/ccpp-scm/releases/download/v7.0.0-beta/MG_INCCN_data.tar.gz +wget https://github.com/NCAR/ccpp-scm/releases/download/v7.0.0/MG_INCCN_data.tar.gz tar -xvf MG_INCCN_data.tar.gz rm -f MG_INCCN_data.tar.gz cd $BASEDIR/ diff --git a/contrib/get_thompson_tables.sh b/contrib/get_thompson_tables.sh index 86a9487bc..6a192c4d0 100755 --- a/contrib/get_thompson_tables.sh +++ b/contrib/get_thompson_tables.sh @@ -15,7 +15,7 @@ BASEDIR=$MYDIR/.. # Change to directory containing the physics input data, download and extract archive cd $BASEDIR/scm/data/physics_input_data/ -wget https://github.com/NCAR/ccpp-scm/releases/download/v7.0.0-beta/thompson_tables.tar.gz +wget https://github.com/NCAR/ccpp-scm/releases/download/v7.0.0/thompson_tables.tar.gz tar -xvf thompson_tables.tar.gz rm -f thompson_tables.tar.gz cd $BASEDIR/ From d939f51fe8875192015fd0a0cfcf3c503cbb69e2 Mon Sep 17 00:00:00 2001 From: "Michael Kavulich, Jr" Date: Mon, 9 Sep 2024 14:10:39 -0600 Subject: [PATCH 17/42] Update Dockerfile to use release branch --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 97ced6d17..979781134 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -74,7 +74,7 @@ ENV w3emc_ROOT=/comsoftware/nceplibs # Obtain CCPP SCM source code, build code, and download static data RUN if [ -z "$PR_NUMBER" ]; then \ cd /comsoftware \ - && git clone --recursive -b main https://github.com/NCAR/ccpp-scm; \ + && git clone --recursive -b release/public-v7 https://github.com/NCAR/ccpp-scm; \ else \ cd /comsoftware \ && git clone https://github.com/NCAR/ccpp-scm \ From 400613399e486bd0053ee7f99339240c3c2f1eb4 Mon Sep 17 00:00:00 2001 From: Soren Rasmussen Date: Mon, 7 Oct 2024 11:05:08 -0600 Subject: [PATCH 18/42] Fix for broken CCPP Framework link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3e7c37eb3..993628961 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ The SCM is a tool for developing physics suites and diagnosing their performance. This SCM works with the - [Common Community Physics Package (CCPP):](https://github.com/NCAR/ccpp-physics) a library of physical parameterizations for atmospheric numerical models. -- [CCPP Framework:](https://github.com/NCAR/ccpp-scm:) a framework for connecting atmospheric models to physics suites. +- [CCPP Framework:](https://github.com/NCAR/ccpp-framework) a framework for connecting atmospheric models to physics suites. ## Documentation - [SCM readthedocs](https://ccpp-scm.readthedocs.io/en/v7.0.0/) From ed58eba1d4ed25d67a338ed60376c26b302f0a89 Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Thu, 10 Oct 2024 17:08:39 -0400 Subject: [PATCH 19/42] use main branch of ccpp-framework --- .gitmodules | 2 +- ccpp/framework | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index 56dee3ba7..dc0798c32 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,7 +1,7 @@ [submodule "ccpp-framework"] path = ccpp/framework url = https://github.com/NCAR/ccpp-framework - branch = develop + branch = main [submodule "ccpp-physics"] path = ccpp/physics url = https://github.com/NCAR/ccpp-physics diff --git a/ccpp/framework b/ccpp/framework index af90b948b..0f8232724 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit af90b948b85b88649547b49d28ba98fd5cb8c4b1 +Subproject commit 0f8232724975c13289cad390c9a71fa2c6a9bff4 From 7f0ff6794286136573990e0828cb6e5afea3e55d Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Thu, 10 Oct 2024 17:10:04 -0400 Subject: [PATCH 20/42] use PR branch of ccpp/physics --- .gitmodules | 4 ++-- ccpp/physics | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index dc0798c32..11096bf2d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,8 +4,8 @@ branch = main [submodule "ccpp-physics"] path = ccpp/physics - url = https://github.com/NCAR/ccpp-physics - branch = main + url = https://github.com/grantfirl/ccpp-physics + branch = ufs-dev-PR216 [submodule "CMakeModules"] path = CMakeModules url = https://github.com/noaa-emc/CMakeModules diff --git a/ccpp/physics b/ccpp/physics index da75531bf..fbd720d85 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit da75531bf90a799e4c0dcb988cc591d82bd024de +Subproject commit fbd720d858c78a8f57a5c6b1bdf25cc39884334e From ff1737f757c183bf78ea9b09635632451932e797 Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Tue, 15 Oct 2024 18:47:32 -0400 Subject: [PATCH 21/42] add option in RT comparison script to turn off plots (only report differences via command line) --- test/cmp_rt2bl.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/test/cmp_rt2bl.py b/test/cmp_rt2bl.py index f29ed5218..7560d1b61 100755 --- a/test/cmp_rt2bl.py +++ b/test/cmp_rt2bl.py @@ -14,20 +14,22 @@ # parser = argparse.ArgumentParser() -parser.add_argument('-drt', '--dir_rt', help='Directory containing SCM RT output', required=True) -parser.add_argument('-dbl', '--dir_bl', help='Directory containing SCM RT baselines', required=True) +parser.add_argument('-drt', '--dir_rt', help='Directory containing SCM RT output', required=True) +parser.add_argument('-dbl', '--dir_bl', help='Directory containing SCM RT baselines', required=True) +parser.add_argument('-np', '--no_plots', help='flag to turn off generation of difference plots', required=False, action='store_true') # def parse_args(): args = parser.parse_args() dir_rt = args.dir_rt dir_bl = args.dir_bl - return (dir_rt, dir_bl) + no_plots = args.no_plots + return (dir_rt, dir_bl, no_plots) # def main(): # - (dir_rt, dir_bl) = parse_args() + (dir_rt, dir_bl, no_plots) = parse_args() # error_count = 0 @@ -38,14 +40,17 @@ def main(): com = "cmp "+file_rt+" "+file_bl+" > logfile.txt" result = os.system(com) if (result != 0): - print("Output for "+run["case"]+"_"+run["suite"]+ " DIFFERS from baseline. Difference plots will be created") + message = "Output for "+run["case"]+"_"+run["suite"]+ " DIFFERS from baseline." + if (not no_plots): + message += " Difference plots will be created." + print(message) error_count = error_count + 1 else: print("Output for "+run["case"]+"_"+run["suite"]+ " is IDENTICAL to baseline") # end if # Create plots between RTs and baselines (only if differences exist) - if (result != 0): + if (result != 0 and not no_plots): plot_files = plot_results(file_bl, file_rt) # Setup output directories for plots. @@ -71,7 +76,8 @@ def main(): # end for # Create tarball with plots. - result = os.system('tar -cvf scm_rt_out.tar scm_rt_out/*') + if (not no_plots): + result = os.system('tar -cvf scm_rt_out.tar scm_rt_out/*') # if error_count == 0: From 7be4488ca535a3496836479cb0d456d0ba514be4 Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Tue, 15 Oct 2024 21:32:31 -0400 Subject: [PATCH 22/42] point to ufs-dev-PR219 branch of ccpp-physics --- .gitmodules | 2 +- ccpp/physics | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index 11096bf2d..373d68a92 100644 --- a/.gitmodules +++ b/.gitmodules @@ -5,7 +5,7 @@ [submodule "ccpp-physics"] path = ccpp/physics url = https://github.com/grantfirl/ccpp-physics - branch = ufs-dev-PR216 + branch = ufs-dev-PR219 [submodule "CMakeModules"] path = CMakeModules url = https://github.com/noaa-emc/CMakeModules diff --git a/ccpp/physics b/ccpp/physics index fbd720d85..554d369df 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit fbd720d858c78a8f57a5c6b1bdf25cc39884334e +Subproject commit 554d369dfadf24627c0e113e033dabf6a35659b0 From b9b86f9d6e0d26e659300134f39b05126e0a1788 Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Tue, 15 Oct 2024 21:50:56 -0400 Subject: [PATCH 23/42] update ccpp/physics --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 554d369df..ca3b61fb8 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 554d369dfadf24627c0e113e033dabf6a35659b0 +Subproject commit ca3b61fb886055556da8ff975a3834b6b6a4e260 From 114e7b37e082e7b0fbfb6cf8ab4af4b5bb81c3cb Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Thu, 17 Oct 2024 15:12:39 -0400 Subject: [PATCH 24/42] changes for the SCM to work with ufs/dev PR#183 and GFS_Debug.F90 schemes; allocate the Interstitial DDT as an array of size n_threads --- .gitmodules | 2 +- ccpp/config/ccpp_prebuild_config.py | 3 +- ccpp/physics | 2 +- scm/src/GFS_typedefs.F90 | 143 ++- scm/src/GFS_typedefs.meta | 1541 ++++++++++++++------------- scm/src/scm.F90 | 15 +- scm/src/scm_output.F90 | 60 +- scm/src/scm_setup.F90 | 27 +- scm/src/scm_type_defs.F90 | 12 +- scm/src/scm_type_defs.meta | 8 +- scm/src/suite_info.py | 1 + test/rt_test_cases.py | 1 + 12 files changed, 945 insertions(+), 870 deletions(-) diff --git a/.gitmodules b/.gitmodules index 373d68a92..e0d1393f1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -5,7 +5,7 @@ [submodule "ccpp-physics"] path = ccpp/physics url = https://github.com/grantfirl/ccpp-physics - branch = ufs-dev-PR219 + branch = ufs-dev-PR183 [submodule "CMakeModules"] path = CMakeModules url = https://github.com/noaa-emc/CMakeModules diff --git a/ccpp/config/ccpp_prebuild_config.py b/ccpp/config/ccpp_prebuild_config.py index d68aaf98b..d115f34cf 100755 --- a/ccpp/config/ccpp_prebuild_config.py +++ b/ccpp/config/ccpp_prebuild_config.py @@ -50,7 +50,7 @@ 'ty_ozphys' : '', }, 'CCPP_typedefs' : { - 'GFS_interstitial_type' : 'physics%Interstitial', + 'GFS_interstitial_type' : 'physics%Interstitial(cdata%thrd_no)', 'CCPP_typedefs' : '', }, 'GFS_typedefs' : { @@ -94,6 +94,7 @@ 'ccpp/physics/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_post.F90' , 'ccpp/physics/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_pre.F90' , 'ccpp/physics/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_post.F90' , + 'ccpp/physics/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_debug.F90' , 'ccpp/physics/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.F90' , 'ccpp/physics/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.scm.F90' , 'ccpp/physics/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.F90' , diff --git a/ccpp/physics b/ccpp/physics index ca3b61fb8..bbe11c3b6 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit ca3b61fb886055556da8ff975a3834b6b6a4e260 +Subproject commit bbe11c3b60e1c65b9518b8d318534c5cb2728967 diff --git a/scm/src/GFS_typedefs.F90 b/scm/src/GFS_typedefs.F90 index 35f325f03..7966fc2ca 100644 --- a/scm/src/GFS_typedefs.F90 +++ b/scm/src/GFS_typedefs.F90 @@ -742,7 +742,11 @@ module GFS_typedefs integer :: nblks !< for explicit data blocking: number of blocks integer, pointer :: blksz(:) !< for explicit data blocking: block sizes of all blocks integer :: ncols !< total number of columns for all blocks - + ! + integer :: nchunks !< number of chunks of an array that are used in the CCPP run phase + integer, pointer :: chunk_begin(:) !< first indices of chunks of an array for the CCPP run phase + integer, pointer :: chunk_end(:) !< last indices of chunks of an array for the CCPP run phase + ! integer :: fire_aux_data_levels !< vertical levels of fire auxiliary data !--- coupling parameters @@ -1652,50 +1656,50 @@ module GFS_typedefs !! type GFS_grid_type - real (kind=kind_phys), pointer :: xlon (:) => null() !< grid longitude in radians, ok for both 0->2pi - !! or -pi -> +pi ranges - real (kind=kind_phys), pointer :: xlat (:) => null() !< grid latitude in radians, default to pi/2 -> - !! -pi/2 range, otherwise adj in subr called - real (kind=kind_phys), pointer :: xlat_d (:) => null() !< grid latitude in degrees, default to 90 -> - !! -90 range, otherwise adj in subr called - real (kind=kind_phys), pointer :: xlon_d (:) => null() !< grid longitude in degrees, default to 0 -> - !! 360 range, otherwise adj in subr called - real (kind=kind_phys), pointer :: sinlat (:) => null() !< sine of the grids corresponding latitudes - real (kind=kind_phys), pointer :: coslat (:) => null() !< cosine of the grids corresponding latitudes - real (kind=kind_phys), pointer :: area (:) => null() !< area of the grid cell - real (kind=kind_phys), pointer :: dx (:) => null() !< relative dx for the grid cell + real (kind=kind_phys), pointer :: xlon (:) !< grid longitude in radians, ok for both 0->2pi + !! or -pi -> +pi ranges + real (kind=kind_phys), pointer :: xlat (:) !< grid latitude in radians, default to pi/2 -> + !! -pi/2 range, otherwise adj in subr called + real (kind=kind_phys), pointer :: xlat_d (:) !< grid latitude in degrees, default to 90 -> + !! -90 range, otherwise adj in subr called + real (kind=kind_phys), pointer :: xlon_d (:) !< grid longitude in degrees, default to 0 -> + !! 360 range, otherwise adj in subr called + real (kind=kind_phys), pointer :: sinlat (:) !< sine of the grids corresponding latitudes + real (kind=kind_phys), pointer :: coslat (:) !< cosine of the grids corresponding latitudes + real (kind=kind_phys), pointer :: area (:) !< area of the grid cell + real (kind=kind_phys), pointer :: dx (:) !< relative dx for the grid cell !--- grid-related interpolation data for prognostic ozone - real (kind=kind_phys), pointer :: ddy_o3 (:) => null() !< interpolation weight for ozone - integer, pointer :: jindx1_o3 (:) => null() !< interpolation low index for ozone - integer, pointer :: jindx2_o3 (:) => null() !< interpolation high index for ozone + real (kind=kind_phys), pointer :: ddy_o3 (:) !< interpolation weight for ozone + integer, pointer :: jindx1_o3 (:) !< interpolation low index for ozone + integer, pointer :: jindx2_o3 (:) !< interpolation high index for ozone !--- grid-related interpolation data for stratosphere water - real (kind=kind_phys), pointer :: ddy_h (:) => null() !< interpolation weight for h2o - integer, pointer :: jindx1_h (:) => null() !< interpolation low index for h2o - integer, pointer :: jindx2_h (:) => null() !< interpolation high index for h2o + real (kind=kind_phys), pointer :: ddy_h (:) !< interpolation weight for h2o + integer, pointer :: jindx1_h (:) !< interpolation low index for h2o + integer, pointer :: jindx2_h (:) !< interpolation high index for h2o !--- grid-related interpolation data for prognostic iccn - real (kind=kind_phys), pointer :: ddy_ci (:) => null() !< interpolation weight for iccn - integer, pointer :: jindx1_ci (:) => null() !< interpolation low index for iccn - integer, pointer :: jindx2_ci (:) => null() !< interpolation high index for iccn - real (kind=kind_phys), pointer :: ddx_ci (:) => null() !< interpolation weight for iccn - integer, pointer :: iindx1_ci (:) => null() !< interpolation low index for iccn - integer, pointer :: iindx2_ci (:) => null() !< interpolation high index for iccn + real (kind=kind_phys), pointer :: ddy_ci (:) !< interpolation weight for iccn + integer, pointer :: jindx1_ci (:) !< interpolation low index for iccn + integer, pointer :: jindx2_ci (:) !< interpolation high index for iccn + real (kind=kind_phys), pointer :: ddx_ci (:) !< interpolation weight for iccn + integer, pointer :: iindx1_ci (:) !< interpolation low index for iccn + integer, pointer :: iindx2_ci (:) !< interpolation high index for iccn !--- grid-related interpolation data for prescribed aerosols - real (kind=kind_phys), pointer :: ddy_aer (:) => null() !< interpolation weight for iaerclm - integer, pointer :: jindx1_aer (:) => null() !< interpolation low index for iaerclm - integer, pointer :: jindx2_aer (:) => null() !< interpolation high index for iaerclm - real (kind=kind_phys), pointer :: ddx_aer (:) => null() !< interpolation weight for iaerclm - integer, pointer :: iindx1_aer (:) => null() !< interpolation low index for iaerclm - integer, pointer :: iindx2_aer (:) => null() !< interpolation high index for iaerclm + real (kind=kind_phys), pointer :: ddy_aer (:) !< interpolation weight for iaerclm + integer, pointer :: jindx1_aer (:) !< interpolation low index for iaerclm + integer, pointer :: jindx2_aer (:) !< interpolation high index for iaerclm + real (kind=kind_phys), pointer :: ddx_aer (:) !< interpolation weight for iaerclm + integer, pointer :: iindx1_aer (:) !< interpolation low index for iaerclm + integer, pointer :: iindx2_aer (:) !< interpolation high index for iaerclm !--- grid-related interpolation data for cires_ugwp_v1 - real (kind=kind_phys), pointer :: ddy_j1tau (:) => null() !< interpolation weight for tau_ugwp - real (kind=kind_phys), pointer :: ddy_j2tau (:) => null() !< interpolation weight for tau_ugwp - integer, pointer :: jindx1_tau (:) => null() !< interpolation low index for tau_ugwp - integer, pointer :: jindx2_tau (:) => null() !< interpolation high index for tau_ugwp + real (kind=kind_phys), pointer :: ddy_j1tau (:) !< interpolation weight for tau_ugwp + real (kind=kind_phys), pointer :: ddy_j2tau (:) !< interpolation weight for tau_ugwp + integer, pointer :: jindx1_tau (:) !< interpolation low index for tau_ugwp + integer, pointer :: jindx2_tau (:) !< interpolation high index for tau_ugwp contains procedure :: create => grid_create !< allocate array data @@ -2195,12 +2199,14 @@ module GFS_typedefs !------------------------ ! GFS_statein_type%create !------------------------ - subroutine statein_create (Statein, IM, Model) + subroutine statein_create (Statein, Model) implicit none class(GFS_statein_type) :: Statein - integer, intent(in) :: IM type(GFS_control_type), intent(in) :: Model + integer :: IM + + IM = Model%ncols !--- level geopotential and pressures allocate (Statein%phii (IM,Model%levs+1)) @@ -2262,13 +2268,15 @@ end subroutine statein_create !------------------------- ! GFS_stateout_type%create !------------------------- - subroutine stateout_create (Stateout, IM, Model) + subroutine stateout_create (Stateout, Model) implicit none class(GFS_stateout_type) :: Stateout - integer, intent(in) :: IM type(GFS_control_type), intent(in) :: Model + integer :: IM + + IM = Model%ncols allocate (Stateout%gu0 (IM,Model%levs)) allocate (Stateout%gv0 (IM,Model%levs)) @@ -2286,13 +2294,15 @@ end subroutine stateout_create !------------------------ ! GFS_sfcprop_type%create !------------------------ - subroutine sfcprop_create (Sfcprop, IM, Model) + subroutine sfcprop_create (Sfcprop, Model) implicit none class(GFS_sfcprop_type) :: Sfcprop - integer, intent(in) :: IM type(GFS_control_type), intent(in) :: Model + integer :: IM + + IM = Model%ncols !--- physics and radiation allocate (Sfcprop%slmsk (IM)) @@ -2861,13 +2871,15 @@ end subroutine sfcprop_create !------------------------- ! GFS_coupling_type%create !------------------------- - subroutine coupling_create (Coupling, IM, Model) + subroutine coupling_create (Coupling, Model) implicit none class(GFS_coupling_type) :: Coupling - integer, intent(in) :: IM type(GFS_control_type), intent(in) :: Model + integer :: IM + + IM = Model%ncols !--- radiation out !--- physics in @@ -4387,7 +4399,17 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & allocate(Model%blksz(1:Model%nblks)) Model%blksz = blksz Model%ncols = sum(Model%blksz) - + ! DH* + Model%nchunks = size(blksz) + allocate(Model%chunk_begin(Model%nchunks)) + allocate(Model%chunk_end(Model%nchunks)) + Model%chunk_begin(1) = 1 + Model%chunk_end(1) = Model%chunk_begin(1) + blksz(1) - 1 + do i=2,Model%nchunks + Model%chunk_begin(i) = Model%chunk_end(i-1) + 1 + Model%chunk_end(i) = Model%chunk_begin(i) + blksz(i) - 1 + end do + !--- coupling parameters Model%cplflx = cplflx Model%cplice = cplice @@ -7074,14 +7096,15 @@ end subroutine control_print !---------------- ! GFS_grid%create !---------------- - subroutine grid_create (Grid, IM, Model) + subroutine grid_create (Grid, Model) implicit none class(GFS_grid_type) :: Grid - integer, intent(in) :: IM type(GFS_control_type), intent(in) :: Model + integer :: IM + IM = Model%ncols allocate (Grid%xlon (IM)) allocate (Grid%xlat (IM)) allocate (Grid%xlat_d (IM)) @@ -7175,14 +7198,15 @@ end subroutine grid_create !-------------------- ! GFS_tbd_type%create !-------------------- - subroutine tbd_create (Tbd, IM, Model) + subroutine tbd_create (Tbd, Model) implicit none class(GFS_tbd_type) :: Tbd - integer, intent(in) :: IM type(GFS_control_type), intent(in) :: Model + integer :: IM + IM = Model%ncols !--- In !--- sub-grid cloud radiation if ( Model%isubc_lw == 2 .or. Model%isubc_sw == 2 ) then @@ -7216,19 +7240,16 @@ subroutine tbd_create (Tbd, IM, Model) Tbd%ozpl = clear_val !--- ccn and in needs - ! DH* allocate only for MG? *DH allocate (Tbd%in_nm (IM,Model%levs)) allocate (Tbd%ccn_nm (IM,Model%levs)) Tbd%in_nm = clear_val Tbd%ccn_nm = clear_val !--- aerosol fields - ! DH* allocate only for MG? *DH allocate (Tbd%aer_nm (IM,Model%levs,ntrcaer)) Tbd%aer_nm = clear_val !--- tau_amf for NGWs - ! DH* allocate only for UGWP ? *DH allocate (Tbd%tau_amf(im) ) Tbd%tau_amf = clear_val @@ -7372,13 +7393,15 @@ end subroutine tbd_create !------------------------ ! GFS_cldprop_type%create !------------------------ - subroutine cldprop_create (Cldprop, IM, Model) + subroutine cldprop_create (Cldprop, Model) implicit none class(GFS_cldprop_type) :: Cldprop - integer, intent(in) :: IM type(GFS_control_type), intent(in) :: Model + integer :: IM + + IM = Model%ncols allocate (Cldprop%cv (IM)) allocate (Cldprop%cvt (IM)) @@ -7394,13 +7417,15 @@ end subroutine cldprop_create !****************************************** ! GFS_radtend_type%create !****************************************** - subroutine radtend_create (Radtend, IM, Model) + subroutine radtend_create (Radtend, Model) implicit none class(GFS_radtend_type) :: Radtend - integer, intent(in) :: IM type(GFS_control_type), intent(in) :: Model + integer :: IM + + IM = Model%ncols !--- Out (radiation only) allocate (Radtend%sfcfsw (IM)) @@ -7672,16 +7697,16 @@ end subroutine label_dtend_cause !---------------- ! GFS_diag%create !---------------- - subroutine diag_create (Diag, IM, Model) + subroutine diag_create (Diag, Model) use parse_tracers, only: get_tracer_index class(GFS_diag_type) :: Diag - integer, intent(in) :: IM type(GFS_control_type), intent(in) :: Model - -! + integer :: IM logical, save :: linit logical :: have_pbl, have_dcnv, have_scnv, have_mp, have_oz_phys + IM = Model%ncols + if(Model%print_diff_pgr) then allocate(Diag%old_pgr(IM)) Diag%old_pgr = clear_val diff --git a/scm/src/GFS_typedefs.meta b/scm/src/GFS_typedefs.meta index 2e74c0e7a..0b990e645 100644 --- a/scm/src/GFS_typedefs.meta +++ b/scm/src/GFS_typedefs.meta @@ -10,112 +10,112 @@ standard_name = geopotential_at_interface long_name = geopotential at model layer interfaces units = m2 s-2 - dimensions = (horizontal_loop_extent,vertical_interface_dimension) + dimensions = (horizontal_dimension,vertical_interface_dimension) type = real kind = kind_phys [prsi] standard_name = air_pressure_at_interface long_name = air pressure at model layer interfaces units = Pa - dimensions = (horizontal_loop_extent,vertical_interface_dimension) + dimensions = (horizontal_dimension,vertical_interface_dimension) type = real kind = kind_phys [prsi(:,1)] standard_name = air_pressure_at_lowest_model_interface long_name = air pressure at lowest model interface units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [prsik] standard_name = dimensionless_exner_function_at_interface long_name = dimensionless Exner function at model layer interfaces units = none - dimensions = (horizontal_loop_extent,vertical_interface_dimension) + dimensions = (horizontal_dimension,vertical_interface_dimension) type = real kind = kind_phys [prsik(:,1)] standard_name = surface_dimensionless_exner_function long_name = dimensionless Exner function at lowest model interface units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [phil] standard_name = geopotential long_name = geopotential at model layer centers units = m2 s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [prsl] standard_name = air_pressure long_name = mean layer pressure units = Pa - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [prsl(:,1)] standard_name = air_pressure_at_surface_adjacent_layer long_name = mean pressure at lowest model layer units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [prslk] standard_name = dimensionless_exner_function long_name = dimensionless Exner function at model layer centers units = none - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [prslk(:,1)] standard_name = dimensionless_exner_function_at_surface_adjacent_layer long_name = dimensionless Exner function at lowest model layer units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [pgr] standard_name = surface_air_pressure long_name = surface pressure units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [ugrs] standard_name = x_wind long_name = zonal wind units = m s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [ugrs(:,1)] standard_name = x_wind_at_surface_adjacent_layer long_name = zonal wind at lowest model layer units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [vgrs] standard_name = y_wind long_name = meridional wind units = m s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [vgrs(:,1)] standard_name = y_wind_at_surface_adjacent_layer long_name = meridional wind at lowest model layer units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [wgrs] standard_name = unsmoothed_nonhydrostatic_upward_air_velocity long_name = unsmoothed non-hydrostatic upward air velocity units = m s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (do_lightning_threat_index_calculations) @@ -123,91 +123,91 @@ standard_name = lagrangian_tendency_of_air_pressure long_name = layer mean vertical velocity units = Pa s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [tgrs] standard_name = air_temperature long_name = model layer mean temperature units = K - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [tgrs(:,1)] standard_name = air_temperature_at_surface_adjacent_layer long_name = mean temperature at lowest model layer units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [qgrs] standard_name = tracer_concentration long_name = model layer mean tracer concentration units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_tracers) + dimensions = (horizontal_dimension,vertical_layer_dimension,number_of_tracers) type = real kind = kind_phys [qgrs(:,:,index_of_specific_humidity_in_tracer_concentration_array)] standard_name = specific_humidity long_name = water vapor specific humidity units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [qgrs(:,1,index_of_specific_humidity_in_tracer_concentration_array)] standard_name = specific_humidity_at_surface_adjacent_layer long_name = water vapor specific humidity at lowest model layer units = kg kg-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [qgrs(:,:,index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array)] standard_name = cloud_liquid_water_mixing_ratio long_name = ratio of mass of cloud water to mass of dry air plus vapor (without condensates) units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [qgrs(:,1,index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array)] standard_name = cloud_liquid_water_mixing_ratio_at_surface_adjacent_layer long_name = ratio of mass of cloud water to mass of dry air plus vapor (without condensates) at lowest model layer units = kg kg-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [qgrs(:,:,index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array)] standard_name = cloud_ice_mixing_ratio long_name = ratio of mass of ice water to mass of dry air plus vapor (without condensates) units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [qgrs(:,:,index_of_rain_mixing_ratio_in_tracer_concentration_array)] standard_name = rain_mixing_ratio long_name = ratio of mass of rain water to mass of dry air plus vapor (without condensates) units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [qgrs(:,:,index_of_snow_mixing_ratio_in_tracer_concentration_array)] standard_name = snow_mixing_ratio long_name = ratio of mass of snow water to mass of dry air plus vapor (without condensates) units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [qgrs(:,:,index_of_graupel_mixing_ratio_in_tracer_concentration_array)] standard_name = graupel_mixing_ratio long_name = ratio of mass of graupel to mass of dry air plus vapor (without condensates) units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [qgrs(:,:,index_of_hail_mixing_ratio_in_tracer_concentration_array)] standard_name = hail_mixing_ratio long_name = ratio of mass of hail to mass of dry air plus vapor (without condensates) units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (index_of_hail_mixing_ratio_in_tracer_concentration_array > 0) @@ -215,14 +215,14 @@ standard_name = ozone_mixing_ratio long_name = ozone mixing ratio units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [qgrs(:,:,index_of_mass_number_concentration_of_hygroscopic_aerosols_in_tracer_concentration_array)] standard_name = mass_number_concentration_of_hygroscopic_aerosols long_name = number concentration of water-friendly aerosols units = kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) active = (index_of_mass_number_concentration_of_hygroscopic_aerosols_in_tracer_concentration_array > 0) type = real kind = kind_phys @@ -230,7 +230,7 @@ standard_name = mass_number_concentration_of_nonhygroscopic_ice_nucleating_aerosols long_name = number concentration of ice-friendly aerosols units = kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) active = (index_of_mass_number_concentration_of_nonhygroscopic_ice_nucleating_aerosols_in_tracer_concentration_array > 0) type = real kind = kind_phys @@ -238,7 +238,7 @@ standard_name = mass_number_concentration_of_cloud_liquid_water_particles_in_air long_name = number concentration of cloud droplets (liquid) units = kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (index_of_mass_number_concentration_of_cloud_droplets_in_tracer_concentration_array > 0) @@ -246,35 +246,35 @@ standard_name = mass_number_concentration_of_cloud_ice_water_crystals_in_air long_name = number concentration of ice units = kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [qgrs(:,:,index_of_mass_number_concentration_of_rain_in_tracer_concentration_array)] standard_name = mass_number_concentration_of_rain_water_in_air long_name = number concentration of rain units = kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [qgrs(:,:,index_of_mass_number_concentration_of_snow_in_tracer_concentration_array)] standard_name = mass_number_concentration_of_snow_in_air long_name = number concentration of snow units = kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [qgrs(:,:,index_of_mass_number_concentration_of_graupel_in_tracer_concentration_array)] standard_name = mass_number_concentration_of_graupel_in_air long_name = number concentration of graupel units = kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [qgrs(:,:,index_of_mass_number_concentration_of_hail_in_tracer_concentration_array)] standard_name = mass_number_concentration_of_hail_in_air long_name = number concentration of hail units = kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (index_of_mass_number_concentration_of_hail_in_tracer_concentration_array > 0) @@ -282,7 +282,7 @@ standard_name = reflectivity_of_rain_in_air long_name = reflectivity of rain units = m6 kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (index_of_reflectivity_of_rain_in_tracer_concentration_array > 0) @@ -290,7 +290,7 @@ standard_name = reflectivity_of_graupel_in_air long_name = reflectivity of graupel units = m6 kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (index_of_reflectivity_of_graupel_in_tracer_concentration_array > 0) @@ -298,7 +298,7 @@ standard_name = reflectivity_of_hail_in_air long_name = reflectivity of hail units = m6 kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (index_of_reflectivity_of_hail_in_tracer_concentration_array > 0) @@ -306,7 +306,7 @@ standard_name = cloud_condensation_nuclei_number_concentration long_name = number concentration of cloud condensation nuclei units = kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = ( index_of_cloud_condensation_nuclei_number_concentration_in_tracer_concentration_array > 0 ) @@ -314,7 +314,7 @@ standard_name = activated_cloud_condensation_nuclei_number_concentration long_name = number concentration of activated cloud condensation nuclei units = kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = ( index_of_activated_cloud_condensation_nuclei_number_concentration_in_tracer_concentration_array > 0 ) @@ -322,7 +322,7 @@ standard_name = graupel_volume long_name = graupel particle volume units = m3 kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = ( index_of_graupel_volume_in_tracer_concentration_array > 0 ) @@ -330,7 +330,7 @@ standard_name = hail_volume long_name = hail particle volume units = m3 kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = ( index_of_hail_volume_in_tracer_concentration_array > 0 ) @@ -338,14 +338,14 @@ standard_name = turbulent_kinetic_energy long_name = turbulent kinetic energy units = J - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [qgrs(:,:,index_of_updraft_area_fraction_in_tracer_concentration_array)] standard_name = prognostic_updraft_area_fraction_in_convection long_name = convective updraft area fraction units = frac - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (index_of_updraft_area_fraction_in_tracer_concentration_array > 0 ) @@ -353,21 +353,21 @@ standard_name = smoke_tracer_concentration long_name = concentration of smoke units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [qgrs(:,:,index_for_dust_in_tracer_concentration_array)] standard_name = dust_tracer_concentration long_name = concentration of dust units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [diss_est] standard_name = dissipation_estimate_of_air_temperature_at_model_layers long_name = dissipation estimate model layer mean temperature units = K - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys @@ -384,112 +384,112 @@ standard_name = x_wind_of_new_state long_name = zonal wind updated by physics units = m s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [gu0(:,1)] standard_name = x_wind_of_new_state_at_surface_adjacent_layer long_name = zonal wind at lowest model layer updated by physics units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [gv0] standard_name = y_wind_of_new_state long_name = meridional wind updated by physics units = m s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [gv0(:,1)] standard_name = y_wind_of_new_state_at_surface_adjacent_layer long_name = meridional wind at lowest model layer updated by physics units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [gt0] standard_name = air_temperature_of_new_state long_name = temperature updated by physics units = K - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [gt0(:,1)] standard_name = air_temperature_of_new_state_at_surface_adjacent_layer long_name = temperature at lowest model layer updated by physics units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [gq0] standard_name = tracer_concentration_of_new_state long_name = tracer concentration updated by physics units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_tracers) + dimensions = (horizontal_dimension,vertical_layer_dimension,number_of_tracers) type = real kind = kind_phys [gq0(:,:,index_of_specific_humidity_in_tracer_concentration_array)] standard_name = specific_humidity_of_new_state long_name = water vapor specific humidity updated by physics units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [gq0(:,1,index_of_specific_humidity_in_tracer_concentration_array)] standard_name = specific_humidity_of_new_state_at_surface_adjacent_layer long_name = water vapor specific humidity at lowest model layer updated by physics units = kg kg-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [gq0(:,:,index_of_ozone_mixing_ratio_in_tracer_concentration_array)] standard_name = ozone_concentration_of_new_state long_name = ozone concentration updated by physics units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [gq0(:,:,index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array)] standard_name = cloud_liquid_water_mixing_ratio_of_new_state long_name = ratio of mass of cloud water to mass of dry air plus vapor (without condensates) updated by physics units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [gq0(:,:,index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array)] standard_name = cloud_ice_mixing_ratio_of_new_state long_name = ratio of mass of ice water to mass of dry air plus vapor (without condensates) updated by physics units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [gq0(:,:,index_of_rain_mixing_ratio_in_tracer_concentration_array)] standard_name = rain_mixing_ratio_of_new_state long_name = ratio of mass of rain water to mass of dry air plus vapor (without condensates) updated by physics units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [gq0(:,:,index_of_snow_mixing_ratio_in_tracer_concentration_array)] standard_name = snow_mixing_ratio_of_new_state long_name = ratio of mass of snow water to mass of dry air plus vapor (without condensates) updated by physics units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [gq0(:,:,index_of_graupel_mixing_ratio_in_tracer_concentration_array)] standard_name = graupel_mixing_ratio_of_new_state long_name = ratio of mass of graupel to mass of dry air plus vapor (without condensates) updated by physics units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [gq0(:,:,index_of_hail_mixing_ratio_in_tracer_concentration_array)] standard_name = hail_mixing_ratio_of_new_state long_name = ratio of mass of hail to mass of dry air plus vapor (without condensates) updated by physics units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = ( index_of_hail_mixing_ratio_in_tracer_concentration_array > 0 ) @@ -497,14 +497,14 @@ standard_name = mass_weighted_rime_factor_of_new_state long_name = mass weighted rime factor updated by physics units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [gq0(:,:,index_of_mass_number_concentration_of_hygroscopic_aerosols_in_tracer_concentration_array)] standard_name = mass_number_concentration_of_hygroscopic_aerosols_of_new_state long_name = number concentration of water-friendly aerosols updated by physics units = kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (index_of_mass_number_concentration_of_hygroscopic_aerosols_in_tracer_concentration_array > 0) @@ -512,7 +512,7 @@ standard_name = mass_number_concentration_of_nonhygroscopic_ice_nucleating_aerosols_of_new_state long_name = number concentration of ice-friendly aerosols updated by physics units = kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (index_of_mass_number_concentration_of_nonhygroscopic_ice_nucleating_aerosols_in_tracer_concentration_array > 0) @@ -520,7 +520,7 @@ standard_name = mass_number_concentration_of_cloud_liquid_water_particles_in_air_of_new_state long_name = number concentration of cloud droplets updated by physics units = kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (index_of_mass_number_concentration_of_cloud_droplets_in_tracer_concentration_array > 0) @@ -528,35 +528,35 @@ standard_name = mass_number_concentration_of_cloud_ice_water_crystals_in_air_of_new_state long_name = number concentration of ice updated by physics units = kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [gq0(:,:,index_of_mass_number_concentration_of_rain_in_tracer_concentration_array)] standard_name = mass_number_concentration_of_rain_of_new_state long_name = number concentration of rain updated by physics units = kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [gq0(:,:,index_of_mass_number_concentration_of_snow_in_tracer_concentration_array)] standard_name = mass_number_concentration_of_snow_of_new_state long_name = number concentration of snow updated by physics units = kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [gq0(:,:,index_of_mass_number_concentration_of_graupel_in_tracer_concentration_array)] standard_name = mass_number_concentration_of_graupel_of_new_state long_name = number concentration of graupel updated by physics units = kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [gq0(:,:,index_of_mass_number_concentration_of_hail_in_tracer_concentration_array)] standard_name = mass_number_concentration_of_hail_of_new_state long_name = number concentration of hail updated by physics units = kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = ( index_of_mass_number_concentration_of_hail_in_tracer_concentration_array > 0 ) @@ -564,7 +564,7 @@ standard_name = cloud_condensation_nuclei_number_concentration_of_new_state long_name = number concentration of cloud condensation nuclei updated by physics units = kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = ( index_of_cloud_condensation_nuclei_number_concentration_in_tracer_concentration_array > 0 ) @@ -572,7 +572,7 @@ standard_name = activated_cloud_condensation_nuclei_number_concentration_of_new_state long_name = number concentration of cloud condensation nuclei updated by physics units = kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = ( index_of_activated_cloud_condensation_nuclei_number_concentration_in_tracer_concentration_array > 0 ) @@ -580,7 +580,7 @@ standard_name = graupel_volume_of_new_state long_name = graupel volume updated by physics units = m3 kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = ( index_of_graupel_volume_in_tracer_concentration_array > 0 ) @@ -588,7 +588,7 @@ standard_name = hail_volume_of_new_state long_name = hail volume updated by physics units = m3 kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = ( index_of_hail_volume_in_tracer_concentration_array > 0 ) @@ -596,7 +596,7 @@ standard_name = reflectivity_of_rain_of_new_state long_name = reflectivity of rain updated by physics units = m6 kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = ( index_of_reflectivity_of_rain_in_tracer_concentration_array > 0 ) @@ -604,7 +604,7 @@ standard_name = reflectivity_of_graupel_of_new_state long_name = reflectivity of graupel updated by physics units = m6 kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = ( index_of_reflectivity_of_graupel_in_tracer_concentration_array > 0 ) @@ -612,7 +612,7 @@ standard_name = reflectivity_of_hail_of_new_state long_name = reflectivity of hail updated by physics units = m6 kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = ( index_of_reflectivity_of_hail_in_tracer_concentration_array > 0 ) @@ -620,17 +620,18 @@ standard_name = cloud_area_fraction_in_atmosphere_layer_of_new_state long_name = cloud fraction updated by physics units = frac - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [gq0(:,:,index_of_updraft_area_fraction_in_tracer_concentration_array)] standard_name = updraft_area_fraction_updated_by_physics long_name = convective updraft area fraction updated by physics units = frac - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = ( index_of_updraft_area_fraction_in_tracer_concentration_array > 0 ) + ######################################################################## [ccpp-table-properties] name = GFS_sfcprop_type @@ -644,56 +645,56 @@ standard_name = area_type long_name = landmask: sea/land/ice=0/1/2 units = flag - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [oceanfrac] standard_name = sea_area_fraction long_name = fraction of horizontal grid area occupied by ocean units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [landfrac] standard_name = land_area_fraction long_name = fraction of horizontal grid area occupied by land units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [vegtype_frac] standard_name = fraction_of_vegetation_category long_name = fraction of horizontal grid area occupied by given vegetation category units = frac - dimensions = (horizontal_loop_extent,number_of_vegetation_categories) + dimensions = (horizontal_dimension,number_of_vegetation_categories) type = real kind = kind_phys [soiltype_frac] standard_name = fraction_of_soil_category long_name = fraction of horizontal grid area occupied by given soil category units = frac - dimensions = (horizontal_loop_extent,number_of_soil_categories) + dimensions = (horizontal_dimension,number_of_soil_categories) type = real kind = kind_phys [lakefrac] standard_name = lake_area_fraction long_name = fraction of horizontal grid area occupied by lake units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [lakedepth] standard_name = lake_depth long_name = lake depth units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [clm_lakedepth] standard_name = clm_lake_depth long_name = clm internal copy of lake depth with 10.0 replaced by default lake depth units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_lake_model_execution_method > 0 .and. control_for_lake_model_selection == 2) @@ -701,13 +702,13 @@ standard_name = flag_for_using_lake_model long_name = flag indicating lake points using a lake model units = flag - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer [lake_t2m] standard_name = temperature_at_2m_from_clm_lake long_name = temperature at 2m from clm lake units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_lake_model_execution_method > 0 .and. control_for_lake_model_selection == 2) @@ -715,7 +716,7 @@ standard_name = specific_humidity_at_2m_from_clm_lake long_name = specific humidity at 2m from clm lake units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_lake_model_execution_method > 0 .and. control_for_lake_model_selection == 2) @@ -723,7 +724,7 @@ standard_name = mixed_layer_depth_of_lakes long_name = depth of lake mixing layer units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_lake_model_selection == 1 .and. control_for_lake_model_execution_method > 0) @@ -731,7 +732,7 @@ standard_name = lake_mixed_layer_temperature long_name = temperature of lake mixing layer units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_lake_model_selection == 1 .and. control_for_lake_model_execution_method > 0) @@ -739,7 +740,7 @@ standard_name = mean_temperature_of_the_water_column long_name = thee mean temperature of the water column units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_lake_model_selection == 1 .and. control_for_lake_model_execution_method > 0) @@ -747,7 +748,7 @@ standard_name = the_thermally_active_layer_depth_of_the_bottom_sediment long_name = the depth of the thermally active layer of the bottom sediment units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_lake_model_selection == 1 .and. control_for_lake_model_execution_method > 0) @@ -755,7 +756,7 @@ standard_name = temperature_at_the_bottom_of_the_sediment_upper_layer long_name = the temperature at the bottom of the sediment upper layer units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_lake_model_selection == 1 .and. control_for_lake_model_execution_method > 0) @@ -763,7 +764,7 @@ standard_name = lake_bottom_temperature long_name = the temperature at the water-bottom sediment interface units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_lake_model_selection == 1 .and. control_for_lake_model_execution_method > 0) @@ -771,7 +772,7 @@ standard_name = temperature_for_bottom_layer_of_water long_name = the temperature at the lake bottom layer water units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_lake_model_selection == 1 .and. control_for_lake_model_execution_method > 0) @@ -779,7 +780,7 @@ standard_name = shape_factor_of_water_temperature_vertical_profile long_name = the shape factor of water temperature vertical profile units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_lake_model_selection == 1 .and. control_for_lake_model_execution_method > 0) @@ -787,7 +788,7 @@ standard_name = temperature_of_snow_on_lake long_name = temperature of snow on a lake units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_lake_model_execution_method > 0) @@ -795,147 +796,147 @@ standard_name = surface_skin_temperature long_name = surface skin temperature units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tsfco] standard_name = sea_surface_temperature long_name = sea surface temperature units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [usfco] standard_name = x_ocean_current long_name = zonal current at ocean surface units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [vsfco] standard_name = y_ocean_current long_name = meridional current at ocean surface units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tsfcl] standard_name = surface_skin_temperature_over_land long_name = surface skin temperature over land units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tisfc] standard_name = surface_skin_temperature_over_ice long_name = surface skin temperature over ice units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tiice] standard_name = temperature_in_ice_layer long_name = sea ice internal temperature units = K - dimensions = (horizontal_loop_extent,vertical_dimension_of_sea_ice) + dimensions = (horizontal_dimension,vertical_dimension_of_sea_ice) type = real kind = kind_phys [snowd] standard_name = lwe_surface_snow long_name = water equivalent snow depth units = mm - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [zorl] standard_name = surface_roughness_length long_name = surface roughness length units = cm - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [zorlw] standard_name = surface_roughness_length_over_water long_name = surface roughness length over water units = cm - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [zorll] standard_name = surface_roughness_length_over_land long_name = surface roughness length over land units = cm - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [zorli] standard_name = surface_roughness_length_over_ice long_name = surface roughness length over ice units = cm - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [zorlwav] standard_name = surface_roughness_length_from_wave_model long_name = surface roughness length from wave model units = cm - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [fice] standard_name = sea_ice_area_fraction_of_sea_area_fraction long_name = ice fraction over open water units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [snodl] standard_name = surface_snow_thickness_water_equivalent_over_land long_name = water equivalent snow depth over land units = mm - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [weasdl] standard_name = water_equivalent_accumulated_snow_depth_over_land long_name = water equiv of acc snow depth over land units = mm - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [snodi] standard_name = surface_snow_thickness_water_equivalent_over_ice long_name = water equivalent snow depth over ice units = mm - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [weasdi] standard_name = water_equivalent_accumulated_snow_depth_over_ice long_name = water equiv of acc snow depth over land units = mm - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [hprime] standard_name = statistical_measures_of_subgrid_orography_collection_array long_name = orographic metrics units = mixed - dimensions = (horizontal_loop_extent,number_of_statistical_measures_of_subgrid_orography) + dimensions = (horizontal_dimension,number_of_statistical_measures_of_subgrid_orography) type = real kind = kind_phys [hprime(:,1)] standard_name = standard_deviation_of_subgrid_orography long_name = standard deviation of subgrid height_above_mean_sea_level units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [dust12m_in] standard_name = fengsha_dust12m_input long_name = fengsha dust input units = various - dimensions = (horizontal_loop_extent,12,5) + dimensions = (horizontal_dimension,12,5) type = real kind = kind_phys active = (do_smoke_coupling) @@ -943,7 +944,7 @@ standard_name = anthropogenic_background_input long_name = anthropogenic background input units = various - dimensions = (horizontal_loop_extent,1) + dimensions = (horizontal_dimension,1) type = real kind = kind_phys active = (do_smoke_coupling) @@ -951,7 +952,7 @@ standard_name = emission_smoke_RRFS long_name = emission fire RRFS units = various - dimensions = (horizontal_loop_extent,24,2) + dimensions = (horizontal_dimension,24,2) type = real kind = kind_phys active = (do_smoke_coupling) @@ -959,7 +960,7 @@ standard_name = emission_smoke_prvd_RRFS long_name = emission fire RRFS daily units = various - dimensions = (horizontal_loop_extent,4) + dimensions = (horizontal_dimension,4) type = real kind = kind_phys active = (do_smoke_coupling) @@ -967,7 +968,7 @@ standard_name = baseline_surface_roughness_length long_name = baseline surface roughness length for momentum in meter units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_janjic_surface_layer_scheme .or. flag_for_mellor_yamada_janjic_pbl_scheme) @@ -975,28 +976,28 @@ standard_name = baseline_surface_longwave_emissivity long_name = baseline surface lw emissivity in fraction units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [sncovr] standard_name = surface_snow_area_fraction_over_land long_name = surface snow area fraction units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [sncovr_ice] standard_name = surface_snow_area_fraction_over_ice long_name = surface snow area fraction over ice units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [fire_heat_flux] standard_name = surface_fire_heat_flux long_name = heat flux of fire at the surface units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme) @@ -1004,7 +1005,7 @@ standard_name = fraction_of_grid_cell_burning long_name = ration of the burnt area to the grid cell area units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme) @@ -1012,35 +1013,35 @@ standard_name = upper_bound_of_max_albedo_assuming_deep_snow long_name = maximum snow albedo units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [emis_lnd] standard_name = surface_longwave_emissivity_over_land long_name = surface lw emissivity in fraction over land units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [emis_ice] standard_name = surface_longwave_emissivity_over_ice long_name = surface lw emissivity in fraction over ice units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [emis_wat] standard_name = surface_longwave_emissivity_over_water long_name = surface lw emissivity in fraction over water units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [sfalb_lnd] standard_name = surface_diffused_shortwave_albedo_over_land long_name = mean surface diffused sw albedo over land units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme) @@ -1048,7 +1049,7 @@ standard_name = surface_diffused_shortwave_albedo_over_ice long_name = mean surface diffused sw albedo over ice units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme) @@ -1056,7 +1057,7 @@ standard_name = surface_snow_free_albedo_over_land long_name = surface snow-free albedo over ice units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme) @@ -1064,118 +1065,118 @@ standard_name = vis_albedo_weak_cosz long_name = mean vis albedo with weak cosz dependency units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [alnwf] standard_name = nir_albedo_weak_cosz long_name = mean nir albedo with weak cosz dependency units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [slope] standard_name = surface_slope_classification long_name = sfc slope type for lsm units = index - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer [slope_save] standard_name = surface_slope_classification_save long_name = sfc slope type for lsm save units = index - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer [shdmin] standard_name = min_vegetation_area_fraction long_name = min fractional coverage of green vegetation units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [shdmax] standard_name = max_vegetation_area_fraction long_name = max fractional coverage of green vegetation units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tg3] standard_name = deep_soil_temperature long_name = deep soil temperature units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [vfrac] standard_name = vegetation_area_fraction long_name = areal fractional cover of green vegetation units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [vtype] standard_name = vegetation_type_classification long_name = vegetation type for lsm units = index - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer [vtype_save] standard_name = vegetation_type_classification_save long_name = vegetation type for lsm save units = index - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer [stype] standard_name = soil_type_classification long_name = soil type for lsm units = index - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer [stype_save] standard_name = soil_type_classification_save long_name = soil type for lsm save units = index - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer [scolor] standard_name = soil_color_classification long_name = soil color for lsm units = index - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer [scolor_save] standard_name = soil_color_classification_save long_name = soil color for lsm save units = index - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer [uustar] standard_name = surface_friction_velocity long_name = boundary layer parameter units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [oro] standard_name = height_above_mean_sea_level long_name = height_above_mean_sea_level units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [oro_uf] standard_name = unfiltered_height_above_mean_sea_level long_name = unfiltered height_above_mean_sea_level units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [maxupmf] standard_name = maximum_convective_updraft_mass_flux long_name = maximum convective updraft mass flux within a column units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_deep_convection_scheme == identifier_for_grell_freitas_deep_convection .or. control_for_deep_convection_scheme == identifier_for_c3_deep_convection) @@ -1183,7 +1184,7 @@ standard_name = consecutive_calls_for_grell_freitas_convection long_name = Memory counter for GF units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_deep_convection_scheme == identifier_for_grell_freitas_deep_convection .or. control_for_deep_convection_scheme == identifier_for_c3_deep_convection) @@ -1191,7 +1192,7 @@ standard_name = consecutive_calls_for_grell_freitas_mid_level_convection long_name = Memory counter for GF midlevel units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_deep_convection_scheme == identifier_for_grell_freitas_deep_convection .or. control_for_deep_convection_scheme == identifier_for_c3_deep_convection) @@ -1199,63 +1200,63 @@ standard_name = specified_surface_upward_temperature_flux long_name = specified kinematic surface upward sensible heat flux units = K m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [spec_lh_flux] standard_name = specified_surface_upward_specific_humidity_flux long_name = specified kinematic surface upward latent heat flux units = kg kg-1 m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [hice] standard_name = sea_ice_thickness long_name = sea ice thickness units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [weasd] standard_name = lwe_thickness_of_surface_snow_amount long_name = water equiv of acc snow depth over land and sea ice units = mm - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [canopy] standard_name = canopy_water_amount long_name = canopy water amount units = kg m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [ffmm] standard_name = Monin_Obukhov_similarity_function_for_momentum long_name = Monin-Obukhov similarity function for momentum units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [ffhh] standard_name = Monin_Obukhov_similarity_function_for_heat long_name = Monin-Obukhov similarity function for heat units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [f10m] standard_name = ratio_of_wind_at_surface_adjacent_layer_to_wind_at_10m long_name = ratio of sigma level 1 wind and 10m wind units = ratio - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [rca] standard_name = aerodynamic_resistance_in_canopy long_name = canopy resistance units = s m-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noah_land_surface_scheme .or. control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1263,63 +1264,63 @@ standard_name = nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep long_name = total precipitation amount in each time step units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [srflag] standard_name = precipitation_type long_name = snow/rain flag for precipitation units = flag - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [slc] standard_name = volume_fraction_of_unfrozen_water_in_soil long_name = liquid soil moisture units = frac - dimensions = (horizontal_loop_extent,vertical_dimension_of_soil) + dimensions = (horizontal_dimension,vertical_dimension_of_soil) type = real kind = kind_phys [smc] standard_name = volume_fraction_of_condensed_water_in_soil long_name = total soil moisture units = frac - dimensions = (horizontal_loop_extent,vertical_dimension_of_soil) + dimensions = (horizontal_dimension,vertical_dimension_of_soil) type = real kind = kind_phys [stc] standard_name = soil_temperature long_name = soil temperature units = K - dimensions = (horizontal_loop_extent,vertical_dimension_of_soil) + dimensions = (horizontal_dimension,vertical_dimension_of_soil) type = real kind = kind_phys [t2m] standard_name = air_temperature_at_2m long_name = 2 meter temperature units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [th2m] standard_name = air_potential_temperature_at_2m long_name = 2 meter potential temperature units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [q2m] standard_name = specific_humidity_at_2m long_name = 2 meter specific humidity units = kg kg-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tref] standard_name = reference_sea_surface_temperature long_name = sea surface reference temperature units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_nsstm > 0) @@ -1327,7 +1328,7 @@ standard_name = molecular_sublayer_thickness_in_sea_water long_name = sub-layer cooling thickness units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_nsstm > 0) @@ -1335,7 +1336,7 @@ standard_name = coefficient_c_0 long_name = coefficient 1 to calculate d(Tz)/d(Ts) units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_nsstm > 0) @@ -1343,7 +1344,7 @@ standard_name = coefficient_c_d long_name = coefficient 2 to calculate d(Tz)/d(Ts) units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_nsstm > 0) @@ -1351,7 +1352,7 @@ standard_name = coefficient_w_0 long_name = coefficient 3 to calculate d(Tz)/d(Ts) units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_nsstm > 0) @@ -1359,7 +1360,7 @@ standard_name = coefficient_w_d long_name = coefficient 4 to calculate d(Tz)/d(Ts) units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_nsstm > 0) @@ -1367,7 +1368,7 @@ standard_name = heat_content_in_diurnal_thermocline long_name = heat content in diurnal thermocline layer units = K m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_nsstm > 0) @@ -1375,7 +1376,7 @@ standard_name = sea_water_salinity_in_diurnal_thermocline long_name = salinity content in diurnal thermocline layer units = ppt m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_nsstm > 0) @@ -1383,7 +1384,7 @@ standard_name = x_current_in_diurnal_thermocline long_name = u-current content in diurnal thermocline layer units = m2 s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_nsstm > 0) @@ -1391,7 +1392,7 @@ standard_name = y_current_in_diurnal_thermocline long_name = v-current content in diurnal thermocline layer units = m2 s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_nsstm > 0) @@ -1399,7 +1400,7 @@ standard_name = diurnal_thermocline_layer_thickness long_name = diurnal thermocline layer thickness units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_nsstm > 0) @@ -1407,7 +1408,7 @@ standard_name = ocean_mixed_layer_thickness long_name = mixed layer thickness units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_nsstm > 0) @@ -1415,7 +1416,7 @@ standard_name = derivative_of_heat_content_in_diurnal_thermocline_wrt_surface_skin_temperature long_name = d(xt)/d(ts) units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_nsstm > 0) @@ -1423,7 +1424,7 @@ standard_name = derivative_of_diurnal_thermocline_layer_thickness_wrt_surface_skin_temperature long_name = d(xz)/d(ts) units = m K-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_nsstm > 0) @@ -1431,7 +1432,7 @@ standard_name = free_convection_layer_thickness_in_sea_water long_name = thickness of free convection layer (FCL) units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_nsstm > 0) @@ -1439,7 +1440,7 @@ standard_name = control_for_diurnal_thermocline_calculation long_name = index to start dtlm run or not units = index - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_nsstm > 0) @@ -1447,7 +1448,7 @@ standard_name = molecular_sublayer_temperature_correction_in_sea_water long_name = sub-layer cooling amount units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_nsstm > 0) @@ -1455,7 +1456,7 @@ standard_name = surface_sensible_heat_due_to_rainfall long_name = sensible heat flux due to rainfall units = W - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_nsstm > 0) @@ -1463,7 +1464,7 @@ standard_name = number_of_snow_layers long_name = number of snow layers units = count - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1471,7 +1472,7 @@ standard_name = canopy_temperature long_name = vegetation temperature units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1479,7 +1480,7 @@ standard_name = ground_temperature long_name = ground temperature for noahmp units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1487,7 +1488,7 @@ standard_name = canopy_intercepted_ice_mass long_name = canopy intercepted ice mass units = mm - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1495,7 +1496,7 @@ standard_name = canopy_intercepted_liquid_water long_name = canopy intercepted liquid water units = mm - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1503,7 +1504,7 @@ standard_name = air_vapor_pressure_in_canopy long_name = canopy air vapor pressure units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1511,7 +1512,7 @@ standard_name = air_temperature_in_canopy long_name = canopy air temperature units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1519,7 +1520,7 @@ standard_name = surface_drag_coefficient_for_momentum_for_noahmp long_name = surface drag coefficient for momentum for noahmp units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1527,7 +1528,7 @@ standard_name = surface_drag_coefficient_for_heat_and_moisture_for_noahmp long_name = surface exchange coeff heat & moisture for noahmp units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1535,7 +1536,7 @@ standard_name = wet_canopy_area_fraction long_name = area fraction of canopy that is wetted/snowed units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1543,7 +1544,7 @@ standard_name = lwe_thickness_of_snowfall_amount_on_previous_timestep long_name = snow mass at previous time step units = mm - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1551,7 +1552,7 @@ standard_name = surface_albedo_assuming_deep_snow_on_previous_timestep long_name = snow albedo at previous time step units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1559,7 +1560,7 @@ standard_name = lwe_snowfall_rate long_name = snow precipitation rate at surface units = mm s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1567,7 +1568,7 @@ standard_name = water_storage_in_lake long_name = lake water storage units = mm - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1575,7 +1576,7 @@ standard_name = water_table_depth long_name = water table depth units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1583,7 +1584,7 @@ standard_name = water_storage_in_aquifer long_name = water storage in aquifer units = mm - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1591,7 +1592,7 @@ standard_name = water_storage_in_aquifer_and_saturated_soil long_name = water storage in aquifer and saturated soil units = mm - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1599,7 +1600,7 @@ standard_name = temperature_in_surface_snow long_name = temperature_in_surface_snow units = K - dimensions = (horizontal_loop_extent, lower_bound_of_vertical_dimension_of_surface_snow:0) + dimensions = (horizontal_dimension, lower_bound_of_vertical_dimension_of_surface_snow:0) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1607,7 +1608,7 @@ standard_name = depth_from_snow_surface_at_bottom_interface long_name = depth from the top of the snow surface at the bottom of the layer units = m - dimensions = (horizontal_loop_extent, lower_bound_of_vertical_dimension_of_surface_snow:vertical_dimension_of_soil_internal_to_land_surface_scheme) + dimensions = (horizontal_dimension, lower_bound_of_vertical_dimension_of_surface_snow:vertical_dimension_of_soil_internal_to_land_surface_scheme) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1615,7 +1616,7 @@ standard_name = lwe_thickness_of_ice_in_surface_snow long_name = snow layer ice units = mm - dimensions = (horizontal_loop_extent, lower_bound_of_vertical_dimension_of_surface_snow:0) + dimensions = (horizontal_dimension, lower_bound_of_vertical_dimension_of_surface_snow:0) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1623,7 +1624,7 @@ standard_name = lwe_thickness_of_liquid_water_in_surface_snow long_name = snow layer liquid water units = mm - dimensions = (horizontal_loop_extent, lower_bound_of_vertical_dimension_of_surface_snow:0) + dimensions = (horizontal_dimension, lower_bound_of_vertical_dimension_of_surface_snow:0) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1631,7 +1632,7 @@ standard_name = leaf_mass_content long_name = leaf mass units = g m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1639,7 +1640,7 @@ standard_name = fine_root_mass_content long_name = fine root mass units = g m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1647,7 +1648,7 @@ standard_name = stem_mass_content long_name = stem mass units = g m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1655,7 +1656,7 @@ standard_name = wood_mass_content long_name = wood mass including woody roots units = g m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1663,7 +1664,7 @@ standard_name = slow_soil_pool_mass_content_of_carbon long_name = stable carbon in deep soil units = g m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1671,7 +1672,7 @@ standard_name = fast_soil_pool_mass_content_of_carbon long_name = short-lived carbon in shallow soil units = g m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1679,7 +1680,7 @@ standard_name = leaf_area_index long_name = leaf area index units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noah_land_surface_scheme .or. control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme .or. control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme) @@ -1687,7 +1688,7 @@ standard_name = stem_area_index long_name = stem area index units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1695,7 +1696,7 @@ standard_name = dimensionless_age_of_surface_snow long_name = non-dimensional snow age units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1703,7 +1704,7 @@ standard_name = volumetric_equilibrium_soil_moisture long_name = equilibrium soil water content units = m3 m-3 - dimensions = (horizontal_loop_extent,vertical_dimension_of_soil_internal_to_land_surface_scheme) + dimensions = (horizontal_dimension,vertical_dimension_of_soil_internal_to_land_surface_scheme) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1711,7 +1712,7 @@ standard_name = volumetric_soil_moisture_between_soil_bottom_and_water_table long_name = soil water content between the bottom of the soil and the water table units = m3 m-3 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1719,7 +1720,7 @@ standard_name = water_table_recharge_assuming_deep long_name = recharge to or from the water table when deep units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1727,7 +1728,7 @@ standard_name = water_table_recharge_assuming_shallow long_name = recharge to or from the water table when shallow units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1735,35 +1736,35 @@ standard_name = surface_albedo_direct_visible_over_land long_name = direct surface albedo visible band over land units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [albdirnir_lnd] standard_name = surface_albedo_direct_NIR_over_land long_name = direct surface albedo NIR band over land units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [albdifvis_lnd] standard_name = surface_albedo_diffuse_visible_over_land long_name = diffuse surface albedo visible band over land units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [albdifnir_lnd] standard_name = surface_albedo_diffuse_NIR_over_land long_name = diffuse surface albedo NIR band over land units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [albdirvis_ice] standard_name = surface_albedo_direct_visible_over_ice long_name = direct surface albedo visible band over ice units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme .or. flag_for_cice_albedo) @@ -1771,7 +1772,7 @@ standard_name = surface_albedo_diffuse_visible_over_ice long_name = diffuse surface albedo visible band over ice units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme .or. flag_for_cice_albedo) @@ -1779,7 +1780,7 @@ standard_name = surface_albedo_direct_NIR_over_ice long_name = direct surface albedo NIR band over ice units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme .or. flag_for_cice_albedo) @@ -1787,7 +1788,7 @@ standard_name = surface_albedo_diffuse_NIR_over_ice long_name = diffuse surface albedo NIR band over ice units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme .or. flag_for_cice_albedo) @@ -1795,7 +1796,7 @@ standard_name = normalized_soil_wetness_for_land_surface_model long_name = normalized soil wetness for lsm units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme) @@ -1803,7 +1804,7 @@ standard_name = volume_fraction_of_unfrozen_soil_moisture_for_land_surface_model long_name = volume fraction of unfrozen soil moisture for lsm units = frac - dimensions = (horizontal_loop_extent,vertical_dimension_of_soil_internal_to_land_surface_scheme) + dimensions = (horizontal_dimension,vertical_dimension_of_soil_internal_to_land_surface_scheme) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme) @@ -1811,7 +1812,7 @@ standard_name = volume_fraction_of_frozen_soil_moisture_for_land_surface_model long_name = volume fraction of frozen soil moisture for lsm units = frac - dimensions = (horizontal_loop_extent,vertical_dimension_of_soil_internal_to_land_surface_scheme) + dimensions = (horizontal_dimension,vertical_dimension_of_soil_internal_to_land_surface_scheme) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme) @@ -1819,7 +1820,7 @@ standard_name = volume_fraction_of_soil_moisture_for_land_surface_model long_name = volumetric fraction of soil moisture for lsm units = frac - dimensions = (horizontal_loop_extent,vertical_dimension_of_soil_internal_to_land_surface_scheme) + dimensions = (horizontal_dimension,vertical_dimension_of_soil_internal_to_land_surface_scheme) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme) @@ -1827,7 +1828,7 @@ standard_name = soil_temperature_for_land_surface_model long_name = soil temperature for land surface model units = K - dimensions = (horizontal_loop_extent,vertical_dimension_of_soil_internal_to_land_surface_scheme) + dimensions = (horizontal_dimension,vertical_dimension_of_soil_internal_to_land_surface_scheme) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme) @@ -1835,7 +1836,7 @@ standard_name = cloud_condensed_water_mixing_ratio_at_surface_over_land long_name = moist cloud water mixing ratio at surface over land units = kg kg-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme) @@ -1843,7 +1844,7 @@ standard_name = cloud_condensed_water_mixing_ratio_at_surface_over_ice long_name = moist cloud water mixing ratio at surface over ice units = kg kg-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme) @@ -1851,7 +1852,7 @@ standard_name = water_vapor_mixing_ratio_at_surface_over_land long_name = water vapor mixing ratio at surface over land units = kg kg-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme) @@ -1859,7 +1860,7 @@ standard_name = water_vapor_mixing_ratio_at_surface_over_ice long_name = water vapor mixing ratio at surface over ice units = kg kg-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme) @@ -1867,7 +1868,7 @@ standard_name = control_for_frozen_soil_physics long_name = flag for frozen soil physics (RUC) units = flag - dimensions = (horizontal_loop_extent,vertical_dimension_of_soil_internal_to_land_surface_scheme) + dimensions = (horizontal_dimension,vertical_dimension_of_soil_internal_to_land_surface_scheme) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme) @@ -1875,7 +1876,7 @@ standard_name = lsm_internal_surface_frozen_precipitation_density long_name = density of frozen precipitation units = kg m-3 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme) @@ -1883,7 +1884,7 @@ standard_name = temperature_in_surface_snow_at_surface_adjacent_layer_over_land long_name = snow temperature at the bottom of the first snow layer over land units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme) @@ -1891,7 +1892,7 @@ standard_name = temperature_in_surface_snow_at_surface_adjacent_layer_over_ice long_name = snow temperature at the bottom of the first snow layer over ice units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme) @@ -1899,7 +1900,7 @@ standard_name = surface_snow_amount_assuming_variable_snow_density_over_land long_name = run-total snow accumulation on the ground with variable snow density over land units = kg m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme) @@ -1907,14 +1908,14 @@ standard_name = surface_snow_lwe_thickness_amount_over_land long_name = run-total snowfall water equivalent over land units = kg m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [snowfallac_ice] standard_name = surface_snow_amount_assuming_variable_snow_density_over_ice long_name = run-total snow accumulation on the ground with variable snow density over ice units = kg m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme) @@ -1922,14 +1923,14 @@ standard_name = surface_snow_lwe_thickness_amount_over_ice long_name = run-total snowfall water equivalent over ice units = kg m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [ustm] standard_name = surface_friction_velocity_for_momentum long_name = friction velocity isolated for momentum only units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_surface_layer_scheme) @@ -1937,7 +1938,7 @@ standard_name = ratio_of_height_to_monin_obukhov_length long_name = monin obukhov surface stability parameter units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_surface_layer_scheme) @@ -1945,7 +1946,7 @@ standard_name = surface_temperature_scale long_name = temperature flux divided by ustar (temperature scale) units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_surface_layer_scheme) @@ -1953,28 +1954,28 @@ standard_name = reciprocal_of_obukhov_length long_name = one over obukhov length units = m-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [flhc] standard_name = surface_exchange_coefficient_for_heat long_name = surface exchange coefficient for heat units = W m-2 K-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [flqc] standard_name = surface_exchange_coefficient_for_moisture long_name = surface exchange coefficient for moisture units = kg m-2 s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [chs2] standard_name = surface_exchange_coefficient_for_heat_at_2m long_name = exchange coefficient for heat at 2 meters units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_surface_layer_scheme) @@ -1982,7 +1983,7 @@ standard_name = surface_exchange_coefficient_for_moisture_at_2m long_name = exchange coefficient for moisture at 2 meters units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_surface_layer_scheme) @@ -1990,7 +1991,7 @@ standard_name = surface_upward_latent_heat_flux long_name = latent heating at the surface (pos = up) units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_surface_layer_scheme) @@ -1998,28 +1999,28 @@ standard_name = surface_upward_specific_humidity_flux long_name = kinematic surface upward latent heat flux units = kg kg-1 m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [hflx] standard_name = surface_upward_temperature_flux long_name = kinematic surface upward sensible heat flux units = K m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [qss] standard_name = surface_specific_humidity long_name = surface air saturation specific humidity units = kg kg-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [raincprv] standard_name = lwe_thickness_of_convective_precipitation_amount_on_previous_timestep long_name = convective_precipitation_amount from previous timestep units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme .or. control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme .or. ( control_for_lake_model_execution_method > 0 .and. control_for_lake_model_selection == 2) ) @@ -2027,7 +2028,7 @@ standard_name = lwe_thickness_of_explicit_precipitation_amount_on_previous_timestep long_name = explicit rainfall from previous timestep units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme .or. control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme .or. ( control_for_lake_model_execution_method > 0 .and. control_for_lake_model_selection == 2) ) @@ -2035,7 +2036,7 @@ standard_name = lwe_thickness_of_ice_precipitation_amount_on_previous_timestep long_name = ice amount from previous timestep units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme .or. control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -2043,7 +2044,7 @@ standard_name = snow_mass_on_previous_timestep long_name = snow amount from previous timestep units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme .or. control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -2051,7 +2052,7 @@ standard_name = lwe_thickness_of_graupel_amount_on_previous_timestep long_name = graupel amount from previous timestep units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme .or. control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -2059,7 +2060,7 @@ standard_name = convective_precipitation_rate_on_previous_timestep long_name = convective precipitation rate from previous timestep units = mm s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -2067,7 +2068,7 @@ standard_name = explicit_precipitation_rate_on_previous_timestep long_name = explicit rainfall rate previous timestep units = mm s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -2075,7 +2076,7 @@ standard_name = ice_precipitation_rate_on_previous_timestep long_name = ice precipitation rate from previous timestep units = mm s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -2083,7 +2084,7 @@ standard_name = snowfall_rate_on_previous_timestep long_name = snow precipitation rate from previous timestep units = mm s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -2091,7 +2092,7 @@ standard_name = graupel_precipitation_rate_on_previous_timestep long_name = graupel precipitation rate from previous timestep units = mm s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -2099,35 +2100,35 @@ standard_name = vis_albedo_strong_cosz long_name = mean vis albedo with strong cosz dependency units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [alnsf] standard_name = nir_albedo_strong_cosz long_name = mean nir albedo with strong cosz dependency units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [facsf] standard_name =strong_cosz_area_fraction long_name = fractional coverage with strong cosz dependency units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [facwf] standard_name = weak_cosz_area_fraction long_name = fractional coverage with weak cosz dependency units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [lake_albedo] standard_name = mid_day_surface_albedo_over_lake long_name = mid day surface albedo over lake units = fraction - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) @@ -2135,7 +2136,7 @@ standard_name = lake_depth_before_correction long_name = lake depth_before_correction units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) @@ -2143,7 +2144,7 @@ standard_name = water_equivalent_accumulated_snow_depth_in_clm_lake_model long_name = water equiv of acc snow depth over lake in clm lake model units = mm - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) @@ -2151,7 +2152,7 @@ standard_name = actual_snow_depth_in_clm_lake_model long_name = actual acc snow depth over lake in clm lake model units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) @@ -2159,7 +2160,7 @@ standard_name = snow_layers_in_clm_lake_model long_name = snow layers in clm lake model (treated as integer) units = count - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) @@ -2167,7 +2168,7 @@ standard_name = snow_level_depth_in_clm_lake_model long_name = snow level depth in clm lake model units = m - dimensions = (horizontal_loop_extent,snow_plus_soil_minus_one_vertical_dimension_for_clm_lake_model) + dimensions = (horizontal_dimension,snow_plus_soil_minus_one_vertical_dimension_for_clm_lake_model) type = real kind = kind_phys active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) @@ -2175,7 +2176,7 @@ standard_name = snow_level_thickness_in_clm_lake_model long_name = snow level thickness in clm lake model units = m - dimensions = (horizontal_loop_extent,snow_plus_soil_minus_one_vertical_dimension_for_clm_lake_model) + dimensions = (horizontal_dimension,snow_plus_soil_minus_one_vertical_dimension_for_clm_lake_model) type = real kind = kind_phys active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) @@ -2183,7 +2184,7 @@ standard_name = snow_interface_depth_in_clm_lake_model long_name = snow interface_depth in clm lake model units = m - dimensions = (horizontal_loop_extent,snow_plus_soil_vertical_dimension_for_clm_lake_model) + dimensions = (horizontal_dimension,snow_plus_soil_vertical_dimension_for_clm_lake_model) type = real kind = kind_phys active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) @@ -2191,7 +2192,7 @@ standard_name = volumetric_soil_water_in_clm_lake_model long_name = volumetric soil water in clm lake model units = m3 m-3 - dimensions = (horizontal_loop_extent,snow_plus_soil_minus_one_vertical_dimension_for_clm_lake_model) + dimensions = (horizontal_dimension,snow_plus_soil_minus_one_vertical_dimension_for_clm_lake_model) type = real kind = kind_phys active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) @@ -2199,7 +2200,7 @@ standard_name = soil_liquid_water_content_in_clm_lake_model long_name = soil liquid water content in clm lake model units = kg m-3 - dimensions = (horizontal_loop_extent,snow_plus_soil_minus_one_vertical_dimension_for_clm_lake_model) + dimensions = (horizontal_dimension,snow_plus_soil_minus_one_vertical_dimension_for_clm_lake_model) type = real kind = kind_phys active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) @@ -2207,7 +2208,7 @@ standard_name = soil_ice_water_content_in_clm_lake_model long_name = soil ice water content in clm lake model units = kg m-3 - dimensions = (horizontal_loop_extent,snow_plus_soil_minus_one_vertical_dimension_for_clm_lake_model) + dimensions = (horizontal_dimension,snow_plus_soil_minus_one_vertical_dimension_for_clm_lake_model) type = real kind = kind_phys active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) @@ -2215,7 +2216,7 @@ standard_name = skin_temperature_from_lake_model long_name = skin temperature from lake model units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) @@ -2223,7 +2224,7 @@ standard_name = soil_or_snow_layer_temperature_from_clm_lake_model long_name = soil or snow layer temperature from clm lake model units = K - dimensions = (horizontal_loop_extent,snow_plus_soil_minus_one_vertical_dimension_for_clm_lake_model) + dimensions = (horizontal_dimension,snow_plus_soil_minus_one_vertical_dimension_for_clm_lake_model) type = real kind = kind_phys active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) @@ -2231,7 +2232,7 @@ standard_name = lake_layer_temperature_from_clm_lake_model long_name = lake layer temperature from clm lake model units = K - dimensions = (horizontal_loop_extent,lake_vertical_dimension_for_clm_lake_model) + dimensions = (horizontal_dimension,lake_vertical_dimension_for_clm_lake_model) type = real kind = kind_phys active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) @@ -2239,7 +2240,7 @@ standard_name = top_level_eddy_conductivity_from_previous_timestep_in_clm_lake_model long_name = top level eddy conductivity from previous timestep in clm lake model units = kg m-3 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) @@ -2247,14 +2248,14 @@ standard_name = lake_fractional_ice_cover_on_clm_lake_levels long_name = lake fractional ice cover on clm lake levels units = kg m-3 - dimensions = (horizontal_loop_extent,lake_vertical_dimension_for_clm_lake_model) + dimensions = (horizontal_dimension,lake_vertical_dimension_for_clm_lake_model) type = real kind = kind_phys active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) [lake_ht] standard_name = test_lake_ht long_name = test_lake_ht - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) units = unitless type = real kind = kind_phys @@ -2263,7 +2264,7 @@ standard_name = flag_for_clm_lake_initialization long_name = set to true in clm_lake_run after likeini is called for that gridpoint units = flag - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) @@ -2271,21 +2272,21 @@ standard_name = clm_lake_is_salty long_name = lake at this point is salty (1) or not (0) units = 1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) [lake_cannot_freeze] standard_name = clm_lake_cannot_freeze long_name = lake at this point is so salty it cannot freeze units = 1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) [emdust] standard_name = emission_of_dust_for_smoke long_name = emission of dust for smoke units = ug m-2 s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (do_smoke_coupling) @@ -2293,7 +2294,7 @@ standard_name = emission_of_sea_salt_for_mp_indir_fdb long_name = emission of sea salt for mp indirect feedabck units = ug m-2 s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (do_smoke_coupling) @@ -2301,7 +2302,7 @@ standard_name = emission_of_anothropogenic_for_mp_indir_fdb long_name = emission of anothropogenic for mp indirect feedabck units = ug m-2 s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (do_smoke_coupling) @@ -2309,7 +2310,7 @@ standard_name = surface_smoke_emission long_name = emission of surface smoke units = ug m-2 s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (do_smoke_coupling) @@ -2317,7 +2318,7 @@ standard_name = frp_hourly long_name = hourly fire radiative power units = MW - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (do_smoke_coupling) @@ -2325,7 +2326,7 @@ standard_name = fire_hist long_name = coefficient to scale the fire activity depending on the fire duration units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (do_smoke_coupling) @@ -2333,7 +2334,7 @@ standard_name = coef_bb_dc long_name = coef to estimate the fire emission units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (do_smoke_coupling) @@ -2341,14 +2342,14 @@ standard_name = fire_type long_name = type of fire units = 1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer active = (do_smoke_coupling) [peak_hr] standard_name = peak_hr_fire long_name = time_of_peak_fire_emissions units = s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (do_smoke_coupling) @@ -2356,7 +2357,7 @@ standard_name = sum_of_land_use_fractions_for_no_fire_pixels long_name = land use of no fire pixels for type units = 1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (do_smoke_coupling) @@ -2364,7 +2365,7 @@ standard_name = sum_of_land_use_fractions_for_cropland_fire_pixels long_name = land use of fire pixels for type units = 1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (do_smoke_coupling) @@ -2372,7 +2373,7 @@ standard_name = smoke_fire_auxiliary_input long_name = smoke fire auxiliary input variables units = various - dimensions = (horizontal_loop_extent,fire_auxiliary_data_extent) + dimensions = (horizontal_dimension,fire_auxiliary_data_extent) type = real kind = kind_phys active = (do_smoke_coupling) @@ -2390,91 +2391,91 @@ standard_name = surface_downwelling_direct_nir_shortwave_flux_on_radiation_timestep long_name = sfc nir beam sw downward flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [nirdfdi] standard_name = surface_downwelling_diffuse_nir_shortwave_flux_on_radiation_timestep long_name = sfc nir diff sw downward flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [visbmdi] standard_name = surface_downwelling_direct_uv_and_vis_shortwave_flux_on_radiation_timestep long_name = sfc uv+vis beam sw downward flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [visdfdi] standard_name = surface_downwelling_diffuse_uv_and_vis_shortwave_flux_on_radiation_timestep long_name = sfc uv+vis diff sw downward flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [nirbmui] standard_name = surface_upwelling_direct_nir_shortwave_flux_on_radiation_timestep long_name = sfc nir beam sw upward flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [nirdfui] standard_name = surface_upwelling_diffuse_nir_shortwave_flux_on_radiation_timestep long_name = sfc nir diff sw upward flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [visbmui] standard_name = surface_upwelling_direct_uv_and_vis_shortwave_flux_on_radiation_timestep long_name = sfc uv+vis beam sw upward flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [visdfui] standard_name = surface_upwelling_diffuse_uv_and_vis_shortwave_flux_on_radiation_timestep long_name = sfc uv+vis diff sw upward flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [sfcdsw] standard_name = surface_downwelling_shortwave_flux_on_radiation_timestep long_name = total sky sfc downward sw flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [sfcnsw] standard_name = surface_net_downwelling_shortwave_flux_on_radiation_timestep long_name = total sky sfc netsw flx into ground units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [sfcdlw] standard_name = surface_downwelling_longwave_flux_on_radiation_timestep long_name = total sky sfc downward lw flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [sfculw] standard_name = surface_upwelling_longwave_flux_on_radiation_timestep long_name = total sky sfc upward lw flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [rain_cpl] standard_name = cumulative_lwe_thickness_of_precipitation_amount_for_coupling long_name = total rain precipitation units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .or. flag_for_stochastic_physics_perturbations .or. flag_for_chemistry_coupling .or. flag_for_global_cellular_automata .or. flag_for_land_coupling) @@ -2482,7 +2483,7 @@ standard_name = cumulative_lwe_thickness_of_convective_precipitation_amount_for_coupling long_name = total convective precipitation units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .or. flag_for_chemistry_coupling .or. flag_for_land_coupling) @@ -2490,7 +2491,7 @@ standard_name = cumulative_lwe_thickness_of_snow_amount_for_coupling long_name = total snow precipitation units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .or. flag_for_stochastic_physics_perturbations .or. flag_for_chemistry_coupling .or. flag_for_global_cellular_automata .or. flag_for_land_coupling) @@ -2498,7 +2499,7 @@ standard_name = cumulative_surface_x_momentum_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc x momentum flux multiplied by timestep units = Pa s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling) @@ -2506,7 +2507,7 @@ standard_name = cumulative_surface_y_momentum_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc y momentum flux multiplied by timestep units = Pa s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling) @@ -2514,7 +2515,7 @@ standard_name = cumulative_surface_upward_sensible_heat_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc sensible heat flux multiplied by timestep units = W m-2 s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling) @@ -2522,7 +2523,7 @@ standard_name = cumulative_surface_upward_latent_heat_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc latent heat flux multiplied by timestep units = W m-2 s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling) @@ -2530,7 +2531,7 @@ standard_name = cumulative_surface_downwelling_longwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc downward lw flux mulitplied by timestep units = W m-2 s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .or. flag_for_land_coupling) @@ -2538,7 +2539,7 @@ standard_name = cumulative_surface_downwelling_shortwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc downward sw flux multiplied by timestep units = W m-2 s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .or. flag_for_land_coupling) @@ -2546,7 +2547,7 @@ standard_name = cumulative_surface_downwelling_direct_nir_shortwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc nir beam downward sw flux multiplied by timestep units = W m-2 s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling) @@ -2554,7 +2555,7 @@ standard_name = cumulative_surface_downwelling_diffuse_nir_shortwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc nir diff downward sw flux multiplied by timestep units = W m-2 s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling) @@ -2562,7 +2563,7 @@ standard_name = cumulative_surface_downwelling_direct_uv_and_vis_shortwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc uv+vis beam dnwd sw flux multiplied by timestep units = W m-2 s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling) @@ -2570,7 +2571,7 @@ standard_name = cumulative_surface_downwelling_diffuse_uv_and_vis_shortwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc uv+vis diff dnwd sw flux multiplied by timestep units = W m-2 s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling) @@ -2578,7 +2579,7 @@ standard_name = cumulative_surface_net_downwelling_longwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative net downward lw flux multiplied by timestep units = W m-2 s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling) @@ -2586,7 +2587,7 @@ standard_name = cumulative_surface_net_downwelling_shortwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative net downward sw flux multiplied by timestep units = W m-2 s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .or. flag_for_land_coupling) @@ -2594,7 +2595,7 @@ standard_name = cumulative_surface_net_downwelling_direct_nir_shortwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative net nir beam downward sw flux multiplied by timestep units = W m-2 s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .or. flag_for_land_coupling) @@ -2602,7 +2603,7 @@ standard_name = cumulative_surface_net_downwellling_diffuse_nir_shortwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative net nir diff downward sw flux multiplied by timestep units = W m-2 s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .or. flag_for_land_coupling) @@ -2610,7 +2611,7 @@ standard_name = cumulative_surface_net_downwelling_direct_uv_and_vis_shortwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative net uv+vis beam downward sw rad flux multiplied by timestep units = W m-2 s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .or. flag_for_land_coupling) @@ -2618,7 +2619,7 @@ standard_name = cumulative_surface_net_downwelling_diffuse_uv_and_vis_shortwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative net uv+vis diff downward sw rad flux multiplied by timestep units = W m-2 s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .or. flag_for_land_coupling) @@ -2626,7 +2627,7 @@ standard_name = surface_x_momentum_flux_for_coupling long_name = instantaneous sfc x momentum flux units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling) @@ -2634,7 +2635,7 @@ standard_name = surface_y_momentum_flux_for_coupling long_name = instantaneous sfc y momentum flux units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling) @@ -2642,7 +2643,7 @@ standard_name = surface_upward_sensible_heat_flux_for_coupling long_name = instantaneous sfc sensible heat flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .or. flag_for_air_quality_coupling) @@ -2650,7 +2651,7 @@ standard_name = surface_upward_latent_heat_flux_for_coupling long_name = instantaneous sfc latent heat flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .or. flag_for_air_quality_coupling) @@ -2658,7 +2659,7 @@ standard_name = surface_downwelling_longwave_flux_for_coupling long_name = instantaneous sfc downward lw flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .or. flag_for_land_coupling) @@ -2666,7 +2667,7 @@ standard_name = surface_downwelling_shortwave_flux_for_coupling long_name = instantaneous sfc downward sw flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .or. flag_for_land_coupling) @@ -2674,7 +2675,7 @@ standard_name = surface_downwelling_direct_nir_shortwave_flux_for_coupling long_name = instantaneous sfc nir beam downward sw flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling) @@ -2682,7 +2683,7 @@ standard_name = surface_downwelling_diffuse_nir_shortwave_flux_for_coupling long_name = instantaneous sfc nir diff downward sw flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling) @@ -2690,7 +2691,7 @@ standard_name = surface_downwelling_direct_uv_and_vis_shortwave_flux_for_coupling long_name = instantaneous sfc uv+vis beam downward sw flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling) @@ -2698,7 +2699,7 @@ standard_name = surface_downwelling_diffuse_uv_and_vis_shortwave_flux_for_coupling long_name = instantaneous sfc uv+vis diff downward sw flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling) @@ -2706,7 +2707,7 @@ standard_name = surface_net_downwelling_longwave_flux_for_coupling long_name = instantaneous net sfc downward lw flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling) @@ -2714,7 +2715,7 @@ standard_name = surface_net_downwelling_shortwave_flux_for_coupling long_name = instantaneous net sfc downward sw flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .or. flag_for_air_quality_coupling .or. flag_for_land_coupling) @@ -2722,7 +2723,7 @@ standard_name = surface_net_downwelling_direct_nir_shortwave_flux_for_coupling long_name = instantaneous net nir beam sfc downward sw flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .or. flag_for_land_coupling) @@ -2730,7 +2731,7 @@ standard_name = surface_net_downwelling_diffuse_nir_shortwave_flux_for_coupling long_name = instantaneous net nir diff sfc downward sw flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .or. flag_for_land_coupling) @@ -2738,7 +2739,7 @@ standard_name = surface_net_downwelling_direct_uv_and_vis_shortwave_flux_for_coupling long_name = instantaneous net uv+vis beam downward sw flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .or. flag_for_land_coupling) @@ -2746,7 +2747,7 @@ standard_name = surface_net_downwelling_diffuse_uv_and_vis_shortwave_flux_for_coupling long_name = instantaneous net uv+vis diff downward sw flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .or. flag_for_land_coupling) @@ -2754,7 +2755,7 @@ standard_name = temperature_at_2m_for_coupling long_name = instantaneous T2m units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .or. flag_for_air_quality_coupling) @@ -2762,7 +2763,7 @@ standard_name = specific_humidity_at_2m_for_coupling long_name = instantaneous Q2m units = kg kg-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .or. flag_for_air_quality_coupling) @@ -2770,7 +2771,7 @@ standard_name = x_wind_at_10m_for_coupling long_name = instantaneous U10m units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .or. flag_for_chemistry_coupling .or. flag_for_ocean_wave_coupling) @@ -2778,7 +2779,7 @@ standard_name = y_wind_at_10m_for_coupling long_name = instantaneous V10m units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .or. flag_for_chemistry_coupling .or. flag_for_ocean_wave_coupling) @@ -2786,7 +2787,7 @@ standard_name = surface_skin_temperature_for_coupling long_name = instantaneous sfc temperature units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .or. flag_for_chemistry_coupling .or. flag_for_land_coupling) @@ -2794,7 +2795,7 @@ standard_name = surface_air_pressure_for_coupling long_name = instantaneous sfc pressure units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .or. flag_for_air_quality_coupling .or. flag_for_land_coupling) @@ -2802,7 +2803,7 @@ standard_name = surface_upwelling_longwave_flux_from_coupled_process long_name = surface upwelling LW flux for coupling units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling) @@ -2810,7 +2811,7 @@ standard_name = surface_x_momentum_flux_from_coupled_process long_name = sfc x momentum flux for coupling units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling) @@ -2818,7 +2819,7 @@ standard_name = surface_y_momentum_flux_from_coupled_process long_name = sfc y momentum flux for coupling units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling) @@ -2826,7 +2827,7 @@ standard_name = surface_upward_sensible_heat_flux_from_coupled_process long_name = sfc sensible heat flux input units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling) @@ -2834,7 +2835,7 @@ standard_name = surface_upward_latent_heat_flux_from_coupled_process long_name = sfc latent heat flux input for coupling units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling) @@ -2842,7 +2843,7 @@ standard_name = surface_upwelling_longwave_flux_over_ocean_from_mediator long_name = surface upwelling LW flux over ocean for coupling units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .and. do_mediator_atmosphere_ocean_fluxes) @@ -2850,7 +2851,7 @@ standard_name = surface_x_momentum_flux_over_ocean_from_mediator long_name = sfc x momentum flux over ocean for coupling units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .and. do_mediator_atmosphere_ocean_fluxes) @@ -2858,7 +2859,7 @@ standard_name = surface_y_momentum_flux_over_ocean_from_mediator long_name = sfc y momentum flux over ocean for coupling units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .and. do_mediator_atmosphere_ocean_fluxes) @@ -2866,7 +2867,7 @@ standard_name = surface_upward_sensible_heat_flux_over_ocean_from_mediator long_name = sfc sensible heat flux input over ocean for coupling units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .and. do_mediator_atmosphere_ocean_fluxes) @@ -2874,7 +2875,7 @@ standard_name = surface_upward_latent_heat_flux_over_ocean_from_mediator long_name = sfc latent heat flux input over ocean for coupling units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .and. do_mediator_atmosphere_ocean_fluxes) @@ -2882,7 +2883,7 @@ standard_name = surface_snow_area_fraction_over_land_from_land long_name = surface snow area fraction over land for coupling units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_land_coupling .and. flag_for_one_way_land_coupling_to_atmosphere) @@ -2890,7 +2891,7 @@ standard_name = surface_specific_humidity_over_land_from_land long_name = surface air saturation specific humidity over land units = kg kg-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_land_coupling .and. flag_for_one_way_land_coupling_to_atmosphere) @@ -2898,7 +2899,7 @@ standard_name = surface_upward_sensible_heat_flux_over_land_from_land long_name = sfc sensible heat flux input over land for coupling units = K m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_land_coupling .and. flag_for_one_way_land_coupling_to_atmosphere) @@ -2906,7 +2907,7 @@ standard_name = surface_upward_latent_heat_flux_over_land_from_land long_name = sfc latent heat flux input over land for coupling units = kg kg-1 m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_land_coupling .and. flag_for_one_way_land_coupling_to_atmosphere) @@ -2914,7 +2915,7 @@ standard_name = surface_upward_potential_latent_heat_flux_over_land_from_land long_name = surface upward potential latent heat flux over land for coupling units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_land_coupling .and. flag_for_one_way_land_coupling_to_atmosphere) @@ -2922,7 +2923,7 @@ standard_name = temperature_at_2m_over_land_from_land long_name = 2 meter temperature over land for coupling units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_land_coupling .and. flag_for_one_way_land_coupling_to_atmosphere) @@ -2930,7 +2931,7 @@ standard_name = specific_humidity_at_2m_over_land_from_land long_name = 2 meter specific humidity over land for coupling units = kg kg-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_land_coupling .and. flag_for_one_way_land_coupling_to_atmosphere) @@ -2938,7 +2939,7 @@ standard_name = upward_heat_flux_in_soil_over_land_from_land long_name = soil heat flux over land for coupling units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_land_coupling .and. flag_for_one_way_land_coupling_to_atmosphere) @@ -2946,7 +2947,7 @@ standard_name = surface_runoff_flux_from_land long_name = surface runoff flux over land for coupling units = kg m-2 s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_land_coupling .and. flag_for_one_way_land_coupling_to_atmosphere) @@ -2954,7 +2955,7 @@ standard_name = subsurface_runoff_flux_from_land long_name = subsurface runoff flux over land for coupling units = kg m-2 s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_land_coupling .and. flag_for_one_way_land_coupling_to_atmosphere) @@ -2962,7 +2963,7 @@ standard_name = surface_drag_wind_speed_for_momentum_in_air_over_land_from_land long_name = momentum exchange coefficient over land for coupling units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_land_coupling .and. flag_for_one_way_land_coupling_to_atmosphere) @@ -2970,7 +2971,7 @@ standard_name = surface_drag_mass_flux_for_heat_and_moisture_in_air_over_land_from_land long_name = thermal exchange coefficient over land for coupling units = kg m-2 s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_land_coupling .and. flag_for_one_way_land_coupling_to_atmosphere) @@ -2978,7 +2979,7 @@ standard_name = function_of_surface_roughness_length_and_green_vegetation_fraction_from_land long_name = function of surface roughness length and green vegetation fraction units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_land_coupling .and. flag_for_one_way_land_coupling_to_atmosphere) @@ -2986,14 +2987,14 @@ standard_name = lwe_surface_snow_from_coupled_process long_name = sfc snow depth in meters over sea ice for coupling units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [slimskin_cpl] standard_name = area_type_from_coupled_process long_name = sea/land/ice mask input (=0/1/2) units = flag - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling) @@ -3001,7 +3002,7 @@ standard_name = instantaneous_tendency_of_specific_humidity_due_to_microphysics long_name = instantaneous_tendency_of_specific_humidity_due_to_microphysics units = kg kg-1 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (do_prognostic_updraft_area_fraction) @@ -3009,7 +3010,7 @@ standard_name = cellular_automata_area_fraction_for_deep_convection_from_coupled_process long_name = fraction of cellular automata for deep convection units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_cellular_automata) @@ -3017,7 +3018,7 @@ standard_name = cellular_automata_global_pattern_from_coupled_process long_name = cellular automata global pattern units = flag - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_cellular_automata) @@ -3025,14 +3026,14 @@ standard_name = physics_field_for_coupling long_name = physics_field_for_coupling units = m2 s-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [shum_wts] standard_name = shum_weights_from_coupled_process long_name = weights for stochastic shum perturbation units = none - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_stochastic_shum_option) @@ -3040,7 +3041,7 @@ standard_name = sppt_weights_from_coupled_process long_name = weights for stochastic sppt perturbation units = none - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_stochastic_physics_perturbations .or. flag_for_global_cellular_automata) @@ -3048,7 +3049,7 @@ standard_name = skeb_x_wind_weights_from_coupled_process long_name = weights for stochastic skeb perturbation of x wind units = none - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_stochastic_skeb_option) @@ -3056,7 +3057,7 @@ standard_name = skeb_y_wind_weights_from_coupled_process long_name = weights for stochastic skeb perturbation of y wind units = none - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_stochastic_skeb_option) @@ -3064,7 +3065,7 @@ standard_name = spp_weights_for_pbl_scheme long_name = spp weights for pbl scheme units = 1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (do_stochastically_perturbed_parameterizations) @@ -3072,7 +3073,7 @@ standard_name = spp_weights_for_surface_layer_scheme long_name = spp weights for surface layer scheme units = 1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (do_stochastically_perturbed_parameterizations) @@ -3080,7 +3081,7 @@ standard_name = spp_weights_for_microphysics_scheme long_name = spp weights for microphysics scheme units = 1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (do_stochastically_perturbed_parameterizations) @@ -3088,7 +3089,7 @@ standard_name = spp_weights_for_gravity_wave_drag_scheme long_name = spp weights for gravity wave drag scheme units = 1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (do_stochastically_perturbed_parameterizations) @@ -3096,7 +3097,7 @@ standard_name = spp_weights_for_radiation_scheme long_name = spp weights for radiation scheme units = 1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (do_stochastically_perturbed_parameterizations) @@ -3104,7 +3105,7 @@ standard_name = spp_weights_for_cu_deep_scheme long_name = spp weights for cu deep scheme units = 1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (do_stochastically_perturbed_parameterizations) @@ -3112,7 +3113,7 @@ standard_name = surface_stochastic_weights_from_coupled_process long_name = weights for stochastic surface physics perturbation units = 1 - dimensions = (horizontal_loop_extent,number_of_perturbed_land_surface_variables) + dimensions = (horizontal_dimension,number_of_perturbed_land_surface_variables) type = real kind = kind_phys active = (control_for_stochastic_land_surface_perturbation /= 0) @@ -3120,7 +3121,7 @@ standard_name = tendency_of_hygroscopic_aerosols_at_surface_adjacent_layer long_name = instantaneous water-friendly sfc aerosol source units = kg-1 s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_microphysics_scheme == identifier_for_thompson_microphysics_scheme .and. flag_for_aerosol_physics) @@ -3128,7 +3129,7 @@ standard_name = tendency_of_nonhygroscopic_ice_nucleating_aerosols_at_surface_adjacent_layer long_name = instantaneous ice-friendly sfc aerosol source units = kg-1 s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_microphysics_scheme == identifier_for_thompson_microphysics_scheme .and. flag_for_aerosol_physics) @@ -3136,7 +3137,7 @@ standard_name = ebu_smoke long_name = buffer of vertical fire emission units = various - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (do_smoke_coupling) @@ -3144,7 +3145,7 @@ standard_name = extinction_coefficient_in_air_due_to_smoke long_name = extinction coefficient in air due to smoke units = various - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (do_smoke_coupling) @@ -3152,7 +3153,7 @@ standard_name = extinction_coefficient_in_air_due_to_dust long_name = extinction coefficient in air due to dust units = various - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (do_smoke_coupling) @@ -3160,7 +3161,7 @@ standard_name = chem3d_mynn_pbl_transport long_name = mynn pbl transport of smoke and dust units = various - dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_chemical_species_vertically_mixed) + dimensions = (horizontal_dimension,vertical_layer_dimension,number_of_chemical_species_vertically_mixed) type = real kind = kind_phys active = (do_smoke_coupling) @@ -3168,7 +3169,7 @@ standard_name = dry_deposition_velocity_mynn_pbl_transport long_name = dry deposition velocity by mynn pbl transport units = m s-1 - dimensions = (horizontal_loop_extent,number_of_chemical_species_deposited) + dimensions = (horizontal_dimension,number_of_chemical_species_deposited) type = real kind = kind_phys active = (do_smoke_coupling) @@ -3176,7 +3177,7 @@ standard_name = conv_wet_deposition_smoke_dust long_name = convective wet removal of smoke and dust units = kg kg-1 - dimensions = (horizontal_loop_extent,number_of_chemical_species_vertically_mixed) + dimensions = (horizontal_dimension,number_of_chemical_species_vertically_mixed) type = real kind = kind_phys active = (do_smoke_coupling) @@ -3184,7 +3185,7 @@ standard_name = mp_wet_deposition_smoke_dust long_name = large scale wet deposition of smoke and dust units = kg kg-1 - dimensions = (horizontal_loop_extent,number_of_chemical_species_vertically_mixed) + dimensions = (horizontal_dimension,number_of_chemical_species_vertically_mixed) type = real kind = kind_phys active = (do_smoke_coupling) @@ -3192,7 +3193,7 @@ standard_name = dry_deposition_flux long_name = rrfs dry deposition flux units = ug m-2 - dimensions = (horizontal_loop_extent,number_of_chemical_species_deposited) + dimensions = (horizontal_dimension,number_of_chemical_species_deposited) type = real kind = kind_phys active = (do_smoke_coupling) @@ -3200,7 +3201,7 @@ standard_name = minimum_fire_plume_sigma_pressure_level long_name = minimum model level of fire plumerise units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (do_smoke_coupling) @@ -3208,7 +3209,7 @@ standard_name = maximum_fire_plume_sigma_pressure_level long_name = maximum model level of fire plumerise units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (do_smoke_coupling) @@ -3216,7 +3217,7 @@ standard_name = mean_wind_speed_in_boundary_layer long_name = average wind speed within the boundary layer units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (do_smoke_coupling) @@ -3224,7 +3225,7 @@ standard_name = atmosphere_boundary_layer_thickness_from_modified_parcel long_name = pbl height based on modified parcel method units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (do_smoke_coupling) @@ -3232,7 +3233,7 @@ standard_name = hourly_wildfire_potential long_name = rrfs hourly fire weather potential units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (do_smoke_coupling) @@ -3240,7 +3241,7 @@ standard_name = hourly_wildfire_potential_average long_name = rrfs hourly fire weather potential average units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (do_smoke_coupling) @@ -3248,7 +3249,7 @@ standard_name = surface_upward_sensible_heat_flux_for_chemistry_coupling long_name = instantaneous upward sensible heat flux for chemistry coupling units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_chemistry_coupling) @@ -3256,7 +3257,7 @@ standard_name = convective_cloud_condesate_after_rainout long_name = convective cloud condesate after rainout units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (control_for_deep_convection_scheme == identifier_for_grell_freitas_deep_convection .or. control_for_deep_convection_scheme == identifier_for_c3_deep_convection) @@ -3264,7 +3265,7 @@ standard_name = ice_flux_due_to_large_scale_precipitation long_name = instantaneous 3D flux of ice from nonconvective precipitation units = kg m-2 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_chemistry_coupling) @@ -3272,7 +3273,7 @@ standard_name = liquid_flux_due_to_large_scale_precipitation long_name = instantaneous 3D flux of liquid water from nonconvective precipitation units = kg m-2 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_chemistry_coupling) @@ -3280,7 +3281,7 @@ standard_name = updated_tendency_of_air_temperature_due_to_longwave_heating_on_physics_timestep long_name = total sky longwave heating rate on physics time step units = K s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -3288,7 +3289,7 @@ standard_name = surface_skin_temperature_on_radiation_timestep long_name = surface skin temperature on radiation timestep units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -3296,7 +3297,7 @@ standard_name = RRTMGP_jacobian_of_lw_flux_upward long_name = RRTMGP Jacobian upward longwave flux profile units = W m-2 K-1 - dimensions = (horizontal_loop_extent,vertical_interface_dimension) + dimensions = (horizontal_dimension,vertical_interface_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -3304,7 +3305,7 @@ standard_name = RRTMGP_lw_flux_profile_upward_allsky_on_radiation_timestep long_name = RRTMGP upward longwave all-sky flux profile units = W m-2 - dimensions = (horizontal_loop_extent,vertical_interface_dimension) + dimensions = (horizontal_dimension,vertical_interface_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -3312,7 +3313,7 @@ standard_name = RRTMGP_lw_flux_profile_downward_allsky_on_radiation_timestep long_name = RRTMGP downward longwave all-sky flux profile units = W m-2 - dimensions = (horizontal_loop_extent,vertical_interface_dimension) + dimensions = (horizontal_dimension,vertical_interface_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -3551,6 +3552,36 @@ units = count dimensions = () type = integer +[nchunks] + standard_name = ccpp_chunk_extent + long_name = number of chunks of array data used in run phase + units = count + dimensions = () + type = integer +[chunk_begin] + standard_name = horizontal_loop_begin_all_chunks + long_name = first index for horizontal loop extent in run phase + units = index + dimensions = (ccpp_chunk_extent) + type = integer +[chunk_begin(ccpp_chunk_number)] + standard_name = horizontal_loop_begin + long_name = first index for horizontal loop extent in run phase + units = index + dimensions = () + type = integer +[chunk_end] + standard_name = horizontal_loop_end_all_chunks + long_name = last index for horizontal loop extent in run phase + units = index + dimensions = (ccpp_chunk_extent) + type = integer +[chunk_end(ccpp_chunk_number)] + standard_name = horizontal_loop_end + long_name = last index for horizontal loop extent in run phase + units = index + dimensions = () + type = integer [tile_num] standard_name = index_of_cubed_sphere_tile long_name = tile number @@ -7627,77 +7658,77 @@ standard_name = cell_area long_name = area of the grid cell units = m2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [dx] standard_name = characteristic_grid_lengthscale long_name = relative dx for the grid cell units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [xlat] standard_name = latitude long_name = latitude units = radian - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [xlon] standard_name = longitude long_name = longitude units = radian - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [coslat] standard_name = cosine_of_latitude long_name = cosine of latitude units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [sinlat] standard_name = sine_of_latitude long_name = sine of latitude units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [xlat_d] standard_name = latitude_in_degree long_name = latitude in degree north units = degree_north - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [xlon_d] standard_name = longitude_in_degree long_name = longitude in degree east units = degree_east - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [jindx1_o3] standard_name = lower_latitude_index_of_ozone_forcing_for_interpolation long_name = interpolation low index for ozone units = index - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer active = (index_of_ozone_mixing_ratio_in_tracer_concentration_array>0) [jindx2_o3] standard_name = upper_latitude_index_of_ozone_forcing_for_interpolation long_name = interpolation high index for ozone units = index - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer active = (index_of_ozone_mixing_ratio_in_tracer_concentration_array>0) [ddy_o3] standard_name = latitude_interpolation_weight_for_ozone_forcing long_name = interpolation high index for ozone units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (index_of_ozone_mixing_ratio_in_tracer_concentration_array>0) @@ -7705,21 +7736,21 @@ standard_name = lower_latitude_index_of_stratospheric_water_vapor_forcing_for_interpolation long_name = interpolation low index for stratospheric water vapor units = index - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer active = (flag_for_stratospheric_water_vapor_physics) [jindx2_h] standard_name = upper_latitude_index_of_stratospheric_water_vapor_forcing_for_interpolation long_name = interpolation high index for stratospheric water vapor units = index - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer active = (flag_for_stratospheric_water_vapor_physics) [ddy_h] standard_name = latitude_interpolation_weight_for_stratospheric_water_vapor_forcing long_name = interpolation high index for stratospheric water vapor units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_stratospheric_water_vapor_physics) @@ -7727,21 +7758,21 @@ standard_name = lower_latitude_index_of_aerosol_forcing_for_interpolation long_name = interpolation low index for prescribed aerosols in the y direction units = index - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer active = (flag_for_aerosol_input_MG_radiation) [jindx2_aer] standard_name = upper_latitude_index_of_aerosol_forcing_for_interpolation long_name = interpolation high index for prescribed aerosols in the y direction units = index - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer active = (flag_for_aerosol_input_MG_radiation) [ddy_aer] standard_name = latitude_interpolation_weight_for_aerosol_forcing long_name = interpolation high index for prescribed aerosols in the y direction units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_aerosol_input_MG_radiation) @@ -7749,21 +7780,21 @@ standard_name = lower_longitude_index_of_aerosol_forcing_for_interpolation long_name = interpolation low index for prescribed aerosols in the x direction units = index - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer active = (flag_for_aerosol_input_MG_radiation) [iindx2_aer] standard_name = upper_longitude_index_of_aerosol_forcing_for_interpolation long_name = interpolation high index for prescribed aerosols in the x direction units = index - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer active = (flag_for_aerosol_input_MG_radiation) [ddx_aer] standard_name = longitude_interpolation_weight_for_aerosol_forcing long_name = interpolation high index for prescribed aerosols in the x direction units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_aerosol_input_MG_radiation) @@ -7771,21 +7802,21 @@ standard_name = lower_latitude_index_of_cloud_nuclei_forcing_for_interpolation long_name = interpolation low index for ice and cloud condensation nuclei in the y direction units = index - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer active = (control_for_ice_cloud_condensation_nuclei_forcing==1) [jindx2_ci] standard_name = upper_latitude_index_of_cloud_nuclei_forcing_for_interpolation long_name = interpolation high index for ice and cloud condensation nuclei in the y direction units = index - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer active = (control_for_ice_cloud_condensation_nuclei_forcing==1) [ddy_ci] standard_name = latitude_interpolation_weight_for_cloud_nuclei_forcing long_name = interpolation high index for ice and cloud condensation nuclei in the y direction units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_ice_cloud_condensation_nuclei_forcing==1) @@ -7793,21 +7824,21 @@ standard_name = lower_longitude_index_of_cloud_nuclei_forcing_for_interpolation long_name = interpolation low index for ice and cloud condensation nuclei in the x direction units = index - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer active = (control_for_ice_cloud_condensation_nuclei_forcing==1) [iindx2_ci] standard_name = upper_longitude_index_of_cloud_nuclei_forcing_for_interpolation long_name = interpolation high index for ice and cloud condensation nuclei in the x direction units = index - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer active = (control_for_ice_cloud_condensation_nuclei_forcing==1) [ddx_ci] standard_name = longitude_interpolation_weight_for_cloud_nuclei_forcing long_name = interpolation high index for ice and cloud condensation nuclei in the x direction units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_ice_cloud_condensation_nuclei_forcing==1) @@ -7815,21 +7846,21 @@ standard_name = lower_latitude_index_of_absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag_for_interpolation long_name = index1 for weight1 for tau NGWs units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer active = (flag_for_ugwp_version_1) [jindx2_tau] standard_name = upper_latitude_index_of_absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag_for_interpolation long_name = index2 for weight2 for tau NGWs units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer active = (flag_for_ugwp_version_1) [ddy_j1tau] standard_name = latitude_interpolation_weight_complement_for_absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag long_name = interpolation weight1 for tau NGWs units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_ugwp_version_1) @@ -7837,7 +7868,7 @@ standard_name = latitude_interpolation_weight_for_absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag long_name = interpolation weight2 for tau NGWs units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_ugwp_version_1) @@ -7855,56 +7886,56 @@ standard_name = random_number_seed_for_mcica_shortwave long_name = random seeds for sub-column cloud generators sw units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer active = (flag_for_lw_clouds_sub_grid_approximation == 2 .or. flag_for_sw_clouds_grid_approximation == 2) [icsdlw] standard_name = random_number_seed_for_mcica_longwave long_name = random seeds for sub-column cloud generators lw units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer active = (flag_for_lw_clouds_sub_grid_approximation == 2 .or. flag_for_sw_clouds_grid_approximation == 2) [rseeds] standard_name = random_number_seeds_from_host long_name = random number seeds from host units = none - dimensions = (horizontal_loop_extent, number_of_host_provided_random_number_streams) + dimensions = (horizontal_dimension, number_of_host_provided_random_number_streams) type = integer active = ((flag_for_lw_clouds_sub_grid_approximation == 2 .or. flag_for_sw_clouds_grid_approximation == 2) .and. do_host_provided_random_seeds) [tau_amf] standard_name = absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag long_name = ngw_absolute_momentum_flux units = mixed - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [ozpl] standard_name = ozone_forcing long_name = ozone forcing data units = mixed - dimensions = (horizontal_loop_extent,vertical_dimension_of_ozone_forcing_data,number_of_coefficients_in_ozone_data) + dimensions = (horizontal_dimension,vertical_dimension_of_ozone_forcing_data,number_of_coefficients_in_ozone_data) type = real kind = kind_phys [h2opl] standard_name = stratospheric_water_vapor_forcing long_name = water forcing data units = mixed - dimensions = (horizontal_loop_extent,vertical_dimension_of_h2o_forcing_data,number_of_coefficients_in_h2o_forcing_data) + dimensions = (horizontal_dimension,vertical_dimension_of_h2o_forcing_data,number_of_coefficients_in_h2o_forcing_data) type = real kind = kind_phys [hpbl] standard_name = atmosphere_boundary_layer_thickness long_name = pbl height units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [ud_mf] standard_name = instantaneous_atmosphere_updraft_convective_mass_flux long_name = (updraft mass flux) * delt units = kg m-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = ( control_for_deep_convection_scheme .ge. 0 .or. control_for_shallow_convection_scheme .ge. 0 ) @@ -7912,28 +7943,28 @@ standard_name = ice_nucleation_number_from_climatology long_name = ice nucleation number in MG MP units = kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [ccn_nm] standard_name = tendency_of_activated_cloud_condensation_nuclei_from_climatology long_name = tendency of ccn activated number units = kg-1 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [aer_nm] standard_name = mass_mixing_ratio_of_aerosol_from_gocart_or_merra2 long_name = mass mixing ratio of aerosol from gocart or merra2 units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_aerosol_tracers_MG) + dimensions = (horizontal_dimension,vertical_layer_dimension,number_of_aerosol_tracers_MG) type = real kind = kind_phys [aod_gf] standard_name = aerosol_optical_depth_for_grell_freitas_deep_convection long_name = aerosol optical depth used in Grell-Freitas Convective Parameterization units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_deep_convection_scheme == identifier_for_grell_freitas_deep_convection .or. control_for_deep_convection_scheme == identifier_for_c3_deep_convection) @@ -7941,47 +7972,47 @@ standard_name = map_of_block_column_number_to_global_i_index long_name = map of local index ix to global index i for this block units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer [jmap] standard_name = map_of_block_column_number_to_global_j_index long_name = map of local index ix to global index j for this block units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer [rann] standard_name = random_number long_name = random number array (0-1) units = none - dimensions = (horizontal_loop_extent,number_of_random_numbers) + dimensions = (horizontal_dimension,number_of_random_numbers) type = real kind = kind_phys [acv] standard_name = cumulative_lwe_thickness_of_convective_precipitation_amount_between_sw_radiation_calls long_name = accumulated convective rainfall amount for cnvc90 only units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [acvb] standard_name = cumulative_min_vertical_index_at_cloud_base_between_sw_radiation_calls long_name = smallest cloud base vertical index encountered thus far units = index - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [acvt] standard_name = cumulative_max_vertical_index_at_cloud_base_between_sw_radiation_calls long_name = largest cloud top vertical index encountered thus far units = index - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [dtdtnp] standard_name = tendency_of_air_temperature_to_withold_from_sppt long_name = temp. change from physics that should not be perturbed by sppt units = K s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_stochastic_physics_perturbations .or. flag_for_global_cellular_automata) @@ -7989,7 +8020,7 @@ standard_name = tendency_of_lwe_thickness_of_rain_amount_on_dynamics_timestep_for_coupling long_name = change in rain_cpl (coupling_type) units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .or. flag_for_chemistry_coupling .or. flag_for_land_coupling) @@ -7997,7 +8028,7 @@ standard_name = tendency_of_lwe_thickness_of_snowfall_amount_on_dynamics_timestep_for_coupling long_name = change in show_cpl (coupling_type) units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_surface_flux_coupling .or. flag_for_chemistry_coupling .or. flag_for_land_coupling) @@ -8005,7 +8036,7 @@ standard_name = atmosphere_updraft_convective_mass_flux_at_cloud_base_by_cloud_type long_name = cloud base mass flux for CS convection units = kg m-2 s-1 - dimensions = (horizontal_loop_extent,number_of_cloud_types_CS) + dimensions = (horizontal_dimension,number_of_cloud_types_CS) type = real kind = kind_phys active = (number_of_cloud_types_CS > 0 .and. flag_for_Chikira_Sugiyama_deep_convection) @@ -8013,7 +8044,7 @@ standard_name = surface_air_pressure_two_timesteps_back long_name = surface air pressure two timesteps back units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (index_of_surface_air_pressure_two_timesteps_back_in_xyz_dimensioned_tracer_array > 0) @@ -8021,7 +8052,7 @@ standard_name = surface_air_pressure_on_previous_timestep long_name = surface air pressure at previous timestep units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (index_of_surface_air_pressure_on_previous_timestep_in_xyz_dimensioned_restart_array > 0) @@ -8029,7 +8060,7 @@ standard_name = enhancement_to_wind_speed_at_surface_adjacent_layer_due_to_convection long_name = surface wind enhancement due to convection units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (index_of_enhancement_to_wind_speed_at_surface_adjacent_layer_due_to_convection_in_xy_dimensioned_restart_array > 0) @@ -8037,7 +8068,7 @@ standard_name = air_temperature_two_timesteps_back long_name = air temperature two timesteps back units = K - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (index_of_air_temperature_two_timesteps_back_in_xyz_dimensioned_restart_array > 0) @@ -8045,7 +8076,7 @@ standard_name = specific_humidity_two_timesteps_back long_name = water vapor specific humidity two timesteps back units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (index_of_specific_humidity_two_timesteps_back_in_xyz_dimensioned_restart_array > 0) @@ -8053,7 +8084,7 @@ standard_name = air_temperature_on_previous_timestep_in_xyz_dimensioned_restart_array long_name = air temperature at previous timestep units = K - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (index_of_air_temperature_on_previous_timestep_in_xyz_dimensioned_restart_array > 0) @@ -8061,7 +8092,7 @@ standard_name = specific_humidity_on_previous_timestep_in_xyz_dimensioned_restart_array long_name = water vapor specific humidity at previous timestep units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (index_of_specific_humidity_on_previous_timestep_in_xyz_dimensioned_restart_array > 0) @@ -8069,7 +8100,7 @@ standard_name = convective_cloud_condensate_mixing_ratio long_name = convective cloud water mixing ratio in the phy_f3d array units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (index_of_convective_cloud_condensate_mixing_ratio_in_xyz_dimensioned_restart_array > 0) @@ -8077,7 +8108,7 @@ standard_name = convective_cloud_area_fraction long_name = convective cloud cover in the phy_f3d array units = frac - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (index_of_convective_cloud_area_fraction_in_xyz_dimensioned_restart_array > 0) @@ -8085,7 +8116,7 @@ standard_name = upward_virtual_potential_temperature_flux long_name = upward kinematic buoyancy flux from the SHOC scheme units = K m s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (index_of_upward_virtual_potential_temperature_flux_in_xyz_dimensioned_restart_array > 0) @@ -8093,7 +8124,7 @@ standard_name = atmosphere_heat_diffusivity_from_shoc long_name = diffusivity for heat from the SHOC scheme units = m2 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (index_of_atmosphere_heat_diffusivity_in_xyz_dimensioned_restart_array > 0) @@ -8101,7 +8132,7 @@ standard_name = subgrid_scale_cloud_fraction_from_shoc long_name = subgrid-scale cloud fraction from the SHOC scheme units = frac - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (index_of_subgrid_cloud_area_fracation_in_atmosphere_layer_in_xyz_dimensioned_restart_array > 0) @@ -8109,7 +8140,7 @@ standard_name = cloud_fraction_for_MG long_name = cloud fraction used by Morrison-Gettelman MP units = frac - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (index_of_cloud_area_fraction_in_atmosphere_layer_in_xyz_dimensioned_restart_array > 0) @@ -8117,7 +8148,7 @@ standard_name = effective_radius_of_stratiform_cloud_liquid_water_particle long_name = eff. radius of cloud liquid water particle in micrometer units = um - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (index_of_cloud_liquid_water_effective_radius_in_xyz_dimensioned_restart_array > 0) @@ -8125,7 +8156,7 @@ standard_name = effective_radius_of_stratiform_cloud_ice_particle long_name = eff. radius of cloud ice water particle in micrometer units = um - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (index_of_cloud_ice_effective_radius_in_xyz_dimensioned_restart_array > 0) @@ -8133,7 +8164,7 @@ standard_name = effective_radius_of_stratiform_cloud_rain_particle long_name = effective radius of cloud rain particle in micrometers units = um - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (index_of_rain_effective_radius_in_xyz_dimensioned_restart_array > 0) @@ -8141,7 +8172,7 @@ standard_name = effective_radius_of_stratiform_cloud_snow_particle long_name = effective radius of cloud snow particle in micrometers units = um - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (index_of_snow_effective_radius_in_xyz_dimensioned_restart_array > 0) @@ -8149,7 +8180,7 @@ standard_name = effective_radius_of_stratiform_cloud_graupel_particle long_name = eff. radius of cloud graupel particle in micrometer units = um - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (index_of_graupel_effective_radius_in_xyz_dimensioned_restart_array > 0) @@ -8157,7 +8188,7 @@ standard_name = tendency_of_air_temperature_due_to_nonphysics long_name = temperature tendency due to dynamics only units = K s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (control_for_deep_convection_scheme == identifier_for_grell_freitas_deep_convection .or. control_for_deep_convection_scheme == identifier_for_c3_deep_convection .or. control_for_deep_convection_scheme == identifier_for_new_tiedtke_deep_convection) @@ -8165,7 +8196,7 @@ standard_name = tendendy_of_specific_humidity_due_to_nonphysics long_name = moisture tendency due to dynamics only units = kg kg-1 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (control_for_deep_convection_scheme == identifier_for_grell_freitas_deep_convection .or. control_for_deep_convection_scheme == identifier_for_c3_deep_convection .or. control_for_deep_convection_scheme == identifier_for_new_tiedtke_deep_convection) @@ -8173,7 +8204,7 @@ standard_name = air_temperature_on_previous_timestep long_name = temperature from previous time step units = K - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (control_for_deep_convection_scheme == identifier_for_grell_freitas_deep_convection .or. control_for_deep_convection_scheme == identifier_for_c3_deep_convection .or. control_for_deep_convection_scheme == identifier_for_new_tiedtke_deep_convection) @@ -8181,7 +8212,7 @@ standard_name = specific_humidity_on_previous_timestep long_name = moisture from previous time step units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (control_for_deep_convection_scheme == identifier_for_grell_freitas_deep_convection .or. control_for_deep_convection_scheme == identifier_for_c3_deep_convection .or. control_for_deep_convection_scheme == identifier_for_new_tiedtke_deep_convection .or. control_for_deep_convection_scheme == identifer_for_scale_aware_mass_flux_deep_convection .or. control_for_shallow_convection_scheme == identifier_for_scale_aware_mass_flux_shallow_convection) @@ -8189,21 +8220,21 @@ standard_name = counter_for_grell_freitas_convection long_name = convective activity memory units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer active = (control_for_deep_convection_scheme == identifier_for_grell_freitas_deep_convection .or. control_for_deep_convection_scheme == identifier_for_c3_deep_convection) [cactiv_m] standard_name = counter_for_grell_freitas_mid_level_convection long_name = mid-level convective activity memory units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer active = (control_for_deep_convection_scheme == identifier_for_grell_freitas_deep_convection .or. control_for_deep_convection_scheme == identifier_for_c3_deep_convection) [CLDFRA_BL] standard_name = subgrid_scale_cloud_area_fraction_in_atmosphere_layer long_name = subgrid cloud fraction from PBL scheme units = frac - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme) @@ -8211,7 +8242,7 @@ standard_name = subgrid_scale_cloud_liquid_water_mixing_ratio long_name = subgrid cloud water mixing ratio from PBL scheme units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme) @@ -8219,7 +8250,7 @@ standard_name = subgrid_scale_cloud_ice_mixing_ratio long_name = subgrid cloud ice mixing ratio from PBL scheme units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme) @@ -8227,7 +8258,7 @@ standard_name = turbulent_mixing_length long_name = mixing length in meters units = m - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme) @@ -8235,7 +8266,7 @@ standard_name = stability_function_for_heat long_name = stability function for heat units = none - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme) @@ -8243,7 +8274,7 @@ standard_name = stability_function_for_momentum long_name = stability function for momentum units = none - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme) @@ -8251,7 +8282,7 @@ standard_name = nonadvected_turbulent_kinetic_energy_multiplied_by_2 long_name = 2 x tke at mass points units = m2 s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme) @@ -8259,7 +8290,7 @@ standard_name = variance_of_air_temperature long_name = temperature fluctuation squared units = K2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme) @@ -8267,7 +8298,7 @@ standard_name = variance_of_specific_humidity long_name = water vapor fluctuation squared units = kg2 kg-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme) @@ -8275,7 +8306,7 @@ standard_name = covariance_of_air_temperature_and_specific_humidity long_name = covariance of temperature and moisture units = K kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme) @@ -8283,7 +8314,7 @@ standard_name = surface_specific_humidity_for_MYJ_schemes long_name = surface air saturation specific humidity for MYJ schemes units = kg kg-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_janjic_surface_layer_scheme .or. flag_for_mellor_yamada_janjic_pbl_scheme) @@ -8291,7 +8322,7 @@ standard_name = air_potential_temperature_at_top_of_viscous_sublayer long_name = potential temperature at viscous sublayer top over water units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_janjic_surface_layer_scheme .or. flag_for_mellor_yamada_janjic_pbl_scheme) @@ -8299,7 +8330,7 @@ standard_name = specific_humidity_at_top_of_viscous_sublayer long_name = specific humidity at_viscous sublayer top over water units = kg kg-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_janjic_surface_layer_scheme .or. flag_for_mellor_yamada_janjic_pbl_scheme) @@ -8307,7 +8338,7 @@ standard_name = x_wind_at_top_of_viscous_sublayer long_name = u wind component at viscous sublayer top over water units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_janjic_surface_layer_scheme .or. flag_for_mellor_yamada_janjic_pbl_scheme) @@ -8315,7 +8346,7 @@ standard_name = y_wind_at_top_of_viscous_sublayer long_name = v wind component at viscous sublayer top over water units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_janjic_surface_layer_scheme .or. flag_for_mellor_yamada_janjic_pbl_scheme) @@ -8323,7 +8354,7 @@ standard_name = heat_exchange_coefficient_for_MYJ_schemes long_name = surface heat exchange_coefficient for MYJ schemes units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_janjic_surface_layer_scheme .or. flag_for_mellor_yamada_janjic_pbl_scheme) @@ -8331,7 +8362,7 @@ standard_name = momentum_exchange_coefficient_for_MYJ_schemes long_name = surface momentum exchange_coefficient for MYJ schemes units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_janjic_surface_layer_scheme .or. flag_for_mellor_yamada_janjic_pbl_scheme) @@ -8339,7 +8370,7 @@ standard_name = control_for_surface_layer_evaporation long_name = surface layer evaporation switch units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_janjic_surface_layer_scheme .or. flag_for_mellor_yamada_janjic_pbl_scheme) @@ -8347,7 +8378,7 @@ standard_name = surface_upward_specific_humidity_flux_for_mellor_yamada_janjic_surface_layer_scheme long_name = kinematic surface latent heat flux units = m s-1 kg kg-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_janjic_surface_layer_scheme .or. flag_for_mellor_yamada_janjic_pbl_scheme) @@ -8355,7 +8386,7 @@ standard_name = weight_for_momentum_at_top_of_viscous_sublayer long_name = weight for momentum at viscous layer top units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_janjic_surface_layer_scheme .or. flag_for_mellor_yamada_janjic_pbl_scheme) @@ -8363,7 +8394,7 @@ standard_name = weight_for_potental_temperature_at_top_of_viscous_sublayer long_name = weight for potental temperature at viscous layer top units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_janjic_surface_layer_scheme .or. flag_for_mellor_yamada_janjic_pbl_scheme) @@ -8371,7 +8402,7 @@ standard_name = weight_for_specific_humidity_at_top_of_viscous_sublayer long_name = weight for Specfic Humidity at viscous layer top units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_janjic_surface_layer_scheme .or. flag_for_mellor_yamada_janjic_pbl_scheme) @@ -8379,7 +8410,7 @@ standard_name = radar_derived_microphysics_temperature_tendency long_name = radar-derived microphysics temperature tendency units = K s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_radar_derived_temperature_or_convection_suppression_intervals) + dimensions = (horizontal_dimension,vertical_layer_dimension,number_of_radar_derived_temperature_or_convection_suppression_intervals) type = real kind = kind_phys active = (number_of_radar_derived_temperature_or_convection_suppression_intervals>0) @@ -8387,7 +8418,7 @@ standard_name = radar_derived_convection_suppression long_name = radar-derived convection suppression units = unitless - dimensions = (horizontal_loop_extent,number_of_radar_derived_temperature_or_convection_suppression_intervals) + dimensions = (horizontal_dimension,number_of_radar_derived_temperature_or_convection_suppression_intervals) type = real kind = kind_phys active = (number_of_radar_derived_temperature_or_convection_suppression_intervals>0 .and. flag_for_radar_derived_convection_suppression) @@ -8405,21 +8436,21 @@ standard_name = convective_cloud_area_fraction_between_sw_radiation_calls_from_cnvc90 long_name = fraction of convective cloud units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [cvt] standard_name = pressure_at_convective_cloud_top_between_sw_radiation_calls_from_cnvc90 long_name = convective cloud top pressure units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [cvb] standard_name = pressure_at_convective_cloud_base_between_sw_radiation_calls_from_cnvc90 long_name = convective cloud bottom pressure units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys @@ -8436,89 +8467,89 @@ standard_name = surface_sw_fluxes_assuming_total_and_clear_sky_on_radiation_timestep long_name = sw radiation fluxes at sfc units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = sfcfsw_type [sfcflw] standard_name = surface_lw_fluxes_assuming_total_and_clear_sky_on_radiation_timestep long_name = lw radiation fluxes at sfc units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = sfcflw_type [htrsw] standard_name = tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_timestep long_name = total sky sw heating rate units = K s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [htrlw] standard_name = tendency_of_air_temperature_due_to_longwave_heating_on_radiation_timestep long_name = total sky lw heating rate units = K s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [sfalb] standard_name = surface_albedo_for_diffused_shortwave_on_radiation_timestep long_name = mean surface diffused sw albedo units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [coszen] standard_name = cosine_of_solar_zenith_angle_for_daytime_points_on_radiation_timestep long_name = mean cos of zenith angle over rad call period units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [coszdg] standard_name = cosine_of_solar_zenith_angle_on_radiation_timestep long_name = daytime mean cosz over rad call period units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tsflw] standard_name = air_temperature_at_surface_adjacent_layer_on_radiation_timestep long_name = surface air temp during lw calculation units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [semis] standard_name = surface_longwave_emissivity long_name = surface lw emissivity in fraction units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [ext550] standard_name = aerosol_optical_depth_at_550nm long_name = 3d optical extinction for total aerosol species units = none - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [swhc] standard_name = tendency_of_air_temperature_due_to_shortwave_heating_assuming_clear_sky_on_radiation_timestep long_name = clear sky sw heating rates units = K s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [lwhc] standard_name = tendency_of_air_temperature_due_to_longwave_heating_assuming_clear_sky_on_radiation_timestep long_name = clear sky lw heating rates units = K s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [lwhd] standard_name = tendency_of_air_temperature_due_to_integrated_dynamics_through_earths_atmosphere long_name = idea sky lw heating rates units = K s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension,6) + dimensions = (horizontal_dimension,vertical_layer_dimension,6) type = real kind = kind_phys @@ -8535,54 +8566,54 @@ standard_name = cumulative_radiation_diagnostic long_name = time-accumulated 2D radiation-related diagnostic fields units = mixed - dimensions = (horizontal_loop_extent,number_of_diagnostics_variables_for_radiation) + dimensions = (horizontal_dimension,number_of_diagnostics_variables_for_radiation) type = real kind = kind_phys [topfsw] standard_name = sw_fluxes_top_atmosphere long_name = sw radiation fluxes at toa units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = topfsw_type [topflw] standard_name = lw_fluxes_top_atmosphere long_name = lw radiation fluxes at top units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = topflw_type [srunoff] standard_name = surface_runoff long_name = surface water runoff (from lsm) units = kg m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [evbsa] standard_name = cumulative_soil_upward_latent_heat_flux_multiplied_by_timestep long_name = cumulative soil upward latent heat flux multiplied by timestep units = W m-2 s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [evcwa] standard_name = cumulative_canopy_upward_latent_heat_flu_multiplied_by_timestep long_name = cumulative canopy upward latent heat flux multiplied by timestep units = W m-2 s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [snohfa] standard_name = cumulative_snow_freezing_rain_upward_latent_heat_flux_multiplied_by_timestep long_name = cumulative latent heat flux due to snow and frz rain multiplied by timestep units = W m-2 s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [paha] standard_name = cumulative_precipitation_advected_heat_flux_multiplied_by_timestep long_name = cumulative precipitation advected heat flux multiplied by timestep units = W m-2 s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -8590,224 +8621,224 @@ standard_name = cumulative_transpiration_flux_multiplied_by_timestep long_name = cumulative total plant transpiration rate multiplied by timestep units = kg m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [sbsnoa] standard_name = cumulative_snow_deposition_sublimation_upward_latent_heat_flux_multiplied_by_timestep long_name = cumulative latent heat flux from snow depo/subl multiplied by timestep units = W m-2 s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [snowca] standard_name = cumulative_surface_snow_area_fraction_multiplied_by_timestep long_name = cumulative surface snow area fraction multiplied by timestep units = s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [sbsno] standard_name = snow_deposition_sublimation_upward_latent_heat_flux long_name = latent heat flux from snow depo/subl units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [evbs] standard_name = soil_upward_latent_heat_flux long_name = soil upward latent heat flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [evcw] standard_name = canopy_upward_latent_heat_flux long_name = canopy upward latent heat flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [trans] standard_name = transpiration_flux long_name = total plant transpiration rate units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [soilm] standard_name = soil_moisture_content long_name = soil moisture units = kg m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [snowmt_land] standard_name = surface_snow_melt_over_land long_name = snow melt during timestep over land units = kg m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [snowmt_ice] standard_name = surface_snow_melt_over_ice long_name = snow melt during timestep over ice units = kg m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tmpmin] standard_name = minimum_temperature_at_2m long_name = min temperature at 2m height units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tmpmax] standard_name = maximum_temperature_at_2m long_name = max temperature at 2m height units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [dusfc] standard_name = cumulative_surface_x_momentum_flux_for_diag_multiplied_by_timestep long_name = cumulative sfc x momentum flux multiplied by timestep units = Pa s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [dvsfc] standard_name = cumulative_surface_y_momentum_flux_for_diag_multiplied_by_timestep long_name = cumulative sfc y momentum flux multiplied by timestep units = Pa s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [dtsfc] standard_name = cumulative_surface_upward_sensible_heat_flux_for_diag_multiplied_by_timestep long_name = cumulative sfc sensible heat flux multiplied by timestep units = W m-2 s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [dqsfc] standard_name = cumulative_surface_upward_latent_heat_flux_for_diag_multiplied_by_timestep long_name = cumulative sfc latent heat flux multiplied by timestep units = W m-2 s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [totprcp] standard_name = accumulated_lwe_thickness_of_precipitation_amount long_name = accumulated total precipitation units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [totice] standard_name = accumulated_lwe_thickness_of_ice_amount long_name = accumulated ice precipitation units = kg m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [totsnw] standard_name = accumulated_lwe_thickness_of_snow_amount long_name = accumulated snow precipitation units = kg m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [totgrp] standard_name = accumulated_lwe_thickness_of_graupel_amount long_name = accumulated graupel precipitation units = kg m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [totprcpb] standard_name = accumulated_lwe_thickness_of_precipitation_amount_in_bucket long_name = accumulated total precipitation in bucket units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [toticeb] standard_name = accumulated_lwe_thickness_of_ice_amount_in_bucket long_name = accumulated ice precipitation in bucket units = kg m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [totsnwb] standard_name = accumulated_lwe_thickness_of_snow_amount_in_bucket long_name = accumulated snow precipitation in bucket units = kg m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [totgrpb] standard_name = accumulated_lwe_thickness_of_graupel_amount_in_bucket long_name = accumulated graupel precipitation in bucket units = kg m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [frzr] standard_name = cumulative_lwe_thickness_of_surface_freezing_rain_amount long_name = accumulated surface freezing rain units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [frzrb] standard_name = cumulative_lwe_thickness_of_surface_freezing_rain_amount_in_bucket long_name = accumulated surface freezing rain in bucket units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [frozr] standard_name = cumulative_lwe_thickness_of_surface_graupel_amount long_name = accumulated surface graupel units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [frozrb] standard_name = cumulative_lwe_thickness_of_surface_graupel_amount_in_bucket long_name = accumulated surface graupel in bucket units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tsnowp] standard_name = cumulative_lwe_thickness_of_surface_snow_amount long_name = accumulated surface snow units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tsnowpb] standard_name = cumulative_lwe_thickness_of_surface_snow_amount_in_bucket long_name = accumulated surface snow in bucket units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [rhonewsn1] standard_name = surface_frozen_precipitation_density long_name = density of precipitation ice units = kg m-3 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [train] standard_name = accumulated_change_of_air_temperature_due_to_FA_scheme long_name = accumulated change of air temperature due to FA MP scheme units = K - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (control_for_microphysics_scheme == identifier_for_fer_hires_microphysics_scheme) @@ -8815,70 +8846,70 @@ standard_name = cumulative_surface_ground_heat_flux_multiplied_by_timestep long_name = cumulative groud conductive heat flux multiplied by timestep units = W m-2 s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [dlwsfc] standard_name = cumulative_surface_downwelling_longwave_flux_multiplied_by_timestep long_name = cumulative surface downwelling LW flux multiplied by timestep units = W m-2 s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [ulwsfc] standard_name = cumulative_surface_upwelling_longwave_flux_multiplied_by_timestep long_name = cumulative surface upwelling LW flux multiplied by timestep units = W m-2 s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [suntim] standard_name = duration_of_sunshine long_name = sunshine duration time units = s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [runoff] standard_name = total_runoff long_name = total water runoff units = kg m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [ep] standard_name = cumulative_surface_upward_potential_latent_heat_flux_multiplied_by_timestep long_name = cumulative surface upward potential latent heat flux multiplied by timestep units = W m-2 s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tecan] standard_name = total_evaporation_of_intercepted_water long_name = total evaporation of intercepted water units = kg m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tetran] standard_name = total_transpiration_rate long_name = total transpiration rate units = kg m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tedir] standard_name = total_soil_surface_evaporation_rate long_name = total soil surface evaporation rate units = kg m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [twa] standard_name = total_water_storage_in_aquifer long_name = total water storage in aquifer units = kg m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -8886,294 +8917,294 @@ standard_name = cumulative_cloud_work_function long_name = cumulative cloud work function (valid only with sas) units = m2 s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [dugwd] standard_name = time_integral_of_x_stress_due_to_gravity_wave_drag long_name = vertically integrated u change by OGWD units = Pa s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [dvgwd] standard_name = time_integral_of_y_stress_due_to_gravity_wave_drag long_name = vertically integrated v change by OGWD units = Pa s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [psmean] standard_name = cumulative_surface_pressure_multiplied_by_timestep long_name = cumulative surface pressure multiplied by timestep units = Pa s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [cnvprcp] standard_name = cumulative_lwe_thickness_of_convective_precipitation_amount long_name = cumulative convective precipitation units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [cnvprcpb] standard_name = cumulative_lwe_thickness_of_convective_precipitation_amount_in_bucket long_name = cumulative convective precipitation in bucket units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [spfhmin] standard_name = minimum_specific_humidity_at_2m long_name = minimum specific humidity at 2m height units = kg kg-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [spfhmax] standard_name = maximum_specific_humidity_at_2m long_name = maximum specific humidity at 2m height units = kg kg-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [u10mmax] standard_name = maximum_x_wind_at_10m long_name = maximum x wind at 10 m units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [v10mmax] standard_name = maximum_y_wind_at_10m long_name = maximum y wind at 10 m units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [wind10mmax] standard_name = maximum_wind_at_10m long_name = maximum wind speed at 10 m units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [u10max] standard_name = maximum_u_wind_at_10m_over_maximum_hourly_time_interval long_name = maximum u wind at 10m over maximum hourly time interval units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [v10max] standard_name = maximum_v_wind_at_10m_over_maximum_hourly_time_interval long_name = maximum v wind at 10m over maximum hourly time interval units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [spd10max] standard_name = maximum_wind_at_10m_over_maximum_hourly_time_interval long_name = maximum wind at 10m over maximum hourly time interval units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [rain] standard_name = lwe_thickness_of_precipitation_amount_on_dynamics_timestep long_name = total rain at this time step units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [rainc] standard_name = lwe_thickness_of_convective_precipitation_amount_on_dynamics_timestep long_name = convective rain at this time step units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [ice] standard_name = lwe_thickness_of_ice_amount_on_dynamics_timestep long_name = ice fall at this time step units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [snow] standard_name = lwe_thickness_of_snow_amount_on_dynamics_timestep long_name = snow fall at this time step units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [graupel] standard_name = lwe_thickness_of_graupel_amount_on_dynamics_timestep long_name = graupel fall at this time step units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [u10m] standard_name = x_wind_at_10m long_name = 10 meter u wind speed units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [v10m] standard_name = y_wind_at_10m long_name = 10 meter v wind speed units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [dpt2m] standard_name = dewpoint_temperature_at_2m long_name = 2 meter dewpoint temperature units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [zlvl] standard_name = height_above_ground_at_lowest_model_layer long_name = layer 1 height above ground (not MSL) units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [psurf] standard_name = surface_air_pressure_diag long_name = surface air pressure diagnostic units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [pwat] standard_name = column_precipitable_water long_name = precipitable water units = kg m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [t1] standard_name = air_temperature_at_lowest_model_layer_for_diag long_name = layer 1 temperature for diag units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [q1] standard_name = water_vapor_specific_humidity_at_lowest_model_layer_for_diag long_name = layer 1 specific humidity for diag units = kg kg-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [u1] standard_name = x_wind_at_lowest_model_layer_for_diag long_name = layer 1 x wind for diag units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [v1] standard_name = y_wind_at_lowest_model_layer_for_diag long_name = layer 1 y wind for diag units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [chh] standard_name = surface_drag_mass_flux_for_heat_and_moisture_in_air long_name = thermal exchange coefficient units = kg m-2 s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [cmm] standard_name = surface_drag_wind_speed_for_momentum_in_air long_name = momentum exchange coefficient units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [dlwsfci] standard_name = surface_downwelling_longwave_flux long_name = surface downwelling longwave flux at current time units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [ulwsfci] standard_name = surface_upwelling_longwave_flux long_name = surface upwelling longwave flux at current time units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [dswsfci] standard_name = surface_downwelling_shortwave_flux long_name = surface downwelling shortwave flux at current time units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [nswsfci] standard_name = surface_net_downwelling_shortwave_flux long_name = surface net downwelling shortwave flux at current time units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [uswsfci] standard_name = surface_upwelling_shortwave_flux long_name = surface upwelling shortwave flux at current time units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [dusfci] standard_name = instantaneous_surface_x_momentum_flux_for_diag long_name = instantaneous sfc x momentum flux multiplied by timestep units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [dvsfci] standard_name = instantaneous_surface_y_momentum_flux_for_diag long_name = instantaneous sfc y momentum flux multiplied by timestep units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [dtsfci] standard_name = instantaneous_surface_upward_sensible_heat_flux_for_diag long_name = instantaneous sfc sensible heat flux multiplied by timestep units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [dqsfci] standard_name = instantaneous_surface_upward_latent_heat_flux_for_diag long_name = instantaneous sfc latent heat flux multiplied by timestep units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [gfluxi] standard_name = instantaneous_surface_ground_heat_flux long_name = instantaneous sfc ground heat flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [pahi] standard_name = instantaneous_total_precipitation_advected_heat long_name = instantaneous precipitation advected heat - total units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -9181,35 +9212,35 @@ standard_name = instantaneous_surface_potential_evaporation long_name = instantaneous sfc potential evaporation units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [smcwlt2] standard_name = volume_fraction_of_condensed_water_in_soil_at_wilting_point long_name = wilting point (volumetric) units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [smcref2] standard_name = threshold_volume_fraction_of_condensed_water_in_soil long_name = soil moisture threshold (volumetric) units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [sr] standard_name = ratio_of_snowfall_to_rainfall long_name = snow ratio: ratio of snow to total precipitation (explicit only) units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [wet1] standard_name = normalized_soil_wetness long_name = normalized soil wetness units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (.not. control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme) @@ -9217,42 +9248,42 @@ standard_name = dominant_rain_type long_name = dominant rain type units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tdomzr] standard_name = dominant_freezing_rain_type long_name = dominant freezing rain type units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tdomip] standard_name = dominant_sleet_type long_name = dominant sleet type units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tdoms] standard_name = dominant_snow_type long_name = dominant snow type units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [zmtnblck] standard_name = level_of_dividing_streamline long_name = level of the dividing streamline units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables units = mixed - dimensions = (horizontal_loop_extent,vertical_layer_dimension,cumulative_change_of_state_variables_outer_index_max) + dimensions = (horizontal_dimension,vertical_layer_dimension,cumulative_change_of_state_variables_outer_index_max) type = real kind = kind_phys active = (flag_for_diagnostics_3D) @@ -9260,56 +9291,56 @@ standard_name = maximum_reflectivity_at_1km_agl_over_maximum_hourly_time_interval long_name = maximum reflectivity at 1km agl over maximum hourly time interval units = dBZ - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [refdmax263k] standard_name = maximum_reflectivity_at_minus10c_over_maximum_hourly_time_interval long_name = maximum reflectivity at minus10c over maximum hourly time interval units = dBZ - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [t02max] standard_name = maximum_temperature_at_2m_over_maximum_hourly_time_interval long_name = maximum temperature at 2m over maximum hourly time interval units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [t02min] standard_name = minimum_temperature_at_2m_over_maximum_hourly_time_interval long_name = minumum temperature at 2m over maximum hourly time interval units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [rh02max] standard_name = maximum_relative_humidity_at_2m_over_maximum_hourly_time_interval long_name = maximum relative humidity at 2m over maximum hourly time interval units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [rh02min] standard_name = minimum_relative_humidity_at_2m_over_maximum_hourly_time_interval long_name = minumum relative humidity at 2m over maximum hourly time interval units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [pratemax] standard_name = maximum_precipitation_rate_over_maximum_hourly_time_interval long_name = maximum precipitation rate over maximum hourly time interval units = mm h-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [upd_mf] standard_name = cumulative_atmosphere_updraft_convective_mass_flux long_name = cumulative updraft mass flux units = kg m-1 s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_tracer_diagnostics_3D) @@ -9317,7 +9348,7 @@ standard_name = cumulative_atmosphere_downdraft_convective_mass_flux long_name = cumulative downdraft mass flux units = kg m-1 s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_tracer_diagnostics_3D) @@ -9325,7 +9356,7 @@ standard_name = cumulative_atmosphere_detrainment_convective_mass_flux long_name = cumulative detrainment mass flux units = kg m-1 s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_tracer_diagnostics_3D) @@ -9333,7 +9364,7 @@ standard_name = ozone_tendency_due_to_production_and_loss_rate long_name = ozone tendency due to production and loss rate units = kg kg-1 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_tracer_diagnostics_3D .and. flag_for_nrl_2015_ozone_scheme) @@ -9341,7 +9372,7 @@ standard_name = ozone_tendency_due_to_ozone_mixing_ratio long_name = ozone tendency due to ozone mixing ratio units = kg kg-1 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_tracer_diagnostics_3D .and. flag_for_nrl_2015_ozone_scheme) @@ -9349,7 +9380,7 @@ standard_name = ozone_tendency_due_to_temperature long_name = ozone tendency due to temperature units = kg kg-1 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_tracer_diagnostics_3D .and. flag_for_nrl_2015_ozone_scheme) @@ -9357,7 +9388,7 @@ standard_name = ozone_tendency_due_to_overhead_ozone_column long_name = ozone tendency due to overhead ozone column units = kg kg-1 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_tracer_diagnostics_3D .and. flag_for_nrl_2015_ozone_scheme) @@ -9365,84 +9396,84 @@ standard_name = radar_reflectivity_10cm long_name = instantaneous refl_10cm units = dBZ - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [max_hail_diam_sfc] standard_name = max_hail_diameter_sfc long_name = instantaneous maximum hail diameter at lowest model level units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [dkt] standard_name = atmosphere_heat_diffusivity long_name = atmospheric heat diffusivity units = m2 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [dku] standard_name = atmosphere_momentum_diffusivity long_name = atmospheric momentum diffusivity units = m2 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [cldfra] standard_name = instantaneous_3d_cloud_fraction long_name = instantaneous 3D cloud fraction for all MPs units = frac - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [cldfra2d] standard_name = max_in_column_cloud_fraction long_name = instantaneous 2D (max-in-column) cloud fraction units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [lwp_ex] standard_name = liq_water_path_from_microphysics long_name = total liquid water path from explicit microphysics units = kg m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [iwp_ex] standard_name = ice_water_path_from_microphysics long_name = total ice water path from explicit microphysics units = kg m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [lwp_fc] standard_name = liq_water_path_from_cloud_fraction long_name = total liquid water path from cloud fraction scheme units = kg m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [iwp_fc] standard_name = ice_water_path_from_cloud_fraction long_name = total ice water path from cloud fraction scheme units = kg m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [total_albedo] standard_name = total_sky_albedo long_name = total sky albedo at toa units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [edmf_a] standard_name = emdf_updraft_area long_name = updraft area from mass flux scheme units = frac - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme .and. (control_for_additional_diagnostics_in_mellor_yamada_nakanishi_niino_pbl_scheme .ne. 0)) @@ -9450,7 +9481,7 @@ standard_name = emdf_updraft_vertical_velocity long_name = updraft vertical velocity from mass flux scheme units = m s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme .and. (control_for_additional_diagnostics_in_mellor_yamada_nakanishi_niino_pbl_scheme .ne. 0)) @@ -9458,7 +9489,7 @@ standard_name = emdf_updraft_total_water long_name = updraft total water from mass flux scheme units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme .and. (control_for_additional_diagnostics_in_mellor_yamada_nakanishi_niino_pbl_scheme .ne. 0)) @@ -9466,7 +9497,7 @@ standard_name = emdf_updraft_theta_l long_name = updraft theta-l from mass flux scheme units = K - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme .and. (control_for_additional_diagnostics_in_mellor_yamada_nakanishi_niino_pbl_scheme .ne. 0)) @@ -9474,7 +9505,7 @@ standard_name = emdf_updraft_entrainment_rate long_name = updraft entranment rate from mass flux scheme units = s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme .and. (control_for_additional_diagnostics_in_mellor_yamada_nakanishi_niino_pbl_scheme .ne. 0)) @@ -9482,7 +9513,7 @@ standard_name = emdf_updraft_cloud_water long_name = updraft cloud water from mass flux scheme units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme .and. (control_for_additional_diagnostics_in_mellor_yamada_nakanishi_niino_pbl_scheme .ne. 0)) @@ -9490,7 +9521,7 @@ standard_name = theta_subsidence_tendency long_name = updraft theta subsidence tendency units = K s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme .and. (control_for_additional_diagnostics_in_mellor_yamada_nakanishi_niino_pbl_scheme .ne. 0)) @@ -9498,7 +9529,7 @@ standard_name = water_vapor_subsidence_tendency long_name = updraft water vapor subsidence tendency units = kg kg-1 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme .and. (control_for_additional_diagnostics_in_mellor_yamada_nakanishi_niino_pbl_scheme .ne. 0)) @@ -9506,7 +9537,7 @@ standard_name = theta_detrainment_tendency long_name = updraft theta detrainment tendency units = K s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme .and. (control_for_additional_diagnostics_in_mellor_yamada_nakanishi_niino_pbl_scheme .ne. 0)) @@ -9514,7 +9545,7 @@ standard_name = water_vapor_detrainment_tendency long_name = updraft water vapor detrainment tendency units = kg kg-1 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme .and. (control_for_additional_diagnostics_in_mellor_yamada_nakanishi_niino_pbl_scheme .ne. 0)) @@ -9522,7 +9553,7 @@ standard_name = total_time_rate_of_change_of_tke long_name = total tke tendency units = m2 s-3 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme .and. control_for_tke_budget_output == 1) @@ -9530,7 +9561,7 @@ standard_name = tke_tendency_due_to_vertical_transport long_name = tke tendency due to vertical transport and diffusion units = m2 s-3 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme .and. control_for_tke_budget_output == 1) @@ -9538,7 +9569,7 @@ standard_name = tke_tendency_due_to_shear long_name = tke tendency due to shear units = m2 s-3 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme .and. control_for_tke_budget_output == 1) @@ -9546,7 +9577,7 @@ standard_name = tke_tendency_due_to_buoyancy long_name = tke tendency due to buoyancy production or consumption units = m2 s-3 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme .and. control_for_tke_budget_output == 1) @@ -9554,7 +9585,7 @@ standard_name = tke_tendency_due_to_dissipation long_name = tke tendency due to the dissipation of tke units = m2 s-3 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme .and. control_for_tke_budget_output == 1) @@ -9562,7 +9593,7 @@ standard_name = maximum_width_of_plumes long_name = maximum width of plumes per grid column units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme) @@ -9570,7 +9601,7 @@ standard_name = maximum_mass_flux long_name = maximum mass flux within a column units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme) @@ -9578,7 +9609,7 @@ standard_name = height_of_tallest_plume_in_a_column long_name = height of tallest plume in a column units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme) @@ -9586,20 +9617,20 @@ standard_name = k_level_of_highest_reaching_plume long_name = k-level of highest reaching plume units = count - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer [ktop_plume] standard_name = k_level_of_highest_plume long_name = k-level of highest plume units = count - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme) [exch_h] standard_name = atmosphere_heat_diffusivity_for_mynnedmf long_name = diffusivity for heat for MYNN PBL (defined for all mass levels) units = m2 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme) @@ -9607,7 +9638,7 @@ standard_name = atmosphere_momentum_diffusivity_for_mynnedmf long_name = diffusivity for momentum for MYNN PBL (defined for all mass levels) units = m2 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme) @@ -9615,56 +9646,56 @@ standard_name = time_integral_of_height_of_mountain_blocking long_name = time integral of height of mountain blocking drag units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [zlwb] standard_name = time_integral_of_height_of_low_level_wave_breaking long_name = time integral of height of drag due to low level wave breaking units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [zogw] standard_name = time_integral_of_height_of_launch_level_of_orographic_gravity_wave long_name = time integral of height of launch level of orographic gravity wave units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tau_tofd] standard_name = time_integral_of_momentum_flux_due_to_turbulent_orographic_form_drag long_name = time integral of momentum flux due to TOFD units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tau_mtb] standard_name = time_integral_of_momentum_flux_due_to_mountain_blocking_drag long_name = time integral of momentum flux due to mountain blocking drag units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tau_ogw] standard_name = time_integral_of_momentum_flux_due_to_orographic_gravity_wave_drag long_name = time integral of momentum flux due to orographic gravity wave drag units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tau_ngw] standard_name = time_integral_of_momentum_flux_due_to_nonstationary_gravity_wave long_name = time integral of momentum flux due to nonstationary gravity waves units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [du3dt_mtb] standard_name = time_integral_of_change_in_x_wind_due_to_mountain_blocking_drag long_name = time integral of change in x wind due to mountain blocking drag units = m s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_unified_gravity_wave_physics_diagnostics) @@ -9672,7 +9703,7 @@ standard_name = time_integral_of_change_in_x_wind_due_to_orographic_gravity_wave_drag long_name = time integral of change in x wind due to orographic gw drag units = m s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_unified_gravity_wave_physics_diagnostics) @@ -9680,7 +9711,7 @@ standard_name = cumulative_change_in_x_wind_due_to_mesoscale_orographic_gravity_wave_drag long_name = cumulative change in x wind due to mesoscale orographic gravity wave drag units = m s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_unified_gravity_wave_physics_diagnostics) @@ -9688,7 +9719,7 @@ standard_name = cumulative_change_in_x_wind_due_to_blocking_drag long_name = cumulative change in x wind due to blocking drag units = m s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_unified_gravity_wave_physics_diagnostics) @@ -9696,7 +9727,7 @@ standard_name = cumulative_change_in_x_wind_due_to_small_scale_gravity_wave_drag long_name = cumulative change in x wind due to small scale gravity wave drag units = m s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_unified_gravity_wave_physics_diagnostics) @@ -9704,7 +9735,7 @@ standard_name = cumulative_change_in_x_wind_due_to_form_drag long_name = cumulative change in x wind due to form drag units = m s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_unified_gravity_wave_physics_diagnostics) @@ -9712,7 +9743,7 @@ standard_name = time_integral_of_change_in_x_wind_due_to_turbulent_orographic_form_drag long_name = time integral of change in x wind due to TOFD units = m s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_unified_gravity_wave_physics_diagnostics) @@ -9720,7 +9751,7 @@ standard_name = time_integral_of_change_in_x_wind_due_to_nonstationary_gravity_wave long_name = time integral of change in x wind due to NGW units = m s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_unified_gravity_wave_physics_diagnostics) @@ -9728,7 +9759,7 @@ standard_name = cumulative_change_in_wind_speed_due_to_mesoscale_orographic_gravity_wave_drag long_name = cumulative change in wind speed due to mesoscale orographic gravity wave drag units = m s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_unified_gravity_wave_physics_diagnostics) @@ -9736,7 +9767,7 @@ standard_name = cumulative_change_in_wind_speed_due_to_blocking_drag long_name = cumulative change in wind speed due to blocking drag units = m s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_unified_gravity_wave_physics_diagnostics) @@ -9744,7 +9775,7 @@ standard_name = cumulative_change_in_wind_speed_due_to_small_scale_orographic_gravity_wave_drag long_name = cumulative change in wind speed due to small scale orographic gravity wave drag units = m s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_unified_gravity_wave_physics_diagnostics) @@ -9752,7 +9783,7 @@ standard_name = cumulative_change_in_wind_speed_due_to_turbulent_orographic_form_drag long_name = cumulative change in wind speed due to turbulent orographic form drag units = m s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_unified_gravity_wave_physics_diagnostics) @@ -9760,7 +9791,7 @@ standard_name = cumulative_change_in_x_wind_due_to_convective_gravity_wave_drag long_name = cumulative change in x wind due to convective gravity wave drag units = m s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_unified_gravity_wave_physics_diagnostics) @@ -9768,7 +9799,7 @@ standard_name = cumulative_change_in_y_wind_due_to_convective_gravity_wave_drag long_name = cumulative change in y wind due to convective gravity wave drag units = m s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_unified_gravity_wave_physics_diagnostics) @@ -9776,7 +9807,7 @@ standard_name = cumulative_change_in_temperature_due_to_convective_gravity_wave_drag long_name = cumulative change in temperature due to convective gravity wave drag units = K - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_unified_gravity_wave_physics_diagnostics) @@ -9784,35 +9815,35 @@ standard_name = tendency_of_x_wind_due_to_gravity_wave_drag long_name = zonal wind tendency due to all GWs units = m s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [dvdt_gw] standard_name = tendency_of_y_wind_due_to_gravity_wave_drag long_name = meridional wind tendency due to all GWs units = m s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [dtdt_gw] standard_name = tendency_of_air_temperature_due_to_gravity_wave_drag long_name = air temperature tendency due to all GWs units = K s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [kdis_gw] standard_name = atmosphere_momentum_diffusivity_due_to_gravity_wave_drag long_name = eddy mixing due to all GWs units = m2 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [dudt_ogw] standard_name = tendency_of_x_wind_due_to_mesoscale_orographic_gravity_wave_drag long_name = x wind tendency from meso scale ogw units = m s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_ugwp_version_1 .or. flag_for_unified_gravity_wave_physics_diagnostics) @@ -9820,7 +9851,7 @@ standard_name = tendency_of_y_wind_due_to_mesoscale_orographic_gravity_wave_drag long_name = y wind tendency from meso scale ogw units = m s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_ugwp_version_1 .or. flag_for_unified_gravity_wave_physics_diagnostics) @@ -9828,7 +9859,7 @@ standard_name = vertically_integrated_x_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag long_name = integrated x momentum flux from meso scale ogw units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_ugwp_version_1 .or. flag_for_unified_gravity_wave_physics_diagnostics) @@ -9836,7 +9867,7 @@ standard_name = vertically_integrated_y_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag long_name = integrated y momentum flux from meso scale ogw units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_ugwp_version_1 .or. flag_for_unified_gravity_wave_physics_diagnostics) @@ -9844,7 +9875,7 @@ standard_name = tendency_of_x_wind_due_to_blocking_drag long_name = x wind tendency from blocking drag units = m s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_ugwp_version_1 .or. flag_for_unified_gravity_wave_physics_diagnostics) @@ -9852,7 +9883,7 @@ standard_name = tendency_of_y_wind_due_to_blocking_drag long_name = y wind tendency from blocking drag units = m s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_ugwp_version_1 .or. flag_for_unified_gravity_wave_physics_diagnostics) @@ -9860,7 +9891,7 @@ standard_name = vertically_integrated_x_momentum_flux_due_to_blocking_drag long_name = integrated x momentum flux from blocking drag units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_ugwp_version_1 .or. flag_for_unified_gravity_wave_physics_diagnostics) @@ -9868,7 +9899,7 @@ standard_name = vertically_integrated_y_momentum_flux_due_to_blocking_drag long_name = integrated y momentum flux from blocking drag units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_ugwp_version_1 .or. flag_for_unified_gravity_wave_physics_diagnostics) @@ -9876,7 +9907,7 @@ standard_name = cumulative_vertically_integrated_x_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag long_name = cumulative integrated x momentum flux from mesoscale orographic gravity wave drag units = Pa s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_ugwp_version_1 .or. flag_for_unified_gravity_wave_physics_diagnostics) @@ -9884,7 +9915,7 @@ standard_name = cumulative_vertically_integrated_y_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag long_name = cumulative integrated y momentum flux from mesoscale orographic gravity wave drag units = Pa s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_ugwp_version_1 .or. flag_for_unified_gravity_wave_physics_diagnostics) @@ -9892,7 +9923,7 @@ standard_name = cumulative_vertically_integrated_x_momentum_flux_due_to_blocking_drag long_name = cumulative integrated x momentum flux from blocking drag units = Pa s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_ugwp_version_1 .or. flag_for_unified_gravity_wave_physics_diagnostics) @@ -9900,7 +9931,7 @@ standard_name = cumulative_vertically_integrated_y_momentum_flux_due_to_blocking_drag long_name = cumulative integrated y momentum flux from blocking drag units = Pa s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_ugwp_version_1 .or. flag_for_unified_gravity_wave_physics_diagnostics) @@ -9908,7 +9939,7 @@ standard_name = cumulative_vertically_integrated_x_momentum_flux_due_to_small_scale_gravity_wave_drag long_name = cumulative integrated x momentum flux from small scale gravity wave drag units = Pa s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_ugwp_version_1 .or. flag_for_unified_gravity_wave_physics_diagnostics) @@ -9916,7 +9947,7 @@ standard_name = cumulative_vertically_integrated_y_momentum_flux_due_small_scale_gravity_wave_drag long_name = cumulative integrated y momentum flux from small scale gravity wave drag units = Pa s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_ugwp_version_1 .or. flag_for_unified_gravity_wave_physics_diagnostics) @@ -9924,7 +9955,7 @@ standard_name = cumulative_vertically_integrated_x_momentum_flux_due_to_form_drag long_name = cumulative integrated x momentum flux from form drag units = Pa s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_ugwp_version_1 .or. flag_for_unified_gravity_wave_physics_diagnostics) @@ -9932,7 +9963,7 @@ standard_name = cumulative_vertically_integrated_y_momentum_flux_due_to_form_drag long_name = cumulative integrated y momentum flux from form drag units = Pa s - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_ugwp_version_1 .or. flag_for_unified_gravity_wave_physics_diagnostics) @@ -9940,7 +9971,7 @@ standard_name = tendency_of_x_wind_due_to_small_scale_gravity_wave_drag long_name = x wind tendency from small scale gwd units = m s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_ugwp_version_1 .or. flag_for_unified_gravity_wave_physics_diagnostics) @@ -9948,7 +9979,7 @@ standard_name = tendency_of_y_wind_due_to_small_scale_gravity_wave_drag long_name = y wind tendency from small scale gwd units = m s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_ugwp_version_1 .or. flag_for_unified_gravity_wave_physics_diagnostics) @@ -9956,7 +9987,7 @@ standard_name = vertically_integrated_x_momentum_flux_due_to_small_scale_gravity_wave_drag long_name = integrated x momentum flux from small scale gwd units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_ugwp_version_1 .or. flag_for_unified_gravity_wave_physics_diagnostics) @@ -9964,7 +9995,7 @@ standard_name = vertically_integrated_y_momentum_flux_due_to_small_scale_gravity_wave_drag long_name = integrated y momentum flux from small scale gwd units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_ugwp_version_1 .or. flag_for_unified_gravity_wave_physics_diagnostics) @@ -9972,7 +10003,7 @@ standard_name = tendency_of_x_wind_due_to_form_drag long_name = x wind tendency from form drag units = m s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_ugwp_version_1 .or. flag_for_unified_gravity_wave_physics_diagnostics) @@ -9980,7 +10011,7 @@ standard_name = tendency_of_y_wind_due_to_form_drag long_name = y wind tendency from form drag units = m s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_ugwp_version_1 .or. flag_for_unified_gravity_wave_physics_diagnostics) @@ -9988,7 +10019,7 @@ standard_name = vertically_integrated_x_momentum_flux_due_to_form_drag long_name = integrated x momentum flux from form drag units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_ugwp_version_1 .or. flag_for_unified_gravity_wave_physics_diagnostics) @@ -9996,7 +10027,7 @@ standard_name = vertically_integrated_y_momentum_flux_due_to_form_drag long_name = integrated y momentum flux from form drag units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (flag_for_ugwp_version_1 .or. flag_for_unified_gravity_wave_physics_diagnostics) @@ -10004,7 +10035,7 @@ standard_name = time_integral_of_change_in_y_wind_due_to_nonstationary_gravity_wave long_name = time integral of change in y wind due to NGW units = m s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_unified_gravity_wave_physics_diagnostics) @@ -10012,7 +10043,7 @@ standard_name = extended_diagnostics_output_from_thompson_microphysics long_name = set of 3d arrays for extended diagnostics output from thompson microphysics units = none - dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_3d_diagnostic_output_arrays_from_thompson_microphysics) + dimensions = (horizontal_dimension,vertical_layer_dimension,number_of_3d_diagnostic_output_arrays_from_thompson_microphysics) type = real kind = kind_phys active = (flag_for_extended_diagnostic_output_from_thompson_microphysics) @@ -10020,7 +10051,7 @@ standard_name = auxiliary_2d_arrays long_name = auxiliary 2d arrays to output (for debugging) units = none - dimensions = (horizontal_loop_extent,number_of_xyz_dimensioned_auxiliary_arrays) + dimensions = (horizontal_dimension,number_of_xy_dimensioned_auxiliary_arrays) type = real kind = kind_phys active = (number_of_xy_dimensioned_auxiliary_arrays > 0) @@ -10028,7 +10059,7 @@ standard_name = auxiliary_3d_arrays long_name = auxiliary 3d arrays to output (for debugging) units = none - dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_xyz_dimensioned_auxiliary_arrays) + dimensions = (horizontal_dimension,vertical_layer_dimension,number_of_xyz_dimensioned_auxiliary_arrays) type = real kind = kind_phys active = (number_of_xyz_dimensioned_auxiliary_arrays > 0) @@ -10036,14 +10067,14 @@ standard_name = surface_air_pressure_from_previous_timestep long_name = surface air pressure from previous timestep units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [ltg1_max] standard_name = lightning_threat_index_1 long_name = lightning threat index 1 units = flashes min-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys intent = inout @@ -10052,7 +10083,7 @@ standard_name = lightning_threat_index_2 long_name = lightning threat index 2 units = flashes min-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys intent = inout @@ -10061,7 +10092,7 @@ standard_name = lightning_threat_index_3 long_name = lightning threat index 3 units = flashes min-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys intent = inout diff --git a/scm/src/scm.F90 b/scm/src/scm.F90 index b6ac80d4a..e5aab8983 100644 --- a/scm/src/scm.F90 +++ b/scm/src/scm.F90 @@ -33,7 +33,7 @@ subroutine scm_main_sub() type(MPI_Comm) :: fcst_mpi_comm - integer :: i, j, kdt_rad, idtend, itrac + integer :: i, j, kdt_rad, idtend, itrac, n_tasks, n_threads real(kind=8) :: rinc(5) !(DAYS, HOURS, MINUTES, SECONDS, MILLISECONDS) integer :: jdat(1:8) @@ -48,6 +48,8 @@ subroutine scm_main_sub() error stop end if fcst_mpi_comm = MPI_COMM_WORLD + n_tasks = 1 + n_threads = 1 call get_config_nml(scm_state) @@ -82,7 +84,7 @@ subroutine scm_main_sub() call interpolate_forcing(scm_input_instance, scm_state, in_spinup) - call physics%create(scm_state%n_cols) + call physics%create(scm_state%n_cols, n_threads) !physics initialization section @@ -131,7 +133,7 @@ subroutine scm_main_sub() call GFS_suite_setup(physics%Model, physics%Statein, physics%Stateout, & physics%Sfcprop, physics%Coupling, physics%Grid, & physics%Tbd, physics%Cldprop, physics%Radtend, & - physics%Diag, physics%Interstitial, 1, 1, & + physics%Diag, physics%Interstitial, n_tasks, n_threads, & physics%Init_parm, scm_state%n_cols, scm_state%lon, & scm_state%lat, scm_state%area) @@ -175,6 +177,7 @@ subroutine scm_main_sub() end if cdata%blk_no = 1 + cdata%chunk_no = 1 cdata%thrd_no = 1 cdata%thrd_cnt = 1 @@ -414,9 +417,9 @@ subroutine scm_main_sub() write(*,*) "itt = ",scm_state%itt write(*,*) "model time (s) = ",scm_state%model_time if (scm_state%lsm_ics .or. scm_state%model_ics) then - write(*,*) "Bowen ratio: ",physics%Interstitial%dtsfc1(1)/physics%Interstitial%dqsfc1(1) - write(*,*) "sensible heat flux (W m-2): ",physics%Interstitial%dtsfc1(1) - write(*,*) "latent heat flux (W m-2): ",physics%Interstitial%dqsfc1(1) + write(*,*) "Bowen ratio: ",physics%Interstitial(1)%dtsfc1(1)/physics%Interstitial(1)%dqsfc1(1) + write(*,*) "sensible heat flux (W m-2): ",physics%Interstitial(1)%dtsfc1(1) + write(*,*) "latent heat flux (W m-2): ",physics%Interstitial(1)%dqsfc1(1) end if if (.not. in_spinup) then diff --git a/scm/src/scm_output.F90 b/scm/src/scm_output.F90 index b41347c19..faa4957be 100644 --- a/scm/src/scm_output.F90 +++ b/scm/src/scm_output.F90 @@ -90,7 +90,7 @@ subroutine output_init(scm_state, physics) CALL CHECK(NF90_DEF_DIM(NCID=ncid,NAME="hor_dim_layer",LEN=scm_state%n_cols,DIMID=hor_dim_id),"nf90_def_dim(hor_dim_layer)") CALL CHECK(NF90_DEF_DIM(NCID=ncid,NAME="vert_dim_layer",LEN=scm_state%n_levels,DIMID=vert_dim_id),"nf90_def_dim(vert_dim_layer)") CALL CHECK(NF90_DEF_DIM(NCID=ncid,NAME="vert_dim_interface",LEN=scm_state%n_levels+1,DIMID=vert_dim_i_id),"nf90_def_dim(vert_dim_interface)") - CALL CHECK(NF90_DEF_DIM(NCID=ncid,NAME="vert_dim_rad",LEN=physics%Interstitial%lmk,DIMID=vert_dim_rad_id),"nf90_def_dim(vert_dim_rad)") + CALL CHECK(NF90_DEF_DIM(NCID=ncid,NAME="vert_dim_rad",LEN=physics%Interstitial(1)%lmk,DIMID=vert_dim_rad_id),"nf90_def_dim(vert_dim_rad)") CALL CHECK(NF90_DEF_DIM(NCID=ncid,NAME="vert_dim_soil",LEN=physics%Model%lsoil_lsm,DIMID=vert_dim_soil_id),"nf90_def_dim(vert_dim_soil)") !> - Define the dimension variables. @@ -600,29 +600,29 @@ subroutine output_append_interstitial_inst(ncid, scm_state, physics) type(scm_state_type), intent(in) :: scm_state type(physics_type), intent(in) :: physics - call NetCDF_put_var(ncid, "tau_u", physics%Interstitial%dusfc1(:), scm_state%itt_out) - call NetCDF_put_var(ncid, "tau_v", physics%Interstitial%dvsfc1(:), scm_state%itt_out) + call NetCDF_put_var(ncid, "tau_u", physics%Interstitial(1)%dusfc1(:), scm_state%itt_out) + call NetCDF_put_var(ncid, "tau_v", physics%Interstitial(1)%dvsfc1(:), scm_state%itt_out) if (physics%model%imfdeepcnv >= 0 .or. physics%model%imfshalcnv >= 0) then call NetCDF_put_var(ncid, "upd_mf", physics%Tbd%ud_mf(:,:), scm_state%itt_out) end if - call NetCDF_put_var(ncid, "dwn_mf", physics%Interstitial%dd_mf(:,:), scm_state%itt_out) - call NetCDF_put_var(ncid, "det_mf", physics%Interstitial%dt_mf(:,:), scm_state%itt_out) - - call NetCDF_put_var(ncid, "sfc_up_lw_land", physics%Interstitial%adjsfculw_land(:), scm_state%itt_out) - call NetCDF_put_var(ncid, "sfc_up_lw_ice", physics%Interstitial%adjsfculw_ice(:), scm_state%itt_out) - call NetCDF_put_var(ncid, "sfc_up_lw_water", physics%Interstitial%adjsfculw_water(:), scm_state%itt_out) - call NetCDF_put_var(ncid, "sfc_up_sw_dir_nir", physics%Interstitial%adjnirbmu(:), scm_state%itt_out) - call NetCDF_put_var(ncid, "sfc_up_sw_dif_nir", physics%Interstitial%adjnirdfu(:), scm_state%itt_out) - call NetCDF_put_var(ncid, "sfc_up_sw_dir_vis", physics%Interstitial%adjvisbmu(:), scm_state%itt_out) - call NetCDF_put_var(ncid, "sfc_up_sw_dif_vis", physics%Interstitial%adjvisdfu(:), scm_state%itt_out) - call NetCDF_put_var(ncid, "sfc_dwn_sw_dir_nir", physics%Interstitial%adjnirbmd(:), scm_state%itt_out) - call NetCDF_put_var(ncid, "sfc_dwn_sw_dif_nir", physics%Interstitial%adjnirdfd(:), scm_state%itt_out) - call NetCDF_put_var(ncid, "sfc_dwn_sw_dir_vis", physics%Interstitial%adjvisbmd(:), scm_state%itt_out) - call NetCDF_put_var(ncid, "sfc_dwn_sw_dif_vis", physics%Interstitial%adjvisdfd(:), scm_state%itt_out) - - call NetCDF_put_var(ncid, "mp_prcp_inst", physics%Interstitial%prcpmp(:), scm_state%itt_out) - call NetCDF_put_var(ncid, "dcnv_prcp_inst", physics%Interstitial%raincd(:), scm_state%itt_out) - call NetCDF_put_var(ncid, "scnv_prcp_inst", physics%Interstitial%raincs(:), scm_state%itt_out) + call NetCDF_put_var(ncid, "dwn_mf", physics%Interstitial(1)%dd_mf(:,:), scm_state%itt_out) + call NetCDF_put_var(ncid, "det_mf", physics%Interstitial(1)%dt_mf(:,:), scm_state%itt_out) + + call NetCDF_put_var(ncid, "sfc_up_lw_land", physics%Interstitial(1)%adjsfculw_land(:), scm_state%itt_out) + call NetCDF_put_var(ncid, "sfc_up_lw_ice", physics%Interstitial(1)%adjsfculw_ice(:), scm_state%itt_out) + call NetCDF_put_var(ncid, "sfc_up_lw_water", physics%Interstitial(1)%adjsfculw_water(:), scm_state%itt_out) + call NetCDF_put_var(ncid, "sfc_up_sw_dir_nir", physics%Interstitial(1)%adjnirbmu(:), scm_state%itt_out) + call NetCDF_put_var(ncid, "sfc_up_sw_dif_nir", physics%Interstitial(1)%adjnirdfu(:), scm_state%itt_out) + call NetCDF_put_var(ncid, "sfc_up_sw_dir_vis", physics%Interstitial(1)%adjvisbmu(:), scm_state%itt_out) + call NetCDF_put_var(ncid, "sfc_up_sw_dif_vis", physics%Interstitial(1)%adjvisdfu(:), scm_state%itt_out) + call NetCDF_put_var(ncid, "sfc_dwn_sw_dir_nir", physics%Interstitial(1)%adjnirbmd(:), scm_state%itt_out) + call NetCDF_put_var(ncid, "sfc_dwn_sw_dif_nir", physics%Interstitial(1)%adjnirdfd(:), scm_state%itt_out) + call NetCDF_put_var(ncid, "sfc_dwn_sw_dir_vis", physics%Interstitial(1)%adjvisbmd(:), scm_state%itt_out) + call NetCDF_put_var(ncid, "sfc_dwn_sw_dif_vis", physics%Interstitial(1)%adjvisdfd(:), scm_state%itt_out) + + call NetCDF_put_var(ncid, "mp_prcp_inst", physics%Interstitial(1)%prcpmp(:), scm_state%itt_out) + call NetCDF_put_var(ncid, "dcnv_prcp_inst", physics%Interstitial(1)%raincd(:), scm_state%itt_out) + call NetCDF_put_var(ncid, "scnv_prcp_inst", physics%Interstitial(1)%raincs(:), scm_state%itt_out) end subroutine output_append_interstitial_inst @@ -634,15 +634,15 @@ subroutine output_append_interstitial_rad(ncid, scm_state, physics) type(scm_state_type), intent(in) :: scm_state type(physics_type), intent(in) :: physics - call NetCDF_put_var(ncid, "rad_cloud_fraction", physics%Interstitial%clouds(:,:,1), scm_state%itt_rad) - call NetCDF_put_var(ncid, "rad_cloud_lwp", physics%Interstitial%clouds(:,:,2), scm_state%itt_rad) - call NetCDF_put_var(ncid, "rad_eff_rad_ql", physics%Interstitial%clouds(:,:,3), scm_state%itt_rad) - call NetCDF_put_var(ncid, "rad_cloud_iwp", physics%Interstitial%clouds(:,:,4), scm_state%itt_rad) - call NetCDF_put_var(ncid, "rad_eff_rad_qi", physics%Interstitial%clouds(:,:,5), scm_state%itt_rad) - call NetCDF_put_var(ncid, "rad_cloud_rwp", physics%Interstitial%clouds(:,:,6), scm_state%itt_rad) - call NetCDF_put_var(ncid, "rad_eff_rad_qr", physics%Interstitial%clouds(:,:,7), scm_state%itt_rad) - call NetCDF_put_var(ncid, "rad_cloud_swp", physics%Interstitial%clouds(:,:,8), scm_state%itt_rad) - call NetCDF_put_var(ncid, "rad_eff_rad_qs", physics%Interstitial%clouds(:,:,9), scm_state%itt_rad) + call NetCDF_put_var(ncid, "rad_cloud_fraction", physics%Interstitial(1)%clouds(:,:,1), scm_state%itt_rad) + call NetCDF_put_var(ncid, "rad_cloud_lwp", physics%Interstitial(1)%clouds(:,:,2), scm_state%itt_rad) + call NetCDF_put_var(ncid, "rad_eff_rad_ql", physics%Interstitial(1)%clouds(:,:,3), scm_state%itt_rad) + call NetCDF_put_var(ncid, "rad_cloud_iwp", physics%Interstitial(1)%clouds(:,:,4), scm_state%itt_rad) + call NetCDF_put_var(ncid, "rad_eff_rad_qi", physics%Interstitial(1)%clouds(:,:,5), scm_state%itt_rad) + call NetCDF_put_var(ncid, "rad_cloud_rwp", physics%Interstitial(1)%clouds(:,:,6), scm_state%itt_rad) + call NetCDF_put_var(ncid, "rad_eff_rad_qr", physics%Interstitial(1)%clouds(:,:,7), scm_state%itt_rad) + call NetCDF_put_var(ncid, "rad_cloud_swp", physics%Interstitial(1)%clouds(:,:,8), scm_state%itt_rad) + call NetCDF_put_var(ncid, "rad_eff_rad_qs", physics%Interstitial(1)%clouds(:,:,9), scm_state%itt_rad) end subroutine output_append_interstitial_rad diff --git a/scm/src/scm_setup.F90 b/scm/src/scm_setup.F90 index 811844dc0..b3603e88f 100644 --- a/scm/src/scm_setup.F90 +++ b/scm/src/scm_setup.F90 @@ -308,7 +308,7 @@ subroutine GFS_suite_setup (Model, Statein, Stateout, Sfcprop, type(GFS_cldprop_type), intent(inout) :: Cldprop type(GFS_radtend_type), intent(inout) :: Radtend type(GFS_diag_type), intent(inout) :: Diag - type(GFS_interstitial_type), intent(inout) :: Interstitial + type(GFS_interstitial_type), intent(inout) :: Interstitial(:) type(GFS_init_type), intent(in) :: Init_parm integer, intent(in) :: ntasks, nthreads, n_cols @@ -337,18 +337,23 @@ subroutine GFS_suite_setup (Model, Statein, Stateout, Sfcprop, !--- initialize DDTs - call Statein%create(n_cols, Model) - call Stateout%create(n_cols, Model) - call Sfcprop%create(n_cols, Model) - call Coupling%create(n_cols, Model) - call Grid%create(n_cols, Model) - call Tbd%create(n_cols, Model) - call Cldprop%create(n_cols, Model) - call Radtend%create(n_cols, Model) + call Statein%create(Model) + call Stateout%create(Model) + call Sfcprop%create(Model) + call Coupling%create(Model) + call Grid%create(Model) + call Tbd%create(Model) + call Cldprop%create(Model) + call Radtend%create(Model) !--- internal representation of diagnostics - call Diag%create(n_cols, Model) + call Diag%create(Model) !--- internal representation of interstitials for CCPP physics - call Interstitial%create(n_cols, Model) + if (nthreads == 1) then + call Interstitial(1)%create(n_cols, Model) + else + print *,' CCPP SCM is only set up to use one thread - shutting down' + error stop + end if !--- populate the grid components !call GFS_grid_populate (Grid(i), Init_parm%xlon, Init_parm%xlat, Init_parm%area) diff --git a/scm/src/scm_type_defs.F90 b/scm/src/scm_type_defs.F90 index 49a8c71da..23e1cc112 100644 --- a/scm/src/scm_type_defs.F90 +++ b/scm/src/scm_type_defs.F90 @@ -427,7 +427,7 @@ module scm_type_defs type(GFS_cldprop_type) :: Cldprop type(GFS_radtend_type) :: Radtend type(GFS_diag_type) :: Diag - type(GFS_interstitial_type) :: Interstitial + type(GFS_interstitial_type), allocatable :: Interstitial(:) type(GFS_init_type) :: Init_parm contains @@ -947,15 +947,17 @@ subroutine scm_reference_create(scm_reference, nlev) end subroutine scm_reference_create - subroutine physics_create(physics, n_columns) + subroutine physics_create(physics, n_columns, n_threads) class(physics_type) :: physics - integer, intent(in) :: n_columns + integer, intent(in) :: n_columns, n_threads real(kind=kind_phys) :: kind_phys_zero integer :: i integer, dimension(8) :: zeroes_8 - + + allocate(physics%Interstitial(n_threads)) + zeroes_8(:) = int_zero kind_phys_zero = real_zero @@ -1129,7 +1131,7 @@ subroutine physics_set(physics, scm_input, scm_state) call conditionally_set_var(scm_input%input_facwf, physics%Sfcprop%facwf(i), "facwf", .true., missing_var(11)) call conditionally_set_var(scm_input%input_vegfrac, physics%Sfcprop%vfrac(i), "vegfrac", .true., missing_var(12)) !GJF: is this needed anymore (not in FV3GFS_io)? - physics%Interstitial%sigmaf(i) = min(physics%Sfcprop%vfrac(i),0.01) + physics%Interstitial(1)%sigmaf(i) = min(physics%Sfcprop%vfrac(i),0.01) call conditionally_set_var(scm_input%input_canopy, physics%Sfcprop%canopy(i), "canopy", .true., missing_var(13)) call conditionally_set_var(scm_input%input_f10m, physics%Sfcprop%f10m(i), "f10m", .false., missing_var(14)) call conditionally_set_var(scm_input%input_t2m, physics%Sfcprop%t2m(i), "t2m", physics%Model%cplflx, missing_var(15)) diff --git a/scm/src/scm_type_defs.meta b/scm/src/scm_type_defs.meta index dce3cb400..0950d4568 100644 --- a/scm/src/scm_type_defs.meta +++ b/scm/src/scm_type_defs.meta @@ -66,12 +66,18 @@ units = DDT dimensions = () type = GFS_tbd_type -[Interstitial] +[Interstitial(ccpp_thread_number)] standard_name = GFS_interstitial_type_instance long_name = instance of derived type GFS_interstitial_type units = DDT dimensions = () type = GFS_interstitial_type +[Interstitial] + standard_name = GFS_interstitial_type_instance_all_threads + long_name = instance of derived type GFS_interstitial_type + units = DDT + dimensions = (number_of_openmp_threads) + type = GFS_interstitial_type ######################################################################## [ccpp-table-properties] diff --git a/scm/src/suite_info.py b/scm/src/suite_info.py index 494b5dffb..56de9bbcd 100755 --- a/scm/src/suite_info.py +++ b/scm/src/suite_info.py @@ -72,6 +72,7 @@ def timestep(self, value): suite_list.append(suite('SCM_GSD_v1', 'tracers_gsd.txt', 'input_GSD_v1.nml', 600.0, 600.0 , False)) suite_list.append(suite('SCM_RRFS_v1nssl', 'tracers_RRFS_v1nssl_nohail_noccn.txt', 'input_RRFS_v1nssl_nohailnoccn.nml', 600.0, 600.0 , False)) suite_list.append(suite('SCM_csawmg', 'tracers_csawmg.txt', 'input_csawmg.nml', 600.0, 1800.0, False)) +suite_list.append(suite('SCM_GFS_v16_debug', 'tracers_GFS_v16.txt', 'input_GFS_v16.nml', 600.0, 1800.0, False)) def main(): diff --git a/test/rt_test_cases.py b/test/rt_test_cases.py index 1660b48c9..2fba45bfb 100644 --- a/test/rt_test_cases.py +++ b/test/rt_test_cases.py @@ -56,6 +56,7 @@ {"case": "bomex", "suite": "SCM_RRFS_v1beta"}, \ {"case": "bomex", "suite": "SCM_RAP"}, \ {"case": "bomex", "suite": "SCM_GFS_v15p2"}, \ + {"case": "bomex", "suite": "SCM_GFS_v16_debug"}, \ {"case": "astex", "suite": "SCM_GFS_v17_p8"}, \ {"case": "astex", "suite": "SCM_HRRR"}, \ {"case": "astex", "suite": "SCM_RRFS_v1beta"}, \ From f85b6c72c5c1416d9b0420641d079d2ceb20f1c6 Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Thu, 17 Oct 2024 15:22:56 -0400 Subject: [PATCH 25/42] add SDFs using GFS_Debug.F90 schemes --- ccpp/suites/suite_SCM_GFS_v16_debug.xml | 85 ++++++++++++++++++++++ ccpp/suites/suite_SCM_GFS_v16_debug_ps.xml | 66 +++++++++++++++++ 2 files changed, 151 insertions(+) create mode 100644 ccpp/suites/suite_SCM_GFS_v16_debug.xml create mode 100644 ccpp/suites/suite_SCM_GFS_v16_debug_ps.xml diff --git a/ccpp/suites/suite_SCM_GFS_v16_debug.xml b/ccpp/suites/suite_SCM_GFS_v16_debug.xml new file mode 100644 index 000000000..632eec067 --- /dev/null +++ b/ccpp/suites/suite_SCM_GFS_v16_debug.xml @@ -0,0 +1,85 @@ + + + + + + GFS_time_vary_pre + GFS_rrtmg_setup + GFS_rad_time_vary + GFS_phys_time_vary + + + + + GFS_suite_interstitial_rad_reset + GFS_rrtmg_pre + GFS_radiation_surface + rad_sw_pre + rrtmg_sw + rrtmg_sw_post + rrtmg_lw + rrtmg_lw_post + GFS_rrtmg_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 + GFS_diagtoscreen + GFS_interstitialtoscreen + GFS_checkland + GFS_checktracers + GFS_abort + + + diff --git a/ccpp/suites/suite_SCM_GFS_v16_debug_ps.xml b/ccpp/suites/suite_SCM_GFS_v16_debug_ps.xml new file mode 100644 index 000000000..11607b39e --- /dev/null +++ b/ccpp/suites/suite_SCM_GFS_v16_debug_ps.xml @@ -0,0 +1,66 @@ + + + + + + GFS_time_vary_pre + GFS_rrtmg_setup + GFS_rad_time_vary + GFS_phys_time_vary + + + + + GFS_suite_interstitial_rad_reset + GFS_rrtmg_pre + GFS_radiation_surface + rad_sw_pre + rrtmg_sw + rrtmg_sw_post + rrtmg_lw + rrtmg_lw_post + GFS_rrtmg_post + + + + + GFS_suite_interstitial_phys_reset + GFS_suite_stateout_reset + get_prs_fv3 + GFS_suite_interstitial_1 + GFS_surface_generic_pre + scm_sfc_flux_spec + dcyc2t3 + GFS_suite_interstitial_2 + 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 + GFS_diagtoscreen + GFS_interstitialtoscreen + GFS_checkland + GFS_checktracers + GFS_abort + + + From 10fd4d0b5b3091e1cb7b3112455a03e0cdc498f7 Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Thu, 17 Oct 2024 17:01:12 -0400 Subject: [PATCH 26/42] updates to work with ufs-dev PR#223 --- .gitmodules | 2 +- ccpp/config/ccpp_prebuild_config.py | 9 +++- ccpp/physics | 2 +- ccpp/suites/suite_HAFS_v0_hwrf.xml | 2 +- ccpp/suites/suite_HAFS_v0_hwrf_ps.xml | 2 +- ccpp/suites/suite_HAFS_v0_hwrf_thompson.xml | 2 +- .../suites/suite_HAFS_v0_hwrf_thompson_ps.xml | 2 +- ccpp/suites/suite_SCM_GFS_v15p2.xml | 2 +- ccpp/suites/suite_SCM_GFS_v15p2_ACM_ps.xml | 2 +- ccpp/suites/suite_SCM_GFS_v15p2_FA.xml | 2 +- ccpp/suites/suite_SCM_GFS_v15p2_MYJ.xml | 2 +- ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP.xml | 2 +- ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP_ps.xml | 2 +- ccpp/suites/suite_SCM_GFS_v15p2_YSU_ps.xml | 2 +- ccpp/suites/suite_SCM_GFS_v15p2_no_nsst.xml | 2 +- .../suites/suite_SCM_GFS_v15p2_no_nsst_ps.xml | 2 +- ccpp/suites/suite_SCM_GFS_v15p2_noahmp.xml | 2 +- ccpp/suites/suite_SCM_GFS_v15p2_ps.xml | 2 +- ccpp/suites/suite_SCM_GFS_v15p2_saYSU_ps.xml | 2 +- ccpp/suites/suite_SCM_GFS_v16.xml | 2 +- ccpp/suites/suite_SCM_GFS_v16_RRTMGP.xml | 2 +- ccpp/suites/suite_SCM_GFS_v16_RRTMGP_ps.xml | 2 +- ccpp/suites/suite_SCM_GFS_v16_debug.xml | 2 +- ccpp/suites/suite_SCM_GFS_v16_debug_ps.xml | 2 +- ccpp/suites/suite_SCM_GFS_v16_no_nsst.xml | 2 +- ccpp/suites/suite_SCM_GFS_v16_no_nsst_ps.xml | 2 +- ccpp/suites/suite_SCM_GFS_v16_ps.xml | 2 +- ccpp/suites/suite_SCM_GFS_v16_ugwpv1.xml | 2 +- ccpp/suites/suite_SCM_GFS_v17_p8.xml | 2 +- ccpp/suites/suite_SCM_GFS_v17_p8_c3.xml | 2 +- ccpp/suites/suite_SCM_GFS_v17_p8_c3_ps.xml | 2 +- ccpp/suites/suite_SCM_GFS_v17_p8_ps.xml | 2 +- ccpp/suites/suite_SCM_GFS_v17_p8_ugwpv1.xml | 2 +- .../suites/suite_SCM_GFS_v17_p8_ugwpv1_ps.xml | 2 +- ccpp/suites/suite_SCM_GSD_v1.xml | 2 +- ccpp/suites/suite_SCM_GSD_v1_ps.xml | 2 +- ccpp/suites/suite_SCM_GSD_v1nssl.xml | 2 +- ccpp/suites/suite_SCM_GSD_v1nssl_ps.xml | 2 +- ccpp/suites/suite_SCM_HRRR.xml | 2 +- ccpp/suites/suite_SCM_HRRR_gf.xml | 2 +- ccpp/suites/suite_SCM_HRRR_gf_ps.xml | 2 +- ccpp/suites/suite_SCM_HRRR_ps.xml | 2 +- ccpp/suites/suite_SCM_RAP.xml | 2 +- ccpp/suites/suite_SCM_RAP_ps.xml | 2 +- ccpp/suites/suite_SCM_RRFS_v1alpha.xml | 2 +- ccpp/suites/suite_SCM_RRFS_v1alpha_ps.xml | 2 +- ccpp/suites/suite_SCM_RRFS_v1beta.xml | 2 +- ccpp/suites/suite_SCM_RRFS_v1beta_ps.xml | 2 +- ccpp/suites/suite_SCM_RRFS_v1nssl.xml | 2 +- ccpp/suites/suite_SCM_WoFS_v0.xml | 2 +- ccpp/suites/suite_SCM_WoFS_v0_ps.xml | 2 +- ccpp/suites/suite_SCM_csawmg.xml | 2 +- ccpp/suites/suite_SCM_csawmg_ps.xml | 2 +- scm/src/GFS_typedefs.F90 | 44 +++++++++++++------ scm/src/GFS_typedefs.meta | 26 ++++++++++- 55 files changed, 114 insertions(+), 69 deletions(-) diff --git a/.gitmodules b/.gitmodules index e0d1393f1..1011978f3 100644 --- a/.gitmodules +++ b/.gitmodules @@ -5,7 +5,7 @@ [submodule "ccpp-physics"] path = ccpp/physics url = https://github.com/grantfirl/ccpp-physics - branch = ufs-dev-PR183 + branch = ufs-dev-PR223 [submodule "CMakeModules"] path = CMakeModules url = https://github.com/noaa-emc/CMakeModules diff --git a/ccpp/config/ccpp_prebuild_config.py b/ccpp/config/ccpp_prebuild_config.py index d115f34cf..c63650382 100755 --- a/ccpp/config/ccpp_prebuild_config.py +++ b/ccpp/config/ccpp_prebuild_config.py @@ -19,8 +19,8 @@ 'ccpp/physics/physics/hooks/machine.F', 'ccpp/physics/physics/Radiation/RRTMG/radsw_param.f', 'ccpp/physics/physics/Radiation/RRTMG/radlw_param.f', - 'ccpp/physics/physics/photochem/h2o_def.f', 'ccpp/physics/physics/photochem/module_ozphys.F90', + 'ccpp/physics/physics/photochem/module_h2ophys.F90', 'ccpp/physics/physics/Interstitials/UFS_SCM_NEPTUNE/module_ccpp_suite_simulator.F90', 'scm/src/CCPP_typedefs.F90', 'scm/src/GFS_typedefs.F90', @@ -49,6 +49,10 @@ 'module_ozphys' : '', 'ty_ozphys' : '', }, + 'module_h2ophys' : { + 'module_h2ophys' : '', + 'ty_h2ophys' : '', + }, 'CCPP_typedefs' : { 'GFS_interstitial_type' : 'physics%Interstitial(cdata%thrd_no)', 'CCPP_typedefs' : '', @@ -96,6 +100,7 @@ 'ccpp/physics/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_post.F90' , 'ccpp/physics/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_debug.F90' , 'ccpp/physics/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.F90' , + 'ccpp/physics/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_photochemistry.F90' , 'ccpp/physics/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.scm.F90' , 'ccpp/physics/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.F90' , 'ccpp/physics/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_post.F90' , @@ -164,7 +169,7 @@ 'ccpp/physics/physics/GWD/gwdc_post.f', 'ccpp/physics/physics/GWD/gwdps.f', 'ccpp/physics/physics/GWD/rayleigh_damp.f', - 'ccpp/physics/physics/photochem/h2ophys.f', + 'ccpp/physics/physics/photochem/module_h2ophys.F90', 'ccpp/physics/physics/photochem/module_ozphys.F90', 'ccpp/physics/physics/MP/Ferrier_Aligo/mp_fer_hires.F90', 'ccpp/physics/physics/MP/GFDL/gfdl_cloud_microphys.F90', diff --git a/ccpp/physics b/ccpp/physics index bbe11c3b6..69aacf5bb 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit bbe11c3b60e1c65b9518b8d318534c5cb2728967 +Subproject commit 69aacf5bb4400b0946c5bd81bf40ab9c6c8b5e27 diff --git a/ccpp/suites/suite_HAFS_v0_hwrf.xml b/ccpp/suites/suite_HAFS_v0_hwrf.xml index c96348cfd..1b71266eb 100644 --- a/ccpp/suites/suite_HAFS_v0_hwrf.xml +++ b/ccpp/suites/suite_HAFS_v0_hwrf.xml @@ -60,7 +60,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 diff --git a/ccpp/suites/suite_HAFS_v0_hwrf_ps.xml b/ccpp/suites/suite_HAFS_v0_hwrf_ps.xml index cfae0831a..705b5942e 100644 --- a/ccpp/suites/suite_HAFS_v0_hwrf_ps.xml +++ b/ccpp/suites/suite_HAFS_v0_hwrf_ps.xml @@ -41,7 +41,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 diff --git a/ccpp/suites/suite_HAFS_v0_hwrf_thompson.xml b/ccpp/suites/suite_HAFS_v0_hwrf_thompson.xml index e59f0ebfe..906912919 100644 --- a/ccpp/suites/suite_HAFS_v0_hwrf_thompson.xml +++ b/ccpp/suites/suite_HAFS_v0_hwrf_thompson.xml @@ -62,7 +62,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 diff --git a/ccpp/suites/suite_HAFS_v0_hwrf_thompson_ps.xml b/ccpp/suites/suite_HAFS_v0_hwrf_thompson_ps.xml index 1831f8829..b4d01df6d 100644 --- a/ccpp/suites/suite_HAFS_v0_hwrf_thompson_ps.xml +++ b/ccpp/suites/suite_HAFS_v0_hwrf_thompson_ps.xml @@ -43,7 +43,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 diff --git a/ccpp/suites/suite_SCM_GFS_v15p2.xml b/ccpp/suites/suite_SCM_GFS_v15p2.xml index 087e25d4a..f5b6afea0 100644 --- a/ccpp/suites/suite_SCM_GFS_v15p2.xml +++ b/ccpp/suites/suite_SCM_GFS_v15p2.xml @@ -59,7 +59,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_ACM_ps.xml b/ccpp/suites/suite_SCM_GFS_v15p2_ACM_ps.xml index 8f6cc0d53..97d026929 100644 --- a/ccpp/suites/suite_SCM_GFS_v15p2_ACM_ps.xml +++ b/ccpp/suites/suite_SCM_GFS_v15p2_ACM_ps.xml @@ -40,7 +40,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_FA.xml b/ccpp/suites/suite_SCM_GFS_v15p2_FA.xml index 19d469bc6..2c4a6ba04 100644 --- a/ccpp/suites/suite_SCM_GFS_v15p2_FA.xml +++ b/ccpp/suites/suite_SCM_GFS_v15p2_FA.xml @@ -59,7 +59,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_MYJ.xml b/ccpp/suites/suite_SCM_GFS_v15p2_MYJ.xml index ff52d53dc..7a1221e82 100644 --- a/ccpp/suites/suite_SCM_GFS_v15p2_MYJ.xml +++ b/ccpp/suites/suite_SCM_GFS_v15p2_MYJ.xml @@ -59,7 +59,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP.xml b/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP.xml index 501705f91..700d6a3f5 100644 --- a/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP.xml +++ b/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP.xml @@ -60,7 +60,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP_ps.xml b/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP_ps.xml index ef731e0b5..03f602f86 100644 --- a/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP_ps.xml +++ b/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP_ps.xml @@ -41,7 +41,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_YSU_ps.xml b/ccpp/suites/suite_SCM_GFS_v15p2_YSU_ps.xml index f63ab5537..aeb6bceab 100644 --- a/ccpp/suites/suite_SCM_GFS_v15p2_YSU_ps.xml +++ b/ccpp/suites/suite_SCM_GFS_v15p2_YSU_ps.xml @@ -40,7 +40,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_no_nsst.xml b/ccpp/suites/suite_SCM_GFS_v15p2_no_nsst.xml index 8fb960315..4ab952c2e 100644 --- a/ccpp/suites/suite_SCM_GFS_v15p2_no_nsst.xml +++ b/ccpp/suites/suite_SCM_GFS_v15p2_no_nsst.xml @@ -57,7 +57,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_no_nsst_ps.xml b/ccpp/suites/suite_SCM_GFS_v15p2_no_nsst_ps.xml index a409f3edc..226651ec5 100644 --- a/ccpp/suites/suite_SCM_GFS_v15p2_no_nsst_ps.xml +++ b/ccpp/suites/suite_SCM_GFS_v15p2_no_nsst_ps.xml @@ -40,7 +40,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_noahmp.xml b/ccpp/suites/suite_SCM_GFS_v15p2_noahmp.xml index c845c8878..18425531a 100644 --- a/ccpp/suites/suite_SCM_GFS_v15p2_noahmp.xml +++ b/ccpp/suites/suite_SCM_GFS_v15p2_noahmp.xml @@ -59,7 +59,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_ps.xml b/ccpp/suites/suite_SCM_GFS_v15p2_ps.xml index 9fb1ac66b..e474cdf3f 100644 --- a/ccpp/suites/suite_SCM_GFS_v15p2_ps.xml +++ b/ccpp/suites/suite_SCM_GFS_v15p2_ps.xml @@ -40,7 +40,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_saYSU_ps.xml b/ccpp/suites/suite_SCM_GFS_v15p2_saYSU_ps.xml index 9b3948944..2e613b132 100644 --- a/ccpp/suites/suite_SCM_GFS_v15p2_saYSU_ps.xml +++ b/ccpp/suites/suite_SCM_GFS_v15p2_saYSU_ps.xml @@ -40,7 +40,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_GFS_v16.xml b/ccpp/suites/suite_SCM_GFS_v16.xml index 723dbd910..723659ab3 100644 --- a/ccpp/suites/suite_SCM_GFS_v16.xml +++ b/ccpp/suites/suite_SCM_GFS_v16.xml @@ -59,7 +59,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_GFS_v16_RRTMGP.xml b/ccpp/suites/suite_SCM_GFS_v16_RRTMGP.xml index b427bcf25..174d07734 100644 --- a/ccpp/suites/suite_SCM_GFS_v16_RRTMGP.xml +++ b/ccpp/suites/suite_SCM_GFS_v16_RRTMGP.xml @@ -60,7 +60,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_GFS_v16_RRTMGP_ps.xml b/ccpp/suites/suite_SCM_GFS_v16_RRTMGP_ps.xml index 31ea5c712..4d8b8e8a6 100644 --- a/ccpp/suites/suite_SCM_GFS_v16_RRTMGP_ps.xml +++ b/ccpp/suites/suite_SCM_GFS_v16_RRTMGP_ps.xml @@ -41,7 +41,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_GFS_v16_debug.xml b/ccpp/suites/suite_SCM_GFS_v16_debug.xml index 632eec067..df92a158f 100644 --- a/ccpp/suites/suite_SCM_GFS_v16_debug.xml +++ b/ccpp/suites/suite_SCM_GFS_v16_debug.xml @@ -59,7 +59,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_GFS_v16_debug_ps.xml b/ccpp/suites/suite_SCM_GFS_v16_debug_ps.xml index 11607b39e..bff152407 100644 --- a/ccpp/suites/suite_SCM_GFS_v16_debug_ps.xml +++ b/ccpp/suites/suite_SCM_GFS_v16_debug_ps.xml @@ -40,7 +40,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_GFS_v16_no_nsst.xml b/ccpp/suites/suite_SCM_GFS_v16_no_nsst.xml index 19733a6eb..77d4d613f 100644 --- a/ccpp/suites/suite_SCM_GFS_v16_no_nsst.xml +++ b/ccpp/suites/suite_SCM_GFS_v16_no_nsst.xml @@ -57,7 +57,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_GFS_v16_no_nsst_ps.xml b/ccpp/suites/suite_SCM_GFS_v16_no_nsst_ps.xml index 5437699c1..e8a247683 100644 --- a/ccpp/suites/suite_SCM_GFS_v16_no_nsst_ps.xml +++ b/ccpp/suites/suite_SCM_GFS_v16_no_nsst_ps.xml @@ -40,7 +40,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_GFS_v16_ps.xml b/ccpp/suites/suite_SCM_GFS_v16_ps.xml index 6320bf6a6..98d24e590 100644 --- a/ccpp/suites/suite_SCM_GFS_v16_ps.xml +++ b/ccpp/suites/suite_SCM_GFS_v16_ps.xml @@ -40,7 +40,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_GFS_v16_ugwpv1.xml b/ccpp/suites/suite_SCM_GFS_v16_ugwpv1.xml index 0d4ebc861..0e7a06823 100644 --- a/ccpp/suites/suite_SCM_GFS_v16_ugwpv1.xml +++ b/ccpp/suites/suite_SCM_GFS_v16_ugwpv1.xml @@ -59,7 +59,7 @@ ugwpv1_gsldrag_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_GFS_v17_p8.xml b/ccpp/suites/suite_SCM_GFS_v17_p8.xml index 17eb9993b..49662418d 100644 --- a/ccpp/suites/suite_SCM_GFS_v17_p8.xml +++ b/ccpp/suites/suite_SCM_GFS_v17_p8.xml @@ -60,7 +60,7 @@ unified_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_GFS_v17_p8_c3.xml b/ccpp/suites/suite_SCM_GFS_v17_p8_c3.xml index 5105ec520..a984aab62 100644 --- a/ccpp/suites/suite_SCM_GFS_v17_p8_c3.xml +++ b/ccpp/suites/suite_SCM_GFS_v17_p8_c3.xml @@ -60,7 +60,7 @@ unified_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_GFS_v17_p8_c3_ps.xml b/ccpp/suites/suite_SCM_GFS_v17_p8_c3_ps.xml index 4a759285c..eee4317c7 100644 --- a/ccpp/suites/suite_SCM_GFS_v17_p8_c3_ps.xml +++ b/ccpp/suites/suite_SCM_GFS_v17_p8_c3_ps.xml @@ -41,7 +41,7 @@ unified_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_GFS_v17_p8_ps.xml b/ccpp/suites/suite_SCM_GFS_v17_p8_ps.xml index 35c3941a8..68d4970eb 100644 --- a/ccpp/suites/suite_SCM_GFS_v17_p8_ps.xml +++ b/ccpp/suites/suite_SCM_GFS_v17_p8_ps.xml @@ -41,7 +41,7 @@ unified_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_GFS_v17_p8_ugwpv1.xml b/ccpp/suites/suite_SCM_GFS_v17_p8_ugwpv1.xml index 865fe47f6..e39f865a8 100644 --- a/ccpp/suites/suite_SCM_GFS_v17_p8_ugwpv1.xml +++ b/ccpp/suites/suite_SCM_GFS_v17_p8_ugwpv1.xml @@ -60,7 +60,7 @@ ugwpv1_gsldrag_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_GFS_v17_p8_ugwpv1_ps.xml b/ccpp/suites/suite_SCM_GFS_v17_p8_ugwpv1_ps.xml index cd62b628e..b0dd07353 100644 --- a/ccpp/suites/suite_SCM_GFS_v17_p8_ugwpv1_ps.xml +++ b/ccpp/suites/suite_SCM_GFS_v17_p8_ugwpv1_ps.xml @@ -41,7 +41,7 @@ ugwpv1_gsldrag_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_GSD_v1.xml b/ccpp/suites/suite_SCM_GSD_v1.xml index d7d45d10f..ae48d3ef1 100644 --- a/ccpp/suites/suite_SCM_GSD_v1.xml +++ b/ccpp/suites/suite_SCM_GSD_v1.xml @@ -59,7 +59,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_GSD_v1_ps.xml b/ccpp/suites/suite_SCM_GSD_v1_ps.xml index 83fa060a2..94d72810e 100644 --- a/ccpp/suites/suite_SCM_GSD_v1_ps.xml +++ b/ccpp/suites/suite_SCM_GSD_v1_ps.xml @@ -41,7 +41,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_GSD_v1nssl.xml b/ccpp/suites/suite_SCM_GSD_v1nssl.xml index fefdc11ad..f77b5eba6 100644 --- a/ccpp/suites/suite_SCM_GSD_v1nssl.xml +++ b/ccpp/suites/suite_SCM_GSD_v1nssl.xml @@ -59,7 +59,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_GSD_v1nssl_ps.xml b/ccpp/suites/suite_SCM_GSD_v1nssl_ps.xml index fbf82ce98..88fc1e8fa 100644 --- a/ccpp/suites/suite_SCM_GSD_v1nssl_ps.xml +++ b/ccpp/suites/suite_SCM_GSD_v1nssl_ps.xml @@ -41,7 +41,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_HRRR.xml b/ccpp/suites/suite_SCM_HRRR.xml index 7904da3f3..57912f78a 100644 --- a/ccpp/suites/suite_SCM_HRRR.xml +++ b/ccpp/suites/suite_SCM_HRRR.xml @@ -59,7 +59,7 @@ drag_suite GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_suite_interstitial_4 diff --git a/ccpp/suites/suite_SCM_HRRR_gf.xml b/ccpp/suites/suite_SCM_HRRR_gf.xml index f80ab4c7c..e4637008b 100644 --- a/ccpp/suites/suite_SCM_HRRR_gf.xml +++ b/ccpp/suites/suite_SCM_HRRR_gf.xml @@ -57,7 +57,7 @@ drag_suite GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_HRRR_gf_ps.xml b/ccpp/suites/suite_SCM_HRRR_gf_ps.xml index 3fc25cc5b..1329f4b97 100644 --- a/ccpp/suites/suite_SCM_HRRR_gf_ps.xml +++ b/ccpp/suites/suite_SCM_HRRR_gf_ps.xml @@ -41,7 +41,7 @@ drag_suite GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_HRRR_ps.xml b/ccpp/suites/suite_SCM_HRRR_ps.xml index e1f930dbf..0ac6c29ff 100644 --- a/ccpp/suites/suite_SCM_HRRR_ps.xml +++ b/ccpp/suites/suite_SCM_HRRR_ps.xml @@ -40,7 +40,7 @@ drag_suite GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_suite_interstitial_4 diff --git a/ccpp/suites/suite_SCM_RAP.xml b/ccpp/suites/suite_SCM_RAP.xml index 68040872d..62e945e1e 100644 --- a/ccpp/suites/suite_SCM_RAP.xml +++ b/ccpp/suites/suite_SCM_RAP.xml @@ -58,7 +58,7 @@ drag_suite GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_RAP_ps.xml b/ccpp/suites/suite_SCM_RAP_ps.xml index 6855b1167..4149acba5 100644 --- a/ccpp/suites/suite_SCM_RAP_ps.xml +++ b/ccpp/suites/suite_SCM_RAP_ps.xml @@ -40,7 +40,7 @@ drag_suite GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_RRFS_v1alpha.xml b/ccpp/suites/suite_SCM_RRFS_v1alpha.xml index 7b0ec9db9..8a6e99e05 100644 --- a/ccpp/suites/suite_SCM_RRFS_v1alpha.xml +++ b/ccpp/suites/suite_SCM_RRFS_v1alpha.xml @@ -60,7 +60,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_suite_interstitial_4 diff --git a/ccpp/suites/suite_SCM_RRFS_v1alpha_ps.xml b/ccpp/suites/suite_SCM_RRFS_v1alpha_ps.xml index f21105dba..5e6f6e34a 100644 --- a/ccpp/suites/suite_SCM_RRFS_v1alpha_ps.xml +++ b/ccpp/suites/suite_SCM_RRFS_v1alpha_ps.xml @@ -41,7 +41,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_suite_interstitial_4 diff --git a/ccpp/suites/suite_SCM_RRFS_v1beta.xml b/ccpp/suites/suite_SCM_RRFS_v1beta.xml index 1921f3f56..4e87c32cc 100644 --- a/ccpp/suites/suite_SCM_RRFS_v1beta.xml +++ b/ccpp/suites/suite_SCM_RRFS_v1beta.xml @@ -60,7 +60,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_suite_interstitial_4 diff --git a/ccpp/suites/suite_SCM_RRFS_v1beta_ps.xml b/ccpp/suites/suite_SCM_RRFS_v1beta_ps.xml index 4c554c438..d663d450b 100644 --- a/ccpp/suites/suite_SCM_RRFS_v1beta_ps.xml +++ b/ccpp/suites/suite_SCM_RRFS_v1beta_ps.xml @@ -41,7 +41,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_suite_interstitial_4 diff --git a/ccpp/suites/suite_SCM_RRFS_v1nssl.xml b/ccpp/suites/suite_SCM_RRFS_v1nssl.xml index 439f34737..926a5e12a 100644 --- a/ccpp/suites/suite_SCM_RRFS_v1nssl.xml +++ b/ccpp/suites/suite_SCM_RRFS_v1nssl.xml @@ -60,7 +60,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 diff --git a/ccpp/suites/suite_SCM_WoFS_v0.xml b/ccpp/suites/suite_SCM_WoFS_v0.xml index a16c8b116..87a728561 100644 --- a/ccpp/suites/suite_SCM_WoFS_v0.xml +++ b/ccpp/suites/suite_SCM_WoFS_v0.xml @@ -60,7 +60,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_MP_generic_pre mp_nssl diff --git a/ccpp/suites/suite_SCM_WoFS_v0_ps.xml b/ccpp/suites/suite_SCM_WoFS_v0_ps.xml index 3592ac2b5..24948795e 100644 --- a/ccpp/suites/suite_SCM_WoFS_v0_ps.xml +++ b/ccpp/suites/suite_SCM_WoFS_v0_ps.xml @@ -41,7 +41,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_MP_generic_pre mp_nssl diff --git a/ccpp/suites/suite_SCM_csawmg.xml b/ccpp/suites/suite_SCM_csawmg.xml index 61e856774..a0b541b3c 100644 --- a/ccpp/suites/suite_SCM_csawmg.xml +++ b/ccpp/suites/suite_SCM_csawmg.xml @@ -60,7 +60,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/ccpp/suites/suite_SCM_csawmg_ps.xml b/ccpp/suites/suite_SCM_csawmg_ps.xml index c7ccf9963..44e09e6f0 100644 --- a/ccpp/suites/suite_SCM_csawmg_ps.xml +++ b/ccpp/suites/suite_SCM_csawmg_ps.xml @@ -41,7 +41,7 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - h2ophys + GFS_photochemistry get_phi_fv3 GFS_suite_interstitial_3 GFS_DCNV_generic_pre diff --git a/scm/src/GFS_typedefs.F90 b/scm/src/GFS_typedefs.F90 index 7966fc2ca..e8e10fedb 100644 --- a/scm/src/GFS_typedefs.F90 +++ b/scm/src/GFS_typedefs.F90 @@ -5,8 +5,8 @@ module GFS_typedefs use module_radsw_parameters, only: topfsw_type, sfcfsw_type use module_radlw_parameters, only: topflw_type, sfcflw_type - use h2o_def, only: levh2o, h2o_coeff use module_ozphys, only: ty_ozphys + use module_h2ophys, only: ty_h2ophys use module_ccpp_suite_simulator, only: base_physics_process implicit none @@ -1012,6 +1012,7 @@ module GFS_typedefs real(kind=kind_phys) :: dt_inner !< time step for the inner loop in s logical :: sedi_semi !< flag for semi Lagrangian sedi of rain integer :: decfl !< deformed CFL factor + logical :: thpsnmp_is_init !< Local scheme initialization flag !--- GFDL microphysical paramters logical :: lgfdlmprad !< flag for GFDL mp scheme and radiation consistency @@ -1601,6 +1602,9 @@ module GFS_typedefs real(kind=kind_phys), pointer :: si(:) !< vertical sigma coordinate for model initialization real(kind=kind_phys) :: sec !< seconds since model initialization +!--- Increment grid + logical :: increment_file_on_native_grid ! increment on native grid else Gaussian grid + !--- IAU integer :: iau_offset real(kind=kind_phys) :: iau_delthrs ! iau time interval (to scale increments) in hours @@ -1624,6 +1628,10 @@ module GFS_typedefs type(ty_ozphys) :: ozphys !< DDT with data needed by ozone physics integer :: levozp !< Number of vertical layers in ozone forcing data integer :: oz_coeff !< Number of coefficients in ozone forcing data +!--- NRL h2o photchemistry physics + type(ty_h2ophys) :: h2ophys !< DDT with data needed by h2o photchemistry physics. + integer :: levh2o !< Number of vertical layers in stratospheric h2o data. + integer :: h2o_coeff !< Number of coefficients in stratospheric h2o data. !--- CCPP suite simulator logical :: do_ccpp_suite_sim ! @@ -3556,6 +3564,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & real(kind=kind_phys) :: dt_inner = -999.0 !< time step for the inner loop logical :: sedi_semi = .false. !< flag for semi Lagrangian sedi of rain integer :: decfl = 8 !< deformed CFL factor + logical :: thpsnmp_is_init = .false. !< Local scheme initialization flag !--- GFDL microphysical parameters logical :: lgfdlmprad = .false. !< flag for GFDLMP radiation interaction @@ -3900,6 +3909,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & logical :: ca_entr = .false. logical :: ca_trigger = .false. +!--- Increment grid + logical :: increment_file_on_native_grid = .false. ! increment on native grid else Gaussian grid + !--- IAU options real(kind=kind_phys) :: iau_delthrs = 0 !< iau time interval (to scale increments) character(len=240) :: iau_inc_files(7) = '' !< list of increment files @@ -3985,6 +3997,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & integer :: kozpl = 28 !< File identifier for ozone forcing data integer :: kozc = 48 !< File identifier for ozone climotology data +!--- NRL h2o photochemistry physics + integer :: kh2oc = 29 !< File identifier for h2o photochemistry data. + !--- CCPP suite simulator logical :: do_ccpp_suite_sim = .false. integer :: nphys_proc = 0 @@ -4134,6 +4149,8 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & nseed, nseed_g, nthresh, do_ca, ca_advect, & ca_sgs, ca_global,iseed_ca,ca_smooth, & nspinup,ca_amplitude,nsmooth,ca_closure,ca_entr,ca_trigger, & + !--- Increment grid + increment_file_on_native_grid, & !--- IAU iau_delthrs,iaufhrs,iau_inc_files,iau_filter_increments, & iau_drymassfixer, & @@ -4966,18 +4983,6 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%oz_phys_2015 = oz_phys_2015 Model%h2o_phys = h2o_phys - ! To ensure that these values match what's in the physics, - ! array sizes are compared during model init in GFS_phys_time_vary_init() - ! - ! from module h2ointerp - if (h2o_phys) then - levh2o = 72 - h2o_coeff = 3 - else - levh2o = 1 - h2o_coeff = 1 - end if - Model%pdfcld = pdfcld Model%shcnvcw = shcnvcw Model%redrag = redrag @@ -5693,6 +5698,17 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & err_message = Model%ozphys%load_o3clim('global_o3prdlos.f77',kozc) end if + !--- NRL h2o photochemistry physics. + if (Model%h2o_phys) then + ! Load data for h2o photochemistry physics. + err_message = Model%h2ophys%load('global_h2oprdlos.f77',kh2oc) + Model%levh2o = Model%h2ophys%nlev + Model%h2o_coeff = Model%h2ophys%ncf + else + Model%levh2o = 1 + Model%h2o_coeff = 1 + end if + !--- quantities to be used to derive phy_f*d totals Model%nshoc_2d = nshoc_2d Model%nshoc_3d = nshoc_3d @@ -7235,7 +7251,7 @@ subroutine tbd_create (Tbd, Model) !--- ozone and stratosphere h2o needs allocate (Tbd%ozpl (IM,Model%levozp,Model%oz_coeff)) - allocate (Tbd%h2opl (IM,levh2o,h2o_coeff)) + allocate (Tbd%h2opl (IM,Model%levh2o,Model%h2o_coeff)) Tbd%h2opl = clear_val Tbd%ozpl = clear_val diff --git a/scm/src/GFS_typedefs.meta b/scm/src/GFS_typedefs.meta index 0b990e645..3bf3e7dee 100644 --- a/scm/src/GFS_typedefs.meta +++ b/scm/src/GFS_typedefs.meta @@ -4866,6 +4866,12 @@ units = count dimensions = () type = integer +[thpsnmp_is_init] + standard_name = flag_for_thompson_mp_scheme_initialization + long_name = flag carrying scheme initialization status + units = flag + dimensions = () + type = logical [lgfdlmprad] standard_name = flag_for_GFDL_microphysics_radiation_interaction long_name = flag for GFDL microphysics-radiation interaction @@ -5379,6 +5385,12 @@ units = mixed dimensions = () type = ty_ozphys +[h2ophys] + standard_name = dataset_for_h2o_photochemistry_physics + long_name = dataset for NRL h2o photochemistry physics + units = mixed + dimensions = () + type = ty_h2ophys [h2o_phys] standard_name = flag_for_stratospheric_water_vapor_physics long_name = flag for stratospheric water vapor physics @@ -7063,6 +7075,18 @@ units = count dimensions = () type = integer +[levh2o] + standard_name = vertical_dimension_of_h2o_forcing_data + long_name = number of vertical layers in h2o forcing data + units = count + dimensions = () + type = integer +[h2o_coeff] + standard_name = number_of_coefficients_in_h2o_forcing_data + long_name = number of coefficients in h2o forcing data + units = index + dimensions = () + type = integer [do_ccpp_suite_sim] standard_name = flag_for_CCPP_suite_simulator long_name = flag for ccpp suite simulator @@ -10105,7 +10129,7 @@ relative_path = ../../ccpp/physics/physics dependencies = hooks/machine.F,hooks/physcons.F90 dependencies = Radiation/RRTMG/radlw_param.f,Radiation/RRTMG/radsw_param.f - dependencies = photochem/h2o_def.f,photochem/module_ozphys.F90 + dependencies = photochem/module_ozphys.F90,photochem/module_h2ophys.F90 dependencies = MP/GFDL/GFDL_parse_tracers.F90 dependencies = Interstitials/UFS_SCM_NEPTUNE/GFS_ccpp_suite_sim_pre.F90 From 5bb81e16969e5b9f28942bd9870066ff747112a8 Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Fri, 18 Oct 2024 17:14:05 -0400 Subject: [PATCH 27/42] updates to GFS_typedefs for ufs/dev PR#220 --- .gitmodules | 2 +- ccpp/physics | 2 +- scm/src/GFS_typedefs.F90 | 34 ++++++++++++++++++++++++----- scm/src/GFS_typedefs.meta | 46 ++++++++++++++++++++++++++++++++++----- 4 files changed, 72 insertions(+), 12 deletions(-) diff --git a/.gitmodules b/.gitmodules index 1011978f3..f0f55cf3e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -5,7 +5,7 @@ [submodule "ccpp-physics"] path = ccpp/physics url = https://github.com/grantfirl/ccpp-physics - branch = ufs-dev-PR223 + branch = ufs-dev-PR220 [submodule "CMakeModules"] path = CMakeModules url = https://github.com/noaa-emc/CMakeModules diff --git a/ccpp/physics b/ccpp/physics index 69aacf5bb..9a17b53f1 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 69aacf5bb4400b0946c5bd81bf40ab9c6c8b5e27 +Subproject commit 9a17b53f1f7cef742863f7179222f3a78e2d6c75 diff --git a/scm/src/GFS_typedefs.F90 b/scm/src/GFS_typedefs.F90 index e8e10fedb..f73f6a90c 100644 --- a/scm/src/GFS_typedefs.F90 +++ b/scm/src/GFS_typedefs.F90 @@ -291,6 +291,11 @@ module GFS_typedefs real (kind=kind_phys), pointer :: spec_sh_flux (:) => null() !< specified kinematic surface sensible heat flux real (kind=kind_phys), pointer :: spec_lh_flux (:) => null() !< specified kinematic surface latent heat flux +!--- fire_behavior + real (kind=kind_phys), pointer :: hflx_fire (:) => null() !< kinematic surface upward sensible heat flux of fire + real (kind=kind_phys), pointer :: evap_fire (:) => null() !< kinematic surface upward latent heat flux of fire + real (kind=kind_phys), pointer :: smoke_fire (:) => null() !< smoke emission of fire + !-- In/Out real (kind=kind_phys), pointer :: maxupmf(:) => null() !< maximum up draft mass flux for Grell-Freitas real (kind=kind_phys), pointer :: conv_act(:) => null() !< convective activity counter for Grell-Freitas @@ -760,6 +765,7 @@ module GFS_typedefs logical :: cpllnd !< default no cpllnd collection logical :: cpllnd2atm !< default no lnd->atm coupling logical :: rrfs_sd !< default no rrfs_sd collection + logical :: cpl_fire !< default no fire_behavior collection logical :: use_cice_alb !< default .false. - i.e. don't use albedo imported from the ice model logical :: cpl_imp_mrg !< default no merge import with internal forcings logical :: cpl_imp_dbg !< default no write import data to file post merge @@ -1480,6 +1486,7 @@ module GFS_typedefs integer :: nto2 !< tracer index for oxygen integer :: ntwa !< tracer index for water friendly aerosol integer :: ntia !< tracer index for ice friendly aerosol + integer :: ntfsmoke !< tracer index for fire smoke integer :: ntsmoke !< tracer index for smoke integer :: ntdust !< tracer index for dust integer :: ntcoarsepm !< tracer index for coarse PM @@ -2873,6 +2880,16 @@ subroutine sfcprop_create (Sfcprop, Model) Sfcprop%lu_qfire = clear_val endif + !--- if fire_behavior is on + if(Model%cpl_fire) then + allocate (Sfcprop%hflx_fire (IM)) + allocate (Sfcprop%evap_fire (IM)) + allocate (Sfcprop%smoke_fire (IM)) + Sfcprop%hflx_fire = zero + Sfcprop%evap_fire = zero + Sfcprop%smoke_fire = zero + endif + end subroutine sfcprop_create @@ -2932,7 +2949,7 @@ subroutine coupling_create (Coupling, Model) Coupling%tsfc_radtime = clear_val endif - if (Model%cplflx .or. Model%do_sppt .or. Model%cplchm .or. Model%ca_global .or. Model%cpllnd) then + if (Model%cplflx .or. Model%do_sppt .or. Model%cplchm .or. Model%ca_global .or. Model%cpllnd .or. Model%cpl_fire) then allocate (Coupling%rain_cpl (IM)) allocate (Coupling%snow_cpl (IM)) Coupling%rain_cpl = clear_val @@ -2961,7 +2978,7 @@ subroutine coupling_create (Coupling, Model) ! Coupling%zorlwav_cpl = clear_val ! endif - if (Model%cplflx .or. Model%cpllnd) then + if (Model%cplflx .or. Model%cpllnd .or. Model%cpl_fire) then allocate (Coupling%dlwsfci_cpl (IM)) allocate (Coupling%dswsfci_cpl (IM)) allocate (Coupling%dlwsfc_cpl (IM)) @@ -2995,7 +3012,7 @@ subroutine coupling_create (Coupling, Model) Coupling%nvisdf_cpl = clear_val end if - if (Model%cplflx) then + if (Model%cplflx .or. Model%cpl_fire) then !--- incoming quantities allocate (Coupling%slimskin_cpl (IM)) allocate (Coupling%dusfcin_cpl (IM)) @@ -3160,7 +3177,7 @@ subroutine coupling_create (Coupling, Model) Coupling%pfl_lsan = clear_val endif - if (Model%cplchm .or. Model%cplflx .or. Model%cpllnd) then + if (Model%cplchm .or. Model%cplflx .or. Model%cpllnd .or. Model%cpl_fire) then !--- accumulated convective rainfall allocate (Coupling%rainc_cpl (IM)) Coupling%rainc_cpl = clear_val @@ -3369,6 +3386,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & logical :: cpllnd = .false. !< default no cpllnd collection logical :: cpllnd2atm = .false. !< default no cpllnd2atm coupling logical :: rrfs_sd = .false. !< default no rrfs_sd collection + logical :: cpl_fire = .false. !< default no fire behavior colleciton logical :: use_cice_alb = .false. !< default no cice albedo logical :: cpl_imp_mrg = .false. !< default no merge import with internal forcings logical :: cpl_imp_dbg = .false. !< default no write import data to file post merge @@ -4030,7 +4048,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & !--- coupling parameters cplflx, cplice, cplocn2atm, cplwav, cplwav2atm, cplaqm, & cplchm, cpllnd, cpllnd2atm, cpl_imp_mrg, cpl_imp_dbg, & - rrfs_sd, use_cice_alb, & + cpl_fire, rrfs_sd, use_cice_alb, & #ifdef IDEA_PHYS lsidea, weimer_model, f107_kp_size, f107_kp_interval, & f107_kp_skip_size, f107_kp_data_size, f107_kp_read_in_start, & @@ -4452,6 +4470,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & !--- RRFS-SD Model%rrfs_sd = rrfs_sd + Model%cpl_fire = cpl_fire Model%dust_drylimit_factor = dust_drylimit_factor Model%dust_moist_correction = dust_moist_correction Model%dust_moist_opt = dust_moist_opt @@ -5265,6 +5284,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%nqrimef = get_tracer_index(Model%tracer_names, 'q_rimef', Model%me, Model%master, Model%debug) Model%ntwa = get_tracer_index(Model%tracer_names, 'liq_aero', Model%me, Model%master, Model%debug) Model%ntia = get_tracer_index(Model%tracer_names, 'ice_aero', Model%me, Model%master, Model%debug) + if (Model%cpl_fire) then + Model%ntfsmoke = get_tracer_index(Model%tracer_names, 'fsmoke', Model%me, Model%master, Model%debug) + endif if (Model%rrfs_sd) then Model%ntsmoke = get_tracer_index(Model%tracer_names, 'smoke', Model%me, Model%master, Model%debug) Model%ntdust = get_tracer_index(Model%tracer_names, 'dust', Model%me, Model%master, Model%debug) @@ -6577,6 +6599,7 @@ subroutine control_print(Model) print *, ' cpllnd : ', Model%cpllnd print *, ' cpllnd2atm : ', Model%cpllnd2atm print *, ' rrfs_sd : ', Model%rrfs_sd + print *, ' cpl_fire : ', Model%cpl_fire print *, ' use_cice_alb : ', Model%use_cice_alb print *, ' cpl_imp_mrg : ', Model%cpl_imp_mrg print *, ' cpl_imp_dbg : ', Model%cpl_imp_dbg @@ -7049,6 +7072,7 @@ subroutine control_print(Model) print *, ' nto2 : ', Model%nto2 print *, ' ntwa : ', Model%ntwa print *, ' ntia : ', Model%ntia + print *, ' ntfsmoke : ', Model%ntfsmoke print *, ' ntsmoke : ', Model%ntsmoke print *, ' ntdust : ', Model%ntdust print *, ' ntcoarsepm : ', Model%ntcoarsepm diff --git a/scm/src/GFS_typedefs.meta b/scm/src/GFS_typedefs.meta index 3bf3e7dee..7f08839c9 100644 --- a/scm/src/GFS_typedefs.meta +++ b/scm/src/GFS_typedefs.meta @@ -2377,6 +2377,30 @@ type = real kind = kind_phys active = (do_smoke_coupling) +[hflx_fire] + standard_name = kinematic_surface_upward_sensible_heat_flux_of_fire + long_name = kinematic surface upward sensible heat flux of fire + units = K m s-1 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + active = (do_fire_coupling) +[evap_fire] + standard_name = surface_upward_specific_humidity_flux_of_fire + long_name = kinematic surface upward latent heat flux of fire + units = kg kg-1 m s-1 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + active = (do_fire_coupling) +[smoke_fire] + standard_name = smoke_emission_of_fire + long_name = smoke emission of fire + units = kg m-2 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + active = (do_fire_coupling) ######################################################################## [ccpp-table-properties] @@ -2486,7 +2510,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling .or. flag_for_chemistry_coupling .or. flag_for_land_coupling) + active = (flag_for_surface_flux_coupling .or. flag_for_chemistry_coupling .or. flag_for_land_coupling .or. do_fire_coupling) [snow_cpl] standard_name = cumulative_lwe_thickness_of_snow_amount_for_coupling long_name = total snow precipitation @@ -2494,7 +2518,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling .or. flag_for_stochastic_physics_perturbations .or. flag_for_chemistry_coupling .or. flag_for_global_cellular_automata .or. flag_for_land_coupling) + active = (flag_for_surface_flux_coupling .or. flag_for_stochastic_physics_perturbations .or. flag_for_chemistry_coupling .or. flag_for_global_cellular_automata .or. flag_for_land_coupling .or. do_fire_coupling) [dusfc_cpl] standard_name = cumulative_surface_x_momentum_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc x momentum flux multiplied by timestep @@ -2758,7 +2782,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling .or. flag_for_air_quality_coupling) + active = (flag_for_surface_flux_coupling .or. flag_for_air_quality_coupling .or. do_fire_coupling) [q2mi_cpl] standard_name = specific_humidity_at_2m_for_coupling long_name = instantaneous Q2m @@ -2766,7 +2790,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling .or. flag_for_air_quality_coupling) + active = (flag_for_surface_flux_coupling .or. flag_for_air_quality_coupling .or. do_fire_coupling) [u10mi_cpl] standard_name = x_wind_at_10m_for_coupling long_name = instantaneous U10m @@ -2798,7 +2822,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling .or. flag_for_air_quality_coupling .or. flag_for_land_coupling) + active = (flag_for_surface_flux_coupling .or. flag_for_air_quality_coupling .or. flag_for_land_coupling .or. do_fire_coupling) [ulwsfcin_cpl] standard_name = surface_upwelling_longwave_flux_from_coupled_process long_name = surface upwelling LW flux for coupling @@ -3648,6 +3672,12 @@ units = flag dimensions = () type = logical +[cpl_fire] + standard_name = do_fire_coupling + long_name = flag controlling fire_behavior collection (default off) + units = flag + dimensions = () + type = logical [cpl_imp_mrg] standard_name = flag_for_merging_imported_data long_name = flag controlling cpl_imp_mrg for imported data (default off) @@ -6563,6 +6593,12 @@ units = index dimensions = () type = integer +[ntfsmoke] + standard_name = index_for_fire_smoke_in_tracer_concentration_array + long_name = tracer index for fire smoke + units = index + dimensions = () + type = integer [ntdust] standard_name = index_for_dust_in_tracer_concentration_array long_name = tracer index for dust From baee1fcdb6fe0ebfd47ec6e41ea6224853bbc36b Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Fri, 18 Oct 2024 18:22:43 -0400 Subject: [PATCH 28/42] point to ufs-dev-PR226 branch of ccpp/physics --- .gitmodules | 2 +- ccpp/physics | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index f0f55cf3e..968bb549f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -5,7 +5,7 @@ [submodule "ccpp-physics"] path = ccpp/physics url = https://github.com/grantfirl/ccpp-physics - branch = ufs-dev-PR220 + branch = ufs-dev-PR226 [submodule "CMakeModules"] path = CMakeModules url = https://github.com/noaa-emc/CMakeModules diff --git a/ccpp/physics b/ccpp/physics index 9a17b53f1..eb15d648d 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 9a17b53f1f7cef742863f7179222f3a78e2d6c75 +Subproject commit eb15d648d2751e59218b7ede85d6b00e5256f355 From 9352a5c49d617182ad24c7185b23a4af63b58276 Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Mon, 21 Oct 2024 14:52:41 -0400 Subject: [PATCH 29/42] update ccpp/physics after merge --- .gitmodules | 4 ++-- ccpp/physics | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index 11096bf2d..dc0798c32 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,8 +4,8 @@ branch = main [submodule "ccpp-physics"] path = ccpp/physics - url = https://github.com/grantfirl/ccpp-physics - branch = ufs-dev-PR216 + url = https://github.com/NCAR/ccpp-physics + branch = main [submodule "CMakeModules"] path = CMakeModules url = https://github.com/noaa-emc/CMakeModules diff --git a/ccpp/physics b/ccpp/physics index fbd720d85..653db0a99 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit fbd720d858c78a8f57a5c6b1bdf25cc39884334e +Subproject commit 653db0a999cbb4aa2cb70f08cf4fcf1046438732 From fa831e48cdff29b01bfb9c8ba267c33e119e25a7 Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Tue, 22 Oct 2024 11:51:28 -0400 Subject: [PATCH 30/42] update ccpp after testing --- .gitmodules | 4 ++-- ccpp/physics | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index 373d68a92..dc0798c32 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,8 +4,8 @@ branch = main [submodule "ccpp-physics"] path = ccpp/physics - url = https://github.com/grantfirl/ccpp-physics - branch = ufs-dev-PR219 + url = https://github.com/NCAR/ccpp-physics + branch = main [submodule "CMakeModules"] path = CMakeModules url = https://github.com/noaa-emc/CMakeModules diff --git a/ccpp/physics b/ccpp/physics index be90bc3bf..b31898209 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit be90bc3bf0d45b5aeb0a0bc666c2ecddfedf4988 +Subproject commit b3189820956f993d6f2397b5ba3af26e1f687c44 From 8787b9b139e378204cc99db22214366d8e75a0b4 Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Tue, 22 Oct 2024 13:01:56 -0400 Subject: [PATCH 31/42] add new debug suite to RT compilation --- .github/workflows/ci_run_scm_rts.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci_run_scm_rts.yml b/.github/workflows/ci_run_scm_rts.yml index b23c03422..2d91785e8 100644 --- a/.github/workflows/ci_run_scm_rts.yml +++ b/.github/workflows/ci_run_scm_rts.yml @@ -22,8 +22,8 @@ jobs: sp_ROOT: /home/runner/NCEPLIBS-sp w3emc_ROOT: /home/runner/myw3emc SCM_ROOT: /home/runner/work/ccpp-scm/ccpp-scm - suites: SCM_GFS_v15p2,SCM_GFS_v16,SCM_GFS_v17_p8,SCM_HRRR,SCM_RRFS_v1beta,SCM_RAP,SCM_WoFS_v0,SCM_HRRR_gf,SCM_GFS_v17_p8_ugwpv1,SCM_GFS_v16_RRTMGP - suites_ps: SCM_GFS_v15p2_ps,SCM_GFS_v16_ps,SCM_GFS_v17_p8_ps,SCM_HRRR_ps,SCM_RRFS_v1beta_ps,SCM_RAP_ps,SCM_WoFS_v0_ps,SCM_HRRR_gf_ps,SCM_GFS_v17_p8_ugwpv1_ps,SCM_GFS_v16_RRTMGP_ps + suites: SCM_GFS_v15p2,SCM_GFS_v16,SCM_GFS_v17_p8,SCM_HRRR,SCM_RRFS_v1beta,SCM_RAP,SCM_WoFS_v0,SCM_HRRR_gf,SCM_GFS_v17_p8_ugwpv1,SCM_GFS_v16_RRTMGP,SCM_GFS_v16_debug + suites_ps: SCM_GFS_v15p2_ps,SCM_GFS_v16_ps,SCM_GFS_v17_p8_ps,SCM_HRRR_ps,SCM_RRFS_v1beta_ps,SCM_RAP_ps,SCM_WoFS_v0_ps,SCM_HRRR_gf_ps,SCM_GFS_v17_p8_ugwpv1_ps,SCM_GFS_v16_RRTMGP_ps,SCM_GFS_v16_debug_ps dir_rt: /home/runner/work/ccpp-scm/ccpp-scm/test/artifact-${{matrix.build-type}} dir_bl: /home/runner/work/ccpp-scm/ccpp-scm/test/BL-${{matrix.build-type}} From 473ea75f909ea45378a630393aa18e1d3846c1ec Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Tue, 22 Oct 2024 13:26:05 -0400 Subject: [PATCH 32/42] comment out GFS_abort scheme in new SDFs so that RTs can pass; we don't want a failing run (even if it is on purpose) because it will get flagged and fail CI --- ccpp/suites/suite_SCM_GFS_v16_debug.xml | 2 +- ccpp/suites/suite_SCM_GFS_v16_debug_ps.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ccpp/suites/suite_SCM_GFS_v16_debug.xml b/ccpp/suites/suite_SCM_GFS_v16_debug.xml index 632eec067..eb07d5a5a 100644 --- a/ccpp/suites/suite_SCM_GFS_v16_debug.xml +++ b/ccpp/suites/suite_SCM_GFS_v16_debug.xml @@ -79,7 +79,7 @@ GFS_interstitialtoscreen GFS_checkland GFS_checktracers - GFS_abort + diff --git a/ccpp/suites/suite_SCM_GFS_v16_debug_ps.xml b/ccpp/suites/suite_SCM_GFS_v16_debug_ps.xml index 11607b39e..ba443a816 100644 --- a/ccpp/suites/suite_SCM_GFS_v16_debug_ps.xml +++ b/ccpp/suites/suite_SCM_GFS_v16_debug_ps.xml @@ -60,7 +60,7 @@ GFS_interstitialtoscreen GFS_checkland GFS_checktracers - GFS_abort + From 0165ede8d9cb3268bfa966c5e52ab10004026c53 Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Tue, 22 Oct 2024 14:29:18 -0400 Subject: [PATCH 33/42] update ccpp/physics after merge --- .gitmodules | 4 ++-- ccpp/physics | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index e0d1393f1..dc0798c32 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,8 +4,8 @@ branch = main [submodule "ccpp-physics"] path = ccpp/physics - url = https://github.com/grantfirl/ccpp-physics - branch = ufs-dev-PR183 + url = https://github.com/NCAR/ccpp-physics + branch = main [submodule "CMakeModules"] path = CMakeModules url = https://github.com/noaa-emc/CMakeModules diff --git a/ccpp/physics b/ccpp/physics index 79ff8feab..128533e5e 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 79ff8feab0619601eb546ad41119779f5b82cc05 +Subproject commit 128533e5e1c3efe309d8782ab89ece40deab79b3 From 445cae47812a65fbdf58072849945d944226e8d2 Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Tue, 22 Oct 2024 15:05:49 -0400 Subject: [PATCH 34/42] update ccpp/physics after merge --- .gitmodules | 4 ++-- ccpp/physics | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index 1011978f3..dc0798c32 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,8 +4,8 @@ branch = main [submodule "ccpp-physics"] path = ccpp/physics - url = https://github.com/grantfirl/ccpp-physics - branch = ufs-dev-PR223 + url = https://github.com/NCAR/ccpp-physics + branch = main [submodule "CMakeModules"] path = CMakeModules url = https://github.com/noaa-emc/CMakeModules diff --git a/ccpp/physics b/ccpp/physics index cbe4ce706..f458bf44e 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit cbe4ce7069d1c39b61b9dc08f662cae36380f4cf +Subproject commit f458bf44e1b5697a0c18b1cd54d48fb875629ed6 From 4a000bbeaa3950613626a6de2a463ee1e3aa09bd Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Tue, 22 Oct 2024 15:49:29 -0400 Subject: [PATCH 35/42] update ccpp/physics after merging --- .gitmodules | 4 ++-- ccpp/physics | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index f0f55cf3e..dc0798c32 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,8 +4,8 @@ branch = main [submodule "ccpp-physics"] path = ccpp/physics - url = https://github.com/grantfirl/ccpp-physics - branch = ufs-dev-PR220 + url = https://github.com/NCAR/ccpp-physics + branch = main [submodule "CMakeModules"] path = CMakeModules url = https://github.com/noaa-emc/CMakeModules diff --git a/ccpp/physics b/ccpp/physics index c8891df24..cdc11de55 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit c8891df249323838793c2871b67aa28610315d44 +Subproject commit cdc11de55dc90c8a92fe07eb73e17409bf60f68c From 2519732045485922117fb12d48b4bdb4f11ff6e4 Mon Sep 17 00:00:00 2001 From: Tracy Date: Tue, 22 Oct 2024 22:07:52 +0000 Subject: [PATCH 36/42] fix tsfc units in output --- scm/src/scm_output.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scm/src/scm_output.F90 b/scm/src/scm_output.F90 index faa4957be..73a840a3b 100644 --- a/scm/src/scm_output.F90 +++ b/scm/src/scm_output.F90 @@ -248,7 +248,7 @@ subroutine output_init_sfcprop(ncid, time_inst_id, hor_dim_id, vert_dim_soil_id, call NetCDF_def_var(ncid, 't2m', NF90_FLOAT, "2-m temperature", "K", dummy_id, (/ hor_dim_id, time_inst_id /)) call NetCDF_def_var(ncid, 'q2m', NF90_FLOAT, "2-m specific humidity", "kg kg-1", dummy_id, (/ hor_dim_id, time_inst_id /)) call NetCDF_def_var(ncid, 'ustar', NF90_FLOAT, "surface friction velocity", "m s-1", dummy_id, (/ hor_dim_id, time_inst_id /)) - call NetCDF_def_var(ncid, 'tsfc', NF90_FLOAT, "surface skin temperature", "m s-1K", dummy_id, (/ hor_dim_id, time_inst_id /)) + call NetCDF_def_var(ncid, 'tsfc', NF90_FLOAT, "surface skin temperature", "K", dummy_id, (/ hor_dim_id, time_inst_id /)) end subroutine output_init_sfcprop From 9e1d1aa284d9f1a46cdd1127c4e7e2d7ca59ee91 Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Wed, 23 Oct 2024 13:05:39 -0400 Subject: [PATCH 37/42] update ccpp/physics after merge --- .gitmodules | 4 ++-- ccpp/physics | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index 968bb549f..dc0798c32 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,8 +4,8 @@ branch = main [submodule "ccpp-physics"] path = ccpp/physics - url = https://github.com/grantfirl/ccpp-physics - branch = ufs-dev-PR226 + url = https://github.com/NCAR/ccpp-physics + branch = main [submodule "CMakeModules"] path = CMakeModules url = https://github.com/noaa-emc/CMakeModules diff --git a/ccpp/physics b/ccpp/physics index 754e697cf..a3f4d93fa 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 754e697cf169895dfaad6cf10ce72b84211f62f6 +Subproject commit a3f4d93fae7515c8d67cae9b5796ad459acb9943 From d6ee840490945ec496e91cecb6db54b8a14b009c Mon Sep 17 00:00:00 2001 From: Soren Rasmussen Date: Thu, 10 Oct 2024 14:33:02 -0600 Subject: [PATCH 38/42] Add help message and ability to turn on verbose wget output. Wget output devaults to -nv so that the Github Actions output won't be filled with the wget download status. This will make debugging failed testcases easier --- contrib/get_aerosol_climo.sh | 33 +++++++++++++++++++++++++++++++-- contrib/get_all_static_data.sh | 33 +++++++++++++++++++++++++++++++-- contrib/get_mg_inccn_data.sh | 33 +++++++++++++++++++++++++++++++-- contrib/get_thompson_tables.sh | 33 +++++++++++++++++++++++++++++++-- 4 files changed, 124 insertions(+), 8 deletions(-) diff --git a/contrib/get_aerosol_climo.sh b/contrib/get_aerosol_climo.sh index 37f0a8cf2..bdb7feabe 100755 --- a/contrib/get_aerosol_climo.sh +++ b/contrib/get_aerosol_climo.sh @@ -1,5 +1,35 @@ #!/bin/bash +# Function to display help message +print_help() { + echo "get_aerosol_climo.sh: contrib/get_aerosol_climo.sh [-v,--verbose]" + echo " Script for downloading/extracting the GOCART climatological aerosol data." + echo "" + echo "Options:" + echo " -v, --verbose Turn on wget verbose output." + echo " --help Show this help message and exit." +} + +verbose="-nv" +# Parse command-line arguments +while [[ "$#" -gt 0 ]]; do + case $1 in + --help) + print_help + exit 0 + ;; + -v|--verbose) + verbose="-v" + ;; + *) + echo "Unknown option: $1" + print_help + exit 1 + ;; + esac + shift +done + #set -ex # Directory where this script is located @@ -20,10 +50,9 @@ data_files=("FV3_aeroclim1" "FV3_aeroclim2" "FV3_aeroclim3" "FV3_aeroclim_optics cd $BASEDIR/scm/data/physics_input_data/ for file in "${data_files[@]}"; do echo "Retrieving $file.tar.gz" - wget https://github.com/NCAR/ccpp-scm/releases/download/v7.0.0/${file}.tar.gz + wget ${verbose} https://github.com/NCAR/ccpp-scm/releases/download/v7.0.0/${file}.tar.gz tar -xvf ${file}.tar.gz rm -f ${file}.tar.gz done cd $BASEDIR/ - diff --git a/contrib/get_all_static_data.sh b/contrib/get_all_static_data.sh index b4b85e9f0..ee039a0c8 100755 --- a/contrib/get_all_static_data.sh +++ b/contrib/get_all_static_data.sh @@ -1,5 +1,35 @@ #!/bin/bash +# Function to display help message +print_help() { + echo "get_all_static_data.sh: contrib/get_all_static_data.sh [-v,--verbose]" + echo " Script for downloading/extracting the processed SCM case data." + echo "" + echo "Options:" + echo " -v, --verbose Turn on wget verbose output." + echo " --help Show this help message and exit." +} + +verbose="-nv" +# Parse command-line arguments +while [[ "$#" -gt 0 ]]; do + case $1 in + --help) + print_help + exit 0 + ;; + -v|--verbose) + verbose="-v" + ;; + *) + echo "Unknown option: $1" + print_help + exit 1 + ;; + esac + shift +done + #set -ex # Directory where this script is located @@ -21,10 +51,9 @@ for file in "${data_files[@]}"; do mkdir -p $BASEDIR/scm/data/$file cd $BASEDIR/scm/data/$file echo "Retrieving $file" - wget https://github.com/NCAR/ccpp-scm/releases/download/v7.0.0/${file}.tar.gz + wget ${verbose} https://github.com/NCAR/ccpp-scm/releases/download/v7.0.0/${file}.tar.gz tar -xf ${file}.tar.gz rm -f ${file}.tar.gz done cd $BASEDIR/ - diff --git a/contrib/get_mg_inccn_data.sh b/contrib/get_mg_inccn_data.sh index b650ce338..c70045c1f 100755 --- a/contrib/get_mg_inccn_data.sh +++ b/contrib/get_mg_inccn_data.sh @@ -1,5 +1,35 @@ #!/bin/bash +# Function to display help message +print_help() { + echo "get_mg_inccn_data.sh: contrib/get_mg_inccn_data.sh [-v,--verbose]" + echo " Script for downloading/extracting the Morrison-Gettelman data." + echo "" + echo "Options:" + echo " -v, --verbose Turn on wget verbose output." + echo " --help Show this help message and exit." +} + +verbose="-nv" +# Parse command-line arguments +while [[ "$#" -gt 0 ]]; do + case $1 in + --help) + print_help + exit 0 + ;; + -v|--verbose) + verbose="-v" + ;; + *) + echo "Unknown option: $1" + print_help + exit 1 + ;; + esac + shift +done + set -ex # Directory where this script is located @@ -16,8 +46,7 @@ BASEDIR=$MYDIR/.. # Change to directory containing the physics input data, download and extract archive cd $BASEDIR/scm/data/physics_input_data/ -wget https://github.com/NCAR/ccpp-scm/releases/download/v7.0.0/MG_INCCN_data.tar.gz +wget ${verbose} https://github.com/NCAR/ccpp-scm/releases/download/v7.0.0/MG_INCCN_data.tar.gz tar -xvf MG_INCCN_data.tar.gz rm -f MG_INCCN_data.tar.gz cd $BASEDIR/ - diff --git a/contrib/get_thompson_tables.sh b/contrib/get_thompson_tables.sh index 6a192c4d0..b1f632326 100755 --- a/contrib/get_thompson_tables.sh +++ b/contrib/get_thompson_tables.sh @@ -1,5 +1,35 @@ #!/bin/bash +# Function to display help message +print_help() { + echo "get_thompson_tables.sh: contrib/get_thompson_tables.sh [-v,--verbose]" + echo " Script for downloading/extracting the Thompson lookup tables." + echo "" + echo "Options:" + echo " -v, --verbose Turn on wget verbose output." + echo " --help Show this help message and exit." +} + +verbose="-nv" +# Parse command-line arguments +while [[ "$#" -gt 0 ]]; do + case $1 in + --help) + print_help + exit 0 + ;; + -v|--verbose) + verbose="-v" + ;; + *) + echo "Unknown option: $1" + print_help + exit 1 + ;; + esac + shift +done + set -ex if [[ $(uname -s) == Darwin ]]; then @@ -15,8 +45,7 @@ BASEDIR=$MYDIR/.. # Change to directory containing the physics input data, download and extract archive cd $BASEDIR/scm/data/physics_input_data/ -wget https://github.com/NCAR/ccpp-scm/releases/download/v7.0.0/thompson_tables.tar.gz +wget ${verbose} https://github.com/NCAR/ccpp-scm/releases/download/v7.0.0/thompson_tables.tar.gz tar -xvf thompson_tables.tar.gz rm -f thompson_tables.tar.gz cd $BASEDIR/ - From b2bc7bda5f243e787d5d4190117b5a9ff9f900c9 Mon Sep 17 00:00:00 2001 From: Soren Rasmussen Date: Thu, 24 Oct 2024 16:19:04 -0600 Subject: [PATCH 39/42] Switching to default -q (no output) for wget since current -nv command still producing too much output in Github CI --- contrib/get_aerosol_climo.sh | 2 +- contrib/get_all_static_data.sh | 2 +- contrib/get_mg_inccn_data.sh | 2 +- contrib/get_thompson_tables.sh | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/contrib/get_aerosol_climo.sh b/contrib/get_aerosol_climo.sh index bdb7feabe..fdaaf3016 100755 --- a/contrib/get_aerosol_climo.sh +++ b/contrib/get_aerosol_climo.sh @@ -10,7 +10,7 @@ print_help() { echo " --help Show this help message and exit." } -verbose="-nv" +verbose="-q" # Parse command-line arguments while [[ "$#" -gt 0 ]]; do case $1 in diff --git a/contrib/get_all_static_data.sh b/contrib/get_all_static_data.sh index ee039a0c8..d7d9aa7e9 100755 --- a/contrib/get_all_static_data.sh +++ b/contrib/get_all_static_data.sh @@ -10,7 +10,7 @@ print_help() { echo " --help Show this help message and exit." } -verbose="-nv" +verbose="-q" # Parse command-line arguments while [[ "$#" -gt 0 ]]; do case $1 in diff --git a/contrib/get_mg_inccn_data.sh b/contrib/get_mg_inccn_data.sh index c70045c1f..6b37ec786 100755 --- a/contrib/get_mg_inccn_data.sh +++ b/contrib/get_mg_inccn_data.sh @@ -10,7 +10,7 @@ print_help() { echo " --help Show this help message and exit." } -verbose="-nv" +verbose="-q" # Parse command-line arguments while [[ "$#" -gt 0 ]]; do case $1 in diff --git a/contrib/get_thompson_tables.sh b/contrib/get_thompson_tables.sh index b1f632326..b40188e74 100755 --- a/contrib/get_thompson_tables.sh +++ b/contrib/get_thompson_tables.sh @@ -10,7 +10,7 @@ print_help() { echo " --help Show this help message and exit." } -verbose="-nv" +verbose="-q" # Parse command-line arguments while [[ "$#" -gt 0 ]]; do case $1 in From 0cfa7f0d368d90d43ec16ffcfae4bdfec5768454 Mon Sep 17 00:00:00 2001 From: Tracy Date: Thu, 14 Nov 2024 17:13:56 +0000 Subject: [PATCH 40/42] fix input_area --- scm/src/scm_input.F90 | 2 +- scm/src/scm_setup.F90 | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/scm/src/scm_input.F90 b/scm/src/scm_input.F90 index 4bb6b3c0f..8492b3408 100644 --- a/scm/src/scm_input.F90 +++ b/scm/src/scm_input.F90 @@ -1882,6 +1882,7 @@ subroutine get_case_init_DEPHY(scm_state, scm_input) scm_state%runtime = elapsed_sec*scm_state%runtime_mult end if + scm_input%input_area = input_area(active_init_time) scm_input%input_time = input_time scm_input%input_pres_surf(1) = input_pres_surf(active_init_time) !perhaps input_pres_surf should only be equal to input_force_pres_surf? scm_input%input_pres = input_pres(:,active_init_time) @@ -2067,7 +2068,6 @@ subroutine get_case_init_DEPHY(scm_state, scm_input) if (trim(input_surfaceForcingLSM) == "lsm") then scm_input%input_ozone = input_ozone(:,active_init_time) - scm_input%input_area = input_area(active_init_time) scm_input%input_stddev = input_stddev(active_init_time) scm_input%input_convexity= input_convexity(active_init_time) diff --git a/scm/src/scm_setup.F90 b/scm/src/scm_setup.F90 index b3603e88f..331b93246 100644 --- a/scm/src/scm_setup.F90 +++ b/scm/src/scm_setup.F90 @@ -43,7 +43,9 @@ subroutine set_state(scm_input, scm_reference, scm_state) scm_state%lat(i) = scm_input%input_lat*deg_to_rad_const end do - + do i=1, scm_state%n_cols + scm_state%area(i) = scm_input%input_area + end do !> - \todo When patching in a reference sounding, need to handle the case when the reference sounding is too short; patch_in_ref !! checks for the case, but as of now, it just extrapolates where it needs to and returns an error code; error should be handled @@ -160,7 +162,6 @@ subroutine set_state(scm_input, scm_reference, scm_state) scm_state%state_T(i,:,1) = scm_input%input_temp(:) scm_state%state_tracer(i,:,scm_state%water_vapor_index,1)=scm_input%input_qt scm_state%state_tracer(i,:,scm_state%ozone_index,1)=scm_input%input_ozone - scm_state%area(i) = scm_input%input_area if (scm_input%input_pres_i(1).GT. 0.0) then ! pressure are read in, overwrite values scm_state%pres_i(i,:)=scm_input%input_pres_i From 3babd2178b6a61d89087764a52743ee57337c0fb Mon Sep 17 00:00:00 2001 From: Tracy Date: Thu, 14 Nov 2024 18:49:07 +0000 Subject: [PATCH 41/42] fix scm_state%area --- scm/src/scm_setup.F90 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scm/src/scm_setup.F90 b/scm/src/scm_setup.F90 index 331b93246..2d9f21739 100644 --- a/scm/src/scm_setup.F90 +++ b/scm/src/scm_setup.F90 @@ -44,7 +44,9 @@ subroutine set_state(scm_input, scm_reference, scm_state) end do do i=1, scm_state%n_cols - scm_state%area(i) = scm_input%input_area + if (scm_state%area(i) == 0) then + scm_state%area(i) = scm_input%input_area + end if end do !> - \todo When patching in a reference sounding, need to handle the case when the reference sounding is too short; patch_in_ref From 42e4d474b9c710309d8eb64c62c237b7faafe647 Mon Sep 17 00:00:00 2001 From: Soren Rasmussen Date: Thu, 26 Sep 2024 12:18:44 -0600 Subject: [PATCH 42/42] updating link to support forum --- scm/doc/TechGuide/chap_ccpp.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scm/doc/TechGuide/chap_ccpp.rst b/scm/doc/TechGuide/chap_ccpp.rst index cc5420ee5..b0b8c354e 100644 --- a/scm/doc/TechGuide/chap_ccpp.rst +++ b/scm/doc/TechGuide/chap_ccpp.rst @@ -380,4 +380,4 @@ called ‘smoke’. physics (``ccpp-scm/scm/src/GFS_typedefs.F90/GFS_stateout_type/gq0``). If the tracer needs to be part of these arrays, there are a few additional steps to take. If you need help, please post on the support forum at: - https://dtcenter.org/forum/ccpp-user-support/ccpp-single-column-model. + https://github.com/NCAR/ccpp-scm/discussions