[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