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)