Skip to content

Graduate Student Test: MR Weather App CCN Experiment

ceceliadid edited this page Mar 5, 2020 · 24 revisions

Test Description

This test assesses how easy it is to access and run a UFS code, modify a physics parameter, re-run the code and then compare results. The test case is a hurricane Dorian simulation using the UFS Medium-Range Weather Application. It is an example of a code usability evaluation following the "graduate student test" protocol developed for the Unified Forecast System (UFS).

In order to perform the test, you will run the model for 48 hours, use the workflow software to make a change in the namelist that increases the concentration of cloud condensation nucleii (CCN), and perform another 48 hour run with this change. Then you will compare the total cloud cover field before and after the change.

Cloud condensation nuclei (CCN) are small particles suspended in the atmosphere on which water vapor condenses. The number of nuclei per cubic centimeter is used in the microphysics parameterization. With more CCN in the air, cloud water is distributed over a larger number of smaller drops. This hinders the development of precipitation processes, so droplets stay suspended and cloud coverage is higher. Even after just 48 hours, an increase can be seen in the cloud cover field. As the forecast progresses, nonlinear processes take place and can change this simple interpretation.

Run the Control Case

Follow the instructions on the Getting Started page to run the Hurricane Dorian case at C96 resolution, with the GFSv15p2 physics, without the post-processor turned on, for two days.

Run the Experiment

You will need to create another case directory for the experiment, and setup the new case.

$ cd $HOME/my_ufs_sandbox/cime/scripts
$ ./create_newcase --case DORIAN_C96_GFSv15p2_EXP --compset GFSv15p2 --res C96 --workflow ufs-mrweather
$ cd DORIAN_C96_GFSv15p2_EXP
$ ./case.setup

At this point, you can see the current values for CCN (ccn_o = 100 and ccn_l = 300) by looking at the input.nml file:

$ more $SCRATCH/DORIAN_C96_GFSv15p2_EXP/run/input.nml

You will change them through the workflow:

$ cd $HOME/my_ufs_sandbox/cime/scripts/DORIAN_C96_GFSv15p2_EXP

Use your favorite editor to append the following to the entries in user_nl_ufsatm

ccn_l = 900.
ccn_o = 300.

Next you will build the case:

$ ./case.build

Compare outputs

Changing the concentration of CCN creates a noticeable difference in the total cloud cover. Now that you've completed both runs compare the total cloud cover before and after the CCN change.

Using NCDIFF + Ncview

A simple way to look at the difference is to use the combination of the NCDIFF differencing capability that is part of netCDF Operators (NCO) and Ncview.

To use NCDIFF + Ncview load the following modulefiles:

System Modules
Cheyenne module load nco/4.7.9 ncview/2.1.7
Stampede2 module load nco/4.6.9 netcdf hdf5 udunits ncview/2.1.7
Hera module load intel nco ncview

Differences can be computed using the netCDF Operator Tools:

% cd <working_directory>
% ncdiff simple-test-case.test/phyf024.nc simple-test-case.control/phyf024.nc phyf024_diff.nc

The resulting phyf024_diff.nc file can be visualized by Ncview:

% ncview phyf024_diff.nc

Note that if you receive the following error 'display: unable to open X server' then you must log out and log in with -X as an argument passed into ssh. The -X argument enables X11 forwarding.

Your Ncview output of Atmospheric Column Total Cloud Cover Difference (tcdc_aveclm) after changing the range to -35:35 should look like this.

Atmos Column Total Cloud Cover Difference

Using NCL

Another option for looking at the difference is to use NCL with the following script. By default, this script plots the differences between control and test runs for 2m Temperature (tmp2m), Total Precipitation (tprcp), and Atmospheric Column Total Cloud Cover (tcdc_aveclm) at 24h.

You can download the script here:
https://raw.githubusercontent.com/wiki/ufs-community/ufs-weather-model/tools/plot_ufs_phyf_diff.ncl

To use NCL, load the following modulefiles:

System Modules
Cheyenne module load intel/18.0.5 ncl/6.6.2
Stampede2 module load ncl_ncarg/6.3.0
Hera module load ncl/6.5.0

To run this NCL script execute the following commands. This script will produce png files for each variable being plotted.

% cd <working_directory>
% wget https://raw.githubusercontent.com/wiki/ufs-community/ufs-weather-model/tools/plot_ufs_phyf_diff.ncl
% ncl plot_ufs_phyf_diff.ncl 'c="simple-test-case.control"' 't="simple-test-case.test"'

Your NCL output of Atmospheric Column Total Cloud Cover Difference (tcdc_aveclm) should look like this:

Atmos Column Total Cloud Cover Difference

Other Visualization Tools

For other visualization tools see Ferret and Panoply.