-------------------------------------------------
New features in CAM-5.4
-------------------------------------------------




## CAM-SE
* Update SE dycore tuning parameters (XXEaton)
  - Change time stepping method to RK5 (Kinnmark & Gray Runga-Kutta 5
    stage; 3rd order accurate in time)
  - Set the namelists variables as recommended for RK5 in:
    http://www.cgd.ucar.edu/cms/pel/software/cam-se-dt-table.pdf
  - Add "tstep_type" namelist option for SE dycore
  - Turn on the FV energy fixer.
  - Remove the variable "energy_fixer" from the cam namelist.

## CAM-FV
* Vertical remapping is now applied to temperature instead of energy. This
  primarily affects WACCM by reducing numerical artifacts near the model top.

## CARMA
* Add six new CARMA models:
    - cirrus_dust
    - meteor_impact
    - mixed_sulfate
    - pmc_sulfate
    - tholin
    - test_tracers2

* Further development of CARMA-CAM integration, including:
    - New sulfate model features.
    - "Fractal" code for soot.
    - Port to the NAG compiler.

## CLUBB
* Update the version of CLUBB used
* Add features to the interface (all options, controlled by namelist switches)
    - rain evaportation-turbulence feedback
    - advection of CLUBB's moments
    - cloud top radiational cooling parameterization
    - explicit diffusion on CLUBBs prognostic temperature and total water
    - provide support for CLUBB/microphysics sub-stepping

## CHEMISTRY

* Reaction constants updated to JPL10

* Added functionality to provide rate groupings (summations) diagnostics

* Corrections to aerosol surface area

* NEU wet deposition changes
   . set TICE to 263
   . disable wet deposition poleward of 60 degrees and pressures < 200 mbar
   . correction Henry's Law parameters used for SO2 deposition (in seq_drydep_mod)

* Chemistry preprocessor updates:
   . enthalpies for chemical potential heating now specified in mechanism files
   . added ability to put comments at the end of reactions in mechanism file following '#' or '!'
   . bug fixes for species names longer than 8 characters (up to 16 characters)

* Added 4-mode modal aerosol model (MAM4)

* Defaults changed for soil_erod and dust_emis_fact.
  . All grids except the 0.9x1.25 FV and a few low resolution grid now use
    the soid_erod dataset generated for the 1.9x2.5 FV grid.
  . The value of dust_emis_fact has been changed for FV 1/2 and 1/4 degree
    grids to 0.45 based on tuning done at PNNL.  The value for FV 1 degree
    was not changed since that will require retuning the production configuration.

* Enhancements to emission specifications (surface and elevated):
  . ability to specify emissions from multiple input files for any given species
  . optional global attribute 'input_method' (set to: 'SERIAL', 'CYCLICAL',
    or 'INTERP_MISSING_MONTHS') in the emissions input file which overrides the
    corresponding *type namelist option on a file-by-file basis
  . optional multiplier proceeding the emissions filepath, e.g.:
    'NAME -> 0.5*/path.../filename.nc'

## Prognostic Modal Aerosols

* Provide the capability to prognose modal aerosols in the stratosphere. This
  gives CAM5 and WACCM5 the ability to simulate aerosols in the stratosphere
  which originate from volcanic eruptions.  To this end, accumulation to coarse
  mode exchange is allowed and the widths and edges of the modes are modified

## Prescribed Modal Aerosols

## Radiation

## Microphysics

* New microphysics scheme: MG version 2 adds prognostic precipitation and has
  a cleaner implementation compared to the original MG scheme.

* It is now possible to control both the number of microphysics substeps per
  physics time step, and joint macrophysics/microphysics substepping, via the
  namelist.

* Add pre-existing ice option to nucleate_ice code.

* Add option for Hoose heterogeneous freezing parameterization.

* Add option to specify/parameterize precipitation fraction

## Macrophysics

* Add option for a ice supersaturation closure (supported in both CAM5 and CAM-CLUBB)

## Deep convection

* Minor improvements to the ZM scheme improve robustness for some inputs
  (e.g. unusually high temperatures).
  
* Add option for convective organization in ZM (based on Mapes and Neale 2010)

## Sub-columns
* Modifications to pbuf and history to support sub-columns

* Introduced sub-column interface and utlities routines

* Microphysics now has the ability to be run on grid(usual) or subcolumns

## Gravity waves

* New AMIP configuration with a high vertical resolution uses spectral
  gravity waves in the low top model.

