UM User Group |
Main /
Sst ForcingAn SST forcing experiment is where an AGCM is forced using a prescribed Sea Surface Temperature pattern. The idea behind this is normally to try and work out what influence a given pattern of SST has on the atmosphere. This page described how I setup and ran such an experiment on the UM (infact job Generating an SST patternFirstly, I we need an SST pattern. Often this pattern will be constructed from a climatological SST pattern plus (or minus) an SST anomaly pattern. This is how I created an SST pattern for the experiment Regression Pattern | v Select regions to create mask | v edit mask details Regression Pattern | | v v Final Mask -------> apply mask to Regression pattern | v scale pattern | v add to climatology <------ SST climatology | v Final SST Pattern This looks more complicated than it really is. Essentially, I used part of a regression pattern, scaled that by a certain amount, and then added the resulting scaled pattern to a SST climatology pattern.
I’ll go through each step in turn. Regression PatternWe need some SST pattern to start with, this could be anything; an idealised SST pattern, an EOF pattern etc. In this case I chose a pattern formed by regressing observed SST onto a low frequency index of North Atlantic SST. I scaled the index so that it had a standard deviation of 1. The first way I used this regression pattern is to work out which areas I wanted to keep and which areas to mask out. In this case I wanted to just keep the North Atlantic region and to mask out all the land and other parts of the ocean. Select regions to create maskI used an idl program called makemask3,'Reg_pattern.nc','regcof','Lons','Lats',0,'Atl_only_Mask.nc', 2.00000e+20,3,0,100,'mask_regions1.sav',-1 In Once you’re happy with you regions, click on Edit Mask DetailsMy next step was to smooth the edges of the mask in Atl_only_Mask.nc so
editmask,'Atl_only_Mask.nc','Mask','Lons','Lats','Atl_only_Mask_edit.nc' Where Again, The upper box containing ‘1.00000′ allows you to change the value of the set point from 1 to some other value. If you click in the box then a prompt will appear in the console window asking for a new value for the set point. Type in a new value between 0 and 1 and hit enter. Now all points set by clicking the left mouse button will now be set to the new value. Smoothing the EdgesThe reason this is useful is that it allows us to smooth the edges of the mask. I have some automatic routines to do this (see below), but they have some limitations (essentially they can only deal with simple situations). So, to do this by hand, I changed the set point to some value between 0 and 1 and then changed the mask points at the edge of the mask to this new value. I did this only on mask points that will border onto other ocean points, not those that border onto land points. So what values to choose for the smoothing? You can use a simple linear smoothing, (ie 1,0.66666,0.33333,0), but I have been using a Cos^2 smoothing because this ensures that both the anomaly field and the gradient of the anomaly field go to zero at the edge of the mask. This could be important as some atmospheric processes are rather sensitive to SST gradients. Here’s a list of smoothing values for a number of smoothing points:
Other ways to Slice and SmoothI have a number of other tools to create SST patterns.
smooth_NS,'/home/dan/data/MASKS/Atlantic_mask_ocean_grid2.nc','test.nc','Mask', 'longitude','latitude',5,[59.375,-35.6250],[10,-10],'smoothed mask field. Created by /home/dan/WORK/Experiments/RegionalCoupling/SST_Pattern/SEASONAL/smooth_NS.idl' NB For all these programs you will also need The comments contained within these programs should go some way to explaining how they work. If all else fails email me on d.l.r.hodson@reading.ac.uk Adding the Anomaly to the ClimatologyFinally, to produce the SST pattern I added the SST anomaly to an SST climatology for the model. I use a program called For the SST climatology I used the model climatology that is packaged with the UM called
Otherwise, you can find it on You’ll need to convert this to a netCDF file using xconv before you can use The final thing I need to do was to convert this netCDF file to something that the UM could understand. Creating an Ancillary FileThe last step was to convert the netCDF SST file into an ancillary file that the UM can read in.
Building an ExperimentAs always, the best way to create you experiment is probably to copy an experimental job from someone else. You could try my Finally, I told the UMUI job where the SST forcing ancil file lived. In the UMUI, open your job and select Atmosphere-Ancillary and input data files-Climatologies and Potential climatologies-Sea Surface Temperatures-_. Then enter the _full path and file name into the boxes Directory name of Environment variable and file name . Click on close and then save the job. Running the ExperimentYou might like to read Basic Experiment to get some idea how to do this. Control RunUsually we run a control run too - an experiment forced with only a climatological SST pattern. In the past I’ve used a control run (xazlc) by Warwick Norton as my control. This job used the climatological SST file mentioned above (qrclim.sst) as the forcing.
The resultsExtracting the dataNow we’re on HPCX - you should probably read you’d better read this there used to be a script to extract fields - but not at the moment.. Analysing the resultsThe basic idea behind these experiments was to run the AGCM for a number of years -with identical SST forcing each year. Effectively, therefore, each year is statistically independent in that each starts with a different set of initial atmospheric conditions. Consequently we will consider them to be different members of an ensemble with the same forcing, but different initial conditions.
In fact, I used two versions of Also, I used AutomationRather than running these programs for each field in each experiment, I set up a script to do this semi-automatically: Plotting the differenceThe main point of the experiments was to examine the differences between applying a positive and a negative anomaly. I used a ferret script called For example: cancel/all data use "/home/dan/data/UM_DATA/XBCP/xbcpb/surface_temp/ens_mean_seasonal_mean/ surface_temp_xbcpb_ENSmean9_son.nc" use "/home/dan/data/UM_DATA/XBCP/xbcpb/surface_temp/ens_mean_seasonal_mean/ VARsurface_temp_xbcpb_ENSmean9_son.nc" use "/home/dan/data/UM_DATA/XAZL/xazlc/surface_temp/ens_mean_seasonal_mean/ surface_temp_xazlc_ENSmean9_son.nc" use "/home/dan/data/UM_DATA/XAZL/xazlc/surface_temp/ens_mean_seasonal_mean/ VARsurface_temp_xazlc_ENSmean9_son.nc" go T2plot 1,3,temp,6,2.120,1,1,9,9 Here the arguments show the data fields 1 and 3 contain my two data fields (and the script assumes 2 and 4 contain the associated inter-ensemble variance files). There is also a That’s about it. Direct queries and bug reports to d.l.r.hodson@reading.ac.uk. Good Luck! — Dan Hodson? - 30 Sep 2004
|