[Dart-dev] DART/branches Revision: 12356

dart at ucar.edu dart at ucar.edu
Thu Jan 18 09:22:05 MST 2018


nancy at ucar.edu
2018-01-18 09:22:04 -0700 (Thu, 18 Jan 2018)
42
added feedback from the waccm-x meeting.




Modified: DART/branches/recam/models/cam-fv/model_mod.f90
===================================================================
--- DART/branches/recam/models/cam-fv/model_mod.f90	2018-01-18 00:25:07 UTC (rev 12355)
+++ DART/branches/recam/models/cam-fv/model_mod.f90	2018-01-18 16:22:04 UTC (rev 12356)
@@ -8,6 +8,25 @@
 !> this is the interface between the cam-fv atmosphere model and dart.
 !> the required public interfaces and arguments cannot be changed.
 !>
+!>@todo FIXME: feedback from WACCM-X meeting
+!>  they need to build a special factor for the height conversion
+!>  it's multiplied by G, so the code in build_heights() has to
+!>  change slightly - they aren't passing in a different R array.
+!>
+!>  test if the constants can be used from types_mod.f90 instead of
+!>  having gravity and r redefined here.
+!>
+!>  not sure about generic height table for rejecting high obs - but
+!>  it's not clear model_interpolate should be rejecting high obs
+!>  at all. suggestions are we cull them from the input obs_seq before
+!>  the run.  in that case we can take it out!
+!>
+!>  going to try to move the oxygen ion density code to a forward
+!>  operator in an obs_def_xxx_mod.f90.
+!>
+!>  test with identity obs to make sure get_close_xx() doesn't need
+!>  special code to handle them.
+!>
 !----------------------------------------------------------------
 
 module model_mod
@@ -1137,11 +1156,8 @@
 select case (obs_qty)
    case (QTY_SURFACE_ELEVATION, &
          QTY_PRESSURE, &
-         QTY_SPECIFIC_HUMIDITY, &
-         QTY_GEOPOTENTIAL_HEIGHT,  &
-         QTY_PRECIPITABLE_WATER, &
          QTY_GEOMETRIC_HEIGHT, &
-         QTY_VERTLEVEL)
+         QTY_VERTLEVEL)    ! add QTY_OXYGEN_ION_DENSITY here for waccm-x
       my_status = 0
    case default
       my_status = 2
@@ -2660,7 +2676,7 @@
 real(r8), intent(in),  optional :: variable_r(nlevels)      ! Dry air gas constant, if varies, top to bottom
 
 ! Local variables
-!>@todo have a model constants module?
+!>@todo FIXME can we use the types_mod values here?  or have a model constants module?
 real(r8), parameter :: const_r = 287.04_r8    ! Different than model_heights (dry air gas constant)
 real(r8), parameter :: g0 = 9.80616_r8        ! Different than model_heights (gph2gmh:G) !
 
@@ -2675,9 +2691,9 @@
 ! models like waccm change the gas constant with height.
 ! allow for the calling code to pass in an array of r.
 if (present(variable_r)) then
-   r_g0_tv(:) = variable_r(:) / g0 * virtual_temp(:)
+   r_g0_tv(:) = (variable_r(:) / g0) * virtual_temp(:)
 else
-   r_g0_tv(:) = const_r       / g0 * virtual_temp(:)
+   r_g0_tv(:) = (const_r       / g0) * virtual_temp(:)
 endif
 
 ! calculate the log of the pressure column midpoints.


More information about the Dart-dev mailing list