3: Modify the snow conductivity#
One of the more sensitive sea ice parameters is the snow thermal conductivity or ksno
parameter (Urrego-Blanco et al. 2016). Thermal conductivity determines the ability of the snow to conduct heat through it.
Here you will see how this impacts a simulation by multiplying this value by a factor of three. In this version of the CICE model, this is actually a hard coded parameter in a Fortran module. It was found that this parameter was important enough that it was included in the namelist in future versions of CICE.
Create a case (clone) called g_ksno using the compset G
at T62_g37
resolution.
Set the run length to 1 year.
Go to the main source directory under /glade/u/home/$USER/code/my_cesm_code/components/cice/src and search for the variable ksno
.
Copy the source module from the main CESM code directory into $CASE/SourceMods/src.cice.
Edit the fortran code in SourceMods/src.cice.
Find the variable “ksno” and change this to 0.9.
Build and run the model for one year.
Provide info about how to compare the simulations using ncview/ncdiff, etc.
Click here for hints
How do I compile?
You can compile with the command:
qcmd -- ./case.build
How do I control the output?
Use namelist variables: histfreq
,histfreq_n
, and f_var
.
Look at the online documentation for these variables.
How do I check my solution?
When your run is completed, go to the archive directory.
(1) Check that your archive directory contains the files:
h
files
g_ksno.cice.h.0001-01.nc
h1
files
g_ksno.cice.h1.0001-01-01-00000.nc
g_ksno.cice.h1.0001-02-01-00000.nc
(2) Compare the contents of the h
and h1
files using ncdump
.
ncdump -h g_ksno.cice.h.0001-01-01-00000.nc
ncdump -h g_ksno.cice.h1.0001-01-01-00000.nc
Click here for the solution
Clone a new case g_ksno from your control experiment with the command:
cd /glade/u/home/$USER/code/my_cesm_code/cime/scripts/
./create_clone --case /glade/u/home/$USER/cases/g_ksno --clone /glade/u/home/$USER/cases/g_control
Case setup:
cd /glade/u/home/$USER/cases/g_ksno
./case.setup
Verify that the run length is 1 year:
./xmlquery STOP_N
./xmlquery STOP_OPTION
Copy the file from the $CODEROOT directory:
cp /glade/u/home/$USER/code/my_cesm_code/components/cice/src/drivers/cesm/ice_constants.F90 /glade/u/home/$USER/cases/g_ksno/SourceMods/src.cice
vi /glade/u/home/$USER/cases/g_ksno/SourceMods/src.cice/ice_constants.F90
Change the following line to a value of 0.90_dbl_kind
:
ksno = 0.30_dbl_kind ,&! thermal conductivity of snow (W/m/deg)
If needed, change job queue and account number. For instance:
./xmlchange JOB_QUEUE=tutorial,PROJECT=UESM0013 --force
Build and submit:
qcmd -- ./case.build
./case.submit
When the run is completed, look into the archive directory for: g_ksno.
(1) Check that your archive directory on derecho (The path will be different on other machines):
cd /glade/derecho/scratch/$USER/archive/g_ksno/ice/hist
ls
(2) Compare to control run:
ncdiff g_ksno.cice.h.0001-01.nc /glade/derecho/scratch/$USER/archive/g_control/ice/hist/g_control.cice.h.0001-01.nc g_diff.nc
ncview g_diff.nc
Test your understanding#
What changes do you see in the ice state from the control case with increased thermal conductivity? Are these changes in line with what you expect?
How did changes in the Arctic vs. the Antarctic compare?
How does the magnitude of the changes compare to the snow albedo changes done in exercise 2? Do these results agree with those of Urrego-Blanco et al. 2016?
Are the modified
ksno
values physically realistic? Why or why not? Could you imagine this being used as a tuning parameter for ESMs?