[Dart-dev] DART/branches Revision: 12092
dart at ucar.edu
dart at ucar.edu
Fri Nov 10 14:38:28 MST 2017
thoar at ucar.edu
2017-11-10 14:38:25 -0700 (Fri, 10 Nov 2017)
343
Script to create the ensemble is more robust.
The altimeter_mod and navdas_mod clearly document that they both have
get_expected_altimeter() routines that differ only in the units of the result.
Added a couple get/set routines to aid in the future effort to prune out unused
coordinate variables from the nc_write_prognostic_atts() routine.
Modified: DART/branches/coamps/models/coamps_nest/coamps_netcdf_mod.f90
===================================================================
--- DART/branches/coamps/models/coamps_nest/coamps_netcdf_mod.f90 2017-11-10 20:46:02 UTC (rev 12091)
+++ DART/branches/coamps/models/coamps_nest/coamps_netcdf_mod.f90 2017-11-10 21:38:25 UTC (rev 12092)
@@ -101,6 +101,7 @@
type :: coordinate_var
private
+ character(len=NF90_MAX_NAME) :: name
integer :: dim_id
integer :: var_id
integer :: nest_number
@@ -268,7 +269,7 @@
call error_handler(E_ERR, routine, msgstring, source, revision, revdate)
end select
-end do output_vars
+enddo output_vars
end subroutine nc_write_prognostic_data
@@ -453,7 +454,7 @@
'Staggered Y Grid Points', '', cv_stagger = 0.5_r8, cv_dir = YDIR_COORD, &
cv_nest = n)
- end do define_coord_vars
+ enddo define_coord_vars
coords(ncoord_total-1) = &
new_coordinate_var(ncFileID, 'sigw', nz+1, nf90_double, &
@@ -505,16 +506,18 @@
call nc_check(nf90_enddef(ncFileID), routine//': nf_enddef')
fill_coords: do ii=1,ncoord_total-2
- call nc_check(nf90_put_var(ncFileID, get_var_id(coords(ii)), &
+ write(msgstring,*) 'nf90_put_var ',ii,get_coord_var_id(coords(ii)), \
+ trim(get_coord_var_name(coords(ii)))
+ call nc_check(nf90_put_var(ncFileID, get_coord_var_id(coords(ii)), &
(/ (real(jj-1,kind=r8)+get_coord_stagger(coords(ii)), &
- jj=1,get_dim_length(coords(ii))) /) ), routine)
- end do fill_coords
+ jj=1,get_dim_length(coords(ii))) /) ), routine, msgstring)
+ enddo fill_coords
- call nc_check(nf90_put_var(ncFileID, get_var_id(coords(ncoord_total)), &
- get_domain_msigma(domain)), routine//': put_var msigma')
+ call nc_check(nf90_put_var(ncFileID, get_coord_var_id(coords(ncoord_total)), &
+ get_domain_msigma(domain)), routine, 'put_var msigma')
- call nc_check(nf90_put_var(ncFileID, get_var_id(coords(ncoord_total-1)), &
- get_domain_wsigma(domain)), routine//': put_var wsigma')
+ call nc_check(nf90_put_var(ncFileID, get_coord_var_id(coords(ncoord_total-1)), &
+ get_domain_wsigma(domain)), routine, 'put_var wsigma')
! ------------------------------------------------------------------
! Define and fill the lat/lon grid at mass and momentum points
@@ -543,7 +546,7 @@
latlon_coord(LON_DIM) = coords(ncoord + X_COORD_INDEX)
call fill_nc_latlon(ncFileID, domain, n, varidV, latlon_coord)
- end do fill_latlon
+ enddo fill_latlon
deallocate(coords, stat=dealloc_status)
call check_dealloc_status(dealloc_status, routine, source, revision, &
@@ -671,10 +674,9 @@
integer, optional, intent(in) :: cv_nest
type(coordinate_var) :: new_coordinate_var
-
call set_dim_id(new_coordinate_var, new_dimension(ncFileID, cv_name, cv_length))
-
call set_dim_length(new_coordinate_var, cv_length)
+ call set_dim_name( new_coordinate_var, cv_name)
if (present(cv_range)) then
call set_var_id(new_coordinate_var, &
@@ -773,8 +775,8 @@
(real(ii,kind=r8) + lon_stagger), &
(real(jj,kind=r8) + lat_stagger)), &
lat = lat(ii,jj), lon = lon(ii,jj) )
- end do
- end do
+ enddo
+ enddo
call nc_check(nf90_put_var(ncFileID, latlon_varid(LON_DIM), lon), routine)
call nc_check(nf90_put_var(ncFileID, latlon_varid(LAT_DIM), lat), routine)
@@ -845,12 +847,12 @@
lon_location(ii) = loc3d(1)
lat_location(ii) = loc3d(2)
vert_location(ii) = loc3d(3)
- end do
+ enddo
- call populate_variable(ncFileID, get_var_id(state_coord), (/(ii,ii=1,size(locations))/) )
- call populate_variable(ncFileID, get_var_id(lon_coord), lon_location)
- call populate_variable(ncFileID, get_var_id(lat_coord), lat_location)
- call populate_variable(ncFileID, get_var_id(vert_coord), vert_location)
+ call populate_variable(ncFileID, get_coord_var_id(state_coord), (/(ii,ii=1,size(locations))/) )
+ call populate_variable(ncFileID, get_coord_var_id(lon_coord), lon_location)
More information about the Dart-dev
mailing list