* A long-wavelength inertial gravity wave spectrum has been added, and
  frontogenesis can now trigger waves in this spectrum.

* Gravity waves can be triggered from shallow, as well as deep, convection.

* The entire gravity wave scheme has been audited to correct conservation
  issues, internal inconsistencies, and problems with hard-coded parameters.
  This should result in more accurate and less noisy output.

* WACCM's gravity wave functionality can now be enabled in non-WACCM runs,
  and can be enabled/disabled at run time via the namelist.

* Most gravity wave parameters that were previously hard-coded are now
  set by the namelist instead.

* Added "tau_0_ubc" option, to enforce an upper boundary condition of tau = 0
  in the gravity wave parameterization.

## WACCM

* WACCM5 with prognostic modal aerosols in the stratosphere

* Reaction constants updated to JPL10

* Background ionization from star light added to WACCM

* New specification of stratospheric aerosols (volcanic)

* New treatment of stratospheric aerosol chemistry

* Corrections to age-of-air tracers

* Bug fixes and usability improvements for SC-WACCM and WACCM5 that were
  also added between CESM 1.2.1 and CESM 1.2.2.

* Include SC-WACCM5 which has prognostic modal aerosols

* WACCM-X now has an option to turn on the extended ionosphere including 
  calculation of electron and ion temperatur and ion transport ambipolar 
  diffusion 

## SCAM

-------------------------------------------------
CODE CLEANUP AND REFACTORING
-------------------------------------------------

* CARMA and the MG microphysics interface now use micro_mg_utils to get
  size distribution parameters for cloud droplets, ice, and precipitation.
  Previously this was done with duplicated code.

* The chemistry-aerosol model interface was refactored to provide a more
  extendable framework.  This will ease incorporation of other aerosol
  models (e.g., a sectional aerosol model)

* The SE dycore now uses Pa instead of hPa, which is consistent with CAM's
  physics.

* The CAM and WACCM gravity wave modules have been merged together, and the
  result was extensively refactored. The CAM interface (gw_drag.F90) has been
  separated from a new set of modules that constitute a portable layer, and
  the routines for the wave sources, wave propagation, and effective diffusion
  have been separated from each other as well.

* Removed the WACCM_PHYS preprocessor macro, and brought WACCM physics modules
  up to date with current CAM conventions:

  - qbo, radheat, and iondrag have their own namelists. If WACCM is off, we
    compile in stubs rather than using the WACCM_PHYS macro.
  - Molecular diffusion is turned on/off at run time based on the namelist and
    the extent of the vertical grid.
  - Each type of gravity wave source is turned on/off via the namelist.
  - WACCM-specific fields set by the dycore are now communicated via the physics
    buffer rather than the physics_state object, and are only set if needed.

* Remove restriction that radiation diagnostic calculations reuse the water
  uptake and wet radius values calculated for the climate affecting modes.
  These quantities are now recomputed for the diagnostic modes.

* satellite history output was refactored to improve run-time performance
  -- find nearest neighbor operation was parallelized

* The vertical diffusion code was refactored to use new tridiagonal matrix
  types, which represent operators in the diffusion equation.

-------------------------------------------------
CAM INFRASTRUCTURE CHANGES
-------------------------------------------------

* Improve the microp_aero driver by removing code that belonged in a CAM
  specific interface for the nucleate_ice parameterization and adding the
  missing CAM interface layer (nucleate_ice_cam).

* Add two new functions to the rad_constituents interfaces to make it
  easier to access the mode and specie indices for specific modes and
  specie types.

* Type descriptions in namelist_definitions.xml can now include variables
  as dimensions. For instance, both "integer(n)" and "integer(2)" can be
  used for a 1-D integer array.

* The rad_climate and rad_diag_* arrays can now be set to a larger size
  using the new "-max_n_rad_cnst" configure option.

* Turning on CESM's DEBUG mode now also turns on state_debug_checks.

* The Lahey compiler is no longer supported because it doesn't support Fortran
  2003 features.

* Added a new namelist variable, history_aero_optics, to add modal aerosol
   optics diagnostics to the default history fields.  The existing
   history_aerosol variable turns on diagnostics related to the aerosol
   production and removal tendencies.

* Preliminary implementation of further flags to control default history
  outputs, including:
  - history_waccm
  - history_waccmx
  - history_chemistry
  - history_carma
  - history_clubb
 
* CAM history changes:
   . increased number of fields in fincls from 750 to 1000
   . can have up to 10 simultaneous history files (or streams)
