Skip to content

Commit 1cc852d

Browse files
authored
Merge pull request #589 from hertneky/548_doc_updates
Add documenation for DEPHY converter and NSST behavior
2 parents ff864d6 + 704f056 commit 1cc852d

File tree

6 files changed

+111
-9
lines changed

6 files changed

+111
-9
lines changed

scm/doc/TechGuide/acknow.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@ acknowledge the Developmental Testbed Center team.
77
For referencing this document please use:
88

99
Firl, G., D. Swales, L. Carson, L. Bernardet, D. Heinzeller, M. Harrold, T. Hertneky, and
10-
M. Kavulich, 2024. Common Community Physics Package Single Column Model v7.0.0 User and
11-
Technical Guide. Available at https://ccpp-scm.readthedocs.io/en/v7.0.0/.
10+
M. Kavulich, 2024. Common Community Physics Package Single Column Model v7.0.1 User and
11+
Technical Guide. Available at https://ccpp-scm.readthedocs.io/en/v7.0.1/.
1212

scm/doc/TechGuide/chap_cases.rst

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,35 @@ format requirements can be found at `DEPHY <https://github.com/GdR-DEPHY/DEPHY-S
129129
:name: lst_case_input_netcdf_header_dephy
130130
:caption: example NetCDF file (DEPHY format) header for case initialization and forcing data
131131

132+
As of the CCPP v7.0.0 release, all SCM case files are expected to use the DEPHY format.
133+
To assist with this transition, a conversion script is provided in the repository to reformat
134+
legacy SCM case files into the new DEPHY-compliant format.
135+
136+
The conversion script is located at:
137+
138+
.. code:: bash
139+
140+
ccpp-scm/scm/etc/scripts/dephy_converter.py
141+
142+
To convert a case, run the script with the -n option followed by the name of the case
143+
(excluding the .nc extension):
144+
145+
.. code:: bash
146+
147+
python dephy_converter.py -n name_of_case
148+
149+
This script performs the following actions:
150+
- Reads the legacy case file from ccpp-scm/scm/data/processed_case_data/name_of_case.nc
151+
- Reads the corresponding configuration namelist from ccpp-scm/scm/etc/case_config/name_of_case.nml
152+
- Outputs a new DEPHY-formatted file named name_of_case_SCM_driver.nc to the same data directory
153+
- Updates the configuration namelist accordingly
154+
155+
.. Note::
156+
Before running the script, back up both the original ``.nc`` file and its corresponding ``.nml``
157+
configuration file. After conversion, you can test the new DEPHY-formatted case by running it
158+
and comparing its output with the original. Although results may not be bit-for-bit identical,
159+
they should be visually very similar when plotted.
160+
132161
Included Cases
133162
--------------
134163

@@ -182,6 +211,58 @@ In addition, cases can be generated from UFS initial conditions See
182211
files for other locations and dates, given appropriate UFS Atmosphere
183212
initial conditions and output.
184213

214+
Maritime Cases with Active Surface Fluxes
215+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
216+
217+
When modeling cases over ocean surfaces without prescribed surface fluxes, instead
218+
of relying on physics to calculate them, GFS-based physics suites rely on the
219+
Near-Surface Sea Temperature (NSST) scheme.
220+
221+
**Cold-Starting the NSST Scheme**
222+
223+
To initialize NSST in a cold start configuration:
224+
225+
1. Provide a sea surface temperature (SST) time series via the ``ts_forc`` time
226+
series in the case data file.
227+
2. Set the following in the case data file:
228+
229+
- ``surface_forcing_temp = "ts"``
230+
- ``surface_type = "ocean"``
231+
232+
3. In the physics namelist, ensure the second digit of the nstf_name variable
233+
is set to 1 (i.e., nstf_name = [*,1,*,*,*]).
234+
235+
- This value indicates NSST spin-up and is the default in physics namelists
236+
distributed with the CCPP-SCM.
237+
238+
Resulting behavior in CCPP-SCM:
239+
240+
- The NSST scheme is initialized using the SST from ``ts_forc``.
241+
- The default ocean mixed layer depth ``xz`` is 20 meters.
242+
- The NSST reference temperature remains fixed at the initial SST value throughout
243+
the simulation (in contrast to a 3D ocean model where it would ideally vary slowly).
244+
245+
**Using UFS Output to Initialize NSST**
246+
247+
When working with case data generated from UFS model output, NSST can be initialized
248+
directly from the history files. In this case:
249+
250+
- Set the second digit of the ``nstf_name`` variable to 0 to bypass spin-up and use
251+
supplied NSST state variables directly.
252+
253+
**Default SST behavior in CCPP SCM**
254+
255+
The SST is forced using the ``ts_forc`` time series in the case data file. This means:
256+
257+
- The SST seen by the physics is linearly interpolated in time from the time series.
258+
The SST is set during every timestep from that data.
259+
260+
To instead allow the SST to evolve according to model physics:
261+
262+
- Set the case configuration namelist variable ``do_sst_initialize_only = .true.``
263+
This causes the SST to be initialized from the first value in ``ts_forc``, after
264+
which the physics controls its evolution.
265+
185266
How to set up new cases
186267
-----------------------
187268

scm/doc/TechGuide/chap_intro.rst

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,27 @@ through the CCPP infrastructure.
3535
Version Notes
3636
-------------
3737

38+
The CCPP SCM v7.0.1 contains the following minor changes since v7.0.0.
39+
40+
- Enhanced UFS case generation tools: Reinstated functionality to support specifying
41+
i, j grid indices (from the FV3 native grid) along with a tile number in
42+
UFS_case_gen.py to generate single-column cases. Also added the ability to accept
43+
a list of i, j indices for batch generation of multiple cases.
44+
45+
- Use of standardized missing values: Replaced hard coded missing values, -9999.0
46+
and -9999, with the _FillValue or missing value attributes defined in the NetCDF
47+
variables.
48+
49+
- Fix area logic in the SCM: Corrected assignment of the column area from the DEPHY
50+
forcing file by removing the dependency on surface forcing LSM. Also allow the
51+
column_area in the configuration namelist to override the DEPHY assignment.
52+
53+
- Enhanced documentation for 1) using the DEPHY converter script, which converts
54+
forcing files from the legacy format to the DEPHY v1.0 format, and 2) including
55+
expected behavior of the Near-Surface Sea Temperature (NSST) scheme within the SCM.
56+
57+
- Added support for NOAA’s Ursa platform using spack-stack v1.9.1.
58+
3859
The CCPP SCM v7.0.0 contains the following major and minor changes since v6.0.
3960

4061
Major

scm/doc/TechGuide/chap_quick.rst

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ Clone the source using
2525

2626
.. code:: bash
2727
28-
git clone --recursive -b v7.0.0 https://github.com/NCAR/ccpp-scm
28+
git clone --recursive -b v7.0.1 https://github.com/NCAR/ccpp-scm
2929
3030
The ``--recursive`` option is required to retrieve the ccpp-physics and ccpp-framework code,
3131
which are stored in separate repositories and linked to the SCM repository as submodules.
@@ -452,7 +452,7 @@ execute the following scripts:
452452
If the download step fails, make sure that your system’s firewall does
453453
not block access to GitHub. If it does, download the files ``comparison_data.tar.gz``,
454454
``physics_input_data.tar.gz``, ``processed_case_input.tar.gz``, and ``raw_case_input.tar.gz``
455-
from the `SCM release page <https://github.com/NCAR/ccpp-scm/releases/tag/v7.0.0>`__ using your browser and manually extract its
455+
from the `SCM release page <https://github.com/NCAR/ccpp-scm/releases/tag/v7.0.1>`__ using your browser and manually extract its
456456
contents in the directory ``scm/data``. Similarly, do the same for
457457
``thompson_tables.tar.gz`` and ``MG_INCCN_data.tar.gz`` and extract
458458
to ``scm/data/physics_input_data/``.
@@ -769,7 +769,7 @@ internet search.
769769
Building the Docker image
770770
^^^^^^^^^^^^^^^^^^^^^^^^^
771771

