Tag name: cam5_1_15
Originator(s): liuh,joemci,fvitt,eaton
Date: Mon Nov 21 14:59:37 MST 2011
One-line Summary: Add in WACCM-X and fix WACCM bug

Purpose of changes:

. WACCM-X is the extension of the WACCM/CAM model from the lower thermosphere
to the top of the thermosphere. The neutral thermosphere physics are added
here which involves modifications to a number of physics and chemistry
modules.

Later WACCM-X modifications will include ion transport and electrodynamics.

Bugs fixed (include bugzilla ID):

. Fixed a bug in the gw_drag module so that only molecular diffusion is
used instead of molecular and eddy diffusion in gravity wave drag
calculations

Describe any changes made to build system:

. New configure option -waccmx added to turn on WACCM-X physics. Also
added WACCMX cppdef and a WACCM-X physics directory to file paths.

. Added defaults xml file for WACCM-X configure defaults

Describe any changes made to the namelist:

. Namelist default variables set for WACCM-X with one new variable
waccmx_opt which is a run time flag to turn on WACCM-X physics

List any changes to the defaults for the boundary datasets: none

Describe any substantial timing or memory changes: not checked

Code reviewed by: eaton, fvitt, fischer

List all subroutines eliminated: none

List all subroutines added and what they do:

models/atm/cam/src/physics/cam/iondrag.F90
models/atm/cam/src/physics/cam/ionosphere.F90
models/atm/cam/src/physics/cam/majorsp_diffusion.F90
. added as dummy interfaces for new WACCM-X physics modules/methods

models/atm/waccmx/src/physics/cam/ionosphere.F90
models/atm/waccmx/src/physics/cam/majorsp_diffusion.F90
. new WACCM-X physics modules

List all existing files that have been modified, and describe the changes:

models/atm/cam/src/chemistry/mozart/chemistry.F90
. change to no fixed upper boundary for WACCM-X and add photo_register and
aurora_register method calls

models/atm/cam/src/chemistry/mozart/mo_aurora.F90
. put ionization rates in pbuf

models/atm/cam/src/chemistry/mozart/mo_gas_phase_chemdr.F90
. add pbuf to table_photo and setext interfaces

models/atm/cam/src/chemistry/mozart/mo_jeuv.F90
. add number of photo-ionization rates put in pbuf

models/atm/cam/src/chemistry/mozart/mo_jshort.F90
. increas scale height for WACCM-X and set minimum value for cross-sections

models/atm/cam/src/chemistry/mozart/mo_mean_mass.F90
. constituent dependent mean mass for WACCM-X

models/atm/cam/src/chemistry/mozart/mo_photo.F90
. increase maximum zenith angle, add pbuf to table_photo interface and
add photo-ionization rates to pbuf

models/atm/cam/src/chemistry/mozart/mo_setext.F90
. add pbuf to setext and aurora interfaces

models/atm/cam/src/chemistry/mozart/mo_tgcm_ubc.F90
. add column dimension to mean mass array to allow dependence on
composition

models/atm/cam/src/chemistry/mozart/mo_waccm_hrates.F90
. increase zenith angle and use constituent dependent mean mass and specific
heat for WACCM-X

models/atm/cam/src/chemistry/mozart/upper_bc.F90
. add upper boundary flux to ubc_get_vals interface, constituent
dependent mean mass to set_tgcm_ubc interface, and pbl height to
chem_timestep_tend interface
. calculate upper boundary flux and use constituent dependent gas constant in
upper boundary mixing ratio calculation

models/atm/cam/src/chemistry/pp_none/chemistry.F90
. add pbl height to chem_timestep_tend interface

models/atm/cam/src/chemistry/pp_waccm_mozart_v1/mo_jeuv.F90
. add number of photo-ionization rates put in pbuf to be compatible with mozart
mo_jeuv

models/atm/cam/src/chemistry/pp_waccm_mozart_v1/mo_photo.F90
. increase maximum zenith angle, add pbuf to table_photo interface to be
compatible with mozart mo_photo

models/atm/cam/src/control/physconst.F90
. add physconst_init and physconst_update methods

models/atm/cam/src/dynamics/eul/dp_coupling.F90
. add constituent dependent zvir and rair to geopotential_t method interface

models/atm/cam/src/dynamics/fv/dp_coupling.F90
. add constituent dependent zvir and rair to geopotential_t method interface and
call to physconst_update method

