Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Section
Column

SST in the initial files

The OpenIFS initial file that contains the sea-surface temperature (SST) is the ICMCL file. The SST is represented as the parameter "soil temperature layer 1" (top soil layer 1-7cm), grib parameter STL1, grib code 139 where the land-sea mask defines a sea gridpoint. STL1 also contains the representation of the sea-ice field, grib parameter CI.

Manipulating the SST for the model involves changes the STL1 field but masking should be used to maintain the values over the land points.

The land-sea mask, grib parameter LSM, grib code 172, is contained in the ICMGG*INIT file. Values of lsm >= 0.5 are treated as land points, values < 0.5 are treated as sea-points.

Column
Panel
titleOn this page...

 

Table of Contents

...

 

Metview script: sst_modif.mv

A metview script has been provided that will allow changing the SST.

...

Info

Before changing the SST, take a copy of a previous experiment and change the experiment id.

...

 

In the experiment directory, make a copy of the metview script.

...

Code Block
cd scratch/inidir/ob01/2015110100		    # go to directory with the initial files for the experiment 
cp ~/metviewmv/sst_modif.mv .               # copy the metview script

Description of sst_modif.mv

The script can be used in various ways to alter the SST field in the GRIB parameter STL1. The script takes care of the masking of the land values.

...

Code Block
languagebash
titleResult of applying perturbation SST over sea-points
  STL[result] = STL[fRef] + ( 1STL[fPert] - w.box) + STL[fPertfRef] ).w.box

where STL[result] is the resultant SST values, w is the weight applied to the perturbation and "box" represents the mask created in the sst_modif.mv script (see below). The values of 'box' will be 1 in the defined rectangular mask, otherwise 0.

Outside the mask defined by 'box', the value of STL[fRef] will be used.

...

Date range: Other options exist in the script to make the modification apply only to certain dates, using the startDate and endDate values.

Example 1: Replacing the observed SST in the tropics with the climatology

In this example, we replace all the observed SSTs values in the tropics with the climatological SST.

...

This will replace the SST values in the tropical band 20N-20S, for all longitudes, with the climatological SST from the ERA-Interim file. The change in SST will be merged to the reference value over a 'halo' of 5 degrees latitude. Note that if the weight was set to zero, this would effectively not make any change to the SST in this tropical band.

By changing the value of 'weight' the observed SST values can be changed to be a fraction

To replace the SST with climatology over a limited range of longitudes, say, just the central and east Pacific:

Code Block
box=[10,-180,-10,-80]  #  N, W, S, E

 

Example 2: Increasing the SST anomaly in the Pacific

In this example, we increase the Pacific SST anomaly compared to the climatology by a factor of

...

2.

This requires changes to the script as follow:

Code Block
languagebash
titleIncrease Pacific SST anomaly...
fInit="ICMCLob01INIT"
fRef="ICMCLob01INIT"
fPert="/perm/rd/openifs/oifs_workshop_2017/expts-inidata/erai-climate-sst/sst.ci.stl1.erai.climatology.grb"
fLsm="ICMGGob01INIT"
weight=-1				# !!! not 2 !!!
box=[10,-180,-10,-80]  #  N, W, S, E
halo=5

The value of -1 for weight means the modified values of SST, inside the box mask become (referring to the equation above):

Code Block
STL[result] = STL[fRef] + ( STL[fPert] - STL[fRef] ).(-1)
            = STL[fRef] + ( STL[fRef] - STL[fPert] )

so that the SST anomaly with respect to the climatology is added to the existing SST field over the Pacific, effectively doubling the strength of the El Nino signal there.

More complex scenarios

If more complex scenarios are necessary than supported by the above equation, the relevant code in sst_modif.mv to change is:

Code Block
      g= g*lsmGrb +                                        # STL1 values over land points; provided by fInit
         ref[idxRef]*(1-lsmGrb) +                          # STL1 values over sea points, outside AND inside box mask
         (pert[idxPert]-ref[idxRef]) * maskGrb * weight    # weighted difference added to STL1 values INSIDE box mask

 

Running the script

To run the script, Seeing the difference in SSTtype the command:

Code Block
metview -b sst_modif.mv

This may generate some warning messages which can be ignored. If the script completes successfully:

Code Block
....
process date=20160502
 idxRef=184 idxPert=123
process date=20160503
 idxRef=185 idxPert=124
process date=20160504
 idxRef=186 idxPert=125
metview: EXIT (OK) (line 1), exit status 0, starting 'cleanup'

Two new GRIB files will be created:

ICMCLob01INIT.modif - this is the new file with the modified SST fields.
stl1_modif_diff.grib - this is a GRIB file with the difference between the modified and original SST field. It can be used to generate plots of the SST differences using Metview.

Info

Note that the metview command on cca only supported batch processing - no interactive display or plotting is possible. Do not set 'DoPlotDiff=1' if using this script on the HPCF (host 'cca').

Rename ICMCL files to run!

Final and important step, once the sst_modif.mv script has completed and you are satisfied with the changes in the SST field, remember to rename the files to replace the original, so that the model uses the modified file when starting:

Code Block
mv ICMCLob01INIT ICMCLob01INIT.old
mv ICMCLob01INIT.modif ICMCLob01INIT

(substitute ob01 with your experiment id)