These notes are for version 2.8 but most also apply to version 2.9

Notes: Index (Model)
Getting Started
UVic Options
mk
mk Settings
Forcing Data




Getting Started: (Notes: Index)
Instructions for setting up the model for the first time:

1) Set your PATH environment variable to include the UVic_ESCM directory. For example: "set path = ($path /usr/local/models/UVic_ESCM)" if you are in a csh or a tcsh and you have the UVic_ESCM directory in /usr/local/models. Although not absolutely necessary this will do two things. It will allow you to have access to the mk script, which is in UVic_ESCM, and it will allow mk to find the version directory you want without having to specify the full path. You may then need to re"source" your system variables for your system to find mk. For example: "source ~/.cshrc" if you are in a csh or a tcsh.

2) Find where perl is located on your machine. The command "which perl" may locate it. It is often located in /usr/bin or /usr/local/bin. If you can not locate it, you will need to install it on your system. Almost all systems have perl. Try http://www.perl.com for downloading perl. If perl is located somewhere other than /usr/bin, you can edit the first line of the mk file (which is in UVic_ESCM) to point to the right location (recommended if all systems have it in the same location) or set up a link to perl in /usr/bin (dangerous if you do it incorrectly).

3) The model also requires some form of preprocessing. This is usually done by the c preprocessor cpp but the model can be set up to use the preprocessing of many Fortran compilers. If you want to use cpp, you will need to make sure it is installed on your system. Most systems have cpp but you may need to set the location or options in your UVic_ESCM/2.8/run/mk.ver file later (see step 6 below).

4) Look for the netcdf library file "libnetcdf.a". Try looking in /usr/lib/. Some machines have a libnetcdf.a library that does not contain a Fortran interface. If netcdf is not installed on your system or the Fortran interface is missing, you will need to get a copy of libnetcdf.a and netcdf.inc file for your system. You should be able to compile the library from source code. Try: http://www.unidata.ucar.edu/packages/netcdf to download netcdf source code or binaries. You may need to set some environment variables to get the library to compile correctly. Once you have located or created the libnetcdf.a file, either copy it to UVic_ESCM/2.8/lib (or a subdirectory) or create a link to it in UVic_ESCM/2.8/lib (or a subdirectory). You also need to copy the libraries netcdf.inc file to UVic_ESCM/2.8/source/netcdf/netcdf.inc. The netcdf.inc file may be located in /usr/include on your system. Most netcdf.inc files are very similar. If you are using a file system that is shared by many different machines, you may want to create directories of libraries for different machine types. For example "lib/lib_aix" and "lib/lib_linux". You will need to make sure that the "Libraries_Directory" variables in your mk.ver or mk.in file point to the correct location (see step 6 below).

5) The mk script will also make use of a few system variables. You may want to check if the environment variables $HOME, $PATH, $USER are defined. Also check the results of the commands "uname -s" and "uname -n". These results can be used to set operating system or machine name specific mk variables. If the uname commands do not give reasonable values, you can set the environment variables MK_OPERATING_SYSTEM and MK_MACHINE_NAME to override the results from "uname -s" and "uname -n" respectively. The script will work without these settings but you may find it more limited.

6) Edit the file "UVic_ESCM/2.8/run/mk.ver" to set the default options for your system. There are many settings that are recognized by mk. It may help to type "mk h" and read the resulting log file to understand what can be set in "mk.in" or "mk.ver" files. If you have a system that is not set in the mk.ver file, you can do the following: copy and/or edit an existing section of definitions (eg. linux) making sure you change the identifier (eg. linux) to the result of "uname -s" or "uname -n" (converted to lower case letters). If you use the result of "uname -s" all machines that use the operating system will use the definitions but if you use the result of "uname -n" only that specific machine will use the definitions. Any settings that are in the mk.ver file may also be set in your local mk.in file. Only settings from a local mk.in file are read (if missing, a default one is copied) but settings from all mk.ver files are read. The priority is for files in your: local directory, your $HOME/.mk directory and then a UVic_ESCM installation directory (see the UVic_ESCM.mk.tar.gz Read_me file for more details).

7) If you wish to run jobs from a queue, you can look at the example run files and modify a copy of one for your system. The generic "run" file does not actually queue a job but it does allow the model to be run in job steps. Run files can also be set up to be operating system or machine dependent.

