Output format

MOZART-4 simulation results are written to netcdf 'history' files (e.g., hNNNN.nc, h[abcde]NNNN.nc, where NNNN=0001 to 9999).  All species (gases and aerosols) are output in Volume Mixing Ratio (VMR, meaning mole/mole), as indicated by the variable name (e.g., O3_VMR_avrg) and the units attribute of the variable ('VMR', or 'mol/mol').  

Restart files are written at the end of each simulation, and as requested during the simulation.  The values in these files are all in mass mixing ratio (kg/kg).  Any restart file can be used as an initial conditions file, without any modification.  

Pressure profiles

To calculate pressure of each model grid box:

pres_Pa[ilon, ilat, ilev, itim] = hyam[ilev] * P0 + hybm[ilev] * PS[ilon, ilat, itim]

pres_hPa = pres_Pa * 0.01

To calculate pressure at interfaces of each model grid box: 

pres_int_Pa[ilon, ilat, ilev, itim] = hyai[ilev] * P0 + hybi[ilev] * PS[ilon, ilat, itim]

Converting mixing ratio to concentration 

To convert VMR [mol/mol] to concentration [molecules/cm3]

conc[ilon, ilat, ilev, itim] = vmr[ilon, ilat, ilev, itim] * pres_Pa[ilon, ilat, ilev, itim]  / kboltz / temp[ilon, ilat, ilev, itim] * 1.e-6

where kboltz = 1.381e-23  [J/K]

Converting aerosols in VMR to density

aerosol_density[ug/m3] = VMR * P[Pa] / Rgas[J/K-kg] /T[K] * mw_aerosol[g/mole] /mw_air[g/mole] * 1E9[ug/kg]

where, 

Rgas = 286.9969 [J/K/kg]

mw_air = 29.  [g/mole]

For SO4, mw_aerosol = 96

For NH4NO3, mw_aerosol = 80

SOA is treated as C12, mw_aerosol = 144

The CBs and OCs are C, mw_aerosol =12.

Sea salt is NaCl, mw_aerosol = 58.

Dust is treated with mw_aerosol = 34.

Using the mass diagnostics

Please see the preprocessor documentation for more explanation of these terms and how to save them.

Production and Loss rates (e.g., O3_PROD_avrg, O3_LOSS_avrg) are saved as [molecules/cm3/s].  To convert to ppbv/day, for example, use the inverse of the VMR-to-concentration relation above.

Mass diagnostics ADV, CHM, CNV, DIF, DPS are in [kg/grid-box/model-timestep]. 

Mass diagnostics XFLX, YFLX, ZFLX are the fluxes across grid box interfaces in [kg/grid-area/timestep].  For XFLX gridarea is lat*lev, YFLX lon*lev, ZFLX lon*lat. 

The fluxes for a grid box centered at lon[i],lat[j], lev[k] (e.g., xflx(i,j,k), yflx(i,j,k) and zflx(i,j,k)) correspond to the fluxes across the west, south and bottom of the grid box (remember k runs from top of the model to surface).  Therefore, there are no values for the east, north and top edges of the model.  So, the net fluxes for a grid box are:

dXflx[ilon,ilat,ilev] = XFLX[ilon,ilat,ilev] - XFLX[ilon+1,ilat,ilev]

dYflx[ilon,ilat,ilev] = YFLX[ilon,ilat,ilev] - YFLX[ilon,ilat+1,ilev]

dZflx[ilon,ilat,ilev] = ZFLX[ilon,ilat,ilev-1] - ZFLX[ilon,ilat,ilev]

ADV is approximately equal to (dXflx + dYflx + dZflx).

DRY_DEP_FLX [kg/gridarea/timestep] is the flux due to dry deposition across the bottom of the model surface layer.

WETDEP_FLX [kg/m2/s] is the column-integrated loss due to wet deposition.

Volume [m3] of each gridbox can be calculated by:

vol[ilon, ilat, ilev] = (Rearth*cos(lat[ilat]) * dlon)  * (Rearth * dlat) * Rgas * temp[ilon, ilat, ilev] * log(pres_int_Pa[ilev+1]/ pres_int_Pa[ilev]) / grav 

where: Rearth = 6.37e6 [m]

            Rgas = 286.9969 [J/K/kg]

            grav = 9.80616 [m/s2]

            dlon, dlat are model grid lon and lat spacing in radians

Aerosol optical depth

AOD can be included in output just in the runtime namelist (there are no settings in the preprocessor input files), with the other additional variables included with hsttimav(1)%list.

The variables are:

DTTOTAL - total AOD

DTCBS - AOD from CB1+CB2

DTOCS - AOD from OC1+OC2

DTSO4 - AOD from SO4

DTANT - AOD from NH3NO3

DTSAL - AOD from Sea Salt (SA1+SA2+SA3+SA4)

DTDUST - AOD from dust (DUST1+DUST2+DUST3+DUST4)

The AOD is calculated only when the photolysis rates are calculated (SZA < 90), so averages (daily or monthly) of the DT* variables need to be scaled by the fraction of daylight hours per day.  The variable 'FRACDAY' has this information and should be saved anytime you save DT* variables so you can divide the AOD by it.

Calculating Sea Salt Emissions

Sea Salt emissions can be output by specifying in the runtime namelist, in the hsttimav or hstinst variable list: SA1_SRC, SA2_SRC, SA3_SRC, SA4_SRC.  The units in the varialbe attributes in the output files are wrong -- these sources are saved as the forcing that is applied to the lowest model level ??(kg/m3/model-timestep).

To convert this source to standard emissions units (kg/m2/s):

emis_kgarea(ilon,ilat) = saX_src(ilon,ilat) * delp / grav / dtime

where:

delp = 100000. * ( hyai(nlev-1) - hyai(nlev-2) ) + PS(ilon,ilat) * (hybi(nlev-1) - hybi(nlev-2) )  ?;depth of lowest model layer

grav = 9.80616    ; (m/s^2)

dtime = model timestep (probably 1200 s)

  • No labels