[Dart-dev] DART/branches Revision: 12168
dart at ucar.edu
dart at ucar.edu
Sat Dec 2 14:37:52 MST 2017
nancy at ucar.edu
2017-12-02 14:37:52 -0700 (Sat, 02 Dec 2017)
123
written but not debugged; routines to create conversion factors
for chemistry obs and to retrieve them by quantity index.
Added: DART/branches/recam/models/cam-fv/chem_tables.f90
===================================================================
--- DART/branches/recam/models/cam-fv/chem_tables.f90 (rev 0)
+++ DART/branches/recam/models/cam-fv/chem_tables.f90 2017-12-02 21:37:52 UTC (rev 12168)
@@ -0,0 +1,250 @@
+! DART software - Copyright UCAR. This open source software is provided
+! by ucar, "as is", without charge, subject to all terms of use at
+! http://www.image.ucar.edu/dares/dart/dart_download
+!
+! $Id$
+!----------------------------------------------------------------
+!>
+!> this routines supports unit conversions between chemistry values
+!> in the cam state and the observed quantities
+!>
+!----------------------------------------------------------------
+
+module chem_tables_mod
+
+
+public :: init_chem_tables, &
+ finalize_chem_tables, &
+ chem_convert_factor
+
+use types_mod
+use utilities_mod
+use obs_kind_mod
+
+implicit none
+private
+
+!public :: chem_convert_factors, molar_mass_dry_air
+
+type chem_convert
+ character(len=31) :: netcdf_varname
+ real(r8) :: convert_factor
+ character(len=31) :: quantity_name
+end type
+
+
+! table of chemistry conversion factors from mmr to vmr and back
+type(chem_convert), allocatable :: chem_conv_table(:)
+
+real(r8), parameter :: molar_mass_dry_air = 28.9644_r8
+
+character(len=256) :: string1, string2
+
+!--------------------------------------------------------------------
+!> call once to allocate and initialize the table
+
+subroutine init_chem_tables()
+
+! to add more quantities, add entries here following the pattern.
+! there can be only one entry per 'QTY_xxx'
+
+
+allocate(chem_conv_table(0:max_defined_quantities))
+
+call add_entry('O3', 47.9982, 'QTY_O3')
+call add_entry('O', 15.9994, 'QTY_O')
+call add_entry('O1D', 15.9994, 'QTY_O1D')
+
+!%! 'N2O ', 44.01288, 'QTY_N2O ', &
+!%! 'NO ', 30.00614, 'QTY_NO ', &
+!%! 'NO2 ', 46.00554, 'QTY_NO2 ', &
+!%! 'NO3 ', 62.00494, 'QTY_NO3 ', &
+!%! 'HNO3 ', 63.01234, 'QTY_HNO3 ', &
+!%! 'HO2NO2 ', 79.01174, 'QTY_HO2NO2 ', &
+!%! 'N2O5 ', 108.01048, 'QTY_N2O5 ', &
+!%! 'H2 ', 2.0148, 'QTY_H2 ', &
+!%! 'OH ', 17.0068, 'QTY_OH ', &
+!%! 'HO2 ', 33.0062, 'QTY_HO2 ', &
+!%! 'H2O2 ', 34.0136, 'QTY_H2O2 ', &
+!%! 'CH4 ', 16.0406, 'QTY_CH4 ', &
+!%! 'CO ', 28.0104, 'QTY_CO ', &
+!%! 'CH3O2 ', 47.032, 'QTY_CH3O2 ', &
+!%! 'CH3OOH ', 48.0394, 'QTY_CH3OOH ', &
+!%! 'CH2O ', 30.0252, 'QTY_CH2O ', &
+!%! 'CH3OH ', 32.04, 'QTY_CH3OH ', &
+!%! 'C2H5OH ', 46.0658, 'QTY_C2H5OH ', &
+!%! 'C2H4 ', 28.0516, 'QTY_C2H4 ', &
+!%! 'EO ', 61.0578, 'QTY_EO ', &
+!%! 'EO2 ', 77.0572, 'QTY_EO2 ', &
+!%! 'CH3COOH ', 60.0504, 'QTY_CH3COOH ', &
+!%! 'GLYALD ', 60.0504, 'QTY_GLYALD ', &
+!%! 'C2H6 ', 30.0664, 'QTY_C2H6 ', &
+!%! 'C2H5O2 ', 61.0578, 'QTY_C2H5O2 ', &
+!%! 'C2H5OOH ', 62.0652, 'QTY_C2H5OOH ', &
+!%! 'CH3CHO ', 44.051, 'QTY_CH3CHO ', &
+!%! 'CH3CO3 ', 75.0424, 'QTY_CH3CO3 ', &
+!%! 'CH3COOOH ', 76.0498, 'QTY_CH3COOOH ', &
+!%! 'C3H6 ', 42.0774, 'QTY_C3H6 ', &
+!%! 'C3H8 ', 44.0922, 'QTY_C3H8 ', &
+!%! 'C3H7O2 ', 75.0836, 'QTY_C3H7O2 ', &
+!%! 'C3H7OOH ', 76.091, 'QTY_C3H7OOH ', &
+!%! 'PO2 ', 91.083, 'QTY_PO2 ', &
+!%! 'POOH ', 92.0904, 'QTY_POOH ', &
+!%! 'CH3COCH3 ', 58.0768, 'QTY_CH3COCH3 ', &
+!%! 'RO2 ', 89.0682, 'QTY_RO2 ', &
+!%! 'ROOH ', 90.0756, 'QTY_ROOH ', &
+!%! 'BIGENE ', 56.1032, 'QTY_BIGENE ', &
More information about the Dart-dev
mailing list