[Dart-dev] DART/branches Revision: 11566

dart at ucar.edu dart at ucar.edu
Mon May 1 15:16:20 MDT 2017


hendric at ucar.edu
2017-05-01 15:16:19 -0600 (Mon, 01 May 2017)
46
using default nc_write_model_vars for bgrid.




Modified: DART/branches/model_mod_changes/models/bgrid_solo/model_mod.f90
===================================================================
--- DART/branches/model_mod_changes/models/bgrid_solo/model_mod.f90	2017-05-01 20:31:49 UTC (rev 11565)
+++ DART/branches/model_mod_changes/models/bgrid_solo/model_mod.f90	2017-05-01 21:16:19 UTC (rev 11566)
@@ -89,7 +89,7 @@
                                  get_dart_vector_index, get_index_start, get_index_end
 
 use default_model_mod,     only : get_close_obs, get_close_state, convert_vertical_obs, &
-                                  convert_vertical_state 
+                                  convert_vertical_state, nc_write_model_vars  
 
 use dart_time_io_mod,      only : read_model_time, write_model_time
 
@@ -1630,151 +1630,6 @@
 end subroutine nc_write_model_atts
 
 
-
-subroutine nc_write_model_vars( ncFileID, statevec, memberindex, timeindex ) 
-!-----------------------------------------------------------------------------------------
-!                                                                                
-! There are two different (staggered) 3D grids being used simultaneously here. 
-! The routines "prog_var_to_vector" and "vector_to_prog_var", 
-! packs the prognostic variables into
-! the requisite array for the data assimilation routines. That routine
-! is the basis for the information stored in the netCDF files.
-!
-! TemperatureGrid : surface pressure  vars%ps(tis:tie, tjs:tje) 
-!                 : temperature       vars%t (tis:tie, tjs:tje, klb:kup)
-!                 : tracers           vars%r (tis:tie, tjs:tje, klb:kub, 1:vars%ntrace)
-! VelocityGrid    : u                 vars%u (vis:vie, vjs:vje, klb:kub) 
-!                 : v                 vars%v (vis:vie, vjs:tje, klb:kup)
-!
-! So there are six different dimensions and five different variables as long as
-! simply lump "tracers" into one. 
-
-use typeSizes
-use netcdf
-
-integer,                intent(in) :: ncFileID      ! netCDF file identifier
-real(r8), dimension(:), intent(in) :: statevec
-integer,                intent(in) :: memberindex
-integer,                intent(in) :: timeindex
-
-!-------------------------------------------------------------------------------
-real(r8), dimension(SIZE(statevec)) :: x
-
-integer :: nDimensions, nVariables, nAttributes, unlimitedDimID
-integer :: StateVarID, psVarID, tVarID, rVarID, uVarID, vVarID
-integer :: tis, tie, tjs, tje       ! temperature grid start/stop
-integer :: vis, vie, vjs, vje       ! velocity    grid start/stop
-integer :: kub, klb
-integer :: nTmpI, nTmpJ, nVelI, nVelJ, nlev, ntracer
-
-if ( .not. module_initialized ) call static_init_model
-
-!-------------------------------------------------------------------------------
-! Get the bounds for storage on Temp and Velocity grids
-! ?JEFF why can't I use the components of the prog_var_type?  
-! More precisely, why doesn't prog_var_type drag around the necessary
-! indices instead of just the extents?
-!-------------------------------------------------------------------------------
-
-tis = Dynam%Hgrid%Tmp%is; tie = Dynam%Hgrid%Tmp%ie
-tjs = Dynam%Hgrid%Tmp%js; tje = Dynam%Hgrid%Tmp%je
-vis = Dynam%Hgrid%Vel%is; vie = Dynam%Hgrid%Vel%ie
-vjs = Dynam%Hgrid%Vel%js; vje = Dynam%Hgrid%Vel%je
-kub = Var_dt%kub
-klb = Var_dt%klb
-
-nTmpI   = tie - tis + 1
-nTmpJ   = tje - tjs + 1
-nlev    = Var_dt%kub - Var_dt%klb + 1
-ntracer = Var_dt%ntrace 
-nVelI   = vie - vis + 1
-nVelJ   = vje - vjs + 1
-
-!-------------------------------------------------------------------------------
-! make sure ncFileID refers to an open netCDF file, 
-! then get all the Variable ID's we need.
-!-------------------------------------------------------------------------------
-
-call check(nf90_Inquire(ncFileID, nDimensions, nVariables, nAttributes, unlimitedDimID), &
-        "inquire")
-
-!----------------------------------------------------------------------------
-! Fill the variables
-! TemperatureGrid : surface pressure  Var%ps(tis:tie, tjs:tje) 
-!                 : temperature       Var%t (tis:tie, tjs:tje, klb:kub)
-!                 : tracers           Var%r (tis:tie, tjs:tje, klb:kub, 1:vars%ntrace)
-! VelocityGrid    : u                 Var%u (vis:vie, vjs:vje, klb:kub) 
-!                 : v                 Var%v (vis:vie, vjs:vje, klb:kub)
-!----------------------------------------------------------------------------
-
-x = statevec ! Unfortunately, have to explicity cast it ...
-             ! the filter uses a type=double,
-             ! the vector_to_prog_var function expects a single.
-call vector_to_prog_var(x, get_model_size(), global_Var)
-
-
-call check(NF90_inq_varid(ncFileID, "ps", psVarID), "ps inq_varid")


More information about the Dart-dev mailing list