models/atm/cam/src/dynamics/homme/dp_coupling.F90
. add constituent dependent zvir and rair to geopotential_t method interface

models/atm/cam/src/dynamics/sld/dp_coupling.F90
. add constituent dependent zvir and rair to geopotential_t method interface

models/atm/cam/src/physics/cam/constituents.F90
. add fixed upper bondary flux and molecular diffusion type to cnst_add
interface and add method to retrieve molecular diffusion type

models/atm/cam/src/physics/cam/diffusion_solver.F90
. add fixed upper boundary flux and molecular diffusion modifications to
compute_vdiff interface, add molecular conductivity calculation and apply to
temperature, and remove eddy diffusivity from molecular diffusion

models/atm/cam/src/physics/cam/eddy_diff.F90
. add fixed upper boundary flux and molecular diffusion modifications to
compute_vdiff interface

models/atm/cam/src/physics/cam/geopotential.F90
. add constituent dependency to geopotential calculations

models/atm/cam/src/physics/cam/initindx.F90
. add iondrag_register and ionos_register method calls for WACCM-X

models/atm/cam/src/physics/cam/micro_mg_cam.F90
. removed use statement accessing pcnst since not used in module (bug with PGI)

models/atm/cam/src/physics/cam/molec_diff.F90
. add variables to interface of vd_lu_decomp and capability to solve for
temperature in addition to dry static energy
. add calculation of thermal diffusion coefficient, add upper boundary flux to
molecular compute_molec_diff, and add calculation of molecular conductivity

models/atm/cam/src/physics/cam/phys_control.F90
. add access to WACCM-X run time option and add phys_ctl_init method to set top
and bottom levels for eddy and molecular diffusion operate and molecular
diffusion switch. Also add access to the these through phys_getopts method

models/atm/cam/src/physics/cam/physics_types.F90
. set maximum values for H and H2 mixing ratios for WACCM-X, add call to
physconst_update method, add update of dry static energy, and add
constituent dependent variables to geopotential_dse call

models/atm/cam/src/physics/cam/physpkg.F90
. add calls to physconst_init, phys_ctl_init, mspd_init, and ionos_init methods

models/atm/cam/src/physics/cam/tphysac.F90
. access molecular viscosity from pbuf and gw_intr call, add pblh to chem_timestep_tend
call, and add WACCM-X calls to mspd_intr and ionos_intr methods

models/atm/cam/src/physics/cam/vertical_diffusion.F90
. add molecular diffusion field list, add molecular conductivity to pbuf, and add calls to
phys_getopts to get molecular diffusion switch and top and bottom levels for eddy and
molecular diffusion to operate

models/atm/cam/src/physics/waccm/gw_drag.F90
. calculate and use molecular diffusivity instead of molecular+eddy diffusivity and access
bottom level for molecular diffusion using phys_getopts method

models/atm/cam/src/physics/waccm/iondrag.F90
. add Pedersen and Hall conductivities to pbuf

models/atm/cam/src/physics/waccm/nlte_lw.F90
. use constituent dependent constants for output heating rate calculations

models/atm/cam/src/physics/waccm/radheat.F90
. use constituent dependent constants for heating rate calculations

If there were any failures reported from running test_driver.sh on any test
platform, and checkin with these failures has been OK'd by the gatekeeper,
then copy the lines from the td.*.status files for the failed tests to the
appropriate machine below. All failed tests must be justified.

bluefire:
033 bl336 TBL.sh wm4c4h outfrq3s+waccm_1850_cam4 9s .......................FAIL! rc= 7 at Tue Nov 15 14:03:51 MST 2011
060 bl379 TBL.sh wm1.9c4h outfrq24h+waccm_1850_cam4 2d ....................FAIL! rc= 7 at Tue Nov 15 16:28:26 MST 2011

Failures are expected baseline comparison failures due to gravity wave drag bug fix.

edinburgh/lf95:
036 bl314 TBL.sh wg10c4dm outfrq3s 9s .....................................FAIL! rc= 7 at Tue Nov 15 17:53:29 MST 2011

Failure is expected baseline comparison failure due to gravity wave drag bug fix.

hopper/pgi:
035 bl314 TBL.sh wg10c4dm outfrq3s 9s .....................................FAIL! rc= 7 at Wed Nov 16 14:41:19 PST 2011

Failure is expected baseline comparison failure due to gravity wave drag bug fix.

CAM tag used for the baseline comparison tests if different than previous
tag:

Summarize any changes to answers: WACCM answers changed due to gravity wave drag bug fix