advertisement
University of Hamburg
Planet Simulator
User’s Guide
Version 16.0
Frank Lunkeit
Simon Blessing
Klaus Fraedrich
Heiko Jansen
Edilbert Kirk
Ute Luksch
Frank Sielmann
2
The Planet Simulator User’s Guide is a publication of the
Theoretical Meteorology at the Meteorological Institute of the University of Hamburg.
Address:
Prof. Dr. Klaus Fraedrich
Meteorological Institute
University of Hamburg
Bundesstrasse 55
D-20146 Hamburg
Contact:
Contents
5
Quick Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
Running long simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
9
fluxmod.f90 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
miscmod.f90 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
surfmod.f90 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
fftmod.f90 / fft991mod.f90 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
landmod.f90 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
legmod.f90 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
mpimod.f90 / mpimod stub.f90 . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
plasim.f90 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
2.10 plasimmod.f90 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
2.12 rainmod.f90 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
2.13 seamod.f90 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
2.14 Sea ice and ocean modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
2.15 icemod.f90 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
2.16 oceanmod.f90 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
35
Concept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
Parallelization in Gridpoint Domain . . . . . . . . . . . . . . . . . . . . . . . . .
35
Parallelization in Spectral Domain . . . . . . . . . . . . . . . . . . . . . . . . . .
36
Synchronization points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
Source code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
39
Graphical user interface (GUI) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
GUI configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
Palette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
Title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
Geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
3
4 CONTENTS
45
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
Namelist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
HTYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
VTYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
MODLEV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
hPa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
MEAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
Format of output data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
5.10 SERVICE format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
5.12 HEAD7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
5.13 MARS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
5.14 MULTI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
5.15 Namelist example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
5.16 Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
51
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
Vis5D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
57
Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
Basic switches for column setup . . . . . . . . . . . . . . . . . . . . . . .
57
Boundary Conditions and forcing . . . . . . . . . . . . . . . . . . . . . .
57
Graphical User Interface (GUI) . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
A List of Constants and Symbols
B Planet Simulator Codes for Variables
59
63
65
C.1 File puma namelist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
66
Namelist INP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
66
Namelist PLANET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
Namelist FLUXPAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
Namelist RADPAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
Namelist SURFPAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
C.2 File land namelist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
Namelist LANDPAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
Namelist SEAPAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
C.4 File ocean namelist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
Namelist OCEANPAR . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
C.5 File ice namelist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
Chapter 1
Installation
The whole package containing the models ”Planet Simulator” and ”PUMA” along with ”MoSt”, the ”Model Starter” comes in a single file, usually named ”Most(n).tgz” with (n) specifying a version number. The following subsection gives an example, assuming version 16.
1.1
Quick Installation tar -zxvf Most16.tgz
cd Most16
./configure.sh
./most.x
if your tar-command doesn’t support the ”-z” option (e.g. on Sun UNIX) type instead: gunzip Most16.tgz
tar -xvf Most16.tar
cd Most16
./configure.sh
./most.x
If this sequence of commands produces error messages, consult the ”FAQ” (Frequent Asked
Questions) and README files in the Most16 directory. They are plain text files, that can be read with the command ”more” or any text editor.
1.2
Most16 directory home/Most16> ls -lG
-rw-r--r-- 1 1548 cc_check.c
-rwxr-xr-x 1 57 cleanplasim
-rwxr-xr-x 1 51 cleanpuma drwxr-xr-x 2 4096 common
-rwxr-xr-x 1 3911 configure.sh
-rw-r--r-- 1
-rw-r--r-- 1
308 csub.c
234 f90check.f90
-rw-r--r-- 1 3033 FAQ drwxr-xr-x 2 4096 images
-rw-r--r-- 1 154 makecheck
5
<- Used by configure.sh
<- Delete run, bld and bin for PLASIM
<- Delete run, bld and bin for PUMA
<- Topography files
<- The configure script
<- Currently unused
<- Used by configure.sh
<- Frequently Asked Questions
<- Directory for images
<- Used by configure.sh
6 CHAPTER 1. INSTALLATION
-rw-r--r-- 1 85 makefile <- Used to "make" most.x
-rw-r--r-- 1 107844 most.c
<- Source for MoSt (Model Starter)
-rw-r--r-- 1 6399 NEW_IN_VERSION_16 <- New in this version drwxr-xr-x 8 4096 plasim <- Planet Simulator directory drwxr-xr-x 2 4096 postprocessor drwxr-xr-x 8 4096 puma
-rw-r--r-- 1 839 README
-rw-r--r-- 1
-rw-r--r-- 1
<- Postprocessor directory
<- PUMA directory
<- Read this first
191 README_MAC_USER <- Notes for MAC user
698 README_WINDOWS_USER <- Notes for Windows user
The directory structure must not be changed, even empty directories must be kept as they are, the Most program relies on the existence of these directories!
For each model, currently ”Planet Simulator” and ”PUMA” exists a directory (plasim) and
(puma) with following subdirectories:
Most16/plasim> ls -lg drwxr-xr-x 2 128 bin <- model executables drwxr-xr-x 2 1824 bld <- build directory drwxr-xr-x 2 280 dat <- initial and boundary data drwxr-xr-x 2 80 doc <- documentation, user’s guide, reference manual drwxr-xr-x 2 928 run <- run directory drwxr-xr-x 2 1744 src <- source code
After installation only ”dat”, ”doc” and ”src” contain files, all other directories are empty.
Running ”Most” to setup a model configuration and define an experiment uses the directories in the following manner:
1.3
Model build phase
Most writes an executable shell script to the ”bld” directory and executes it directly hereafter.
It copies all necessary source files from ”src” to ”bld” and modifies them according to the selected parameter configuration. Modification of source code is necessary for vertical and horizontal resolution change and for using more than 1 processor (parallel program execution).
The original files in the ”src” directory are not changed by Most. The program modules are then compiled and linked using the ”make” command (in bld/most plasim build), also issued by
Most. Most provides a makefile named make plasim for building the executable. For modules that exist in more than one version the selection of the module to use is done by environment variables that are set automatically by MoSt but may be changed manually by the user. Look into the make plasim for further information. The resolution and CPU parameters are coded into the filename of the executable, in order to have different names for different versions. E.g.
the executable ”most plasim t21 l10 p2.x” is an executable compiled for a horizontal resolution of T21, a vertical resolution of 10 levels and 2 CPU’s. The executable is copied to the models
”bin” directory after building. Each time Most is used to setup a new experiment it checks the
”bin” directory for a matching executable. If it’s there, it’s used without rebuilding otherwise a new executable with the selected parameters is created. Rebuilding may be forced by using the cleanplasim command in the Most directory. The build directory is not cleared after usage.
The user may want to modify the makefile or the build script for his own purposes and start the building directly by executing ”most plasim build”. For permanent user modifications the contents of the ”bld” directories have to be copied elsewhere, because each usage of Most overwrites the contents of ”bld”.
1.4. MODEL RUN PHASE
1.4
Model run phase
After building the model with the selected configuration, Most writes or copies all necessary files to the model’s ”run” directory. These are the executable, initial and boundary data, namelist files containing the parameter and finally the run script itself. Depending on the exit from Most, either ”Save & Exit” or ”Run & Exit”, the run script is started from Most and takes control of the model run. A checkmark on GUI invokes also the Graphical User Interface for user control and display of variables during the run. Again all contents of the ”run” directory are subject of change for the user. But it would be wise to keep changed run setups in other, user created directories, because each usage of Most overwrites the contents of the run directory.
7
1.5
Running long simulations
For long simulations make a new directory on a filesystem, that has enough free disk space to store the results. You may use the ”df” command to check filesystems.
Hint 1: Don’t use your home directory if there are filequotas. Your run may crash due to file quota exceeded.
Hint 2: Use a local disk, not NFS mounted filesystems if possible. The model runs much faster writing output to local disks.
Example:
• cd Most16
• ./most.x
• Select model and resolution
• Switch GUI off
• Switch Output on
• Edit number of years to run
• Click on ”Save & Exit”
• Make a directory, e.g. mkdir /data/longsim
• cp plasim/run/* /data/longsim
• cd /data/longsim
• edit most plasim run for experiment name
• edit namelist files if necessary
• start simulation with most plasim run &
8 CHAPTER 1. INSTALLATION
Chapter 2
Modules
In the following, the purposes of the individual modules is given and the general structure and possible input and output opportunities (namelist and files) are explained.
9
10 CHAPTER 2. MODULES
2.1
fluxmod.f90
General The module fluxmod.f90 contains subroutines to compute the different surface fluxes and to perform the vertical diffusion. The interface to the main PUMA module puma.f90 is given by the subroutines fluxini, fluxstep and fluxstop which are called in puma.f90 from the subroutines prolog, gridpointd and epilog, respectively.
Input/Output fluxmod.f90 does not use any extra input file or output file and is controlled by the namelist fluxpar which is part of the namelist file puma namelist:
Parameter Type Purpose Default
NEVAP
NSHFL
NSTRESS
Integer Switch for surface evaporation (0 = off,
1 = on)
Integer Switch for surface sensible heat flux
(0 = off, 1 = on)
Integer Switch for surface wind stress (0 = off,
1 = on)
1
1
1
NTSA Integer Switch for computing the near surface air temperature which is used for the
Richardson number (1 = potential tem-
2
NVDIFF
VDIFF LAMM
VDIFF B perature, 2 = virtual potential temperature)
Integer Switch for vertical diffusion (0 = off,
Real
Real
1
1 = on)
Tuning parameter for vertical diffusion 160.
Tuning parameter for vertical diffusion 5.
VDIFF C
VDIFF D
ZUMIN D
Real
Real
Real
Tuning parameter for vertical diffusion
Tuning parameter for vertical diffusion
Minimum surface wind speed (m/s)
5.
5.
1.
Structure Internally, fluxmod.f90 uses the FORTRAN-90 module fluxmod, which uses the global common module pumamod from pumamod.f90. Subroutine fluxini reads the namelist and, if the parallel version is used, distributes the namelist parameters to the different processes. Subroutine fluxstep calls the subroutine surflx to compute the surface fluxes and calls the subroutine vdiff to do the vertical diffusion.
Subroutine fluxstop is a dummy subroutine since there is nothing to do to finalize the computations in fluxmod.f90. The computation of the surface fluxes in surflx is spitted into several parts. After initializing the stability dependent transfer coefficients, the subroutines mkstress, mkshfl and mkevap do the computations which are related to the surface wind stress, the surface sensible heat flux and the surface evaporation, respectively.
2.2
miscmod.f90
General The module miscmod.f90 contains miscellaneous subroutines which do not fit well to other modules. The interface to the main module plasim.f90 is given by the subroutines miscini, miscstep and miscstop which are called in puma.f90
from the subroutines prolog, gridpointd and epilog, respectively. A subroutine to eliminate spurious negative humidity and an optional subroutine to relax the upper level temperature towards a prescribed distribution is included in miscmod.f90.
Input/Output miscmod.f90 does not use any extra output file. If the relaxation is switched on, a climatological annual cycle of the prescribed upper level temperature distribution [K] is read from the external file surface.txt. The file format is formatted SERVICE format with (8I10) for the headers and (8E12.6) for the temperature fields. To assign the field, the header needs to have the header information code 130, level 1 and a date identifier of the form yymmdd or mmdd where mm goes from 1 to 12 (January to December) or from 0 to 14 (including the December of the previous year and the January of the following year). Fields which are not needed will be skipped. The module is controlled by the namelist miscpar which is part of the namelist file puma namelist:
Parameter Type Purpose
NFIXER Integer Switch for correction of negative moisture (0 = off , 1= on)
NUDGE Integer Switch for temperature relaxation in the uppermost
TNUDGE Real level (0 = off , 1= on)
Time scale [d] of the temperature relaxation default
1
0
10.
Structure Internally, miscmod.f90 uses the FORTRAN-90 module miscmod, which uses the global common module pumamod from pumamod.f90. Subroutine miscini reads the namelist and, if the parallel version is used, distributes the namelist parameters to the different processes. If the relaxation is switched on, the climatological temperature is read from surface.txt and distributed to the processors. Subroutine miscstep calls the subroutine fixer to eliminate spurious negative humidity arising from the spectral method and, if the relaxation is switched on, calls the subroutine mknudge to do the temperature nudging. Subroutine miscstop is a dummy subroutine since there is nothing to do to finalize the computations in miscmod.f90.
11
12 CHAPTER 2. MODULES
2.3
surfmod.f90
General The module surfmod.f90 deals as an interface between the atmospheric part of the model and modules, or models, for the land and the oceans. The interface to the main PUMA module puma.f90 is given by the subroutines surfini, surfstep and surfstop which are called in puma.f90 from the subroutines prolog, gridpointd and epilog, respectively. Calls to subroutines named landini, landstep and landstop and seaini, seastep and seastop provide the interface to land and the ocean modules, respectively.
Input/Output surfmod.f90 reads the land-sea mask and the orography (surface geopotential) [m
2
/s
2
] from file surface.txt. The file format is formatted SERVICE format with (8I10) for the headers and (8E12.6) for the fields. To assign the fields, the headers need to have the header information code 129 for the surface geopotential and 172 for the land-sea mask (1.0 = land; 0.0 = sea). Fractional land-sea-masks containing other values than 1.0 and 0.0 will be converted with values > 0.5 set to
1.0 and all other to 0.0. surfmod.f90 is controlled by the namelist surfpar which is part of the namelist file puma namelist:
Parameter Type Purpose default
NSURF Integer Debug switch
NOROMAX Integer Resolution of orography
OROSCALE Real Scaling factor for orography not active
NTRU
1.0
Structure Internally, surfmod.f90 uses the FORTRAN-90 module surfmod, which uses the global common module pumamod from pumamod.f90. Subroutine surfini reads the namelist and, if the parallel version is used, distributes the namelist parameters to the different processes. If the run is not started from a restart file, the land-sea-mask and the orography are read from file surface.txt. According to the namelist input, the orography is scaled by OROSCALE, transfered into spectral space and truncated to NOROMAX. Calls to subroutines landini and seaini are the interfaces to the respective initialization routines contained in the land and ocean modules. During the run, the interface to land and ocean is given by calls to the external subroutines landstep and seastep, which are called by surfstep. At the end of the integration, interface subroutines landstop and seastop are called by surfstop.
2.4
fftmod.f90 / fft991mod.f90
General The module fftmod.f90 contains all subroutines necessary to perform the fast fourier transformation and its inverse.
The interface to the main module plasim.f90 is given by the subroutines gp2fc and fc2gp which are called in plasim.f90
from the subroutine gridpoint.
Input/Output fftmod.f90 does not use any extra input file or output file. No namelist input is required.
Structure Internally, fftmod.f90 uses the FORTRAN-90 module fftmod, which uses no other modules. Subroutine gp2fc performs the transformation from grid point space into fourier space while the subroutine fc2gp does the transformation from fourier space into grid point space. Both routines use several subroutines to do the direct or indirect transformation for different factors. When gp2fc or fc2gp is called for the first time, fftini is called to do the initialization of the FFT.
The alternate module fft991mod.f90 may be used instead of fftmod.f90. While fftmod.f90 runs faster fft991mod.f90 can be used for resolutions, that are not supported by fftmod.f90, e.g. T63 or T106. Edit the file Most16/plasim/src/make plasim for module selection. Use either
FFTMOD=fftmod or
FFTMOD=fft991mod
13
14 CHAPTER 2. MODULES
2.5
landmod.f90
General The module landmod.f90 contains parameterizations for land surface and soil processes which include the simple biome model SIMBA and a model for the river runoff. The interface to the Planet Simulator is given via the module surfmod.f90
by the subroutines landini, landstep and landstop which are called in surfmod.f90
from the subroutines surfini, surfstep and surfstop, respectively.
Input/Output landmod.f90 reads several surface and soil parameters either from the initial file surface.txt or from the restart file plasim restart which is written at the end of an integration. surface.txt contains several surface fields which are needed for initialization. The file format is formatted SERVICE format with (8I10) for the header and (8E12.6) for the fields. The file may include the following fields: surface geopotential (orography) [m
2
/s
2
], land-sea mask [1.0,0.0], surface roughness
[m], background albedo [frac.], glacier mask [frac.], bucket size [m], soil temperature
[K], climatological annual cycle of the surface temperature [K], climatological annual cycle of the soil wetness [m]. To assign the fields, the headers need to have the header information code 129 for surface geopotential, code 172 for the land-sea mask (1. = land; 0. = sea), 173 for the surface roughness, 174 for the background albedo, 232 for the glacier mask (1. = glacier; 0. = no glacier), 229 for the bucket size, 209 for the soil temperature, 169 for the surface temperature and 140 for the soil wetness. for the climatological annual cycles of surface temperature and soil wetness, a date identifier of the form yymmdd or mmdd where mm goes from 1 to 12
(January to December) is required. Two additional months with mm=0 indicating the December of the preceding year an mm=13 for the January of the following year may be included for interpolation during transient simulations. If there are some fields not present in the surface.txt default values will be used which can be set in the namelist. The use of some fields depend on the setting of some namelist parameters. The restart file plasim restart is an unformatted file which contains all variables needed to continue the run. landmod.f90 is controlled by the namelist landpar given in the namelist file land namelist:
Parameter Type Purpose
NLANDT
NLANDW
Integer Switch for surface temperature (1 = computed; 0 = climatology)
Integer Switch for soil wetness
(1 = computed; 0 = clima-
NBIOME tology)
Integer Switch for biome model
SIMBA (1 = on ; 0 = off)
ALBLAND Real
DZ0LAND Real
DRHSLAND Real
ALBSMIN Real
ALBSMAX Real
Background albedo
Roughnesslength [m]
Wetness factor
Minimum albedo for snow
Maximum albedo for snow
Default
1
1
0
0.2
2.0
0.25
0.4
0.8
Parameter Type Purpose Default
NWATCINI
DWATCINI
ALBGMIN
ALBGMAX
WSMAX
Integer
Real
Real
Real
Real
Switch to initialize soil water content manually
(1 = on;0 = off)
Soil water content (m) for manual initialization
Minimum glaciers albedo for
Maximum albedo for glaciers
Maximum field capacity of soil water (bucket size) [m]
DRHSFULL
DZGLAC
Real
Real
Threshold above which wetness factor is 1
Threshold of orography to
DZTOP Real be glacier (-1.0 = none) [m]
Thickness of the uppermost soil layer [m]
DSOILZ(5) Real Array Soil layer thicknesses [m]
0
0.0
0.6
0.8
0.5
0.4
-1.0
0.2
0.4,0.8,1.6,3.2,6.4
Structure Internally, landmod.f90 uses the FORTRAN-90 module landmod, which uses the global common module pumamod from plasimmod.f90. Subroutine landini reads the namelist and, if the parallel version is used, distributes the namelist parameters to the different processes. If the run is not started from a restart file, the initialization file surface.txt is being read. The soil and the river runoff are initialized via soilini and roffini and different variables are set according to the values given by the namelist or the surface.txt. Additionally, the climatological surface temperatures and soil wetnesses are updated from surface.txt if NRESTART = 2.
If NRESTART = 3 (special application) the bucket size, the roughness length and the albedo are set to the values given in the namelist. Subroutine landstep computes new surface and soil values via soilstep which calls tands and wandr for the heat and water budgets, respectively. If NLANDT and/or NLANDW are set to 0, climatological values are used for the surface temperature and the soil wetness. Via roffstep the river runoff is computed. Finally the biome model simbastep is called. The land model is finalized by landstop which writes the restart record to plasim restart.
15
16 CHAPTER 2. MODULES
2.6
legmod.f90
General The module legmod.f90 contains all subroutines necessary to perform the Legendre transformation and its inverse. The interface to the main module plasim.f90 is given by the subroutines legini, inigau, fc2sp, fc3sp, and sp2gp which are called in plasim.f90 from the subroutines prolog and gridpoint
Input/Output legmod.f90 does not use any extra input file or output file. No namelist input is required
The following subroutines are included in legmod.f90:
Subroutine inigau legini fs2sp sp2fc sp3fc dirlega dirlegd invlega invlegd
Purpose compute Gaussian abscissas and weights compute Legendre polynomials
Fourier to Spectral transformation
Spectral to Fourier transformation
Simultaneous transformation of T, Div., and Vort.
Compute and transform adiabatic tendencies
Compute and transform diabatic tendencies
Spectral to Fourier - adiabatic part
Spectral to Fourier - diabatic part
2.7
mpimod.f90 / mpimod stub.f90
General The module mpimod.f90 contains interface subroutines to the MPI (Message Passing Interface) needed for (massive) parallel computing. Several MPI routines are called from the module. The interface to other modules are given by numerous subroutines which names starts with mp. Subroutines from mpimod.f90 are called in sveral other modules. There are no direct calls to MPI other than in mpimod.f90. This encapsulation makes it possible to use mpimod stub.f90 for single CPU runs without changing any other part of the model code. The selection is done automatically by using MoSt or manually by editing ”Most15/plasim/src/make plasim”.
Input/Output mpimod.f90 and mpimod stub do not use any extra input file or output file. No namelist input is required
Structure Internally, mpimod.f90 uses the FORTRAN-90 module mpimod, which uses the global common module pumamod from plasimmod.f90 and the MPI module mpi. The following subroutines are included in mpimod.f90:
Subroutine Purpose mpbci mpbcin mpbcr mpbcrn mpbcl mpscin mpscrn mpscgp mpgagp mpgallgp mpscsp mpgasp mpgacs mpgallsp mpsum mpsumsc mpsumr mpsumbcr mpstart mpstop broadcast 1 integer broadcast n integers broadcast 1 real broadcast n reals broadcast 1 logical scatter n integers scatter n reals scatter grid point field gather grid point field gather grid point field to all scatter spectral field gather spectral field gather cross section gather spectral field to all sum spectral field sum and scatter spectral field sum n reals sum and broadcast n reals initialize MPI finalize MPI
17
18
Subroutine mpreadgp mpwritegp mpwritegph mpreadsp mpwritesp mpi info mpgetsp mpgetgp mpputsp mpputgp mpmaxval mpsumval
CHAPTER 2. MODULES
Purpose read and scatter grid point field gather and write grid point field gather and write (with header) grid point field read and scatter spectral field gather and write spectral field give information about setup read spectral array from restart file read gridpoint array from restart file write spectral array to restart file write gridpoint array to restart file compute maximum value of an array compute sum of all array elements
2.8
outmod.f90
General The module outmod.f90 controls the data output of the model. The interface to the main PUMA module puma.f90 is given by the subroutines outini, outgp, outsp, outreset and outaccu which are called in puma.f90 from the subroutines prolog and master.
Input/Output outmod.f90 writes the output data to the file puma output which is an unformatted file. puma output is designed to be post processed by the
program burn (see section 5), which converts the model variables to useful output
in user friendly format. There is no separate namelist for outmod.f90 but some parameter of namelist inp of plasim.f90 are used to control the format and the output interval.
Structure Internally, outmod.f90 uses the global common module pumamod from plasimmod.f90 in several subroutines. Subroutine outini does the initialization. Subroutines outgp and outsp write the grid point and the spectral fields to the output file puma output. outaccu accumulates some output variables over the output interval. outreset resets the accumulated arrays to zero.
19
20 CHAPTER 2. MODULES
2.9
plasim.f90
General The module plasim.f90 is the main module of the model. It includes the main program plasim and controls the run. From plasim.f90 the interface routines to the modules miscmod.f90, fluxmod.f90, radmod.f90, rainmod.f90, surfmod.f90 are called.
The output is done by calling the interface routines to outmod.f90.
In addition, the adiabatic tendencies and the horizontal diffusion are computed in plasim.f90. To do the necessary transformations, calls to the modules fftmod.f90 and legmod.f90 are used.
Input/Output plasim.f90 does not use any extra input file or output file. A diagnostic print out is written on standard output. plasim.f90 is controlled by the namelist inp which is part of the namelist file puma namelist:
Parameter Type Purpose Default
COLUMN
KICK
NWPD
NADV
NCOEFF
NDEL(NLEV)
NDIAG
NKITS
N RUN YEARS
N RUN MONTHS
N RUN DAYS
N START YEAR
N START MONTH
N DAYS PER YEAR
N DAYS PER MONTH
Integer
Integer
Integer
Integer
1: Set all parameters for default column mode
Switch for initial white noise disturbance on surface pressure (0 = none;
1 = global; 2 = hemispherically symmetric; 3 = one wavenumber only)
Number of Writes Per Day
(for output data)
Switch for
(0 = off;1 = on) advection
Integer Number of spectral coefficients in diagnostic print out
Integer Array Order of the horizontal diffusion
Integer Time interval for diagnostic
Integer
Integer
Integer
Integer print out [time steps]
Number of initial explicit
Euler time steps
Number of years to run
Number of months to run
Number of days to run (for
Integer
Integer
Integer
Integer short test runs)
Start year
Start month
365: use real calendar with leap years, 360: use simple calendar with 12 months of equal length
Number of days per month for simple calendar
0
1
1
1
0
NLEV · 2
12
3
1
0
-1
1
1
360
30
Parameter Type Purpose
MPSTEP
NEQSIG
NPRINT
NPRHOR
NPACKSP
NPACKGP
NRAD
NFLUX
NDIAGGP
Integer Minutes per step = length of timestep
Integer Switch for non equally spaced sigma levels
(1 = non equally spaced;
1 = equally spaced)
Integer Switch for extended debug print out (0 = off; 1 = on;
2 = very extended)
Integer Number of the grid point to be used for very extended debug print out
Integer Switch for spectral output
(0 = normal; 1 = compressed)
Integer Switch for grid point output (0 = normal; 1 = com-
Integer pressed)
Switch for
(0 = off; 1 = on) radiation
Integer Switch for surface fluxes and vertical diffuson
(0 = off; 1 = on)
Integer Switch for additional diagnostic grid point output
(0 = off; 1 = on)
NDIAGSP
NDIAGCF
Integer Switch for additional diagnostic spectral output
(0 = off; 1 = on)
Integer Switch for additional cloud forcing diagnostic (0 = off;
1 = on)
NDIAGGP2D Integer Number of additional diagnostic 2-d grid point output
(0 = off; 1 = on)
NDIAGGP3D Integer Number of additional diagnostic 3-d grid point output
(0 = off; 1 = on)
NDIAGSP2D Integer Number of additional diagnostic 2-d spectral output
(0 = off; 1 = on)
NDIAGSP3D Integer Number of additional diagnostic 3-d spectral output
(0 = off; 1 = on)
Default
45
1
0
0
1
1
1
1
0
0
0
0
0
0
0
21
22 CHAPTER 2. MODULES
Parameter Type Purpose Default
NDL(NLEV)
NHDIFF
NHORDIF
NTIME
NPERPETUAL
Integer Array Switch for diagnostic print out of a level (0 = off;
Integer
1 = on)
Cut off wave number for horizontal diffusion
Integer
Integer
Integer
Switch for horizontal diffusion (0 = off;1 = on)
Switch for CPU time diagnostics (0 = off; 1 = on)
Switch for perpetual simulations (0 = annual cycle;
DTEP
DTNS
DTROP
Real
Real
Real
>0 = day of the year)
Equator to pole temperature difference [K] for Newtonian cooling (usually not used)
North pole to south pole temperature difference [K] for Newtonian cooling (usually not used)
Tropopause height [m] for
Newtonian cooling (usually not used)
DTTRP Real
TGR
TDISSD(NLEV)
TDISSZ(NLEV)
TDISST(NLEV)
TDISSQ(NLEV)
PSURF
RESTIM(NLEV)
Real
Real Array
Real Array
Real Array
Real Array
Real
Real Array
Smoothing of the tropopause [K] for Newtonian cooling (usually not used)
Surface temperature [K] for
Newtonian cooling (usually not used) time scale [d] for the horizontal diffusion of divergence time scale [d] for the horizontal diffusion of vorticity time scale [d] for the horizontal diffusion of temperature time scale [d] for the horizontal diffusion of moisture
Global mean sea level pressure [Pa]
Time scale [d] for Newtonian cooling (usually not used)
NLEV · 0
15
1
0
0
0.0
0.0
12000.0
2
280
NLEV · 0.2
NLEV · 1.1
NLEV · 5.6
NLEV · 5.6
101100.00
NLEV · 0.0
Parameter Type Purpose Default
MARS
NGUI
Integer
Integer
1: Set all parameters for
Mars atmosphere
Run with (1) or without (0)
GUI
Global witch for enabling NOUTPUT
SELLON
T0(NLEV)
Integer
(1) or disabling (0) output to file puma output
Longitude of soundings in Real the GUI
Real Array Reference temperature used in the discretization scheme
TFRC(NLEV) Real Array Time scale [d] for Rayleigh friction (0.0 = off)
0
0
1
0.0
NLEV · 250.0
NLEV · 0.0
Structure Internally, plasim.f90 uses the FORTRAN-90 global common module pumamod from plasimmod.f90. After starting MPI, the main program plasim calls prolog for initializing the model. Then, master is called to do the time stepping.
Finally, subroutine epilog finishes the run. In subroutine prolog, calls to different subroutines, which are part of plasim.f90 or are provided by other modules, initialize various parts of the model: gauaw and inilat build the grid, readnl reads the namelist and sets some parameter according to the namelist input, initpm and initsi initialize some parameter for the physics and the semi implicit scheme, respectively. outini starts the output. If a file named plasim restart exists all variables and arrays are read by restart, otherwise initfd sets the prognostic variables to their initial values. Calls to miscini fluxini, radini, rainini and surfini start the initialization of the respective external modules.i Finally, the global mean surface pressure is set according to PSURF (the observed value is 1011 hPa (Trenberth 1981) while
1013 is the ICAO standard) and the orography. Subroutine master controls the time stepping. First, if its not a restart, initial NKITS explicit forward timesteps are performed. The main loop is defined by calling gridpointa for the adiabatic tendencies, spectrala to add the adiabatic tendencies, gridpointd for the diabatic tendencies (which are computed by the external modules), spectrald to add the diabatic tendencies and the interface routines to the output module outmod.f90.
The run is finalized by subroutine epilog which writes the restart records and calls the respective interface routines of the external modules.
23
24 CHAPTER 2. MODULES
2.10
plasimmod.f90
General The file plasimmod.f90 contains the module pumamod.f90 which declares all parameters and variables which may be used to share information between plasim.f90 and other modules. No subroutines or programs are included.
Input/Output pumamod.f90 does not use any extra input file or output file. No namelist input is required
Structure Internally, plasimmod.f90 is a FORTRAN-90 module named pumamod.
Names for global parameters, scalars and arrays are declared and, if possible, values are preset.
2.11
radmod.f90
General The module radmod.f90 contains subroutines to compute radiative energy fluxes and the temperature tendencies due to long wave and short wave radiation.
The interface to the main PLASIM module plasim.f90 is given by the subroutines radini, radstep and radstop which are called in plasim.f90 from the subroutines prolog, gridpointd and epilog, respectively.
Input/Output radmod.f90 does not use an extra output file. If the Switch for ozone
(NO3, see namelist) is set to 2 (externally prescribed), the climatological cycle of the ozone distribution is read from the external file surface.txt which name is given in the namelist. The file format is formatted SERVICE format with (8I10) for the header and (8E12.6) for the fields. To assign the fields, the headers need to have the header information code 200, level going from 1 to NLEV and a date identifier of the form yymmdd or mmdd where mm goes from 01 to 12 (January to December).
radmod.f90 is controlled by the namelist radpar which is part of the namelist file puma namelist:
Parameter Type Purpose Default
NDCYCLE
NO3
CO2
GSOL0
IYRBP
NSWR
NLWR
Integer
Integer
Real
Real
Integer
Integer
Integer
Switch for diurnal cycle of insolation (0 = off, 1 = on)
Switch for ozone (0 = off,
1 = idealized distribution,
2 = externally presrcibed)
CO
2 concentration [ppmv]
Solar constant [W/m
2
]
Year PB (reference is 1950) to calculate orbit from
Switch for short wave radiation (0 = off, 1 = on)
Switch for long wave radiation (0 = off, 1 = on)
NSOL Integer
NSWRCL Integer
Switch for incoming solar radiation (0 = off, 1 = on)
Switch for computed short wave cloud properties
(0 = off, 1 = on)
Switch for Rayleigh scatterNRSCAT Integer
RCL1(3) ing (0 = off, 1 = on)
Real Array Prescribed cloud albedos
[frac.] for high, middle and low level clouds (spectral range 1)
0
1
360.0
1367.0
-50
1
1
1
1
1
0.15,0.30.0.60
25
26 CHAPTER 2. MODULES
Parameter Type Purpose Default
RCL2(3) Real Array Prescribed cloud albedos
[frac.] for high, middle and low level clouds (spectral range 2)
ACL2(3) Real Array Prescribed cloud absorptiv-
CLGRAY
TPOFMT
Real
Real ities [frac.] for high, middle and low level clouds (spectral range 2)
Prescribed grayness of clouds (-1.0 = computed)
Tuning for point of mean
ACLLWR
TSWR1
TSWR2
TSWR3
DAWN
Real
Real
Real
Real
Real transmission
Mass absorption coefficient for clouds (long wave)
Tuning of cloud albedo
(spectral range 1)
Tuning of cloud back scattering (spectral range 2)
Tuning of cloud single scattering albedo (spectral range 2)
Threshold for zenith angle
0.15,0.30.0.60
0.05,0.10.0.20
-1.0
0.15
0.1
0.035
0.04
0.006
0.0
Structure Internally, radmod.f90 uses the FORTRAN-90 module radmod, which uses the global common module pumamod from plasimmod.f90. Additionally, the
FORTRAN-90 module orbparam is used. Subroutine radini reads the namelist and, if the parallel version is used, distributes the namelist parameters to the different processes. Orbital parameters are computed by calling orb params. If NO3 is set to 2, the ozone distribution is read from surface.txt. Subroutine radstep calls the subroutines solang and mko3 to compute the cosine of the solar angle and the ozone distribution, respectively. The short wave radiative fluxes are calculate in swr while the long wave radiative fluxes are computed in lwr. Subroutine radstop is a dummy subroutine since there is nothing to do to finalize the computations in radmod.f90.
2.12
rainmod.f90
General The module rainmod.f90 contains subroutines to compute large scale and convective precipitation and the related temperature tendencies.
In addition, a parameterization of dry convective mixing of temperature and moisture is included and cloud cover is diagnosed. The interface to the main PLASIM module plasim.f90
is given by the subroutines rainini, rainstep and rainstop which are called in puma.f90
from the subroutines prolog, gridpointd and epilog, respectively.
Input/Output rainmod.f90 does not use any extra input or output file and is controlled by the namelist rainpar which is part of the namelist file puma namelist:
Parameter Type Purpose Default
KBETTA
NPRL
NPRC
Integer
Integer
Integer
Switch for betta in Kuo parameterization (0 = off,
1 = on)
Switch for large scale precipitation (0 = off, 1 = on)
Switch for convective precipitation (0 = off, 1 = on)
NDCA Integer Switch for dry convective adjustment (0 = off, 1 = on)
Switch for shallow convecNSHALLOW Integer tion (0 = off, 1 = on)
RCRIT(NLEV) Real Array Critical relative humidity for cloud formation
CLWCRIT1 Real Critical vertical velocity for cloud formation
[Pa/s] (not active if
CLWCRIT2 Real
CLWCRIT2 > CLWCRIT1)
Critical vertical velocity for cloud formation
[Pa/s] (not active if
CLWCRIT2 > CLWCRIT1)
1
1
1
1
1 computed
-0.1
0.0
Structure Internally, rainmod.f90 uses the FORTRAN-90 module rainmod, which uses the global common module pumamod from plasimmod.f90. Subroutine rainini reads the namelist and, if the parallel version is used, distributes the namelist parameters to the different processes. Subroutine rainstep calls the subroutine mkdqdtgp to obtain the adiabatic moisture tendencies in grid point space, which are needed for the Kuo parameterization. kuo is called to compute the convective precipitation and the respective tendencies. Dry convective adjustment is performed in mkdca. Large scale precipitation is computed in mklsp. Finally, diagnostic clouds are calculated in mkclouds. Subroutine radstop is a dummy subroutine since there is nothing to do to finalize the computations in radmod.f90.
27
28 CHAPTER 2. MODULES
2.13
seamod.f90
General The module seamod.f90 is the interface from the atmosphere to the ocean and the sea ice. The interface to the main PLASIM module puma.f90 is given by the subroutines seaini, seastep and seastop which are called in puma.f90 from the subroutines prolog, gridpointd and epilog respectively.
Input/Output seamod.f90 reads different surface parameters either from the file surface.txt (see namelist) and the file ocean parameter or from the restart file sea restart which is written at the end of an integration.. The files formats are unformatted for the restart file, formatted SERVICE format with (8I10) for the header and (8E12.6) for the fields for surface.txt and formatted EXTRA format with (4I10) for the header and (6(1X,E12.6)) for the fields for ocean parameter.
The file surface.txt may include the following fields: The climatological annual cycle of the surface temperature [K] and the climatological annual cycle of the sea ice compactness [frac.]. To assign the fields, the headers need to have the header information code 169 for surface temperature and code 210 for the compactness
(1 = ice; 0. = open water). a date identifier of the form yymmdd or mmdd where mm goes from 1 to 12 (January to December) is required. Fields which are not needed will be skipped. The file ocean parameter includes the following fields:
The climatological annual cycle of the sea surface temperature [K], the climatological annual cycle of the mixed layer depth [m] and the climatological average of the deep ocean temperature [m]. To assign the fields, the order must be as described above
(no header information is used). The restart file sea restart contains all variables needed to continue the run. seamod.f90 is controlled by the namelist seapar given in the namelist file sea namelist:
Parameter Type Purpose Default
ALBSEA
ALBICE
DZ0SEA
DZ0ICE
Real
Real
Real
Real
Albedo for ice free ocean
Maximum albedo for sea ice
Minimum roughness length
[m] for ice free ocean
Roughness length [m] for sea ice
DRHSSEA Real Wetness factor for ice free ocean
Wetness factor for sea ice DRHSICE Real
NOCEAN Integer Switch for ocean model
(0 = climatological SST,
1 = ocean model)
NICE Integer Switch for sea ice model
(0 = climatological, 1 = sea ice model)
0.069
0.7
1.0 · 10
−5
1.0 · 10
−3
1.0
1.0
1
1
Parameter Type Purpose
NCPL ICE OCEAN Integer ice-ocean coupling time steps
NCPL ATMOS ICE Integer ice atmosphere coupling time steps
TDEEPSEA Real Homogeneous deep ocean
DHICEMIN Real temperature [K]
Minimum sea ice thickness
[m]
Default
32
1
0.0
0.1
Structure Internally, seamod.f90 uses the FORTRAN-90 module seamod, which uses the global common module pumamod from plasimmod.f90. Subroutine seaini reads the namelist and, if the parallel version is used, distributes the namelist parameters to the different processes. If it is not a restart (i.e. if NRESTART from inp of plasimmod.f90 is 0), the files surface.txt and ocean parameter are being read.
The climatological sea ice compactness is converted to a sea ice thickness as initial condition and additional surface parameters are set. If it is a restart, the restart file sea restart is read. Subroutine seastep accumulates the variables used for the coupling between the atmosphere and the ocean. The coupling is done via the sea ice model. There is no direct connection between atmosphere and ocean model. If there is no sea ice, the coupling quantities are passed through the ice model without changes. Subroutine seastop finalizes the run and writes the restart records.
29
30 CHAPTER 2. MODULES
2.14
Sea ice and ocean modules
This section describes the modules that represent sea ice and ocean and the necessary interfaces between these modules and the atmospheric modules. Conceptually, the sea ice model lies inbetween the atmosphere model and the ocean model. Thus, the PUMA main part and the ocean model are both coupled to the sea ice model, but not directly to each other. The sea ice model decides whether a given gridpoint is covered with ice or not, in the latter case, it merely functions as passing the ocean fluxes to the atmosphere and vice versa. The parameters that
are exchanged are listed in Table 2.1. The sea ice and ocean model use a time step of one day.
Thus, atmospheric coupling to the sea ice model is performed every 32 time steps, while the sea ice and ocean model are coupled every time step. The coupling scheme is shown in Fig.
2.1. Fig. 2.2 shows how the subroutines are placed when no external coupler is used.
Parameter
Ice cover
Ice thickness
Snow thickness
Surface temperature
Deep sea temperature
Mixed layer depth
Net precipitation, runoff
Salinity
Melt and freeze volume
Heat fluxes d(Heat fluxes)/dT
Radiation
Wind stress
Atmosphere ← → Ice Ice ← → Ocean
← −
←
←
←
−
→
→
←
←
−
→
→
−
→
−
→
→
←
→
←
→
→
−
−
→
Table 2.1: Parameters to be exchanged between models. Arrows denote the direction in which the parameter is passed, e.g. the atmosphere receives ice cover information from the ice model.
2.14. SEA ICE AND OCEAN MODULES
11
11
32
11
ATMOSPHERE
net precipitation, runoff, total heatflux, sensible heatflux, radiation, wind stress
SEA ICE
surface temperature, ice cover, snow thickness, ice thickness net precipitation, runoff, total heatflux, wind stress, freeze and melt volume
OCEAN
sea surface temperature, deep sea temperature, mixed layer depth, salinity
Figure 2.1: Schematic illustration of the model coupling.
31
32 CHAPTER 2. MODULES
FLOW DIAGRAM
ATMOSPHERE − ICE − OCEAN
EXCHANGE
PUMA MAIN LOOP
puma.f90
SURFSTEP
surfmod.f90
LANDSTEP
landmod.f90
SEASTEP
seamod.f90
CPLEXCHANGE_ICE
intermod_atm.f90
ICESTEP
icemod.f90
CPLEXCHANGE_OCEAN
iintermod_ice.f90
CPLEXCHANGE_ATMOS
intermod_ice.f90
OCEANSTEP
oceanmod.f90
Figure 2.2: Subroutine flow when no external coupler is used.
2.14. SEA ICE AND OCEAN MODULES
2.15
icemod.f90
General The module icemod.f90 contains subroutines to compute sea ice cover and thickness.
The interface to the main PLASIM module is given by the subroutine icestep, which is called by cplexchange_ice (defined in intermod_atm.f90), which is called by seastep (defined in seamod.f90).
Input/Output icemod.f90 requires the file ice_flxcor if NFLXCORR is set to a negative value. If NOUTPUT is set to 1, the output files fort.75 containing global fields of ice model data and the file fort.76 containing diagnostic ice data are produced (for details, see the reference manual). Both output files are in service format. The module is controlled by the namelist icepar in the file ice_namelist.
Parameter
NDIAG default
160
NOUT
NOUTPUT
NFLXCORR
Type Purpose
INTEGER Diagnostic output every NDIAG time steps
INTEGER Model data output every NOUT time steps
INTEGER Icemodel output (0=no,1=yes)
INTEGER Time constant for restoring (> 0), no flux correction (= 0), use fluxcorrection from file (< 0)
32
1
360 d
Structure icemod.f90 uses the module icemod which is not dependent on the module pumamod. Subroutine iceini reads the namelist and, when required, the flux correction from the file ice_flxcor. Subroutine icestep calls cplexchange_atmos (defined in intermod_ice) to get the atmospheric forcing fields. If the sea_namelist parameter NICE is set to 1, the subroutine subice is called, which calculates ice cover and thickness. Otherwise, climatological data, interpolated to the current time step by iceget are used. If an ice cover is present, the surface temperature is calculated in skintemp. Otherwise, the surface temperature is set to the sea surface temperature calculated by the ocean model. Every NCPL_ICE_OCEAN (defined in sea_namelist) time steps, the external subroutine cplexchange_ocean (defined in intermod_ice) is called to pass the atmospheric forcing to and retrieve oceanic data from the ocean module oceanmod.f90. The oceanic data is used for ice calculations in the next time step.
33
34 CHAPTER 2. MODULES
2.16
oceanmod.f90
General The module oceanmod.f90 contains a mixed layer ocean model, i.e.
subroutines to compute sea surface temperature and mixed layer depth. The interface to the main PLASIM module is via the module icemod.f90 given by the subroutine oceanstep, which is called by cplexchange_ocean (defined in intermod_ice).
Input/Output oceanmod.f90 requires the file ocean_flxcor if NFLX-
CORRSST or NFLXCORRMLD is set to a negative value. If NOUTPUT is set to 1, the output file fort.31 containing global fields of ocean model data in service format is produced (for details, see the ice modul section of the reference guide). The module is controlled by the namelist oceanpar in the file ocean_namelist.
default
480
Parameter
NDIAG
NOUT
NOUTPUT
Type Purpose
INTEGER Diagnostic output every NDIAG time steps
INTEGER Model data output every NOUT time steps
INTEGER Oceanmodel
(0=no,1=yes) output
NFLXCORRMLD INTEGER Time constant for restoring mixed layer depth (> 0), no flux correction (= 0), use fluxcorrection from file (< 0)
NFLXCORRSST INTEGER Time constant for restoring sea surface temperature (> 0), no flux correction (= 0), use fluxcorrection from file (< 0)
32
1
60 d
60 d
Structure oceanmod.f90 uses the module oceanmod which is not dependent on the module pumamod. Subroutine oceanini reads the namelist and, when required, the flux corrections from the file ocean_flxcor. Subroutine oceanstep calls mixocean, which calculates mixed layer depth and temperature. If an ice cover is present, mixed layer depth is set to the climatological value and the sea surface temperature is set to the freezing temperature. For details of the mixed layer model, see the Planet Simulator Reference Manual.
Chapter 3
Parallel Program Execution
3.1
Concept
The Planet Simulator is coded for parallel execution on computers with multiple CPU’s or networked machines. The implementation uses MPI (Message Passage Interface), that is available for nearly every operating system http://www.mcs.anl.gov/mpi.
In order to avoid maintaining two sets of source code for the parallel and the single CPU version, all calls to the MPI routines are encapsulated into a module. Users, that want to compile and execute the parallel version use the module mpimod.f90 and the commands mpif90 for compiling and mpirun for running.
If MPI is not implemented or the single CPU version is sufficient, mpimod stub.f90 is used instead of mpimod.f90. Also remove or comment the line:
!
use mpi and set the number of processors to 1: parameter(NPRO = 1)
3.2
Parallelization in Gridpoint Domain
The data arrays in gridpoint domain are either three-dimensional e.g. gt(NLON, NLAT, NLEV) referring to an array organized after longitudes, latitudes and levels, or two-dimensional, e.g.
gp(NLON, NLAT). The code is organized such, that there are no dependencies in latitudinal direction, while in gridpoint domain. Such dependencies are resolved during the Legendre-
Transformations. So the the partitioning of the data is done in latitudes. The program can use as many CPU’s as latitudes with the extreme of every CPU doing the computations for a single latitude. There is the restriction however, that the number of latitudes (NLAT) divided by the number of processors (NPRO), giving the number of latitudes per process (NLPP) must have zero remainder. E.g. A T31 resolution uses N LAT = 48. Possible values for NPRO are then 1, 2, 3, 4, 6, 8, 12, 16, 24, and 48.
All loops dealing with a latitudinal index look like: do jlat = 1 , NLPP
....
enddo
There are, however, many subroutines, with the most prominent called calcgp, that can fuse latitudinal and longitudinal indices. In all these cases the dimension NHOR is used. NHOR is defined as: N HOR = N LON ∗ N LP P in the pumamod - module. The typical gridpoint loop that looks like:
35
36 CHAPTER 3. PARALLEL PROGRAM EXECUTION do jlat = 1 , NLPP do jlon = 1 , NLON gp(jlon,jlat) = ...
enddo enddo is then replaced by the faster executing loop: do jhor = 1 , NHOR gp(jhor) = ...
enddo
3.3
Parallelization in Spectral Domain
The number of coefficients in spectral domain (NRSP) is divided by the number of processes
(NPRO) giving the number of coefficients per process (NSPP). The number is rounded up to the next integer and the last process may get some additional dummy elements, if there is a remainder in the division operation.
All loops in spectral domain are organized like: do jsp = 1 , NSPP sp(jsp) = ...
enddo
3.4
Synchronization points
All processes must communicate and have therefore to be synchronized at following events:
• Legendre-Transformation: This involves changing from latitudinal partitioning to spectral partitioning and such some gather and scatter operations.
• Inverse Legendre-Transformation: The partitioning changes from spectral to latitudinal by using gather, broadcast, and scatter operations.
• Input-Output: All read and write operations must be done only by the root process, who gathers and broadcasts or scatters the information as desired. Code that is to be executed by the root process exclusively is written like: if (mypid == NROOT) then
...
endif
NROOT is typically 0 in MPI implementations, mypid (My process identification) is assigned by MPI.
3.5. SOURCE CODE 37
3.5
Source code
It needs some discipline in order to maintain parallel code. Here are the most important rules for changing or adding code to the Planet Simulator:
• Adding namelist parameters: All namelist parameters must be broadcasted after reading the namelist. (Subroutines mpbci, mpbcr, mpbcin, mpbcrn)
• Adding scalar variables and arrays: Global variables must be defined in a module header and initialized.
• Initialization code: Initialization code, that contains dependencies on latitude or spectral modes must be done by the root process only and then scattered from there to all child processes.
• Array dimensions and loop limits: Always use parameter constants (NHOR, NLAT,
NLEV, etc.) as defined in pumamod.f90 for array dimensions and loop limits.
• Testing: After significant code changes the program should be tested in single and in multi-CPU configuration. The results of a single CPU run is usually not exactly the same as the result of a multi-CPU run due to effects in rounding. But the results should show only small differences during the first timesteps.
• Synchronization points: The code is optimzed for parallel execution and minimizes therefore communication overhead. The necessary communication code is grouped around the Legendre-transformations. If more scatter/gather operations or other communication routines are to be added, they should be placed just before or after the execution of the calls to the Legendre-Transformation. Any other place would degrade the overall performance in introducing additional process synchronization.
38 CHAPTER 3. PARALLEL PROGRAM EXECUTION
Chapter 4
Graphical User Interface
4.1
Graphical user interface (GUI)
The Planet Simulator may be used in the traditional fashion, with shell scripts, batch jobs, and network queuing systems. This is acceptable for long running simulations on complex machines and number-crunchers, like vector- computers, massive-parallel-computers and workstation clusters. There is now, however, a much more convenient method by using a graphical user interface (GUI) for model setup with parameter configurations and for interaction between user and model.
The Planet Simulator is configured and setup by the first GUI module named MoSt
(Model Starter, screenshot in 4.1). MoSt is the fastest way to get the model running. It
gives access to the most important parameters of the model preset to the most frequently used values. The model can be started with a mouse click on the button labelled ”Save &
Run” either with the standard paramater setting or after editing some of the parameters in the MoSt window. Some parameters, like horizontal and vertical resolution, or the number of processors, require the building (compile, link and load) of new executables. MoSt achieves this by generating and executing build scripts, that perform the necessary code changes and create the required executable. Other parameters define startup- and boundary conditions or settings for parameterisations. They can be edited in MoSt and, after a check for correct range and consistency with other parameters, are written to the model’s namelist file.
Depending on all settings MoSt generates a runscript for the simulation. The user has the choice of leaving MoSt and continue with the simulation under control of a GUI right away, or to exit MoSt with the scripts prepared to run. The second alternative is useful for users, who want to modify the setup beyond the scope of MoSt or want to run the Planet Simulator without GUI.
There’s also a simple graphical editor for topograpy. Check the box Orography and then use the mouse to mark rectangular areas in the topography display. Enter a value for rising
(positive) or lowering the area and press the button labelled Preprocess. The preprocessor will be built and executed, a new topography will be computed and written to a start file.
Another editor is the mode editor for spherical harmonics. Green modes are enabled, red modes are disabled. This feature can be used to make runs with only certain modes of spherical harmonics being active. MB1, MB2, MB3 refer to the left, middle, and right mouse button.
You may toggle individual modes or whole lines and columns. Currently this mode editor can only be used for Planet Simulator in the T21 resolution.
The GUI for running the Planet Simulator (screenshot in 4.2) has two main purposes.
The first one is to display model arrays in suitable representations. Current implementations are:
• Zonal mean cross sections
39
40 CHAPTER 4. GRAPHICAL USER INTERFACE
Figure 4.1: Screenshot of Model Starter (MoSt)
Figure 4.2: Screenshot of Graphical User Interface (GUI)
4.2. GUI CONFIGURATION 41
• Horizontal global fields in cylinder projection
• Horizontal global fields in polar projection
• Time-longitude (Hovmoeller) diagrams
• Amplitudes of coefficients of spherical harmonics
• Time series
• Numerical values
In case of horizontal global grids pressing the MMB (Middle Mouse Button) toggles between cylinder and polar projection. If the grid is just one level from many of a three dimensional field like u or v, the level shown can be decreased by the LMB or increased by the RMB. For
Hovmoeller and longitude height sections the LMB and RMB can be used to select the latitude.
The second purpose is the interaction part of the GUI, which allows the user to change selected model variables during the model run. It is not necessary, though possible, to pause the model while changing variables. Changes to model variables are, of course, monitored in the outputfile and checked by GUI for the appropriate range of values and maximum possible change per timestep because, otherwise, a rapid parameter change or a choice of values beyond the normal range may blow up the model.
All model variables, which are candidates for the display or interactive changes, have a special code to communicate with the Planet Simulator. The experienced modeller can add new code for more variables using the existing communication code as template. Thus all model fields or even fields received via coupling with other models can be put on the GUI display.
Both, MoSt and GUI are implemented using the Xlib (X11R5), which is a library of routines for graphics and event communication. As this library is part of every UNIX/Linux operating system and base of all desktop environments, there is no need to install additional software for running MoSt and GUI. Another important property of Xlib is the full network transparency.
The display of MoSt and GUI is not locked to the machine running the programs or the model.
In fact, the best performance is obtained in running the Planet Simulator on two or four
CPUs of a remote server while displaying the GUI on the user’s workstation. In summarizing, the MoSt and GUI programs automate many tedious tasks, minimize the time to become familiar with the Planet Simulator, and make debugging and parameter tuning much easier.
More kinds of presentations, coordinate projections and interactivity are being developed. A graphical preprocessor with editor for boundary conditions and a graphical postprocessor are future expansions to build an almost complete environment for modellers.
4.2
GUI configuration
On initialization the GUI reads its configuration from a file GUI.cfg which must be present in the current directory. MoSt copies the file GUI.cfg from the ../dat/ directory to the run directory while building the Planet Simulator. After reading GUI.cfg an attempt is made to read the file GUI last used.cfg. This file is always written at the end of a GUI controlled simulation. So one may rearrange and position GUI windows during a run and the new layout will be saved to the file GUI last used.cfg. In order to make this user layout default for following runs, just copy this file like:
Most15/plasim/run$ cp ../dat/GUI.cfg ../dat/GUI.cfg.old
Most15/plasim/run$ cp GUI_last_used.cfg ../dat/GUI.cfg
42 CHAPTER 4. GRAPHICAL USER INTERFACE
MoSt will then copy your new layout to the run directory at the next invocation.
The GUI.cfg is a text file that may be also edited manually. There is a section for each window (counting from 0 to 8) which looks like:
[Window 00]
Array:CSU
Plot:ISOCS
Palette:U
Title:Zonal Wind [m/s]
Geometry: 529 299 2 3
[Window 01]
Array:SPAN
Plot:ISOSH
Palette:AMPLI
Title:Spherical Harmonics Ps
Geometry: 529 299 535 3
...
<- window number (0..8)
<- array name
<- picture type
<- colour palette
<- window title
<- width height left top
Possible values for these items are:
4.2.1
Array
Name
CSU
CSV
CST
SPAN
Description
Cross Section U - Zonal mean zonal wind
Cross Section V - Zonal mean meridional wind
Cross Section T - Zonal mean temperature
Spherical harmonics coefficients of surface pressure
GU
GV
GP
Three dimensional grid of zonal wind
Three dimensional grid of meridional wind
Grid of surface pressure
DQVI Vertically integrated humidity
GUCOL sounding of eastward wind at a grid point
GVCOL sounding of northward wind a grid point
GTCOL sounding of temperature at a grid point
DQCOL sounding of humidity at a grid point
DQLCOL sounding of liquid water at a grid point
DCCCOL sounding of cloud cover at a grid point
SCALAR Selected scalars for timeseries and tables
4.2. GUI CONFIGURATION
4.2.2
Plot
Name Description
ISOHOR Isolines and colouring of horizontal grids
ISOCS Isolines and colouring of cross sections
ISOHOV Colouring of Hovmoeller diagram
ISOTS Timeseries
ISOTAB Tables
ISOSH Coloured amplitudes
ISOLON Isolines and colouring of longitude height section
ISOCOL vertical Hovmoeller diagram for soundings
43
4.2.3
Palette
Name Range Description
AUTO automatic rainbow colours
U
V
T
-10 .. 50
-10 .. 10
-50 .. 50 rainbow colours rainbow colours blue - red
P
Q
DCC
985 .. 1025 blue - red
0 .. 60 rainbow colours
0 ..100
rainbow colours
MARST -90 .. 0
AMPLI 0 .. 12
VEG 0 .. 100 blue -red blue - green -red shades of green
4.2.4
Title
The title item may contain any text, but keep it short, the length of the window’s title bar is limited. The words Latitude and Level have special features in conjunction with threedimensional arrays, where the user may scroll the level or latitude. The GUI will insert the level number after the world Level or the latitude after the word Latitude.
4.2.5
Geometry
The four integers following the geometry item describe the size and screen position of the window. The first two parameters refer to width and height in screen pixel. These are the sizes of the inner window, title bar, border and other decorations are not counted. The third and fourth parameter set the coordinates of the upper left corner of the window x and y, again without borders. If the geometry item is not defined, the GUI will initialize the window’s geometry depending on the screen size.
44 CHAPTER 4. GRAPHICAL USER INTERFACE
Chapter 5
Postprocessor Pumaburner
5.1
Introduction
The Pumaburner is a postprocessor for the Planet Simulator and the PUMA model family. It’s the only interface between raw model data output and diagnostics, graphics, and user software.
The output data of the Planet Simulator are stored as packed binary (16 bit) values using the model representation. Prognostic variables like temperature, divergence, vorticity, pressure, and humidity are stored as coefficients of spherical harmonics on σ levels. Variables like radiation, precipitation, evaporation, clouds, and other fields of the parameterization package are stored on Gaussian grids.
The tasks of the Pumaburner are:
• Unpack the raw data to full real representation.
• Transform variables from the model’s representation to a user selectable format, e.g. grids, zonal mean cross sections, fourier coefficients.
• Calculate diagnostic variables, like vertical velocity, geopotential height, wind components, etc.
• Transfrom variables from σ levels to user selectable pressure levels.
• Compute monthly means and standard deviations.
• Write selected data either in SERVICE, GRIB, or NetCDF format for further processing.
5.2
Usage pumaburn4 [options] InputFile OutputFile <namelist >printout option -h : help (this output) option -c : print available codes and names option -d : debug mode (verbose output) option -g : Grib output (override namelist option) option -n : NetCDF output (override namelist option) option -m : Mean=1 output (override namelist option)
InputFile : Planet Simulator or PUMA data file
OutputFile : GRIB, SERVICE, or NetCDF format file namelist : redirected <stdin> printout : redirected <stdout>
45
46 CHAPTER 5. POSTPROCESSOR PUMABURNER
5.3
Namelist
The namelist values control the selection, coordinate system and output format of the postprocessed variables. Names and values are not case sensitive. You can assign values to the following names:
Name
HTYPE
Def.
Type Description
S char Horizontal type
VTYPE S char Vertical type
MODLEV 0 int hPa 0 real
Model levels
Pressure levels
CODE 0 int ECMWF field code
GRIB
NETCDF
MEAN
HHMM
HEAD7
MARS
MULTI
0
0
1 int int int
1 int
0 int
0 int
0 int
GRIB output selector
NetCDF output selector
Compute monthly means
Example
HTYPE=G
VTYPE=P
MODLEV=2,3,4 hPa=500,1000
CODE=130,152
GRIB=1
NETCDF=1
MEAN=0
Time format in Service format HHMM=0
User parameter HEAD7=0815
Use constants for planet Mars MARS=1
Process multiple input files MULTI=12
5.4
HTYPE
HTYPE accepts the first character of the following string. Following settings are equivalent:
HTYPE = S, HTYPE=Spherical Harmonics HTYPE = Something. Blanks and the equal-sign are optional.
Possible Values are:
Setting Description Dimension for T21 resolution
HTYPE = S Spherical Harmonics (506):(22 * 23 coefficients)
HTYPE = F Fourier Coefficients (32,42):(latitudes,wavenumber)
HTYPE = Z Zonal Means
HTYPE = G Gauss Grid
(32,levels):(latitudes,levels)
(64,32):(longitudes,latitudes)
5.5
VTYPE
VTYPE accepts the first character of the following string. Following settings are equivalent:
VTYPE = S, VTYPE=Sigma VTYPE = Super. Blanks and the equal-sign are optional.
Possible Values are:
Setting Description Remark
VTYPE = S Sigma (model) levels Some derived variables are not available
VTYPE = P Pressure levels Interpolation to pressure levels
5.6
MODLEV
MODLEV is used in combination with VTYPE = S. If VTYPE is not set to Sigma, the contents of MODLEV are ignored. MODLEV is an integer array that can get as many values as there are levels in the model output.
The levels are numbered from top of the atmosphere to the bottom. The number of levels and the corresponding sigma values are listed in the pumaburner printout. The outputfile orders the level according to the MODLEV values.
MODLEV=1,2,3,4,5 produces an output file of five model levels sorted from top to bottom, while MODLEV=5,4,3,2,1 sorts them from bottom to top.
5.7. HPA 47
5.7
hPa hPa is used in combination with VTYPE = P. If VTYPE is not set to Pressure, the contents of hPa are ignored. hPa is a real array that accepts pressure values with the units hectoPascal or millibar. All output variables will be interpolated to the selected pressure levels. There is no extrapolation on the top of the atmosphere. For pressure values, that are lower than that of the model’s top level, the top level value of the variable is taken. The variables temperature and geopotential height are extrapolated if the selected pressure is higher than the surface pressure. All other variables are set to the value of the lowest mode level for this case. The outputfile contains the levels in the same order as set in hPa. Example: hpa =
100,300,500,700,850,900,1000.
5.8
MEAN
MEAN can be used to compute montly means and/or deviations. The Pumaburner reads date and time information from the model file and handles different lengths of months and output intervals correctly.
Setting Description
MEAN = 0 Do no averaging - all terms are processed.
MEAN = 1 Compute and write monthly mean fields. Not for spherical harmonics, Fourier coefficients or zonal means on sigma levels.
MEAN = 2 Compute and write monthly deviations. Not for spherical harmonics, Fourier coefficients or zonal means on sigma levels. Deviations are not available for NetCDF output.
MEAN = 3 Combination of MEAN=1 and MEAN=2. Each mean field is followed by a deviation field with an identical header record. Not for spherical harmonics, Fourier coefficients or zonal means on sigma levels.
5.9
Format of output data
The pumaburner supports three different output formats:
• GRIB (GRIdded Binary) WMO standard for gridded data.
• NetCDF (Network Common Data Format)
• Service Format for user readable data (see below).
For more detailed descriptions see for example: http://www.nws.noaa.gov/om/ord/iob/NOAAPORT/resources/
Setting Description
GRIB = 1 NetCDF = 0 The output file is written GRIB format. This option can be used only for HTYPE=Spherical Harmonics or
HTYPE=Gauss Grid.
GRIB = 0 NetCDF = 1 The output file is written in NetCDF format. This option can be used for HTYPE=Gauss Grid only.
GRIB = 0 NetCDF = 0 The output file is written in Service format. This is the preferred format for user programs. For a detailed description see the following section.
GRIB = 1 NetCDF = 1 Illegal combination.
48 CHAPTER 5. POSTPROCESSOR PUMABURNER
5.10
SERVICE format
The SERVICE format uses the following structure: The whole file consists of pairs of header records and data records. The header record is an integer array of 8 elements.
head(1) = ECMWF field code head(2) = modellevel or pressure in [Pa] head(3) = date [yymmdd] (yymm00 for monthly means) head(4) = time [hhmm] or [hh] for HHMM=0 head(5) = 1. dimension of data array head(6) = 2. dimension of data array head(7) = may be set with the parameter HEAD7 head(8) = experiment number (extracted from filename)
Example for reading the SERVICE format (GRIB=0 , NETCDF=0)
INTEGER HEAD(8)
REAL FIELD(64,32) ! dimensions for T21 grids
READ (10,ERR=888,END=999) HEAD
READ (10,ERR=888,END=999) FIELD
....
888 STOP ’I/O ERR’
999 STOP ’EOF’
....
5.11
HHMM
Setting Description
HHMM = 0 head(4) shows the time in hours (HH).
HHMM = 1 head(4) shows the time in hours and minutes (HHMM).
5.12
HEAD7
The 7th. element of the header is reserved for the user. It may be used for experiment numbers, flags or anything else. Setting HEAD7 to a number exports this number to every header record in the output file (SERVICE format only).
5.13
MARS
This parameter is used for processing simulations of the Mars atmosphere. Setting MARS=1 switches gravity, gas constant and planet radius to the correct values for the planet Mars.
5.14
MULTI
The parameter MULTI can bes used to process a series of input data within one run of the pumaburner. Setting MULTI to a number (n) tells the pumaburner to procees (n) input files.
The input files must follow one of the following two rules:
• YYMM rule: The last four characters of the filename contain the data in the form YYMM.
5.15. NAMELIST EXAMPLE 49
• .NNN rule: The last four characters of the filename consist of a dot followed ny a 3-digit sequence number.
Examples:
Namelist contains MULTI=3
Command: pumaburn <namelist >printout run.005 out pumaburn processes the files <run.005> <run.006> <run.007>
Namelist contains MULTI=4
Command: pumaburn <namelist >printout exp0211 out pumaburn processes the files <exp0211> <exp0212> <exp0301> <exp0302>
5.15
Namelist example
VTYPE = Pressure
HTYPE = Grid
CODE = 130,131,132 hPa = 200,500,700,850,1000
MEAN = 0
GRIB = 0
NETCDF = 0
This namelist will write Temperature(130), u(130) and v(131) on pressure levels 200hPa,
500hPa, 700hPa, 850hPa and 1000hPa. The output interval is the same as found on the model data, e.g. every 12 or every 6 hours (MEAN=0). The output format is SERVICE format.
5.16
Troubleshooting
If the pumaburner reports an error or doesn’t produce the expected results, try the following:
• Check your namelist, especially for invalid codes, types and levels.
• Run the pumaburner in debug-mode by using the option -d. Example: pumaburn <namelist >printout -d data.in data.out
This will print out some details like parameters and memory allocation during the run.
The additional information may help to detect the problem.
• Not all combinations of HTYPE, VTYPE, and CODE are valid. Try to use HTYPE=Grid and VTYPE=Pressure before switching to exotic parameter combinations.
50 CHAPTER 5. POSTPROCESSOR PUMABURNER
Chapter 6
Graphics
6.1
Grads
In this section, visualisation using the graphics package GrADS is described. A useful Internet site for reference and installation instructions is
<http://grads.iges.org/grads/grads.html>.
Latest versions of GrADS can handle data in NETCDF format (via the command sdfopen), GRIB,
HDF-SDS, and in its native binary format. The native format can conveniently be derived from
SERVICE format. In the following it is assumed that the PUMA output has been converted to
SERVICE format with the pumaburner and the resulting file is called puma.srv. Monthly mean data is either obtained directly from the pumaburner (namelist parameter MEAN=1, see section
srv monmeans puma.srv puma_m.srv
Information on the PINGO package can be found in DKRZ report 11 at
<http://www.mad.zmaw.de/Pingo/repdl.html>.
The SERVICE file has to be converted to GrADS’s native format by the command: srv2gra puma_m.srv
which results in the files puma_m.gra and puma_m.ctl. The first file contains the data, the latter one information on the grid, time steps, and variable names. The program srv2gra is one of the postprocessing tools available at
<http://puma.dkrz.de/puma/download/map/>.
If you chose to compile it yourself, please read the comments in the first few lines of the program text. Sometimes the srv2gra tool has difficulties to calculate an appropriate time increment from the date headers of the data records, so you should check this. In this example the file puma_m.ctl should look like this:
DSET ^puma_m.gra
UNDEF 9e+09
XDEF 64 LINEAR 0.0000
5.6250
OPTIONS YREV
YDEF 32 LEVELS
-85.7606
-80.2688
-74.7445
-69.2130
-63.6786
-58.1430
-52.6065
-47.0696
51
52 CHAPTER 6. GRAPHICS
-41.5325
-35.9951
-30.4576
-24.9199
-19.3822
-13.8445
-8.3067
-2.7689
2.7689
8.3067
13.8445
19.3822
24.9199
30.4576
35.9951
41.5325
47.0696
52.6065
58.1430
63.6786
69.2130
74.7445
80.2688
85.7606
ZDEF 1 LINEAR 1 1
1mo TDEF 12 LINEAR 00:00Z01jan0001
VARS 3 c139 0 99 139 0 c151 c175
ENDVARS
0 99
0 99
151
175
0
0
0
0
0
Here, the line starting with TDEF ends with 1mo, since we are handling monthly mean data.
When the PUMA output is used without averaging, this should correspond to the output interval
given by the nafter variable used in the namelist of your PUMA run (see section C). The number
of variables depends on how the pumaburner was called. In this example, only 3 variables were processed, i.e. the surface temperature (c139), the sea level pressure (c151) and the albedo
(c175; refer to appendix B for a list of codes).
The GrADS program is started by typing grads in a terminal window. Then, data is visualised either by typing commands line-by-line, or, preferably, by using scripts. The following script, called tglob.gs, displays the monthly mean surface temperature:
# tglob.gs
function pass(m)
’reinit’
’open puma_m’
’enable print print.mf’
’set t ’m
’c’
’set gxout shaded’
’d (c139-273.16)’
’cbar.gs’
’set gxout contour’
’d (c139-273.16)’
’draw title Surface Temperature (deg C) month ’m
’print’
’disable print’
’!gxps -i print.mf -o tglob’m’.ps’
The variable m at the beginning of the script defines the month which should be displayed. It is passed from the terminal with the script call. Note that in this line, no quotation marks are present, since only GrADS specific commands are framed by quotation marks. Script commands, like variable definitions, if-clauses etc. are used without quotation marks. The script is executed by typing its name without the ending and the number of the month to be shown. For example, tglob 7 displays the monthly mean surface temperature in July. The resulting output file is called tglob7.ps.
The following script thh displays the time dependent surface temperature of Hamburg.
Here, two variables are passed to GrADS, the first and last day to plot (note that here, the file puma.gra is opened, which contains data on a daily basis). The call thh 91 180 displays the surface temperature of Hamburg for the spring season from April 1st to June 30th.
# thh.gs
6.1. GRADS function pass(d1 d2)
’reinit’
’open puma’
’enable print print.mf’
’set lat 53’
’set lon 10’
’set t ’d1’ ’d2
’c’
’d (c139-273.16)’
’draw title Surface Temperature (deg C) in Hamburg’
’print’
’disable print’
’!gxps -i print.mf -o thh.ps’
53
It is possible to have more than one figure in a plot, which is illustrated in the following script. It plots seasonal means of the sea level pressure. The data file is prepared like this: srv selcode,151 puma.srv slp.srv
srv seasmean slp.srv slp_sm.srv
srv2gra slp_sm.srv
The commands set vpage sets virtual pages inside the graphic window. The full window is
11 inch wide and 8.5 inch high, so set vpage 0 5.5 4.25 8.5 defines the upper left corner. If setlevs=1 is specified, the pressure levels as given are used. Otherwise, GrADS defines contour levels depending on the data set.
# slp_sm.gs
setlevs=1
’reinit’
’open slp_sm’
’enable print print.mf’
’c’
’set vpage 0 5.5 4.25 8.5’
’set gxout contour’ if (setlevs=1)
’set clevs 990 995 1000 1005 1010 1015 1020’ endif
’set ccols 1’
’set grads off’
’set t 1’
’d c151/100’
’draw title SLP [hPa] yr ’ny’ DJF’
’set vpage 5.5 11 4.25 8.5’
’set gxout contour’ if (setlevs=1)
’set clevs 990 995 1000 1005 1010 1015 1020’ endif
’set ccols 1’
’set grads off’
’set t 2’
54
’d c151/100’
’draw title yr ’ny’ MAM’
’set vpage 0 5.5 0 4.25’
’set gxout contour’ if (setlevs=1)
’set clevs 990 995 1000 1005 1010 1015 1020’ endif
’set ccols 1’
’set grads off’
’set t 3’
’d c151/100’
’draw title yr ’ny’ JJA’
’set vpage 5.5 11 0 4.25’
’set gxout contour’ if (setlevs=1)
’set clevs 990 995 1000 1005 1010 1015 1020’ endif
’set ccols 1’
’set grads off’
’set t 4’
’d c151/100’
’draw title yr ’ny’ SON’
’print’
’disable print’
’!gxps -c -i print.mf -o slp_sm.ps’
CHAPTER 6. GRAPHICS
6.2
Vis5D
“Vis5D is a system for interactive visualization of large 5-D gridded data sets such as those produced by numerical weather models. One can make isosurfaces, contour line slices, colored slices, volume renderings, etc of data in a 3-D grid, then rotate and animate the images in real time. There’s also a feature for wind trajectory tracing, a way to make text annotations for publications, support for interactive data analysis, etc.” from the Vis5D home page, http://www.ssec.wisc.edu/~billh/vis5d.html
This powerful visualisation tool together with its documentation is available through the above home page. Vis5D uses its own data format which makes it necessary to transform your data.
Depending on their format and the flowchart on http://puma.dkrz.de/puma/download/map/ you have the following choices: If
• your data is raw PUMA output,
you need to process it with the pumaburner postprocessor (see section 5) in order to
transform it to either NETCDF (option -n or namelist parameter NETCDF=1) or GRIB (option
-g or namelist parameter GRIB=1) and proceed from there.
• your data is in SERVICE format, you need to convert it to either GRIB, for instance with the PINGOs:
6.2. VIS5D 55 grb copy2 data.srv data_with_grib_metainfo.grb output.grb, or NETCDF, using the program puma2cdf, which is available with the PUMA postprocessing tools. Despite of its name this program cannot process raw PUMA output but takes SERVICE format as input. It can as well be called as srv2cdf which changes its behaviour: oddities of model output such as the existence of February, 30 th are then no longer removed. Once the format is changed proceed from there.
• your data is in NETCDF format, it can easily transformed to Vis5D’s native format by means of the program cdf2v2d, which is available with the PUMA postprocessing tools.
• your data is in GRIB format, you can find a transformation tool named Grib2V5d at
<http://grib2v5d.sourceforge.net> which offers various practical features.
Once the conversion to Vis5D’s native format is achieved please follow the instructions from the Vis5D documentation or, if Vis5D is already installed on your system, try finding your own way by typing: vis5d my_data.v5d
56 CHAPTER 6. GRAPHICS
Chapter 7
Column Mode and Soundings
7.1
Setup
The column mode of the the Planet Simulator is an integral part of the full Planet Simulator and not a stand alone model. The advantage of this approach is that all options and modules available in the full model are automatically included in the column mode and that no extra maintenance is necessary.
Technically this is realized by switching off horizontal advection and diffusion which leaves us with an independent column for each grid point. The inclusion of additional options for boundary conditions allows for runs with synchronized columns.
Running the Model at the lowest resolution (T1) with 8 synchronized columns is efficient enough to run very fast column integrations. Using a standard setup with 10 atmospheric layers and a mixed layer ocean one can simulate more than 33500 years per day on a single processor
PC (3.3 GHZ CPU).
To make full use of the computer power one can setup an ensemble of columns by specifying boundary conditions for every grid point separately.
7.1.1
Basic switches for column setup
We introduce the macro switch COLUMN in the namelist inp which is part of the namelist puma namelist. By setting COLUMN = 1 a default column mode is initialized by setting
YMODE = ”Column”, KICK = 0, NADV = 0 and NHORDIF = 0. One can customize the column setup by keeping the default value COLUMN = 0 and by setting the other switches
individually. For more details see the table inp in appendix C.
7.1.2
Boundary Conditions and forcing
For the T1 truncation the following lower boundary conditions are specified by external fields:
The land sea mask (N002 surf 0172.sra), the surface geopotential (N002 surf 0129.sra) and the surface temperature (N002 surf 0169.sra). The other fields are set by default within the model.
Some can be set by namelist parameters (see description of standard model).
The surface fluxes of heat and moisture in the column mode can be influenced by the switch
ZUMIN in the namelist fluxpar which sets the surface wind speed entering the bulk exchange scheme. The default value is set to 1 m/s.
Keeping the standard settings the columns will be forced by the solar forcing corresponding to the grid point where the column is located. For the T1 truncation this mean that the columns are located approximately at gaussian latitudes ±35.26
◦
. The solar forcing corresponds to the default of the full model. A daily mean insolation is used with an annual cycle. The solar
57
58 CHAPTER 7. COLUMN MODE AND SOUNDINGS forcing is also influenced by the climatological ozon distribution which by default also has an annual cycle.
7.2
Graphical User Interface (GUI)
To visualize the time evolution of the column model a vertical Hovmoeller plot has been added to the GUI (picture type: ISOCOL). The sounding device can be also used to visualize the vertical profiles at an arbitrary grid point of the gaussian grid in the full model. By clicking the window the sounding goes from grid point to grid point in meridional direction. The longitude can be selected by the switch sellon, which is a parameter of the inp namelist in puma namelist. Using the template GUI sounding.cfg in folder plasim/dat the GUI is configured for soundings. In this case sellon can be modified in the control window. For more
Appendix A
List of Constants and Symbols
a
E
0 f
F p
F q
F q
F
T
F u
F v
F
LW
F
SW g h mix h mix c
H q
A
A
A
S
B(T ) cc c p i c p s c p w c w
C w
D
C char
C h
C m c p c pd c pv
E
H p
Symbol Definition earth radius
V · ∇ ln p s absorptivity/emissivity surface emissivity
Planck function cloud cover
Charnock constant transfer coefficient for heat drag coefficient for momentum specific heat of moist air at constant pressure specific heat of dry air at constant pressure specific heat of water vapor at constant pressure specific heat of sea ice specific heat of snow specific heat of sea water coefficient for the deep ocean heat flux wetness factor scaled divergence evaporation extrateristical solar flux density
Coriolis parameter =: 2Ω sin ϕ tendency of the first moment=: dR
1 tendency of the zeroth moment=: dt dR
0 dt surface moisture flux surface sensible heat flux surface zonal wind stress surface meridional wind stress long wave radiation flux density short wave radiation flux density gravitational acceleration mixed layer depth climatological mixed layer depth effective mixed layer depth =: reduced center of gravity =:
R
1
T mix
R
0
−T ref
R
0
Value
6371·10
3
0.018
1005.46
1869.46
2070
2090
4180
4
9.81
Unit m
−
−
−
Wm
−2
−
−
−
−
J kg
−1
J kg
−1
K
−1
K
−1
J kg
−1
K
−1
W s kg
−1
K
−1
W s kg
−1
K
−1
W s kg
−1
W m
−2
K
K
−1
−1
−
− m s
−1
W m
−2 s
−1
K m
2 s
−1
K m s
−1 kg m
−2
W m
−2 s
−1
Pa
Pa
Wm
−2
Wm
−2 m
−2 m m m m
59
60 APPENDIX A. LIST OF CONSTANTS AND SYMBOLS
Value
Q o q
S q sat
R
R
S
R d
Q a
Q c
Q f
Q g
Q m
R l
R s
R v
R
0
R
1
Ri
S w
Symbol Definition p
S p s q
Q
L f l h l m
L s
L v
P c
P
P l m n
(µ) p
J q
J
T
J u
J v k
K h
K m
L vertical turbulent moisture flux vertical turbulent temperature flux vertical turbulent flux of zonal momentum vertical turbulent flux of meridional momentum von Karman constant exchange coefficient for heat exchange coefficient for momentum latent heat latent heat of fusion = L s mixing length for heat
− L v mixing length for momentum latent heat of sublimation latent heat of vapourization convective precipitation large scale precipitation associated Legendre function of the first kind pressure surface pressure scaled surface pressure specific humidity total heat flux through sea ice flux correction heat flux through sea ice total atmospheric heat flux conductive heat flux through sea ice heat flux available for freezing sea ice heat flux into the soil snow melt heat flux oceanic heat flux surface specific humidity saturation specific humidity refexivity/albedo surface albedo gas constant for dry air surface long wave radiation surface short wave radiation gas constant for water vapor zeroth moment of the temperature distribution first moment of the temperature distribution
Richardson number salinity of sea water
0.4
3.28·10
5
2.8345·10
2.5008·10
287.05
461.51
34.7
6
6
Unit kg m
−2
K m
−2 s
−1 s
−1
Pa
Pa
−
−
−
J kg
−1
J kg
−1 m m
J kg
−1
J kg
−1 ms
−1 ms
−1
−
Pa
Pa
− kg kg
−1
W m
−2
W m
−2
W m
−2
W m
−2
W m
−2
Wm
−2
Wm
−2
W m
−2 kg kg
−1 kg kg
−1
−
−
J kg
−1
W m
−2
W m
−2
J kg
−1
K
−1
K
−1
K m
K m
2
− psu
α
β
β d
ζ
θ
κ
W
L
W snow
W soil z z
0
∆t
∆z
µ
µ
0
ρ
ρ i
ρ s
ρ w
ρ o
κ i
κ s
λ h
λ m
λ
Symbol t t
T
T
T
0 u u
∗
V
T d
T i
T f
T s
T sea
T melt
T mix
T mix c
T ref
T w
T
0
U v
Definition time scaled time step transmissivity temperature temperature anomaly =: T − T
0 deep ocean temperature (at 400m) sea ice surface temperature freezing temperature surface temperature sea surface temperature melting point mixed layer temperature climatological mixed layer temperature asymptotic reference temperature oceanic temperature profile reference temperature profile scaled zonal wind =: u · cos ϕ zonal wind friction velocity scaled meridional wind =: v · cos ϕ meridional wind horizontal wind vector cloud liquid water path mass of snow water soil water height roughness length time increment height increment thermal expansion coefficient
1
ρ dρ dT back scattering coefficient diffusivity factor scaled vorticity potential temperature
R d
/C pd mean heat conductivity in ice and snow heat conductivity in ice heat conductivity in snow asymptotic mixing length for heat asymptotic mixing length for momentum longitude sin ϕ cosine of the solar zenith angle density of air density of sea ice density of snow density of sea water density of fresh water
Value
271.25
273.16
250.0
2.41·10
−4
1.66
2.03
0.31
920
330
1030
1000
61
Unit
K
K
K
K
K
K
K
K
− m s
−1 m s
−1
− m s
−1 m s
−1 gm
2
K
K
K s
−
−
K
− kg m m m m m
−
−
− kg m
−3 kg m
−3 kg m
−3 kg m
−3 kg m
−3 s m
K
−1
−
−
−
K
−
W m
−1
W m
−1
W m
−1
K
−1
K
−1
K
−1
62
Symbol ϕ
χ
ψ
Ω
ω ˜
0
σ
˙σ
τ
R
τ
T
τ h
φ
σ
SB
τ
N
τ
F
φ
APPENDIX A. LIST OF CONSTANTS AND SYMBOLS
Value Definition normalized pressure coordinate =: p/p s vertical velocity in σ system
Stefan-Bolzmann constant cloud optical depth time scale for RF time scale for NC time scale for temperature flux correction time scale for depth flux correction geopotential height := g · z scaled geopotential height latitude scaled velocity potential scaled streamfunction angular velocity of the earth single scattering albedo
5.67·10
−8
7.292·10
−5
Unit
−
− s
−
−
Wm
−2
K
−4
−
−
− s
−1
− s m
2
− s
−2
−
Appendix B
Planet Simulator Codes for Variables
Codes available from PUMA-burner (adapted from ECHAM)
Code Levels Type
110 1 g
129 1 s
130 NLEV s
131 NLEV c
132 NLEV c
133 NLEV s
135 NLEV c
138 NLEV s
139 1 g
140 1
141 1
142 1 g g ga
143 1
144 1
146 1
147 1
148 NLEV c
149 NLEV c
151 1
152 1 c s ga ga ga ga
153 NLEV g
155 NLEV s
156 NLEV c
157 NLEV c
159 1
160 1 g ga
Variable Unit mixed layer depth surface geopotential temperature u-velocity v-velocity specific humidity vertical velocity vorticity surface temperature soil wetness m snow depth (water equi.) m large scale precipitation m/s convective precipitation mean sea level pressure ln(surface pressure) m/s snow fall m/s surface sensible heat flux W/m
2 surface latent heat flux W/m
2 horizontal streamfunktion m
2
/s velocity potential m
2
/s
Pa m m
2
/s
2
K m/s m/s kg/kg
Pa/s
1/s
K cloud liquid water content kg/kg divergence 1/s geopotential height relative humidity
(u
?
)
3 surface runoff gpm frac.
(m/s)
3 m/s
63
64 APPENDIX B. PLANET SIMULATOR CODES FOR VARIABLES
Code Levels Type
183 1
199 1
203 1
204 1
205 1
207 1
208 1
209 1
210 1
211 1
212 1
218 1
221 1
230 1
232 1
162 NLEV g
164 1 ga
169 1 ga
170 1
172 1
173 1 g g g
175 1
176 1
177 1
178 1
179 1
180 1
181 1
182 1 ga ga ga ga g ga ga ga g g ga g g g g g ga g g g g ga ga
Variable Unit cloud cover total cloud cover surface temperature deep soil temperature land sea mask surface roughness frac.
frac.
K
K
[0:sea,1:land] m surface albedo surface solar radiation surface thermal radiation top solar radiation top thermal radiation u-stress v-stress evaporation frac.
W/m
2
W/m
2
W/m
2
W/m
2
Pa
Pa m/s soil temperature K vegetation cover top solar radiation upward frac.
W/m
2 surface solar radiation upward W/m
2 surface thermal radiation upward W/m
2 soil temperature (level 2) soil temperature (level 3)
K
K soil temperature (level 4) sea ice cover sea ice thickness forest cover
K frac.
m frac.
snow melt (water equiv.) m/s snow depth change (water equiv.) m/s vertical integrated spec. hum.
kg/m
2 glacier cover frac.
s: PUMA spectral field g: PUMA grid point field c: computed by PUMA-burner a: accumulated
65
66 APPENDIX C. NAMELISTS
Appendix C
Namelists
C.1
File puma namelist
C.1.1
Namelist INP
Name column kick mars mpstep nadv ncoeff ndiag
Def.
Type Description
0 int 1: initialize PLASIM for column runs
1 int 0: no noise initialization (p s
1: random white noise
= const.)
2: Equator symmetric random white noise
0
45
1 int int int
0 int ndel(NLEV) all 2 int
12 int
3: mode (1,2) no random initialization
1: initialize PLASIM for planet Mars minutes per step (lenghth of timestep)
1: switches horizontal advection on spectral coefficients to print in wrspam order of hyperdiffusion for each level (2*h) output interval for diagnostics [timesteps] ndiagcf ndiaggp ndiaggp2d ndiaggp3d ndiagsp ndiagsp2d
0 int
0 int
0 int
0 int
0 int
0 int ndiagsp3d 0 int ndl(NLEV) all 0 int neqsig 1 int nflux ngui nhdiff
1
0
15 int int int
1: turn on cloud forcing diagnostic
1: process franks gp-diagnostic arrays number of additional 2-d gp-diagnostic arrays number of additional 3-d gp-diagnostic arrays
1: process franks sp-diagnostic arrays number of additional 2-d sp-diagnostic arrays number of additional 3-d sp-diagnostic arrays
1: activate spectral printouts for this level
1: use equidistant sigma levels
1: switches vertical diffusion on
1: run with active GUI critical wavenumber for horizontal diffusion nhordif nkits noutput npackgp npacksp nperpetual nprhor nprint nrad ntime nwpd
1 int
3 int
1 int
1 int
1 int
0 int
0 int
0 int
1 int
0 int
1 int
1: switches horizontal diffusion on number of short initial timesteps enables (1) or disables (0) output file
1: pack gridpoint fields on output
1: pack spectral fields on output radiation day for perpetual integration
1: grid point for print out (only for checks!)
1: comprehensive print out (only for checks!)
1: switches radiation on
1: turn on time use diagnostics number of writes per day (to puma output)
C.1. FILE PUMA NAMELIST
Namelist INP continued
Name n days per month n days per year n run days n run months n run years n start month n start year psurf restim(NLEV) sigh(NLEV) sellon t0(NLEV) tfrc(NLEV) tdissd tdissq tdisst tdissz time0
Def.
30
360
-1
0
1
1
Type Description int int int length of month for simple calendar length of year for simple calendar or 365
Simulation time (days to run) int int int
Simulation time (months to run)
Simulation time (years to run)
Starting month
1 int Starting year
101100.0
real global mean surface pressure [Pa] all 15.0
real restoration timescale for each level all 0.0
real user definable sigmah array
0.0
real longitude of soundings in the GUI all 250.0
real reference T
R
-temperature profile
0,0,0,.. ,1
0.2
int Rayleigh friction timescale τ
F in days real diffusion time scale for divergence [days]
5.6
real diffusion time scale for specific humidity [days]
5.6
1.1
0.0
real diffusion time scale for temperature [days] real diffusion time scale for vorticity [days] real start time (for performance estimates)
67
C.1.2
Namelist PLANET
Name akap alr eccen ga gascon mvelp nfixorb obliq plarad pnu ra1
Def.
0.286
0.0065
0.0
9.81
287.0
0.0
0
0.0
Type real real real real real
Description kappa lapse rate eccentricity for fixed orbits gravity gas constant real longitude of vernal equinox for fixed orbits (deg) int 1: fix the planetary orbit real obliquity for fixed orbits (deg)
6371000.0
real planetary radius
0.1
real time filter
610.78
real parameter in Magnus-Teten formula ra2 ra4 solar day
17.269
real parameter in Magnus-Teten formula
35.86
real parameter in Magnus-Teten formula
86400.0
real length of solar day siderial day 86164.0
real length of siderial day ww 7.29e-5 real 2π/siderialday yplanet ”Earth” char name of planet
C.1.3
Namelist MISCPAR
Name nfixer
Def.
1
Type int
Description
1: correct negative moisture nudge 0 int 1: temperature relaxation in the uppermost level tnudge 10.0
real Time scale [d] of the temperature relaxation
68 APPENDIX C. NAMELISTS
C.1.4
Namelist FLUXPAR
Name nevap
Def.
Type Description
1 int 1: turn on surface evaporation nshfl nstress nvdiff
1
1
1 int int int
1: turn on surface sensible heat flux
1: turn on surface wind stress
1: turn on vertical diffusion vdiff lamm 160.0
real tuning parameter for vert. diff.
vdiff b vdiff c vdiff d zumin
5.0
real tuning parameter for vert. diff.
5.0
real tuning parameter for vert. diff.
5.0
real tuning parameter for vert. diff.
1.0
real minimum surface wind speed (m/s)
C.1.5
Namelist RADPAR
Name Def.
Type Description acl2(3) 0.05,0.1,0.2
real cloud absorptivities spectral range 2 acllwr clgray co2 dawn
0.1
-1.0
360.0
0.0
real mass absorption coefficient for clouds (lwr) real cloud grayness real co2 concentration (ppmv) real zenith angle threshhold for night gsol0 iyrbp ndcycle nlwr no3 nrscat
1365.0
-50
0
1
1
1 real solar constant (w/m2) int Year before present (1950 AD); default = 2000 AD int int int int switch for daily cycle 1=on/0=off switch for long wave radiation (dbug) 1=on/0=off switch for ozon 1=on/0=off switch for rayleigh scattering (dbug) 1=on/0=off nsol nswr nswrcl
1
1
1 int int int switch for solar insolation (dbug) 1=on/0=off switch for short wave radiation (dbug) 1=on/0=off switch for computed or prescribed cloud props. 1=com/0=pres rcl1(3) 0.15,0.3,0.6
real cloud albedos spectral range 1 rcl2(3) 0.15,0.3,0.6
real cloud albedos spectral range 2 th2oc 0.04
real absorption coefficient for h2o continuum tpofmt tswr1 tswr2 tswr3
1.0
0.04
0.048
0.004
real tuning of point of mean (lwr) transmissivity in layer real tuning of cloud albedo range1 real tuning of cloud back scattering c. range2 real tuning of cloud s. scattering alb. range2
C.1.6
Namelist RAINPAR
Name clwcrit1 clwcrit2 kbetta ncsurf ndca nmoment nshallow nprc nprl rcrit(NLEV)
Def.
Type Description
-0.1
real 1st critical vertical velocity for clouds
0.0
real 2nd critical vertical velocity for clouds
1 int
1 int
1 int switch for betta in kuo (1/0=yes/no) conv. starts from surface (1/0=yes/no) dry convective adjustment (1/0=yes/no)
0 int
0 int
1 int momentum mixing (1/0=yes/no) switch for shallow convection (1/0=yes/no) large convective precip (1/0=yes/no)
1 int switch for large scale precip (1/0=yes/no) real critical relative hum. for non conv. clouds
C.2. FILE LAND NAMELIST
C.1.7
Namelist SURFPAR
Name Def.
Type Description noromax model resolution (NTRU) int resolution of orography nsurf oroscale not active
1.0
int real debug switch scaling factor for orography
69
C.2
File land namelist
C.2.1
Namelist LANDPAR dz0land dzglac dztop forgrow gs nbiome ncveg newsurf nlandt nlandw nwatcini rinisoil riniveg rlaigrow rlue rnbiocats tau soil tau veg wsmax z0 max
Name albgmax albgmin albland albsmax albsmaxf albsmin albsminf co2conv drhsfull drhsland dsmax dsoilz(NLSOIL) dwatcini
Def.
0.8
0.6
0.2
0.8
0.4
0.4
0.3
14.0
0.4
0.25
5.00
0.0
2.0
-1.
0.20
1.0
1.0
0
1
0
1
1
0
0.0
Type Description real max. albedo for glaciers real min. albedo for glaciers real albedo for land real max. albedo for snow real real real real max. albedo for snow (with forest) min. albedo for snow min. albedo for snow (with forest) co2 conversion factor real threshold above which drhs=1 [frac. of wsmax] real wetness factor land real maximum snow depth (m-h20; -1 = no limit) real soil layer thickness real soil water content (m) for manual initialization
(nwatcini=1) real real real roughness length land threshold of orography to be glacier (-1=none) thickness of the uppermost soil layer (m) real growth factor initialization real stomatal conductance initialization int switch for vegetation model (1/0 : prog./clim) int int int compute new dcveg (0=keep initial state)
(dtcl,dwcl) 1: update from file, 2:reset switch for land model (1/0 : prog./clim) int int switch for soil model (1/0 : prog./clim) switch for manual soil water setting (1/0 : on/off) real soil carbon initialization
0.0
0.5
8.0E-10
0.0
42.0
10.0
real real real real real real biomass carbon initialization above ground growth factor initialization
[years] - in landini scaled to seconds
[years] - in landini scaled to seconds
WSMAX EARTH real max field capacity of soil water (m)
2.0
real maximum roughness length for vegetation
70 APPENDIX C. NAMELISTS
C.3
File sea namelist
C.3.1
Namelist SEAPAR
Name ncpl atmos ice albsea albice dz0sea dz0ice drhssea drhsice
Def.
32
Type Description int atmosphere ice coupling time steps
0.069
real albedo for open water
0.7
1.5 · 10
−5
1.0 · 10
−3 real real real max. albedo for sea ice roughness length sea [m] roughness length ice [m]
1.0
1.0
real wetness factor sea real wetness factor ice
C.4
File ocean namelist
C.4.1
Namelist OCEANPAR
Name Def.
Type Description dlayer(NLEV OCE) 50.0
real layer depth (m) ndiag 480 int diagnostics each ndiag timestep newsurf 0 int 1: read surface data after restart nfluko nocean nperpetual ocean
0
1
0 int int int switch for flux correction ocean model (1) or climatology (0) perpetual climate conditions (day) nprhor nprint taunc vdiffk
0
0 int int gridpoint for debug printout switch for debug printout
0.0
real time scale for newtonian cooling
1.0e-4 real vertikal diffusion coeff. [m**2/s]
C.5
File ice namelist
C.5.1
Namelist ICEPAR
Name newsurf nfluko nice nout
Def.
Type Description
0 int 1: read surface data after restart
0 int
1 int
32 int switch for flux correction sea ice model (1) or climatology (0) model data output every nout time steps nperpetual ice 0 int nprhor 0 int nprint 0 int nsnow ntskin
1
1 int int ncpl ice ocean 1 int taunc xmind perpetual climate conditions (day) gridpoint for debug printout switch for debug printout allow snow on ice yes/no (1/0) compute skin temperature (0=clim.
ice ocean coupling time steps
0.0
real time scale for newtonian cooling
0.1
real minimal ice thickness (m)
advertisement
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
advertisement
Table of contents
- 5 Installation
- 5 Quick Installation
- 5 Most16 directory
- 6 Model build phase
- 7 Model run phase
- 7 Running long simulations
- 9 Modules
- 10 fluxmod.f90
- 11 miscmod.f90
- 12 surfmod.f90
- 13 fftmod.f90 / fft991mod.f90
- 14 landmod.f90
- 16 legmod.f90
- 17 mpimod.f90 / mpimod_stub.f90
- 19 outmod.f90
- 20 plasim.f90
- 24 plasimmod.f90
- 25 radmod.f90
- 27 rainmod.f90
- 28 seamod.f90
- 30 Sea ice and ocean modules
- 33 icemod.f90
- 34 oceanmod.f90
- 35 Parallel Program Execution
- 35 Concept
- 35 Parallelization in Gridpoint Domain
- 36 Parallelization in Spectral Domain
- 36 Synchronization points
- 37 Source code
- 39 Graphical User Interface
- 39 Graphical user interface (GUI)
- 41 GUI configuration
- 42 Array
- 43 Plot
- 43 Palette
- 43 Title
- 43 Geometry
- 45 Postprocessor Pumaburner
- 45 Introduction
- 45 Usage
- 46 Namelist
- 46 HTYPE
- 46 VTYPE
- 46 MODLEV
- 47 hPa
- 47 MEAN
- 47 Format of output data
- 48 SERVICE format
- 48 HHMM
- 48 HEAD7
- 48 MARS
- 48 MULTI
- 49 Namelist example
- 49 Troubleshooting
- 51 Graphics
- 51 Grads
- 54 Vis5D
- 57 Column Mode and Soundings
- 57 Setup
- 57 Basic switches for column setup
- 57 Boundary Conditions and forcing
- 58 Graphical User Interface (GUI)
- 59 List of Constants and Symbols
- 63 Planet Simulator Codes for Variables
- 65 Namelists
- 66 File puma_namelist
- 66 Namelist INP
- 67 Namelist PLANET
- 67 Namelist MISCPAR
- 68 Namelist FLUXPAR
- 68 Namelist RADPAR
- 68 Namelist RAINPAR
- 69 Namelist SURFPAR
- 69 File land_namelist
- 69 Namelist LANDPAR
- 70 File sea_namelist
- 70 Namelist SEAPAR
- 70 File ocean_namelist
- 70 Namelist OCEANPAR
- 70 File ice_namelist
- 70 Namelist ICEPAR