This page's content is no longer actively maintained, but the material has been kept on-line for historical purposes.
The page may contain broken links or outdated information, and parts may not function in current web browsers.

GISS GCM ModelE

Note that this model documentation refers to the ca. 2004 version of GISS modelE. More up-to-date documentation will be available at the main ModelE page.

Options for Running the GISS GCM

There are a number of 'plug and play' options available for ModelE, and there will be more soon. The essence of this is that by a simple change of filename in the rundeck, a new model will be compiled and run, without any further coding necessary. (A good thing!). Remember that you must recompile the model and replace the executable for any change to be effected. (i.e. 'gmake exe RUN=E001xyz')

This is a brief list of the current options:

Example Resolutions (horizontal and vertical)

RES_M12   ! 4x5 (medium resolution) 12 vertical layers 
RES_M20A  ! 4x5 (medium resolution) 20 vertical layers (up to 0.1mb)
RES_M23   ! 4x5 (medium resolution) 23 vertical layers (incl. stratosphere)
RES_F12   ! 2x2.5 (fine resolution) 12 vertical layers 

Other resolutions (such as M18, F18 etc. with or without stratospheric code) can be used as required. Note that these files also contain some dummy routines that can be replaced by other options (see below).

Momentum advection scheme:

MOMEN2ND  !  2nd order advection scheme (12 layer DT = 450 sec)
MOMEN4TH  !  4th order advection scheme (12 layer DT = 300 sec)

Binary output from postprocessing

POUT    ! Standard GISS output 
	! ij arrays: TITLE*80,DATA(IM,JM)*R4,ZMEAN(JM)*R4,GLOB*R4
	! jl/jk arrays: TITLE*80,IX,IY,IZ,IT,X(IX,IY,IZ,IT),XCOOR(IX),
        !               YCOOR(IY),ZCORR(IZ),TCORR(IT),CX,CY,CZ,CT,'NASAGISS',
        !               ASUM(IX),GLOB,ZMEAN(IZ)
	! j arrays: (ASCII) aplot format 
POUT_netcdf: Full netcdf format for all fields

Other output methods may also be defined.

Ocean model treatment

The ocean treatment is set in a couple of ways. For the basic (no-dynamics) ocean, there are three options: a) fixed SST, b) Mixed layer ocean (with fixed ocean heat transports, and c) Mixed layer ocean with fixed transports and deep diffusion into the next few thousand m). The fixed SST run is set by using KOCEAN = 0 in the rundeck, while the Qflux ocean is set by KOCEAN = 1. Whether this gives the simple mixed layeer ocean or the deep diffusing ocean, depends on the following 'plug and play' options:

OCEAN OCNML !  fixed SST ocean or simple Qlfux
OCEAN ODEEP !  fixed SST ocean or deep diffusing Qflux 

The fixed SST ocean requires the following files: OSST, SICE, OCNML, MLMAX
The Qflux ocean requires in addition: OHT
The deep diffusion Qflux model also requires: EDDY and TG3M

For dynamic oceans, the only current option is to use

ODIAG_COM OCEAN_COM OSTRAITS_COM OGEOM !
OCNDYN OSTRAITS OCNGM OCNKPP OCNFUNTAB ! - Russell Dynamic Ocean
ODIAG_PRT                              ! 

In time, other ocean models will also be incorporated.

Dynamic Ice treatment

The advection of sea ice can be used with all ocean models (including the qflux ocean). If a qflux version with advective ice is required, the spin-up where the qfluxes are calculated must include the dynamic ice modules so that the heat convergence from horizontal ice motion can be included in the vertical flux calculations. Ice dynamics can be switched off by using the dummy 'plug-and-play' option:

ICEDYN_DUM        !  dummy ice dynamics
ICEDYN_DRV ICEDYN !  ice dynamics 

Please note that for the qflux models, you must be consistent in your choice (i.e. if dynamics are in the spin up, they must be in the qflux run also).

Atmospheric mixing

DRYCNV   ! original scheme. complete mixing of dry statically unstable column.
ATURB    ! turbulence scheme that diffuses tracers as a function of second
         ! order colsure calulations of effective diffusivity.

Stratospheric diagnostics

STRAT_DIAG  ! calculates full set of zonally averaged EP-fluxes. Must be
            ! used in conjunction with a suitable RES_Xnn file. 
            ! (i.e. one that does not have dummy routines EP*, and sets
            ! KEP to be non-zero).

Stratosphere dynamics (Gravity wave drag)

STRATDYN  ! Calculates and applies gravity wave drag in the
          ! dynamics. This MUST be used for all strat models, but can
          ! also be used for tropospheric models. Note that a suitable
          ! RES_Xnn file must be used in conjunction. (i.e. One that
          ! does not have a dummy GWDRAG, VDIFF or io_strat).

Fast fourier transforms

FFT36: Suitable for IM=36 models 
FFT72: Suitable for IM=72 models 
FFT144: Suitable for IM=144 models

Tracers

  • General Tracers

    Tracers are implemented through a combination of 'plug and play' and user routines. Some tracer code is embedded in the main model through the use of pre-processing directives. To activate the directives, change the rundeck line:

    !#define TRACERS_ON                  ! include tracers code
    to 
    #define TRACERS_ON                  ! include tracers code
    

    Three preprocessing directives have been defined so far: TRACERS_ON is for all tracers, TRACERS_WATER is used if any tracers interact with the hydrologic cycle in the atmopshere/sea-ice/lakes and rivers, and TRACERS_OCEAN if tracer advection in the ocean is required (currently only functional with the the GISS OCEAN option). Also, 'plug in':

    TRACER_COM TRACERS_DRV              ! configurable tracer code
    TRACERS                             ! generic tracer code
    TRDIAG_COM TRACER_PRT               ! tracer diagnostic printout
    

    TRACERS, TRDIAG_COM and TRACER_PRT were written to be independent of tracer type. For most users, only TRACER_COM need be changed to alter the number of tracers, and their physical type. The tracer library is included in TRACERS_DRV only needs editing if a brand new tracer is to be incorporated, or the properties of one of the existing tracers needs changing. The tracers in these routines are for illustrative purposes only. However, the 'Air' and 'Water' tracers are very useful as diagnostic tools since they are designed to mimic the movement of air and water mass. The user is responsible for checking that tracer subroutines are called at the appropriate times in MAIN for his purpose. Be sure to check that .f files with tracer directives start with #include "rundeck_opts.h" Tracers parameters that can be changed in the rundeck:

     
    to_volume_MixRat=1: tracer concentration printout in volume mixing ratio
    to_volume_MixRat=0: tracer concentration printout in mass mixing ratio
    to_per_mil=1: tracer concentration in per mil units (for water tracers)
    itime_tr0: the model time at which each tracer 'turns on'.
    

    Note that tracer code involving the ocean needs the OCN_TRACER module, in addtion to those specified above.

  • Regional Tracers

    The preprocessor directive #regional_Ox_tracers will turn on tracers which can be defined by a geographic domain. In the present implementation, there are 6 regional Ox tracers (named OxREG1, ... OxREG6), which interact with the Drew Shindell chemistry if #TRACERS_SPECIAL_Shindell is turned on as well. Therefore Ox should also be a tracer and should be defined before the regional tracers. The number of regional Ox tracers is controlled by the NregOx parameter in TRACER_COM, and their 3D geographic regions are defined in TRACERS_DRV, by setting the varaibles:

    regOx_n = northern limit in degrees
    regOx_s = southern limit in degrees
    regOx_w = western limit in degrees
    regOx_e = eastern limit in degrees
    regOx_b = bottom limit in hPa