[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