The Intermediate Complexity Atmospheric Research model (ICAR)
A computationally efficient atmospheric model for downscaling.
 All Classes Files Functions Variables
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 123]
 Cadv_mpdata

The MPDATA advection scheme

 Cdata_structures::adv_options_type
 Cadv_upwind

A simple upwind advection scheme

 Cadvection

Driver to call different advection schemes

 Cboundary_conditions

Handles reading boundary conditions from the forcing file(s) Provides necessary interpolation on to the grid

 Clinear_theory_lut_disk_io::check_attribute
 Cconvection

Driver to call different convection schemes

 Cdata_structures

Contains type definitions for a variety of model data strucutres Also defines model constants (e.g. gravity, and MAXFILELENGTH)

 Cfft

Fortran interface to FFTW

 Cfftshifter::fftshift
 Cfftshifter

Supplies 1D and 2D FFT shift procedures ala matlab fftshift

 Cdata_structures::fourpos
 Cgeo

Module provides geographic interpolation procedures Various functions used for spatial interpolation from low-res forcing grid to high-res model grid

 Cdata_structures::geo_look_up_table
 Cfftshifter::ifftshift
 Cinit

Model Initialization includes allocating memory for boundary and domain data structures. It reads all of the options from the namelist file (or files). It also reads in Lat/Lon and Terrain data. This module also sets up geographic (and vertical) look uptables for the forcing data Finally, there is a driver routine to initialize all model physics packages

 Cinitialize_options

Read model options from namelist structures Also checks commandline arguments to an options filename

 Cdata_structures::interpolable_type
 Cdata_structures::linearizable_type
 Cdata_structures::bc_type
 Cdata_structures::domain_type
 Cdata_structures::wind_type
 Cio_routines::io_add_attribute

Generic interface to the netcdf add_attribute_TYPE routines

 Cio_routines::io_read

Generic interface to the netcdf read routines

 Cio_routines::io_read_attribute

Generic interface to the netcdf read_attribute_TYPE routines

 Cio_routines

Basic file input/output routines

 Cio_routines::io_write

Generic interface to the netcdf write routines

 Cland_surface

This module provides a wrapper to call various land surface models

 Clinear_theory_lut_disk_io

Handle reading and writing Linear wind Look up tables to/from disk

 Clinear_theory_winds

This module provides the linear wind theory calculations

 Cdata_structures::lsm_options_type
 Cdata_structures::lt_options_type
 Cmicrophysics

This module provides a wrapper to call various microphysics models It sets up variables specific to the physics package to be used including history variables not currently stored in the domain level data structure

 Cmodel_tracking

A tool to track model versions and print useful changes between model versions

 Cmodule_bl_ysu

YSU PBL scheme (from WRF)

 Cmodule_cu_kf

Kain-Fritsch Cumulus Scheme from WRF

 Cmodule_cu_tiedtke

Tiedtke cumulus scheme from WRF

 Cmodule_lsm_basic

Not really a land surface model, use coarse model fluxes

 Cmodule_lsm_simple

NOTE: CODE IS INCOMPLETE AND WILL NOT WORK

 Cmodule_mp_simple

Very simple microphysics code modeled after the microphysics of SB04 used in Smith and Barstad '04 (the linear model)

 Cmodule_mp_thompson

This subroutine computes the moisture tendencies of water vapor, cloud droplets, rain, cloud ice (pristine), snow, and graupel

 Cmodule_ra_simple

Very simple radiation code modeled after the description in Finch and Best(2004?) of Reiff et al. 1984 shortwave and Idso and Jackson (1969) longwave

 Cmodule_sf_noahdrv

Noah Land Surface Model online driver code (from WRF)

 Cmodule_sf_noahlsm

Noah Land Surface Model (from WRF)

 Cmodule_water_simple

Simple open water flux calculations

 Cdata_structures::mp_options_type
 Cdata_structures::options_type
 Coutput

Model Output

 Cpbl_simple

Simple PBL diffusion package for ICAR

 Cdata_structures::physics_type
 Cplanetary_boundary_layer

This module provides a wrapper to call various PBL models It sets up variables specific to the physics package to be used including both

 Cdata_structures::position
 Cradiation

This module provides a wrapper to call various radiation models It sets up variables specific to the physics package to be used

 Cstring::str
 Cstring

Various functions to convert a number to a string and a string to a number

 Cdata_structures::tendencies_type
 Ctime

date / time module

 Ctime_step

Main time stepping module. Calculates a stable time step (dt) and loops over physics calls Also updates boundaries every time step

 Cdata_structures::vert_look_up_table
 Cvertical_interpolation

Module to provide vertical interpolation includes setting up a vertical Look Up Table (vLUT) and performing vertical interpolation (vinterp)

 Cwind

Module to manage the ICAR wind field, including calls to linear winds importantly it also rotates the wind field into the ICAR grid and balances the U, V, and W fields for "mass" conservation

 Clinear_theory_lut_disk_io::write_var