[Dart-dev] [3951] DART/trunk/models/POP/model_mod.f90: netcdf output of ULAT, ULON, TLAT , TLON coordinate matrices
nancy at ucar.edu
nancy at ucar.edu
Fri Jun 26 16:27:27 MDT 2009
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/dart-dev/attachments/20090626/e5d4d1d2/attachment-0001.html
-------------- next part --------------
Modified: DART/trunk/models/POP/model_mod.f90
===================================================================
--- DART/trunk/models/POP/model_mod.f90 2009-06-26 22:11:14 UTC (rev 3950)
+++ DART/trunk/models/POP/model_mod.f90 2009-06-26 22:27:27 UTC (rev 3951)
@@ -282,7 +282,7 @@
call read_vert_grid(Nz, ZC, ZG)
call read_kmt(Nx, Ny, KMT, KMU)
-call write_grid_netcdf(XG, XC, YG, YC, ZG, ZC, KMT) ! DEBUG only
+call write_grid_netcdf() ! DEBUG only
!---------------------------------------------------------------
! set the time step from the namelist for now.
@@ -1059,8 +1059,8 @@
!----------------------------------------------------------------------
! for the dimensions and coordinate variables
-integer :: XGDimID, XCDimID, YGDimID, YCDimID, ZGDimID, ZCDimID
-integer :: XGVarID, XCVarID, YGVarID, YCVarID, ZGVarID, ZCVarID
+integer :: NlonDimID, NlatDimID, NzDimID
+integer :: ulonVarID, ulatVarID, tlonVarID, tlatVarID, ZGVarID, ZCVarID
! for the prognostic variables
integer :: SVarID, TVarID, UVarID, VVarID, SHGTVarID
@@ -1152,7 +1152,7 @@
"nc_write_model_atts", "revision put "//trim(filename))
call nc_check(nf90_put_att(ncFileID, NF90_GLOBAL, "model_revdate" ,revdate ), &
"nc_write_model_atts", "revdate put "//trim(filename))
-call nc_check(nf90_put_att(ncFileID, NF90_GLOBAL, "model", "MITgcm_ocean" ), &
+call nc_check(nf90_put_att(ncFileID, NF90_GLOBAL, "model", "POP" ), &
"nc_write_model_atts", "model put "//trim(filename))
!-------------------------------------------------------------------------------
@@ -1220,18 +1220,12 @@
! Define the new dimensions IDs
!----------------------------------------------------------------------------
- call nc_check(nf90_def_dim(ncid=ncFileID, name="XG", &
- len = Nx, dimid = XGDimID),"nc_write_model_atts", "XG def_dim "//trim(filename))
- call nc_check(nf90_def_dim(ncid=ncFileID, name="XC", &
- len = Nx, dimid = XCDimID),"nc_write_model_atts", "XC def_dim "//trim(filename))
- call nc_check(nf90_def_dim(ncid=ncFileID, name="YG", &
- len = Ny, dimid = YGDimID),"nc_write_model_atts", "YG def_dim "//trim(filename))
- call nc_check(nf90_def_dim(ncid=ncFileID, name="YC", &
- len = Ny, dimid = YCDimID),"nc_write_model_atts", "YC def_dim "//trim(filename))
- call nc_check(nf90_def_dim(ncid=ncFileID, name="ZG", &
- len = Nz, dimid = ZGDimID),"nc_write_model_atts", "ZG def_dim "//trim(filename))
- call nc_check(nf90_def_dim(ncid=ncFileID, name="ZC", &
- len = Nz, dimid = ZCDimID),"nc_write_model_atts", "ZC def_dim "//trim(filename))
+ call nc_check(nf90_def_dim(ncid=ncFileID, name="i", &
+ len = Nx, dimid = NlonDimID),"nc_write_model_atts", "i def_dim "//trim(filename))
+ call nc_check(nf90_def_dim(ncid=ncFileID, name="j", &
+ len = Ny, dimid = NlatDimID),"nc_write_model_atts", "j def_dim "//trim(filename))
+ call nc_check(nf90_def_dim(ncid=ncFileID, name="k", &
+ len = Nz, dimid = NzDimID),"nc_write_model_atts", "k def_dim "//trim(filename))
!----------------------------------------------------------------------------
! Create the (empty) Coordinate Variables and the Attributes
@@ -1244,55 +1238,61 @@
"namelist.input contents"), 'nc_write_model_atts', 'put_att POPnml')
! U,V Grid Longitudes
- call nc_check(nf90_def_var(ncFileID,name="XG",xtype=nf90_real,dimids=XGDimID,varid=XGVarID),&
- "nc_write_model_atts", "XG def_var "//trim(filename))
- call nc_check(nf90_put_att(ncFileID, XGVarID, "long_name", "longitude grid edges"), &
- "nc_write_model_atts", "XG long_name "//trim(filename))
- call nc_check(nf90_put_att(ncFileID, XGVarID, "cartesian_axis", "X"), &
- "nc_write_model_atts", "XG cartesian_axis "//trim(filename))
- call nc_check(nf90_put_att(ncFileID, XGVarID, "units", "degrees_east"), &
- "nc_write_model_atts", "XG units "//trim(filename))
- call nc_check(nf90_put_att(ncFileID, XGVarID, "valid_range", (/ 0.0_r8, 360.0_r8 /)), &
- "nc_write_model_atts", "XG valid_range "//trim(filename))
+ call nc_check(nf90_def_var(ncFileID,name="ULON", xtype=nf90_real, &
+ dimids=(/ NlonDimID, NlatDimID /), varid=ulonVarID),&
+ "nc_write_model_atts", "ULON def_var "//trim(filename))
+ call nc_check(nf90_put_att(ncFileID, ulonVarID, "long_name", "longitudes of U,V grid"), &
+ "nc_write_model_atts", "ULON long_name "//trim(filename))
+ call nc_check(nf90_put_att(ncFileID, ulonVarID, "cartesian_axis", "X"), &
+ "nc_write_model_atts", "ULON cartesian_axis "//trim(filename))
+ call nc_check(nf90_put_att(ncFileID, ulonVarID, "units", "degrees_east"), &
+ "nc_write_model_atts", "ULON units "//trim(filename))
+ call nc_check(nf90_put_att(ncFileID, ulonVarID, "valid_range", (/ 0.0_r8, 360.0_r8 /)), &
+ "nc_write_model_atts", "ULON valid_range "//trim(filename))
- ! S,T,SHGT Grid (center) Longitudes
- call nc_check(nf90_def_var(ncFileID,name="XC",xtype=nf90_real,dimids=XCDimID,varid=XCVarID),&
- "nc_write_model_atts", "XC def_var "//trim(filename))
- call nc_check(nf90_put_att(ncFileID, XCVarID, "long_name", "longitude grid centroids"), &
- "nc_write_model_atts", "XC long_name "//trim(filename))
- call nc_check(nf90_put_att(ncFileID, XCVarID, "cartesian_axis", "X"), &
- "nc_write_model_atts", "XC cartesian_axis "//trim(filename))
- call nc_check(nf90_put_att(ncFileID, XCVarID, "units", "degrees_east"), &
- "nc_write_model_atts", "XC units "//trim(filename))
- call nc_check(nf90_put_att(ncFileID, XCVarID, "valid_range", (/ 0.0_r8, 360.0_r8 /)), &
- "nc_write_model_atts", "XC valid_range "//trim(filename))
-
! U,V Grid Latitudes
- call nc_check(nf90_def_var(ncFileID,name="YG",xtype=nf90_real,dimids=YGDimID,varid=YGVarID),&
- "nc_write_model_atts", "YG def_var "//trim(filename))
- call nc_check(nf90_put_att(ncFileID, YGVarID, "long_name", "latitude grid edges"), &
- "nc_write_model_atts", "YG long_name "//trim(filename))
- call nc_check(nf90_put_att(ncFileID, YGVarID, "cartesian_axis", "Y"), &
- "nc_write_model_atts", "YG cartesian_axis "//trim(filename))
- call nc_check(nf90_put_att(ncFileID, YGVarID, "units", "degrees_north"), &
- "nc_write_model_atts", "YG units "//trim(filename))
- call nc_check(nf90_put_att(ncFileID,YGVarID,"valid_range",(/-90.0_r8,90.0_r8 /)), &
- "nc_write_model_atts", "YG valid_range "//trim(filename))
+ call nc_check(nf90_def_var(ncFileID,name="ULAT", xtype=nf90_real, &
+ dimids=(/ NlonDimID, NlatDimID /), varid=ulatVarID),&
+ "nc_write_model_atts", "ULAT def_var "//trim(filename))
+ call nc_check(nf90_put_att(ncFileID, ulatVarID, "long_name", "latitudes of U,V grid"), &
+ "nc_write_model_atts", "ULAT long_name "//trim(filename))
+ call nc_check(nf90_put_att(ncFileID, ulatVarID, "cartesian_axis", "Y"), &
+ "nc_write_model_atts", "ULAT cartesian_axis "//trim(filename))
+ call nc_check(nf90_put_att(ncFileID, ulatVarID, "units", "degrees_north"), &
+ "nc_write_model_atts", "ULAT units "//trim(filename))
+ call nc_check(nf90_put_att(ncFileID, ulatVarID,"valid_range",(/ -90.0_r8, 90.0_r8 /)), &
+ "nc_write_model_atts", "ULAT valid_range "//trim(filename))
+ ! S,T,SHGT Grid Longitudes
+ call nc_check(nf90_def_var(ncFileID,name="TLON", xtype=nf90_real, &
+ dimids=(/ NlonDimID, NlatDimID /), varid=tlonVarID),&
+ "nc_write_model_atts", "TLON def_var "//trim(filename))
+ call nc_check(nf90_put_att(ncFileID, tlonVarID, "long_name", "longitudes of S,T,... grid"), &
+ "nc_write_model_atts", "TLON long_name "//trim(filename))
+ call nc_check(nf90_put_att(ncFileID, tlonVarID, "cartesian_axis", "X"), &
+ "nc_write_model_atts", "TLON cartesian_axis "//trim(filename))
+ call nc_check(nf90_put_att(ncFileID, tlonVarID, "units", "degrees_east"), &
+ "nc_write_model_atts", "TLON units "//trim(filename))
+ call nc_check(nf90_put_att(ncFileID, tlonVarID, "valid_range", (/ 0.0_r8, 360.0_r8 /)), &
+ "nc_write_model_atts", "TLON valid_range "//trim(filename))
+
+
! S,T,SHGT Grid (center) Latitudes
- call nc_check(nf90_def_var(ncFileID,name="YC",xtype=nf90_real,dimids=YCDimID,varid=YCVarID), &
- "nc_write_model_atts", "YC def_var "//trim(filename))
- call nc_check(nf90_put_att(ncFileID, YCVarID, "long_name", "latitude grid centroids"), &
- "nc_write_model_atts", "YC long_name "//trim(filename))
- call nc_check(nf90_put_att(ncFileID, YCVarID, "cartesian_axis", "Y"), &
- "nc_write_model_atts", "YC cartesian_axis "//trim(filename))
- call nc_check(nf90_put_att(ncFileID, YCVarID, "units", "degrees_north"), &
- "nc_write_model_atts", "YC units "//trim(filename))
- call nc_check(nf90_put_att(ncFileID, YCVarID, "valid_range", (/ -90.0_r8, 90.0_r8 /)), &
- "nc_write_model_atts", "YC valid_range "//trim(filename))
+ call nc_check(nf90_def_var(ncFileID,name="TLAT", xtype=nf90_real, &
+ dimids= (/ NlonDimID, NlatDimID /), varid=tlatVarID), &
+ "nc_write_model_atts", "TLAT def_var "//trim(filename))
+ call nc_check(nf90_put_att(ncFileID, tlatVarID, "long_name", "latitudes of S,T, ... grid"), &
+ "nc_write_model_atts", "TLAT long_name "//trim(filename))
+ call nc_check(nf90_put_att(ncFileID, tlatVarID, "cartesian_axis", "Y"), &
+ "nc_write_model_atts", "TLAT cartesian_axis "//trim(filename))
+ call nc_check(nf90_put_att(ncFileID, tlatVarID, "units", "degrees_north"), &
+ "nc_write_model_atts", "TLAT units "//trim(filename))
+ call nc_check(nf90_put_att(ncFileID, tlatVarID, "valid_range", (/ -90.0_r8, 90.0_r8 /)), &
+ "nc_write_model_atts", "TLAT valid_range "//trim(filename))
! Depths
- call nc_check(nf90_def_var(ncFileID,name="ZG",xtype=nf90_real,dimids=ZGDimID,varid=ZGVarID), &
+ call nc_check(nf90_def_var(ncFileID,name="ZG", xtype=nf90_real, &
+ dimids=NzDimID, varid= ZGVarID), &
"nc_write_model_atts", "ZG def_var "//trim(filename))
call nc_check(nf90_put_att(ncFileID, ZGVarID, "long_name", "depth at grid edges"), &
"nc_write_model_atts", "ZG long_name "//trim(filename))
@@ -1307,7 +1307,7 @@
"nc_write_model_atts", "ZG comment "//trim(filename))
! Depths
- call nc_check(nf90_def_var(ncFileID,name="ZC",xtype=nf90_real,dimids=ZCDimID,varid=ZCVarID), &
+ call nc_check(nf90_def_var(ncFileID,name="ZC",xtype=nf90_real,dimids=NzDimID,varid=ZCVarID), &
"nc_write_model_atts", "ZC def_var "//trim(filename))
call nc_check(nf90_put_att(ncFileID, ZCVarID, "long_name", "depth at grid centroids"), &
"nc_write_model_atts", "ZC long_name "//trim(filename))
@@ -1325,8 +1325,9 @@
! Create the (empty) Prognostic Variables and the Attributes
!----------------------------------------------------------------------------
+
call nc_check(nf90_def_var(ncid=ncFileID, name="SALT", xtype=nf90_real, &
- dimids = (/XCDimID,YCDimID,ZCDimID,MemberDimID,unlimitedDimID/),varid=SVarID),&
+ dimids = (/NlonDimID,NlatDimID,NzDimID,MemberDimID,unlimitedDimID/),varid=SVarID),&
"nc_write_model_atts", "S def_var "//trim(filename))
call nc_check(nf90_put_att(ncFileID, SVarID, "long_name", "salinity"), &
"nc_write_model_atts", "S long_name "//trim(filename))
@@ -1337,8 +1338,9 @@
call nc_check(nf90_put_att(ncFileID, SVarID, "_FillValue", NF90_FILL_REAL), &
"nc_write_model_atts", "S fill "//trim(filename))
+
call nc_check(nf90_def_var(ncid=ncFileID, name="TEMP", xtype=nf90_real, &
- dimids=(/XCDimID,YCDimID,ZCDimID,MemberDimID,unlimitedDimID/),varid=TVarID),&
+ dimids=(/NlonDimID,NlatDimID,NzDimID,MemberDimID,unlimitedDimID/),varid=TVarID),&
"nc_write_model_atts", "T def_var "//trim(filename))
call nc_check(nf90_put_att(ncFileID, TVarID, "long_name", "Potential Temperature"), &
"nc_write_model_atts", "T long_name "//trim(filename))
@@ -1351,8 +1353,9 @@
call nc_check(nf90_put_att(ncFileID, TVarID, "_FillValue", NF90_FILL_REAL), &
"nc_write_model_atts", "T fill "//trim(filename))
+
call nc_check(nf90_def_var(ncid=ncFileID, name="UVEL", xtype=nf90_real, &
- dimids=(/XGDimID,YGDimID,ZGDimID,MemberDimID,unlimitedDimID/),varid=UVarID),&
+ dimids=(/NlonDimID,NlatDimID,NzDimID,MemberDimID,unlimitedDimID/),varid=UVarID),&
"nc_write_model_atts", "U def_var "//trim(filename))
call nc_check(nf90_put_att(ncFileID, UVarID, "long_name", "U velocity"), &
"nc_write_model_atts", "U long_name "//trim(filename))
@@ -1365,8 +1368,9 @@
call nc_check(nf90_put_att(ncFileID, UVarID, "_FillValue", NF90_FILL_REAL), &
"nc_write_model_atts", "U fill "//trim(filename))
+
call nc_check(nf90_def_var(ncid=ncFileID, name="VVEL", xtype=nf90_real, &
- dimids=(/XGDimID,YGDimID,ZGDimID,MemberDimID,unlimitedDimID/),varid=VVarID),&
+ dimids=(/NlonDimID,NlatDimID,NzDimID,MemberDimID,unlimitedDimID/),varid=VVarID),&
"nc_write_model_atts", "V def_var "//trim(filename))
call nc_check(nf90_put_att(ncFileID, VVarID, "long_name", "V Velocity"), &
"nc_write_model_atts", "V long_name "//trim(filename))
@@ -1379,8 +1383,9 @@
call nc_check(nf90_put_att(ncFileID, VVarID, "_FillValue", NF90_FILL_REAL), &
"nc_write_model_atts", "V fill "//trim(filename))
+
call nc_check(nf90_def_var(ncid=ncFileID, name="SHGT", xtype=nf90_real, &
- dimids=(/XCDimID,YCDimID,MemberDimID,unlimitedDimID/),varid=SHGTVarID), &
+ dimids=(/NlonDimID,NlatDimID,MemberDimID,unlimitedDimID/),varid=SHGTVarID), &
"nc_write_model_atts", "SHGT def_var "//trim(filename))
call nc_check(nf90_put_att(ncFileID, SHGTVarID, "long_name", "Sea surface height"), &
"nc_write_model_atts", "SHGT long_name "//trim(filename))
@@ -1399,14 +1404,14 @@
! Fill the coordinate variables
!----------------------------------------------------------------------------
- call nc_check(nf90_put_var(ncFileID, XGVarID, XG ), &
- "nc_write_model_atts", "XG put_var "//trim(filename))
- call nc_check(nf90_put_var(ncFileID, XCVarID, XC ), &
- "nc_write_model_atts", "XC put_var "//trim(filename))
- call nc_check(nf90_put_var(ncFileID, YGVarID, YG ), &
- "nc_write_model_atts", "YG put_var "//trim(filename))
- call nc_check(nf90_put_var(ncFileID, YCVarID, YC ), &
- "nc_write_model_atts", "YC put_var "//trim(filename))
+ call nc_check(nf90_put_var(ncFileID, ulonVarID, ULON ), &
+ "nc_write_model_atts", "ULON put_var "//trim(filename))
+ call nc_check(nf90_put_var(ncFileID, ulatVarID, ULAT ), &
+ "nc_write_model_atts", "ULAT put_var "//trim(filename))
+ call nc_check(nf90_put_var(ncFileID, tlonVarID, TLON ), &
+ "nc_write_model_atts", "TLON put_var "//trim(filename))
+ call nc_check(nf90_put_var(ncFileID, tlatVarID, TLAT ), &
+ "nc_write_model_atts", "TLAT put_var "//trim(filename))
call nc_check(nf90_put_var(ncFileID, ZGVarID, ZG ), &
"nc_write_model_atts", "ZG put_var "//trim(filename))
call nc_check(nf90_put_var(ncFileID, ZCVarID, ZC ), &
@@ -2368,65 +2373,80 @@
return
endif
- end function
+end function
+
function is_on_ugrid(obs_type)
!------------------------------------------------------------------
! returns true if U, V -- everything else is on T grid
integer, intent(in) :: obs_type
logical :: is_on_ugrid
- is_on_ugrid = .FALSE.
+is_on_ugrid = .FALSE.
- if ((obs_type == KIND_U_CURRENT_COMPONENT) .or. &
- (obs_type == KIND_V_CURRENT_COMPONENT)) is_on_ugrid = .TRUE.
+if ((obs_type == KIND_U_CURRENT_COMPONENT) .or. &
+ (obs_type == KIND_V_CURRENT_COMPONENT)) is_on_ugrid = .TRUE.
- end function
+end function
- subroutine write_grid_netcdf(XG, XC, YG, YC, ZG, ZC, KMT)
+ subroutine write_grid_netcdf()
!------------------------------------------------------------------
!
! Write the grid to a netcdf file for checking.
- real(r8), intent(in) :: XC(:), XG(:)
- real(r8), intent(in) :: YC(:), YG(:)
- real(r8), intent(in) :: ZC(:), ZG(:)
- integer, intent(in) :: KMT(:,:)
+ integer :: ncid, NlonDimID, NlatDimID, NzDimID
+ integer :: nlon, nlat, nz
+ integer :: ulatVarID, ulonVarID, TLATvarid, TLONvarid, ZGvarid, ZCvarid, KMTvarid
- integer :: ncid, idimid, jdimid, kdimid
- integer :: i, j, k
- integer :: XGvarid, XCvarid, YGvarid, YCvarid, ZGvarid, ZCvarid, KMTvarid
+ integer :: dimids(2);
- i = size(XG)
- j = size(YG)
- k = size(ZG)
-
+ nlon = size(ULAT,1)
+ nlat = size(ULAT,2)
+ nz = size(ZG)
+
call nc_check(nf90_create('dart_grid.nc', NF90_CLOBBER, ncid),'write_grid_netcdf')
- call nc_check(nf90_def_dim(ncid, 'i', i, idimid),'write_grid_netcdf')
- call nc_check(nf90_def_dim(ncid, 'j', j, jdimid),'write_grid_netcdf')
- call nc_check(nf90_def_dim(ncid, 'k', k, kdimid),'write_grid_netcdf')
+ ! define dimensions
- call nc_check(nf90_def_var(ncid, 'XG', nf90_double, idimid, XGvarid),'write_grid_netcdf')
- call nc_check(nf90_def_var(ncid, 'XC', nf90_double, idimid, XCvarid),'write_grid_netcdf')
- call nc_check(nf90_def_var(ncid, 'YG', nf90_double, jdimid, YGvarid),'write_grid_netcdf')
- call nc_check(nf90_def_var(ncid, 'YC', nf90_double, jdimid, YCvarid),'write_grid_netcdf')
- call nc_check(nf90_def_var(ncid, 'ZG', nf90_double, kdimid, ZGvarid),'write_grid_netcdf')
- call nc_check(nf90_def_var(ncid, 'ZC', nf90_double, kdimid, ZCvarid),'write_grid_netcdf')
- call nc_check(nf90_def_var(ncid, 'KMT', nf90_int, &
- (/ idimid, jdimid /), KMTvarid),'write_grid_netcdf')
+ call nc_check(nf90_def_dim(ncid, 'i', nlon, NlonDimID),'write_grid_netcdf')
+ call nc_check(nf90_def_dim(ncid, 'j', nlat, NlatDimID),'write_grid_netcdf')
+ call nc_check(nf90_def_dim(ncid, 'k', nz, NzDimID),'write_grid_netcdf')
+ dimids(1) = NlonDimID
+ dimids(2) = NlatDimID
+
+ ! define variables
+
+ call nc_check(nf90_def_var(ncid, 'KMT', nf90_int, dimids, KMTvarid),'write_grid_netcdf')
+ call nc_check(nf90_def_var(ncid, 'ULON', nf90_double, dimids, ulonVarID),'write_grid_netcdf')
+ call nc_check(nf90_def_var(ncid, 'ULAT', nf90_double, dimids, ulatVarID),'write_grid_netcdf')
+ call nc_check(nf90_def_var(ncid, 'TLON', nf90_double, dimids, TLONvarid),'write_grid_netcdf')
+ call nc_check(nf90_def_var(ncid, 'TLAT', nf90_double, dimids, TLATvarid),'write_grid_netcdf')
+ call nc_check(nf90_def_var(ncid, 'ZG', nf90_double, NzDimID, ZGvarid),'write_grid_netcdf')
+ call nc_check(nf90_def_var(ncid, 'ZC', nf90_double, NzDimID, ZCvarid),'write_grid_netcdf')
+
+ call nc_check(nf90_put_att(ncid,ulonVarID,"long_name","U,V grid lons"), &
+ 'write_grid_netcdf')
+ call nc_check(nf90_put_att(ncid,ulatVarID,"long_name","U,V grid lats"), &
+ 'write_grid_netcdf')
+ call nc_check(nf90_put_att(ncid,tlonVarID,"long_name","S,T grid lons"), &
+ 'write_grid_netcdf')
+ call nc_check(nf90_put_att(ncid,tlatVarID,"long_name","S,T grid lats"), &
+ 'write_grid_netcdf')
+
call nc_check(nf90_enddef(ncid),'write_grid_netcdf')
- call nc_check(nf90_put_var(ncid, XGvarid, XG),'write_grid_netcdf')
- call nc_check(nf90_put_var(ncid, XCvarid, XC),'write_grid_netcdf')
- call nc_check(nf90_put_var(ncid, YGvarid, YG),'write_grid_netcdf')
- call nc_check(nf90_put_var(ncid, YCvarid, YC),'write_grid_netcdf')
- call nc_check(nf90_put_var(ncid, ZGvarid, ZG),'write_grid_netcdf')
- call nc_check(nf90_put_var(ncid, ZCvarid, ZC),'write_grid_netcdf')
- call nc_check(nf90_put_var(ncid, KMTvarid, KMT),'write_grid_netcdf')
+ ! fill variables
+ call nc_check(nf90_put_var(ncid, KMTvarid, KMT),'write_grid_netcdf')
+ call nc_check(nf90_put_var(ncid, ulatVarID, ULAT),'write_grid_netcdf')
+ call nc_check(nf90_put_var(ncid, ulonVarID, ULON),'write_grid_netcdf')
+ call nc_check(nf90_put_var(ncid, TLATvarid, TLAT),'write_grid_netcdf')
+ call nc_check(nf90_put_var(ncid, TLONvarid, TLON),'write_grid_netcdf')
+ call nc_check(nf90_put_var(ncid, ZGvarid, ZG),'write_grid_netcdf')
+ call nc_check(nf90_put_var(ncid, ZCvarid, ZC),'write_grid_netcdf')
+
call nc_check(nf90_close(ncid),'write_grid_netcdf')
end subroutine write_grid_netcdf
More information about the Dart-dev
mailing list