8) Try running the example provided. Create a new local example directory:
mkdir my_example
cp .../UVic_ESCM/2.8/example/*.in my_example
cd my_example
Edit the mk.in file so that the Version_Directory is set to the location of 2.8 on your machine (the default location is /usr/local/models/UVic_ESCM/2.8). Compile and run the model with:
mk r
This should recreate the example directory. If you do not have the location the UVic_ESCM directory in your PATH environment variable you would have to specify that before the mk command (something like /usr/local/models/UVic_ESCM/mk r). Look at the mk.log file and compare code and output files to make sure the model was made, compiled and ran correctly.



UVic Options: Index (Notes: Index)
General
Time Average Integral
EMBM
EMBM Forcing
EMBM Solver
EMBM Land
Ice
MOM
Carbon
Ocean Chemistry
Ocean Biology
Dynamic Vegetation
Experimental



A very quick description of available uvic options (for other options see the mom manual available through the description link on the main model web page). Some options are considered to be sub-options of other options. In general if an option is contained within a sub-option both should be specified. For example, to use uvic_embm_solardata you should also specify uvic_embm. uvic_embm_solardata is a sub-option of uvic_embm. Note: not all options or combinations of options are well tested!

General: (Index)
uvic_global_sums = calculate global conservation (see example)
uvic_min_window = use minimum memory window
uvic_sbc_in_memory = boundary conditions kept in memory
uvic_multiple_files = writes time slices to separate files
uvic_read_kmt_map = read kmt from a map file
uvic_read_rivers_map = read river definitions from a map file
uvic_save_flxadj = writes flux adjustment if coupled and using restorst
uvic_save_diff = save diffusion parameters
uvic_replacst = replaces ocean surface tracers with data
uvic_mk_out = incorporate mk settings into the executable
uvic_newflxref = calculates new references for virtual fluxes every segtim

Time Average Integral: (Index)
uvic_tai_ns = calculate north/south averages for some tsi variables
uvic_tai_otsf = calculate maximum and minimum overturning for a region
uvic_tai_slh = calculate sea level rise from thermal expansion

EMBM: (Index)
uvic_embm = main embm option
uvic_embm_even_fluxes = every other flux used for conservative coupling
uvic_embm_running_average = write annual average sat
uvic_embm_adv_q = advect moisture
uvic_embm_adv_t = advect temperature
uvic_embm_save_diff = write atmospheric diffusion

EMBM Forcing: (Index)
uvic_embm_orbit_user = user defined orbital parameters
uvic_embm_orbit_transient = changing orbital parameters
uvic_embm_solardata = interpolate solar constant from data
uvic_embm_solardata_transient = interpolate changing solar constant from data
uvic_embm_co2data = interpolate co2 from data
uvic_embm_co2data_transient = interpolate changing co2 from data
uvic_embm_c14data = interpolate c14 from data
uvic_embm_c14data_transient = interpolate changing c14 from data
uvic_embm_cropdata = interpolate crop area from data
uvic_embm_cropdata_transient = interpolate changing crop area from data
uvic_embm_icedata = interpolate land ice from data
uvic_embm_icedata_transient = interpolate changing land ice from data
uvic_embm_snow_transient = no limit on snow accumulation
uvic_embm_co2_exp = exponentially increasing co2
uvic_embm_co2_lin = linearly increasing co2
uvic_embm_annual = annual mean solar forcing
uvic_embm_awind = wind feedback

EMBM Solver: (Index)
uvic_embm_slap = slap atmospheric solver
uvic_embm_essl = essl atmospheric solver
uvic_embm_mgrid = mgrid atmospheric solver

EMBM Land: (Index)
uvic_embm_snow_transient = no limit on snow accumulation
uvic_embm_cropdata = interpolate crop area from data
uvic_embm_cropdata_transient = interpolate changing crop area from data
uvic_embm_icedata = interpolate land ice from data
uvic_embm_icedata_transient = interpolate changing land ice from data

Ice: (Index)
uvic_ice = main ice option
uvic_ice_evp = evp dynamics
uvic_ice_cpts = main cpts model option
uvic_ice_cpts1 = 1 category
uvic_ice_cpts3 = 3 categories
uvic_ice_cpts5 = 5 categories
uvic_ice_cpts10 = 10 categories
uvic_ice_cpts_roth_press = uses roth pressure
uvic_ice_cpts_simple_growth = not sure
uvic_ice_cpts_warnings = gives warnings
uvic_ice_firfil = filter ice velocities with firfil
uvic_ice_fourfil = filter ice velocities with fourfil

MOM: (Index)
uvic_mom = main mom option
uvic_tbt = netcdf tracer term balances
uvic_convect_brine = convect separately under ice categories
uvic_save_convection = save some convection diagnostics
uvic_read_my_stf = read ocean surface fluxes
uvic_kv_out = write out kv
uvic_tidal_kv = enhancement of kv through tidal dissipation
uvic_fwa = add fresh water flux anomalies

Carbon: (Index)
uvic_carbon = the main ocean carbon option
uvic_carbon_coupled = couples the atmosphere carbon to ocean and land models
uvic_carbon_14 = the main ocean carbon 14 option
uvic_carbon_14_coupled = couples the atmosphere carbon 14 to the ocean model

Ocean Chemistry: (Index)
uvic_alk = include ocean alkalinity
uvic_cfc = include cfc11 and cfc12
uvic_cfc11 = include cfc11
uvic_cfc12 = include cfc12
uvic_nitrogen = include ocean nitrogen
uvic_o2 = include ocean oxygen

Ocean Biology: (Index)
uvic_npzd = main ocean biology option
uvic_npzd_out = additional npzd output
uvic_npzd_no_calcite = turns off calcite pump
uvic_npzd_vflux = adds virtual fluxes to p, z and d

Dynamic Vegetation: (Index)
uvic_mtlm = main moses-triffid land model option
uvic_mtlm_pressure = pressure that changes with elevation
uvic_mtlm_segday = run mtlm for only one day every segtim

Experimental: (Index)
(use with caution or needs work)
uvic_embm_adi = adi atmospheric solver
uvic_embm_explicit = explicit atmospheric solver
uvic_embm_explicit_q = explicit solver just for q
uvic_embm_solve2x = half resolution solver in x
uvic_embm_solve2y = half resolution solver in y
uvic_embm_sparskit = sparskit atmospheric solver (not functional)
uvic_carbon_co2_2d = two dimensional field of carbon dioxide in the atmosphere
uvic_ism = dynamic ice sheet model (not functional)



mk: Index (Notes: Index)
General Description
Commands
Operating System Variables
Equality_Character



General Description: (Index)
mk is used to create, compile, link and run code. The program works in a similar way to 'make' in that the minimum amount of code is recompiled when changes are made. mk reads the model configuration from 'mk.in' and 'mk.ver' files. If important definitions are changed, mk will detect these and 're-mk' the code.

mk looks for configuration definitions in the initial directory, then the $HOME/.mk directory and finally in a UVic_ESCM installation subdirectory. Only settings in a local mk.in file are used. If a local mk.in file is missing, the model version must be specified after the mk command. A default version of mk.in is then copied from the $HOME/.mk directory and if one is not found there, from a UVic_ESCM installation subdirectory. The Version_Directory variable is always set at the top of a copied default mk.in file so the version only has to be specified once. mk.ver files are treated differently. Settings in all mk.ver files are read but the priority for settings is from the mk.ver files in the local directory, then the $HOME/.mk directory and then a UVic_ESCM installation subdirectory.

mk uses 'Source_Directory' definitions as the basis for all other definitions. Source directories may exist anywhere but usually are under a model version directory. Multiple source directories are specified with a bracketed index. If a variable does not specify a source directory index, then an index of zero is assumed. Undefined variables will usually get their definitions from lower numbered source directories so specifying a variable without an index specifies that variable for all source directories (until a different definition is specified). The version directory also usually contains a system wide 'mk.ver' file which has the system default values. The version directory may also contain input files, library files or run files.

An update level for source directories may be specified and mk will use files in the update level source directories before other specified source directories. The source directories must have the same name under the 'Updates_Level' directory for them to be recognized. The updates level source directories must contain all code that has been changed from the original version source directories. No earlier update level sources are used.

mk allows for multiple executables, executable directories, code directories and data directories but only one per source directory. Usually an executable directory contains the executable input and output files and code and data directories. The code directory contains readable model code and an object and dependency directory. It may also have a backup directory. The model is run in the executable directory.

You may run executables on the local machine with 'mk r' but you can also run multiple executables or queue the executables with 'mk q'. This copies a specified perl script run file to 'Executable_File'.run in the executable directory. The perl script run file usually exists under the version directory and may be model or system specific. Some mk defined variables are suppled at the beginning of the run file. See examples. The 'Executable_File'.run file should be removed automatically when the executable finishes. If mk finds the run file in the executable directory, it will not run another executable until 'Executable_File'.run is removed.

The command 'mk h' will print to a log file the commands that can be used, this description and all available preprocessor options.

Commands: (Index)
mk [Command [[Path]Version] [String]]

Command:
'q' makes executable and submits to a queue (includes mk s)
'r' makes and runs an executable locally (includes mk e)
's' makes executable and submit scripts (includes mk e)
'e' makes an executable (includes mk o)
'o' makes all object files (includes mk f)
'f' makes all compilable files in code
'file' to make a file (eg. 'mk atmos.o' or 'mk atm.h')
'c' clears the code directory
'h' writes help to a log file

Path: model version directory path (default searches $PATH)
Version: model version directory (only used if not in mk.in or $HOME/.mk/mk.in)
String: help for mk.in variables containing string (only used if Command = 'h')

Any command will create a local, default mk.in file if one is not found.


Operating System Variables: (Index)
mk variables that are derived from the operating system or environment variables:

Home:
A directory used in searching for mk.in files in 'HOME/.mk'. It is derived from the system variable 'HOME'.

Machine_Name:
This is added to various variables to make them machine dependent. Machine_Name is derived from the system variable 'MK_MACHINE_NAME' or if this is not defined, from the command 'uname -n'. Check that this gives the expected response if you wish to use machine dependent variables. Machine_Name is converted to all lower case for use in machine dependent variables. This variable may also be specified in mk.in or mk.ver files.

Mk_Path:
Path that is used to search for Version_Directories. It is derived from the system variable 'PATH'.

Operating_System:
This is added to various variables to make them operating system dependent. Operating_System is derived from the system variable 'MK_OPERATING_SYSTEM' or if this is not defined, from from the command 'uname -s'. Check that this gives the expected response if you wish to use operating system dependent variables. Operating_System is converted to all lower case for use in system dependent variables. This variable may also be specified in mk.in or mk.ver files.

User:
Name used if an email address is requested by a run script. It is derived from the system variable 'USER' or read from a mk.in or mk.ver file.

Equality_Character: (Index)
Character that separates a variable name from it's value or setting in a mk.in file. It can be changed to any character sequence multiple times in the file. Default is '='.



mk Settings: Index (Notes: Index)
Auto_Update
Backup_Directory
Change_Mount
Code_Directory
Code_Extension
Compiler_'Source_Extension'
Compress_Command
Compress_Extension
Data_Directory
Data_Socrce
Definitions_Down
Definitions_Up
Dependency_Directory
End_String
Executable_Directory
Executable_File
Include_Extension
Input_File
Libraries
Libraries_Directory
Libraries_Directory_Prefix
Linker
Log_File
Machine_Name
Mk_Include_File
Mk_Include_Start
Mk_Include_Width
Model_Options
Module_Extension
Nice
Notify_User
No_Warnings
Number_Processors
Operating_System
Object_Directory
Object_Extension
Option_Prefix
Output_File
Preprocessor
Preprocessor_Code
Preprocessor_compile
Remote_Directory
Remote_Machine
Run_Copy
Run_Directory
Run_File
Run_File_Local
Search_Path
Source_Comment_Character
Source_Directory
Source_Extension
Step_Start_File
Step_End_File
Uncompress_Command
Updates_Level
User
Version_Directory

Alphabetical list of variables that may be set for each Source_Directory: (see examples in mk.in or mk.ver files)

Auto_Update: (Index)
Flag to automatically update code. Default is 'false'. If true and source code is newer than then the version in code, mk will ask if you want the code updated. Be careful if using this with No_Warnings.

Backup_Directory: (Index)
Directory that exists under the code directory and contains backup files. Optional. Files are copied from the Code_Directory when the code is cleared with 'mk c'.If the directory does not exist, it will be created.

Change_Mount: (Index)
A list of old and new file system mount points separated by a space. Optional. Only used if queueing on a distributed system where a common mount point is required but not given by 'pwd'. Directories starting with the old mount point are replaced by the new. For example, if 'Change_Mount = /u01 /u', the '/u01/home/' directory would become '/u/home/'. Directories are only changed if the new directory exists.

Code_Directory: (Index)
Directory which contains readable code files. It also usually contains the Dependency_Directory, Object_Directory and Backup Directory. Default is 'code'.If the directory does not exist, it will be created.

Code_Extension: (Index)
Code extension after preprocessing (include files retain an Include_Extension). Only the first in a list is used. Default is 'Code_Extension_is_undefined'.

Compiler_'Source_Extension': (Index)
See Machine_Name and Operating_System. Compiler with options. Compiler may be set differently for each source code extension. The last option flag should be set to create object code. The syntax for compiling is: 'Compiler_Source_Extension file.Source_Extension'. Compilers may also be set for parallel or specific operating systems or machines. Compiler_Parallel definitions are only used if Number_Processors is greater than one. Note: if Compiler_Source_Extension is defined, it will overrule other definitions. The order of priority is:
Compiler_'Source_Extension'
Compiler_Parallel_'Source_Extension'_'Machine_Name'
Compiler_Parallel_'Source_Extension'_'Operating_System'
Compiler_Parallel_'Source_Extension'
Compiler_Parallel_'Machine_Name'
Compiler_Parallel_'Operating_System'
Compiler_Parallel
Compiler_'Source_Extension_Machine_Name'
Compiler_'Source_Extension_Operating_System'
Compiler_'Machine_Name'
Compiler_'Operating_System'
Compiler
Compiler_Default

Compress_Command: (Index)
Command for compressing or taring the code directory. Optional. Syntax is: 'Compress_Command Code_Directory.Compress_Extension Code_Directory'. Code_Directory is removed after compression or tarring.

Compress_Extension: (Index)
Extension for a compressed or tarred Code_Directory.

Data_Directory: (Index)
Directory which will contain data files. Optional. Data files are copied from Data_Source if any are missing. If the directory does not exist, it will be created.

Data_Source: (Index)
Directory which will contain data source files. Optional. Default is Version Directory/Data_Directory. If not found locally, mk will look in the Version Directory.

Definitions_Down: (Index)
Flag to spread definitions downward through source directories. Any undefined variable will get its value from from the next highest source directory that has the variable defined. Default is true.

Definitions_Up: (Index)
Flag to spread definitions upward through source directories. Default is false.

Dependency_Directory: (Index)
Directory that exists under the code directory and contains dependency files for the mk program. Default is Code_Directory/D.If the directory does not exist, it will be created.

End_String: (Index)
A string that is passed to a run file which can be checked to indicate the successful completion of a run. This variable is not passed to the run file if set to false or only spaces.

Executable_Directory: (Index)
The directory where the Executable_File will be run. Default is the directory where mk was run.

Executable_File: (Index)
As it sounds. Optional (but recommended!)

Include_Extension: (Index)
Extensions for include files. May be a list separated by spaces. Default is Include_Extension_is_undefined.

Input_File: (Index)
A file which is usually read by the Executable_File. Optional.

Libraries: (Index)
See Machine_Name and Operating_System. Libraries which are used in linking code. Optional. The syntax for linking is: Linker Executable_File Object_Directory/*.Object_Extension Libraries Libraries may also be set for parallel or specific operating systems or machines.Libraries_Parallel definitions are only used if Number_Processors is greater than one. Note: if Libraries is defined, it will overrule other definitions. The order of priority is:
Libraries
Libraries_Parallel_'Machine_Name'
Libraries_Parallel_'Operating_System'
Libraries_Parallel
Libraries_'Machine_Name'
Libraries_'Operating_System'
Libraries_Default

Libraries_Directory: (Index)
See Machine_Name and Operating_System. Library paths which are used in linking code. Optional. These may be a list which includes several paths. Libraries_Directory may also be set for parallel or specific operating systems or machines. If a directory is not found, mk will look in Version_Directory/lib. Library_Directory_Parallel definitions are only used if Number_Processors is greater than one. Note: if Libraries_Directory is defined, it will overrule other definitions. The order of priority is:
Libraries_Directory
Libraries_Directory_Parallel_'Machine_Name'
Libraries_Directory_Parallel_'Operating_System'
Libraries_Directory_Parallel
Libraries_Directory_Directory_'Machine_Name'
Libraries_Directory_'Operating_System'
Libraries_Directory_Default

Libraries_Directory_Prefix: (Index)
See Machine_Name and Operating_System. Prefix for Libraries_Directory. Default is '-L'. Libraries_Directory_Prefix may also be set for operating systems or machines. Note: if Libraries_Directory_Prefix is defined, it will overrule other definitions. The order of priority is:
Libraries_Directory_Prefix
Libraries_Directory_Prefix_'Machine_Name'
Libraries_Directory_Prefix_'Operating_System'
Libraries_Directory_Prefix_Default

Linker: (Index)
See Machine_Name and Operating_System. Linker which is used in linking code. Optional. The syntax for linking is: 'Linker Executable_File Object_Directory/*.Object_Extension Libraries' Linker may also be set for parallel or specific operating systems or machines. Linker_Parallel definitions are only used if Number_Processors is greater than one. Note: if Linker is defined, it will overrule other definitions. The order of priority is:
Linker
Linker_Parallel_'Machine_Name'
Linker_Parallel_'Operating_System'
Linker_Parallel
Linker_'Machine_Name'
Linker_'Operating_System'
Linker_Default

Log_File: (Index)
Log file which contains output from mk. Default is log.

Machine_Name: (Index)
This is added to various variables to make them machine dependent. This setting will overrule system definitions.

Mk_Include_File: (Index)
File which contains mk settings for including in code. Optional.

Mk_Include_Start: (Index)
Characters written before settings in Mk_Include_File (eg. print*,). Optional.

Mk_Include_Width: (Index)
Maximum length of settings written to Mk_Include_File. Optional.

Model_Options: (Index)
Model options for the Preprocessor or Compiler. Optional.

Module_Extension: (Index)
See Machine_Name and Operating_System. Extension for modules files that need to be available for compiling. Optional. Module_Extension may also be set for operating systems or machines. Note: if Module_Extension is defined, it will overrule other definitions. The order of priority is:
Module_Extension
Module_Extension_'Machine_Name'
Module_Extension_'Operating_System'
Module_Extension_Default

Nice: (Index)
Nice value sent to the Run_File so the Run_File can set the job priority. Optional.

Notify_User: (Index)
Email address that can be used by the run scripts to notify a user when a job has finished. If just the domain name is supplied (must start with the 'at' symbol), the user name (see User) will be added. Lists of users will be passed on but all spaces are removed. If set to false or only spaces, Notify_User is not sent to the Run_File and automatic notification may not be done.

No_Warnings: (Index)
Flag that turns off all warnings from mk. Default is false. If true, code may be deleted without warning. Be careful.

Number_Processors: (Index)
Number of processors. Default is 1. If greater than 1, it will indicate a parallel run.

Operating_System: (Index)
This is added to various variables to make them operating system dependent. This setting will overrule system definitions.

Object_Directory: (Index)
Directory that exists under the code directory and contains object files. Default is Code_Directory/O. If the directory does not exist, it will be created.

Object_Extension: (Index)
Object_Extension: Extensions for object files. Only the first in a list is used. Default is Object_Extension_is_undefined.

Option_Prefix: (Index)
See Machine_Name and Operating_System. Prefix for Preprocessor options. Default is '-D'. Option_Prefix may also be set for operating systems or machines. Note: if Option_Prefix is defined, it will overrule other definitions. The order of priority is:
Option_Prefix
Option_Prefix_'Machine_Name'
Option_Prefix_'Operating_System'
Option_Prefix_Default

Output_File: (Index)
Standard output from the executable. Optional.

Preprocessor: (Index)
Preprocessor (see Machine_Name and Operating_System): Preprocessor used to apply Model_Options. Optional. Preprocessor may also be set for operating systems or machines. If Note: if Preprocessor is defined, it will overrule other definitions. The order of priority is:
Preprocessor
Preprocessor_'Machine_Name'
Preprocessor_'Operating_System'
Preprocessor_Default

Preprocessor_Code: (Index)
Flag to leave code as preprocessed files. Default is false.

Preprocessor_Compile: (Index)
Flag to use the compiler for preprocessing. Default is false. If this option is used the compiler definitions are modified. mk will look for the string defined by Preprocessor in Compiler_Source_Extension and replace it with Preprocessor followed by all Model_Options (with Option_Prefix included). Preprocessor and Option_Prefix may have to be set differently than when not using this option.

Remote_Directory: (Index)
Directory that triggers running on a remote machine. Optional. If Executable_Directory starts with Remote_Directory then Machine_Name is set to Remote_Machine.

Remote_Machine: (Index)
See Remote_Directory. Machine_Name for running on a remote machine. Set to false to never run remotely.

Run_Copy: (Index)
A space separated list of files or directories that are copied to the Run_Directory. Optional.

Run_Directory: (Index)
A remote directory for running the Executable_File. Only used with a Run_File. Run_Directory may be used to run the Executable_File on a local scratch directory. Optional.

Run_File: (Index)
See Machine_Name and Operating_System. Files used to submit Executable_File to a queue. Optional. Run_File may also be set for operating systems or machines. Run_File_Parallel definitions are only used if Number_Processors is greater than one. If Note: if Run_File is defined, it will overrule other definitions. The order of priority is:
Run_File
Run_File_Parallel_'Machine_Name'
Run_File_Parallel_'Operating_System'
Run_File_Parallel
Run_File_'Machine_Name'
Run_File_'Operating_System'
Run_File_Default

Run_File_Local: (Index)
See Run_File. Run_File to be used if running locally (with 'mk r'). Set to false to run locally without a Run_File.

Search_Path: (Index)
Path that mk will search for a Version_Directory. Optional. May be a space separated list.

Source_Comment_Character: (Index)
Unless set to false, mk will add the Source_Comment_Character followed by the name of the source file to the beginning of code and include files. Optional.

Source_Directory: (Index)
Directories which contain source or include files. If not found locally, mk will look in the Version Directory.

Source_Extension: (Index)
Extensions for source files. May be a list separated by spaces. Default is Source_Extension_is_undefined.

Step_Start_File: (Index)
Unless undefined or set to false, an executable that will be run before each step in a multi-step run. Optional.

Step_End_File: (Index)
Unless undefined or set to false, an executable that will be run after each step in a multi-step run. Optional.

Uncompress_Command: (Index)
Command for uncompressing or untaring the code directory. Syntax is: Compress_Command Code_Directory.Compress_Extension

Updates_Level: (Index)
Directory with updated source code. Optional. Default is latest. Often set to a number which determines the updates level. If the directory is not found under 'updates' locally it will be searched for in Version_Directory/updates. If set to latest, Version_Directory/updates will be searched for the highest number.

User: (Index)
Name used if an email address is requested by a run script. This setting will overrule system definitions.

Version_Directory: (Index)
Directory which determines the model version. Must be defined but may be set as a command option.



Forcing Data: Index (Notes: Index)
pyear
co2
delta c14
cfc
solar constant
crops
ice
orbit

Forcing data can be calculated or read from a file. The default year for time varying forcing is pyear, which may be overridden by a different year for an individual forcing. If a transient forcing option is specified, any time settings for the forcing are ignored and the model year (year0 + relyr) is used as the forcing time. When using a transient sub-option, you should also specify the main data forcing option. If the model year is before the first time in the data set, then the first data is used, and if the model year is after the last time in the data set, then the last data is used. Look in the options data file to see what years the data option is valid for.

pyear: (Index)
The namelist variable pyear (paleo year) is the default forcing year. If not set, pyear defaults to 1850. All other forcing years default to pyear.

co2: (Index)
The atmospheric co2 concentration, which determines the co2 forcing, can be set with the namelist variable co2ccn (ppmv). If the data forcing option 'uvic_embm_co2data' option is turned on, then the co2ccn variable is ignored and the co2 forcing is read from a data file. The concentration is linearly interpolated to the co2 forcing year co2_yr. If co2_yr is not set as a namelist variable, then it defaults to pyear. If the option 'uvic_embm_co2data_transient' is set, then co2_yr is ignored and the current co2 value is interpolated from data using the current model time (year0 + relyr). If the option uvic_carbon_coupled and 'uvic_embm_co2data' or 'uvic_embm_co2data_transient' are specified, then the co2 forcing data is read as emissions data (Gt yr-1). See the file co2data.F. If you are running the model with a coupled carbon cycle and you do not want emissions make sure you turn off the co2data options. The default data files are co2ccn.nc or co2emit.nc. Check that these files are compatible with your run before using co2data options. Idealized varying co2 can also be specified with the obsolete options 'uvic_embm_co2_exp' and 'uvic_embm_co2_lin'. Create a data file instead of using these options. Do not use these obsolete options with the co2data options.

delta c14: (Index)
The atmospheric delta c14 concentration can be set with the namelist variable dc14ccn (permil). If the data forcing option 'uvic_embm_c14data' option is turned on, then the dc14ccn variable is ignored and the delta c14 forcing is read from a data file. The concentration is linearly interpolated to the c14 forcing year c14_yr. If c14_yr is not set as a namelist variable, then it defaults to pyear. If the option 'uvic_embm_c14data_transient' is set, then c14_yr is ignored and the current delta c14 value is interpolated from data using the current model time (year0 + relyr). The default data file is dc14ccn.nc. Check that this file is compatible with your run before using c14data options.

cfc: (Index)
If any of the cfc data forcing options, 'uvic_cfc', 'uvic_cfc11' or 'uvic_cfc12', are turned on then the forcing values are interpolated from data using the current model time (year0 + relyr). The main cfc option turns on both cfc11 and cfc12. The default data file is cfcccn.nc. Check that this file is compatible with your run before using cfc options.

solar constant: (Index)
The solar constant can be set with the namelist variable solarconst (W m-2). If the data forcing option 'uvic_embm_solardata' option is turned on, then the solarconst variable is ignored and the solar constant forcing is read from a data file. The solar constant is linearly interpolated to the forcing year solar_yr. If solar_yr is not set as a namelist variable, then it defaults to pyear. If the option 'uvic_embm_solardata_transient' is set, then solar_yr is ignored and the current solar constant is interpolated from data using the current model time (year0 + relyr). The default data file is solar.nc. Check that this file is compatible with your run before using solardata options.

crop: (Index)
If the data forcing option 'uvic_embm_cropdata' option is turned on, then crop data forcing is read from a data file. The crop area is linearly interpolated to the forcing year crop_yr and this fraction of the model grid is set to grassland. If crop_yr is not set as a namelist variable, then it defaults to pyear. If the option 'uvic_embm_cropdata_transient' is set, then co2_yr is ignored and the current crop data is interpolated from data using the current model time (year0 + relyr). The default data file is crops.nc. Check that this file is compatible with your run before using cropdata options.

ice: (Index)
If the data forcing option 'uvic_embm_icedata' option is turned on, then ice data forcing is read from a data file. The ice area and thickness are linearly interpolated to the forcing year ice_yr and this fraction and thickness of ice is set in the model. If ice_yr is not set as a namelist variable, then it defaults to pyear. If the option 'uvic_embm_icedata_transient' is set, then ice_yr is ignored and the current ice data is interpolated once a year using the model time (year0 + relyr). The default data file is icedata.nc. Check that this file is compatible with your run before using icedata options.

orbit: (Index)
The orbital parameters are calculated for the forcing year orbit_yr. If orbit_yr is not set as a namelist variable, then it defaults to pyear. The calculation is only valid for 1,000,000 years into the past or future. If the option 'uvic_embm_orbit_transient' is set, then orbit_yr is ignored and the orbital parameters are calculated once a year using the model time (year0 + relyr). If the option 'uvic_embm_orbit_user' is set the orbital parameters are held constant and can be set as the namelist variables: eccen, obliq, mvelp. These default to present day values for eccentricity (eccen=0.016723) , obliquity (obliq=23.446) and longitude of perihelion (mvelp=102.04).



UVic / SEOS / Climate Group / Model / Notes