772-
The Dockerfile builds CCPP SCM v7.0.0 from source using the GNU
772+
The Dockerfile builds CCPP SCM v7.0.1 from source using the GNU
773773
compiler.
774774

775775
The CCPP SCM has a number of system requirements and necessary libraries
@@ -833,7 +833,7 @@ following from the terminal where Docker is run:
833833

834834
.. code:: bash
835835
836-
docker pull dtcenter/ccpp-scm:v7.0.0
836+
docker pull dtcenter/ccpp-scm:v7.0.1
837837
838838
To verify that it exists afterward, run
839839

@@ -921,7 +921,7 @@ Running the Docker image
921921
.. note::
922922
If you are using a prebuilt image from Dockerhub, substitute
923923
the name of the image that was pulled from Dockerhub in the commands
924-
above; i.e. instead of ``ccpp-scm`` above, one would have ``dtcenter/ccpp-scm:v7.0.0``.
924+
above; i.e. instead of ``ccpp-scm`` above, one would have ``dtcenter/ccpp-scm:v7.0.1``.
925925

926926
#. To use the SCM interactively, run non-default configurations, create
927927
plots, or even develop code, issue the following command:

scm/doc/TechGuide/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
# The short X.Y version
2828
version = '7.0'
2929
# The full version, including alpha/beta/rc tags
30-
release = '7.0.0'
30+
release = '7.0.1'
3131

3232
numfig = True
3333

scm/doc/TechGuide/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CCPP Single Column Model (SCM) User and Technical Guide v7.0.0
1+
CCPP Single Column Model (SCM) User and Technical Guide v7.0.1
22
============================
33

44
.. toctree::

0 commit comments

Comments
 (0)