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.

\[ F_{cond} = - k_{sno} * dT / dz \]

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.

Exercise 3: Something with source code

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/work/$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/work/$USER/code/my_cesm_code/cime/scripts/
./create_clone --case /glade/work/$USER/cases/g_ksno --clone /glade/work/$USER/cases/g_control

Case setup:

cd /glade/work/$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/work/$USER/code/my_cesm_code/components/cice/src/drivers/cesm/ice_constants.F90 /glade/work/$USER/cases/g_ksno/SourceMods/src.cice

vi /glade/work/$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=regular,PROJECT=UESM0011

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 cheyenne (The path will be different on other machines):

cd /glade/scratch/$USER/archive/g_ksno/ice/hist
ls 

(2) Compare to control run:

ncdiff g_ksno.cice.h.0001-01.nc /glade/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?