[Dart-dev] [3671] DART/trunk/models/wrf/model_mod.f90: Using the utilities_mod: nc_check() routine to provide

nancy at ucar.edu nancy at ucar.edu
Tue Nov 25 13:58:05 MST 2008


An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/dart-dev/attachments/20081125/61abaed6/attachment-0001.html
-------------- next part --------------
Modified: DART/trunk/models/wrf/model_mod.f90
===================================================================
--- DART/trunk/models/wrf/model_mod.f90	2008-11-25 18:30:27 UTC (rev 3670)
+++ DART/trunk/models/wrf/model_mod.f90	2008-11-25 20:58:05 UTC (rev 3671)
@@ -38,7 +38,7 @@
 
 use     utilities_mod, only : file_exist, open_file, close_file, &
                               register_module, error_handler, E_ERR, E_WARN, &
-                              E_MSG, nmlfileunit, do_output, &
+                              E_MSG, nmlfileunit, do_output, nc_check, &
                               find_namelist_in_file, check_namelist_read
 
 use      obs_kind_mod, only : KIND_U_WIND_COMPONENT, KIND_V_WIND_COMPONENT, &
@@ -244,7 +244,7 @@
 integer               :: var_id, ind, i, j, k, id, dart_index, model_type
 
 integer  :: proj_code
-real(r8) :: stdlon,truelat1,truelat2,dt,latinc,loninc
+real(r8) :: stdlon,truelat1,truelat2,latinc,loninc
 character(len=129) :: errstring
 
 !----------------------------------------------------------------------
@@ -321,7 +321,8 @@
 
    if(file_exist('wrfinput_d0'//idom)) then
 
-      call check( nf90_open('wrfinput_d0'//idom, NF90_NOWRITE, ncid) )
+      call nc_check( nf90_open('wrfinput_d0'//idom, NF90_NOWRITE, ncid), &
+                     'static_init_model','open wrfinput_d0'//idom )
 
    else
 
@@ -334,26 +335,40 @@
 
 ! get wrf grid dimensions
 
-   call check( nf90_inq_dimid(ncid, "bottom_top", var_id) )
-   call check( nf90_inquire_dimension(ncid, var_id, name, wrf%dom(id)%bt) )
+   call nc_check( nf90_inq_dimid(ncid, "bottom_top", var_id), &
+                     'static_init_model','inq_dimid bottom_top')
+   call nc_check( nf90_inquire_dimension(ncid, var_id, name, wrf%dom(id)%bt), &
+                     'static_init_model','inquire_dimension '//trim(name))
 
-   call check( nf90_inq_dimid(ncid, "bottom_top_stag", var_id) ) ! reuse var_id, no harm
-   call check( nf90_inquire_dimension(ncid, var_id, name, wrf%dom(id)%bts) )
+   call nc_check( nf90_inq_dimid(ncid, "bottom_top_stag", var_id), &
+                     'static_init_model','inq_dimid bottom_top_stag') ! reuse var_id, no harm
+   call nc_check( nf90_inquire_dimension(ncid, var_id, name, wrf%dom(id)%bts), &
+                     'static_init_model','inquire_dimension '//trim(name))
 
-   call check( nf90_inq_dimid(ncid, "south_north", var_id) )
-   call check( nf90_inquire_dimension(ncid, var_id, name, wrf%dom(id)%sn) )
+   call nc_check( nf90_inq_dimid(ncid, "south_north", var_id), &
+                     'static_init_model','inq_dimid south_north')
+   call nc_check( nf90_inquire_dimension(ncid, var_id, name, wrf%dom(id)%sn), &
+                     'static_init_model','inquire_dimension '//trim(name))
 
-   call check( nf90_inq_dimid(ncid, "south_north_stag", var_id)) ! reuse var_id, no harm
-   call check( nf90_inquire_dimension(ncid, var_id, name, wrf%dom(id)%sns) )
+   call nc_check( nf90_inq_dimid(ncid, "south_north_stag", var_id), &
+                     'static_init_model','inq_dimid south_north_stag') ! reuse var_id, no harm
+   call nc_check( nf90_inquire_dimension(ncid, var_id, name, wrf%dom(id)%sns), &
+                     'static_init_model','inquire_dimension '//trim(name))
 
-   call check( nf90_inq_dimid(ncid, "west_east", var_id) )
-   call check( nf90_inquire_dimension(ncid, var_id, name, wrf%dom(id)%we) )
+   call nc_check( nf90_inq_dimid(ncid, "west_east", var_id), &
+                     'static_init_model','inq_dimid west_east')
+   call nc_check( nf90_inquire_dimension(ncid, var_id, name, wrf%dom(id)%we), &
+                     'static_init_model','inquire_dimension '//trim(name))
 
-   call check( nf90_inq_dimid(ncid, "west_east_stag", var_id) )  ! reuse var_id, no harm
-   call check( nf90_inquire_dimension(ncid, var_id, name, wrf%dom(id)%wes) )
+   call nc_check( nf90_inq_dimid(ncid, "west_east_stag", var_id), &
+                     'static_init_model','inq_dimid west_east_stag')  ! reuse var_id, no harm
+   call nc_check( nf90_inquire_dimension(ncid, var_id, name, wrf%dom(id)%wes), &
+                     'static_init_model','inquire_dimension '//trim(name))
 
-   call check( nf90_inq_dimid(ncid, "soil_layers_stag", var_id) )  ! reuse var_id, no harm
-   call check( nf90_inquire_dimension(ncid, var_id, name, wrf%dom(id)%sls) )
+   call nc_check( nf90_inq_dimid(ncid, "soil_layers_stag", var_id), &
+                     'static_init_model','inq_dimid soil_layers_stag')  ! reuse var_id, no harm
+   call nc_check( nf90_inquire_dimension(ncid, var_id, name, wrf%dom(id)%sls), &
+                     'static_init_model','inquire_dimension '//trim(name))
 
    if(debug) then
       write(*,*) ' dimensions bt, sn, we are ',wrf%dom(id)%bt, &
@@ -364,29 +379,38 @@
 
 ! get meta data and static data we need
 
-   call check( nf90_get_att(ncid, nf90_global, 'DX', wrf%dom(id)%dx) )
-   call check( nf90_get_att(ncid, nf90_global, 'DY', wrf%dom(id)%dy) )
-   call check( nf90_get_att(ncid, nf90_global, 'DT', wrf%dom(id)%dt) )
+   call nc_check( nf90_get_att(ncid, nf90_global, 'DX', wrf%dom(id)%dx), &
+                     'static_init_model', 'get_att DX')
+   call nc_check( nf90_get_att(ncid, nf90_global, 'DY', wrf%dom(id)%dy), &
+                     'static_init_model', 'get_att DY')
+   call nc_check( nf90_get_att(ncid, nf90_global, 'DT', wrf%dom(id)%dt), &
+                     'static_init_model', 'get_att DT')
    if (do_output()) print*,'dt from wrfinput file is: ', wrf%dom(id)%dt
    if(debug) write(*,*) ' dx, dy, dt are ',wrf%dom(id)%dx, &
         wrf%dom(id)%dy, wrf%dom(id)%dt
 
-   call check( nf90_get_att(ncid, nf90_global, 'MAP_PROJ', wrf%dom(id)%map_proj) )
+   call nc_check( nf90_get_att(ncid, nf90_global, 'MAP_PROJ', wrf%dom(id)%map_proj), &
+                     'static_init_model', 'get_att MAP_PROJ')
    if(debug) write(*,*) ' map_proj is ',wrf%dom(id)%map_proj
 
-   call check( nf90_get_att(ncid, nf90_global, 'CEN_LAT', wrf%dom(id)%cen_lat) )
+   call nc_check( nf90_get_att(ncid, nf90_global, 'CEN_LAT', wrf%dom(id)%cen_lat), &
+                     'static_init_model', 'get_att CEN_LAT')
    if(debug) write(*,*) ' cen_lat is ',wrf%dom(id)%cen_lat
 
-   call check( nf90_get_att(ncid, nf90_global, 'CEN_LON', wrf%dom(id)%cen_lon) )
+   call nc_check( nf90_get_att(ncid, nf90_global, 'CEN_LON', wrf%dom(id)%cen_lon), &
+                     'static_init_model', 'get_att CEN_LON')
    if(debug) write(*,*) ' cen_lon is ',wrf%dom(id)%cen_lon
 
-   call check( nf90_get_att(ncid, nf90_global, 'TRUELAT1', truelat1) )
+   call nc_check( nf90_get_att(ncid, nf90_global, 'TRUELAT1', truelat1), &
+                     'static_init_model', 'get_att TRUELAT1')
    if(debug) write(*,*) ' truelat1 is ',truelat1
 
-   call check( nf90_get_att(ncid, nf90_global, 'TRUELAT2', truelat2) )
+   call nc_check( nf90_get_att(ncid, nf90_global, 'TRUELAT2', truelat2), &
+                     'static_init_model', 'get_att TRUELAT2')
    if(debug) write(*,*) ' truelat2 is ',truelat2
 
-   call check( nf90_get_att(ncid, nf90_global, 'STAND_LON', stdlon) )
+   call nc_check( nf90_get_att(ncid, nf90_global, 'STAND_LON', stdlon), &
+                     'static_init_model', 'get_att STAND_LON')
    if(debug) write(*,*) ' stdlon is ',stdlon
 
 
@@ -422,35 +446,47 @@
    if(debug) write(*,*) ' scm   ',wrf%dom(id)%scm   
 
 
-   call check( nf90_inq_varid(ncid, "P_TOP", var_id) )
-   call check( nf90_get_var(ncid, var_id, wrf%dom(id)%p_top) )
+   call nc_check( nf90_inq_varid(ncid, "P_TOP", var_id), &
+                     'static_init_model','inq_varid P_TOP')
+   call nc_check( nf90_get_var(ncid, var_id, wrf%dom(id)%p_top), &
+                     'static_init_model','get_var P_TOP')
 
 !  get 1D (z) static data defining grid levels
 
    allocate(wrf%dom(id)%dn(1:wrf%dom(id)%bt))
-   call check( nf90_inq_varid(ncid, "DN", var_id) )
-   call check( nf90_get_var(ncid, var_id, wrf%dom(id)%dn) )
+   call nc_check( nf90_inq_varid(ncid, "DN", var_id), &
+                     'static_init_model','inq_varid DN')
+   call nc_check( nf90_get_var(ncid, var_id, wrf%dom(id)%dn), &
+                     'static_init_model','get_var DN')
    if(debug) write(*,*) ' dn ',wrf%dom(id)%dn
 
    allocate(wrf%dom(id)%znu(1:wrf%dom(id)%bt))
-   call check( nf90_inq_varid(ncid, "ZNU", var_id) )
-   call check( nf90_get_var(ncid, var_id, wrf%dom(id)%znu) )
+   call nc_check( nf90_inq_varid(ncid, "ZNU", var_id), &
+                     'static_init_model','inq_varid ZNU')
+   call nc_check( nf90_get_var(ncid, var_id, wrf%dom(id)%znu), &
+                     'static_init_model','get_var ZNU')
    if(debug) write(*,*) ' znu is ',wrf%dom(id)%znu
 
    allocate(wrf%dom(id)%dnw(1:wrf%dom(id)%bt))
-   call check( nf90_inq_varid(ncid, "DNW", var_id) )
-   call check( nf90_get_var(ncid, var_id, wrf%dom(id)%dnw) )
+   call nc_check( nf90_inq_varid(ncid, "DNW", var_id), &
+                     'static_init_model','inq_varid DNW')
+   call nc_check( nf90_get_var(ncid, var_id, wrf%dom(id)%dnw), &
+                     'static_init_model','get_var DNW')
    if(debug) write(*,*) ' dnw is ',wrf%dom(id)%dnw
 
    allocate(wrf%dom(id)%zs(1:wrf%dom(id)%sls))
-   call check( nf90_inq_varid(ncid, "ZS", var_id) )
-   call check( nf90_get_var(ncid, var_id, wrf%dom(id)%zs) )
+   call nc_check( nf90_inq_varid(ncid, "ZS", var_id), &
+                     'static_init_model','inq_varid ZS')
+   call nc_check( nf90_get_var(ncid, var_id, wrf%dom(id)%zs), &
+                     'static_init_model','get_var ZS')
 
 !  get 2D (x,y) base state for mu, latitude, longitude
 
    allocate(wrf%dom(id)%mub(1:wrf%dom(id)%we,1:wrf%dom(id)%sn))
-   call check( nf90_inq_varid(ncid, "MUB", var_id) )
-   call check( nf90_get_var(ncid, var_id, wrf%dom(id)%mub) )
+   call nc_check( nf90_inq_varid(ncid, "MUB", var_id), &
+                     'static_init_model','inq_varid MUB')
+   call nc_check( nf90_get_var(ncid, var_id, wrf%dom(id)%mub), &
+                     'static_init_model','get_var MUB')
    if(debug) then
       write(*,*) ' corners of mub '
       write(*,*) wrf%dom(id)%mub(1,1),wrf%dom(id)%mub(wrf%dom(id)%we,1),  &
@@ -459,16 +495,22 @@
    end if
 
    allocate(wrf%dom(id)%longitude(1:wrf%dom(id)%we,1:wrf%dom(id)%sn))
-   call check( nf90_inq_varid(ncid, "XLONG", var_id) )
-   call check( nf90_get_var(ncid, var_id, wrf%dom(id)%longitude) )
+   call nc_check( nf90_inq_varid(ncid, "XLONG", var_id), &
+                     'static_init_model','inq_varid XLONG')
+   call nc_check( nf90_get_var(ncid, var_id, wrf%dom(id)%longitude), &
+                     'static_init_model','get_var XLONG')
 
    allocate(wrf%dom(id)%latitude(1:wrf%dom(id)%we,1:wrf%dom(id)%sn))
-   call check( nf90_inq_varid(ncid, "XLAT", var_id) )
-   call check( nf90_get_var(ncid, var_id, wrf%dom(id)%latitude) )
+   call nc_check( nf90_inq_varid(ncid, "XLAT", var_id), &
+                     'static_init_model','inq_varid XLAT')
+   call nc_check( nf90_get_var(ncid, var_id, wrf%dom(id)%latitude), &
+                     'static_init_model','get_var XLAT')
 
    allocate(wrf%dom(id)%land(1:wrf%dom(id)%we,1:wrf%dom(id)%sn))
-   call check( nf90_inq_varid(ncid, "XLAND", var_id) )
-   call check( nf90_get_var(ncid, var_id, wrf%dom(id)%land) )
+   call nc_check( nf90_inq_varid(ncid, "XLAND", var_id), &
+                     'static_init_model','inq_varid XLAND')
+   call nc_check( nf90_get_var(ncid, var_id, wrf%dom(id)%land), &
+                     'static_init_model','get_var XLAND')
    if(debug) then
       write(*,*) ' corners of land '
       write(*,*) wrf%dom(id)%land(1,1),wrf%dom(id)%land(wrf%dom(id)%we,1),  &
@@ -491,26 +533,36 @@
 !nc --   MAPFACs in the x and y directions
 
 !   allocate(wrf%dom(id)%mapfac_m(1:wrf%dom(id)%we,1:wrf%dom(id)%sn))
-!   call check( nf90_inq_varid(ncid, "MAPFAC_M", var_id) )
-!   call check( nf90_get_var(ncid, var_id, wrf%dom(id)%mapfac_m) )
+!   call nc_check( nf90_inq_varid(ncid, "MAPFAC_M", var_id), &
+!                    'static_init_model','inq_varid MAPFAC_M')
+!   call nc_check( nf90_get_var(ncid, var_id, wrf%dom(id)%mapfac_m), &
+!                    'static_init_model','get_var MAPFAC_M')
 
    allocate(wrf%dom(id)%hgt(1:wrf%dom(id)%we,1:wrf%dom(id)%sn))
-   call check( nf90_inq_varid(ncid, "HGT", var_id) )
-   call check( nf90_get_var(ncid, var_id, wrf%dom(id)%hgt) )
+   call nc_check( nf90_inq_varid(ncid, "HGT", var_id), &
+                     'static_init_model','inq_varid HGT')
+   call nc_check( nf90_get_var(ncid, var_id, wrf%dom(id)%hgt), &
+                     'static_init_model','get_var HGT')
 
 !   allocate(wrf%dom(id)%mapfac_u(1:wrf%dom(id)%wes,1:wrf%dom(id)%sn))
-!   call check( nf90_inq_varid(ncid, "MAPFAC_U", var_id) )
-!   call check( nf90_get_var(ncid, var_id, wrf%dom(id)%mapfac_u) )
+!   call nc_check( nf90_inq_varid(ncid, "MAPFAC_U", var_id), &
+!                    'static_init_model','inq_varid MAPFAC_U')
+!   call nc_check( nf90_get_var(ncid, var_id, wrf%dom(id)%mapfac_u), &
+!                    'static_init_model','get_var MAPFAC_U')
 
 !   allocate(wrf%dom(id)%mapfac_v(1:wrf%dom(id)%we,1:wrf%dom(id)%sns))
-!   call check( nf90_inq_varid(ncid, "MAPFAC_V", var_id) )
-!   call check( nf90_get_var(ncid, var_id, wrf%dom(id)%mapfac_v) )
+!   call nc_check( nf90_inq_varid(ncid, "MAPFAC_V", var_id), &
+!                    'static_init_model','inq_varid MAPFAC_V')
+!   call nc_check( nf90_get_var(ncid, var_id, wrf%dom(id)%mapfac_v), &
+!                    'static_init_model','get_var MAPFAC_V')
 
 ! get 3D base state geopotential
 
    allocate(wrf%dom(id)%phb(1:wrf%dom(id)%we,1:wrf%dom(id)%sn,1:wrf%dom(id)%bts))
-   call check( nf90_inq_varid(ncid, "PHB", var_id) )
-   call check( nf90_get_var(ncid, var_id, wrf%dom(id)%phb) )
+   call nc_check( nf90_inq_varid(ncid, "PHB", var_id), &
+                     'static_init_model','inq_varid PHB')
+   call nc_check( nf90_get_var(ncid, var_id, wrf%dom(id)%phb), &
+                     'static_init_model','get_var PHB')
    if(debug) then
       write(*,*) ' corners of phb '
       write(*,*) wrf%dom(id)%phb(1,1,1),wrf%dom(id)%phb(wrf%dom(id)%we,1,1),  &
@@ -524,7 +576,7 @@
 
 ! close data file, we have all we need
 
-   call check( nf90_close(ncid) )
+   call nc_check(nf90_close(ncid),'static_init_model','close wrfinput_d0'//idom)
 
 ! Initializes the map projection structure to missing values
 
@@ -961,18 +1013,6 @@
 allocate (ens_mean(wrf%model_size))
 if(debug) write(*,*) ' wrf model size is ',wrf%model_size
 
-contains
-
-  ! Internal subroutine - checks error status after each netcdf, prints
-  !                       text message each time an error code is returned.
-  subroutine check(istatus)
-    integer, intent (in) :: istatus
-
-    if(istatus /= nf90_noerr) call error_handler(E_ERR, 'static_init_model', &
-       trim(nf90_strerror(istatus)), source, revision, revdate)
-
-  end subroutine check
-
 end subroutine static_init_model
 
 
@@ -3137,15 +3177,18 @@
 ! and then put into define mode.
 !-----------------------------------------------------------------
 
-call check(nf90_Inquire(ncFileID, nDimensions, nVariables, nAttributes, unlimitedDimID))
-call check(nf90_Redef(ncFileID))
+call nc_check(nf90_Inquire(ncFileID, nDimensions, nVariables, nAttributes, unlimitedDimID), &
+              'nc_write_model_atts','inquire')
+call nc_check(nf90_Redef(ncFileID),'nc_write_model_atts','redef')
 
 !-----------------------------------------------------------------
 ! We need the dimension ID for the number of copies 
 !-----------------------------------------------------------------
 
-call check(nf90_inq_dimid(ncid=ncFileID, name="copy", dimid=MemberDimID))
-call check(nf90_inq_dimid(ncid=ncFileID, name="time", dimid=  TimeDimID))
+call nc_check(nf90_inq_dimid(ncid=ncFileID, name="copy", dimid=MemberDimID), &
+              'nc_write_model_atts','inq_dimid copy')
+call nc_check(nf90_inq_dimid(ncid=ncFileID, name="time", dimid= TimeDimID), &
+              'nc_write_model_atts','inq_dimid time')
 
 if ( TimeDimID /= unlimitedDimId ) then
    write(errstring,*)'Time Dimension ID ',TimeDimID, &
@@ -3156,8 +3199,9 @@
 !-----------------------------------------------------------------
 ! Define the model size, state variable dimension ... whatever ...
 !-----------------------------------------------------------------
-call check(nf90_def_dim(ncid=ncFileID, name="StateVariable", &
-                        len=wrf%model_size, dimid = StateVarDimID))
+call nc_check(nf90_def_dim(ncid=ncFileID, name="StateVariable", &
+              len=wrf%model_size, dimid = StateVarDimID), &
+              'nc_write_model_atts','def_dim StateVariable')
 
 !-----------------------------------------------------------------
 ! Write Global Attributes 
@@ -3166,11 +3210,16 @@
 write(str1,'(''YYYY MM DD HH MM SS = '',i4,5(1x,i2.2))') &
                   values(1), values(2), values(3), values(5), values(6), values(7)
 
-call check(nf90_put_att(ncFileID, NF90_GLOBAL, "creation_date",str1))
-call check(nf90_put_att(ncFileID, NF90_GLOBAL, "model","WRF"))
-call check(nf90_put_att(ncFileID, NF90_GLOBAL, "model_source",source))
-call check(nf90_put_att(ncFileID, NF90_GLOBAL, "model_revision",revision))
-call check(nf90_put_att(ncFileID, NF90_GLOBAL, "model_revdate",revdate))
+call nc_check(nf90_put_att(ncFileID, NF90_GLOBAL, "creation_date",str1), &
+              'nc_write_model_atts','put_att creation_date')
+call nc_check(nf90_put_att(ncFileID, NF90_GLOBAL, "model","WRF"), &
+              'nc_write_model_atts','put_att model')
+call nc_check(nf90_put_att(ncFileID, NF90_GLOBAL, "model_source",source), &
+              'nc_write_model_atts','put_att model_source')
+call nc_check(nf90_put_att(ncFileID, NF90_GLOBAL, "model_revision",revision), &
+              'nc_write_model_atts','put_att model_revision')
+call nc_check(nf90_put_att(ncFileID, NF90_GLOBAL, "model_revdate",revdate), &
+              'nc_write_model_atts','put_att model_revdate')
 
 ! how about namelist input? might be nice to save ...
 
@@ -3178,25 +3227,33 @@
 ! Define the dimensions IDs
 !-----------------------------------------------------------------
 
-call check(nf90_def_dim(ncid=ncFileID, name="domain",           &
-          len = num_domains,  dimid = DomDimID))
+call nc_check(nf90_def_dim(ncid=ncFileID, name="domain", &
+              len = num_domains,  dimid = DomDimID), &
+              'nc_write_model_atts','def_dim domain')
 
 do id=1,num_domains
    write( idom , '(I1)') id
-   call check(nf90_def_dim(ncid=ncFileID, name="west_east_d0"//idom,        &
-        len = wrf%dom(id)%we,  dimid = weDimID(id)))
-   call check(nf90_def_dim(ncid=ncFileID, name="west_east_stag_d0"//idom,   &
-        len = wrf%dom(id)%wes, dimid = weStagDimID(id)))
-   call check(nf90_def_dim(ncid=ncFileID, name="south_north_d0"//idom,      &
-        len = wrf%dom(id)%sn,  dimid = snDimID(id)))
-   call check(nf90_def_dim(ncid=ncFileID, name="south_north_stag_d0"//idom, &
-        len = wrf%dom(id)%sns, dimid = snStagDimID(id)))
-   call check(nf90_def_dim(ncid=ncFileID, name="bottom_top_d0"//idom,       &
-        len = wrf%dom(id)%bt,  dimid = btDimID(id)))
-   call check(nf90_def_dim(ncid=ncFileID, name="bottom_top_stag_d0"//idom,  &
-        len = wrf%dom(id)%bts, dimid = btStagDimID(id)))
-   call check(nf90_def_dim(ncid=ncFileID, name="soil_layers_stag_d0"//idom,  &
-        len = wrf%dom(id)%sls, dimid = slSDimID(id)))
+   call nc_check(nf90_def_dim(ncid=ncFileID, name="west_east_d0"//idom,        &
+                 len = wrf%dom(id)%we,  dimid = weDimID(id)), &
+                 'nc_write_model_atts','def_dim west_east_d0'//idom)
+   call nc_check(nf90_def_dim(ncid=ncFileID, name="west_east_stag_d0"//idom,   &
+                 len = wrf%dom(id)%wes, dimid = weStagDimID(id)), &
+                 'nc_write_model_atts','def_dim west_east_stag_d0'//idom)
+   call nc_check(nf90_def_dim(ncid=ncFileID, name="south_north_d0"//idom,      &
+                 len = wrf%dom(id)%sn,  dimid = snDimID(id)), &
+                 'nc_write_model_atts','def_dim south_north_d0'//idom)
+   call nc_check(nf90_def_dim(ncid=ncFileID, name="south_north_stag_d0"//idom, &
+                 len = wrf%dom(id)%sns, dimid = snStagDimID(id)), &
+                 'nc_write_model_atts','def_dim south_north_stag_d0'//idom)
+   call nc_check(nf90_def_dim(ncid=ncFileID, name="bottom_top_d0"//idom,       &
+                 len = wrf%dom(id)%bt,  dimid = btDimID(id)), &
+                 'nc_write_model_atts','def_dim bottom_top_d0'//idom)
+   call nc_check(nf90_def_dim(ncid=ncFileID, name="bottom_top_stag_d0"//idom,  &
+                 len = wrf%dom(id)%bts, dimid = btStagDimID(id)), &
+                 'nc_write_model_atts','def_dim bottom_top_stag_d0'//idom)
+   call nc_check(nf90_def_dim(ncid=ncFileID, name="soil_layers_stag_d0"//idom,  &
+                 len = wrf%dom(id)%sls, dimid = slSDimID(id)), &
+                 'nc_write_model_atts','def_dim soil_layers_stag_d0'//idom)
 enddo
 
 !-----------------------------------------------------------------
@@ -3208,147 +3265,203 @@
 ! Commented block is from wrfinput
 !-----------------------------------------------------------------
 
-call check(nf90_def_var(ncFileID, name="DX", xtype=nf90_real, &
-     dimids= DomDimID, varid=DXVarID) )
-call check(nf90_put_att(ncFileID, DXVarID, "long_name", &
-     "X HORIZONTAL RESOLUTION"))
-call check(nf90_put_att(ncFileID, DXVarID, "units", "m"))
+call nc_check(nf90_def_var(ncFileID, name="DX", xtype=nf90_real, &
+              dimids= DomDimID, varid=DXVarID), &
+              'nc_write_model_atts','def_var DX')
+call nc_check(nf90_put_att(ncFileID, DXVarID, "long_name", "X HORIZONTAL RESOLUTION"), &
+              'nc_write_model_atts','put_att DX long_name')
+call nc_check(nf90_put_att(ncFileID, DXVarID, "units", "m"), &
+              'nc_write_model_atts','put_att DX units')
 
-call check(nf90_def_var(ncFileID, name="DY", xtype=nf90_real, &
-     dimids= DomDimID, varid=DYVarID) )
-call check(nf90_put_att(ncFileID, DYVarID, "long_name", &
-     "Y HORIZONTAL RESOLUTION"))
-call check(nf90_put_att(ncFileID, DYVarID, "units", "m"))
+call nc_check(nf90_def_var(ncFileID, name="DY", xtype=nf90_real, &
+              dimids= DomDimID, varid=DYVarID), &
+              'nc_write_model_atts','def_var DY')
+call nc_check(nf90_put_att(ncFileID, DYVarID, "long_name", "Y HORIZONTAL RESOLUTION"), &
+              'nc_write_model_atts','put_att DY long_name')
+call nc_check(nf90_put_att(ncFileID, DYVarID, "units", "m"), &
+              'nc_write_model_atts','put_att DY units')
 
-call check(nf90_def_var(ncFileID, name="TRUELAT1", xtype=nf90_real, &
-     dimids= DomDimID, varid=TRUELAT1VarID) )
-call check(nf90_put_att(ncFileID, TRUELAT1VarID, "long_name", &
-     "first standard parallel"))
-call check(nf90_put_att(ncFileID, TRUELAT1VarID, "units", &
-     "degrees, negative is south"))
+call nc_check(nf90_def_var(ncFileID, name="TRUELAT1", xtype=nf90_real, &
+              dimids= DomDimID, varid=TRUELAT1VarID), &
+              'nc_write_model_atts','def_var TRUELAT1')
+call nc_check(nf90_put_att(ncFileID, TRUELAT1VarID, "long_name", &
+              "first standard parallel"), &
+              'nc_write_model_atts','put_att TRUELAT1 long_name')
+call nc_check(nf90_put_att(ncFileID, TRUELAT1VarID, "units", &
+              "degrees, negative is south"), &
+              'nc_write_model_atts','put_att TRUELAT1 units')
 
-call check(nf90_def_var(ncFileID, name="TRUELAT2", xtype=nf90_real, &
-     dimids= DomDimID, varid=TRUELAT2VarID) )
-call check(nf90_put_att(ncFileID, TRUELAT2VarID, "long_name", &
-     "second standard parallel"))
-call check(nf90_put_att(ncFileID, TRUELAT2VarID, "units", &
-     "degrees, negative is south"))
+call nc_check(nf90_def_var(ncFileID, name="TRUELAT2", xtype=nf90_real, &
+              dimids= DomDimID, varid=TRUELAT2VarID), &
+              'nc_write_model_atts','def_var TRUELAT2')
+call nc_check(nf90_put_att(ncFileID, TRUELAT2VarID, "long_name", &
+              "second standard parallel"), &
+              'nc_write_model_atts','put_att TRUELAT2 long_name')
+call nc_check(nf90_put_att(ncFileID, TRUELAT2VarID, "units", &
+              "degrees, negative is south"), &
+              'nc_write_model_atts','put_att TRUELAT2 units')
 
-call check(nf90_def_var(ncFileID, name="STAND_LON", xtype=nf90_real, &
-     dimids= DomDimID, varid=STAND_LONVarID) )
-call check(nf90_put_att(ncFileID, STAND_LONVarID, "long_name", &
-     "standard longitude"))
-call check(nf90_put_att(ncFileID, STAND_LONVarID, "units", &
-     "degrees, negative is west"))
+call nc_check(nf90_def_var(ncFileID, name="STAND_LON", xtype=nf90_real, &
+              dimids= DomDimID, varid=STAND_LONVarID), &
+              'nc_write_model_atts','def_var STAND_LON')
+call nc_check(nf90_put_att(ncFileID, STAND_LONVarID, "long_name", &
+              "standard longitude"), &
+              'nc_write_model_atts','put_att STAND_LON long_name')
+call nc_check(nf90_put_att(ncFileID, STAND_LONVarID, "units", &
+              "degrees, negative is west"), &
+              'nc_write_model_atts','put_att STAND_LON units')
 
-call check(nf90_def_var(ncFileID, name="CEN_LAT", xtype=nf90_real, &
-     dimids= DomDimID, varid=CEN_LATVarID) )
-call check(nf90_put_att(ncFileID, CEN_LATVarID, "long_name", &
-     "center latitude"))
-call check(nf90_put_att(ncFileID, CEN_LATVarID, "units", &
-     "degrees, negative is south"))
+call nc_check(nf90_def_var(ncFileID, name="CEN_LAT", xtype=nf90_real, &
+              dimids= DomDimID, varid=CEN_LATVarID), &
+              'nc_write_model_atts','def_var CEN_LAT')
+call nc_check(nf90_put_att(ncFileID, CEN_LATVarID, "long_name", &
+              "center latitude"), &
+              'nc_write_model_atts','put_att CEN_LAT long_name')
+call nc_check(nf90_put_att(ncFileID, CEN_LATVarID, "units", &
+              "degrees, negative is south"), &
+              'nc_write_model_atts','put_att CEN_LAT units')
 
-call check(nf90_def_var(ncFileID, name="CEN_LON", xtype=nf90_real, &
-     dimids= DomDimID, varid=CEN_LONVarID) )
-call check(nf90_put_att(ncFileID, CEN_LONVarID, "long_name", &
-     "central longitude"))
-call check(nf90_put_att(ncFileID, CEN_LONVarID, "units", &
-     "degrees, negative is west"))
+call nc_check(nf90_def_var(ncFileID, name="CEN_LON", xtype=nf90_real, &
+              dimids= DomDimID, varid=CEN_LONVarID), &
+              'nc_write_model_atts','def_var CEN_LON')
+call nc_check(nf90_put_att(ncFileID, CEN_LONVarID, "long_name", &
+              "central longitude"), &
+              'nc_write_model_atts','put_att CEN_LON long_name')
+call nc_check(nf90_put_att(ncFileID, CEN_LONVarID, "units", &
+              "degrees, negative is west"), &
+              'nc_write_model_atts','put_att CEN_LON units')
 
-call check(nf90_def_var(ncFileID, name="MAP_PROJ", xtype=nf90_real, &
-     dimids= DomDimID, varid=MAP_PROJVarID) )
-call check(nf90_put_att(ncFileID, MAP_PROJVarID, "long_name", &
-     "domain map projection"))
-call check(nf90_put_att(ncFileID, MAP_PROJVarID, "units", &
-     "0=none, 1=Lambert, 2=polar, 3=Mercator, 5=Cylindrical, 6=Cassini"))
+call nc_check(nf90_def_var(ncFileID, name="MAP_PROJ", xtype=nf90_real, &
+              dimids= DomDimID, varid=MAP_PROJVarID), &
+              'nc_write_model_atts','def_var MAP_PROJ')
+call nc_check(nf90_put_att(ncFileID, MAP_PROJVarID, "long_name", &
+              "domain map projection"), &
+              'nc_write_model_atts','put_att MAP_PROJ long_name')
+call nc_check(nf90_put_att(ncFileID, MAP_PROJVarID, "units", &
+              "0=none, 1=Lambert, 2=polar, 3=Mercator, 5=Cylindrical, 6=Cassini"), &
+              'nc_write_model_atts','put_att MAP_PROJ units')
 
 !nc -- we need to add in code here to report the domain values for the 
 !        boundary condition flags periodic_x and polar.  Since these are
 !        carried internally as logicals, they will first need to be 
 !        converted back to integers.
-call check(nf90_def_var(ncFileID, name="PERIODIC_X", xtype=nf90_int, &
-     dimids= DomDimID, varid=PERIODIC_XVarID) )
-call check(nf90_put_att(ncFileID, PERIODIC_XVarID, "long_name", &
-     "Longitudinal periodic b.c. flag"))
-call check(nf90_put_att(ncFileID, PERIODIC_XVarID, "units", &
-     "logical: 1 = .true., 0 = .false."))
+call nc_check(nf90_def_var(ncFileID, name="PERIODIC_X", xtype=nf90_int, &
+              dimids= DomDimID, varid=PERIODIC_XVarID), &
+              'nc_write_model_atts','def_var PERIODIC_X')
+call nc_check(nf90_put_att(ncFileID, PERIODIC_XVarID, "long_name", &
+              "Longitudinal periodic b.c. flag"), &
+              'nc_write_model_atts','put_att PERIODIC_X long_name')
+call nc_check(nf90_put_att(ncFileID, PERIODIC_XVarID, "units", &
+              "logical: 1 = .true., 0 = .false."), &
+              'nc_write_model_atts','put_att PERIODIC_X units')
 
-call check(nf90_def_var(ncFileID, name="POLAR", xtype=nf90_int, &
-     dimids= DomDimID, varid=POLARVarID) )
-call check(nf90_put_att(ncFileID, POLARVarID, "long_name", &
-     "Polar periodic b.c. flag"))
-call check(nf90_put_att(ncFileID, POLARVarID, "units", &
-     "logical: 1 = .true., 0 = .false."))
+call nc_check(nf90_def_var(ncFileID, name="POLAR", xtype=nf90_int, &
+              dimids= DomDimID, varid=POLARVarID), &
+              'nc_write_model_atts','def_var POLAR')
+call nc_check(nf90_put_att(ncFileID, POLARVarID, "long_name", &
+              "Polar periodic b.c. flag"), &
+              'nc_write_model_atts','put_att POLAR long_name')
+call nc_check(nf90_put_att(ncFileID, POLARVarID, "units", &
+              "logical: 1 = .true., 0 = .false."), &
+              'nc_write_model_atts','put_att POLAR units')
 
 
 
 do id=1,num_domains
    write( idom , '(I1)') id
 
-   call check(nf90_def_var(ncFileID, name="DN_d0"//idom, xtype=nf90_real, &
-        dimids= btDimID(id), varid=DNVarID(id)) )
-   call check(nf90_put_att(ncFileID, DNVarID(id), "long_name", &
-        "dn values on half (mass) levels"))
-   call check(nf90_put_att(ncFileID, DNVarID(id), "units", "dimensionless"))
+   call nc_check(nf90_def_var(ncFileID, name="DN_d0"//idom, xtype=nf90_real, &
+                 dimids= btDimID(id), varid=DNVarID(id)), &
+                 'nc_write_model_atts','def_var DN_do'//idom)
+   call nc_check(nf90_put_att(ncFileID, DNVarID(id), "long_name", &
+                 "dn values on half (mass) levels"), &
+                 'nc_write_model_atts','put_att DN_do'//idom//' long_name')
+   call nc_check(nf90_put_att(ncFileID, DNVarID(id), "units", &
+                 "dimensionless"), &
+                 'nc_write_model_atts','put_att DN_do'//idom//' units')
 
-   call check(nf90_def_var(ncFileID, name="ZNU_d0"//idom, xtype=nf90_real, &
-        dimids= btDimID(id), varid=ZNUVarID(id)) )
-   call check(nf90_put_att(ncFileID, ZNUVarID(id), "long_name", &
-        "eta values on half (mass) levels"))
-   call check(nf90_put_att(ncFileID, ZNUVarID(id), "units", "dimensionless"))
+   call nc_check(nf90_def_var(ncFileID, name="ZNU_d0"//idom, xtype=nf90_real, &
+                 dimids= btDimID(id), varid=ZNUVarID(id)), &
+                 'nc_write_model_atts','def_var ZNU_d0'//idom)
+   call nc_check(nf90_put_att(ncFileID, ZNUVarID(id), "long_name", &
+                 "eta values on half (mass) levels"), &
+                 'nc_write_model_atts','put_att ZNU_d0'//idom//' long_name')
+   call nc_check(nf90_put_att(ncFileID, ZNUVarID(id), "units", &
+                 "dimensionless"), &
+                 'nc_write_model_atts','put_att ZNU_d0'//idom//' units')
 
-   call check(nf90_def_var(ncFileID, name="DNW_d0"//idom, xtype=nf90_real, &
-        dimids= btDimID(id), varid=DNWVarID(id)) )
-   call check(nf90_put_att(ncFileID, DNWVarID(id), "long_name", &
-        "dn values on full (w) levels"))
-   call check(nf90_put_att(ncFileID, DNWVarID(id), "units", "dimensionless"))
+   call nc_check(nf90_def_var(ncFileID, name="DNW_d0"//idom, xtype=nf90_real, &
+                 dimids= btDimID(id), varid=DNWVarID(id)), &
+                 'nc_write_model_atts','def_var DNW_d0'//idom)
+   call nc_check(nf90_put_att(ncFileID, DNWVarID(id), "long_name", &
+                 "dn values on full (w) levels"), &
+                 'nc_write_model_atts','def_var DNW_d0'//idom//' long_name')
+   call nc_check(nf90_put_att(ncFileID, DNWVarID(id), "units", &
+                 "dimensionless"), &
+                 'nc_write_model_atts','def_var DNW_d0'//idom//' units')
 
 !
 !    float MUB(Time, south_north, west_east) ;
 !            MUB:FieldType = 104 ;
 !            MUB:MemoryOrder = "XY " ;
 !            MUB:stagger = "" ;
-   call check(nf90_def_var(ncFileID, name="MUB_d0"//idom, xtype=nf90_real, &
-        dimids= (/ weDimID(id), snDimID(id) /), varid=MubVarID(id)) )
-   call check(nf90_put_att(ncFileID, MubVarID(id), "long_name", &
-        "base state dry air mass in column"))
-   call check(nf90_put_att(ncFileID, MubVarID(id), "units", "Pa"))
+   call nc_check(nf90_def_var(ncFileID, name="MUB_d0"//idom, xtype=nf90_real, &
+                 dimids= (/ weDimID(id), snDimID(id) /), varid=MubVarID(id)), &
+                 'nc_write_model_atts','def_var MUB_d0'//idom)
+   call nc_check(nf90_put_att(ncFileID, MubVarID(id), "long_name", &
+                 "base state dry air mass in column"), &
+                 'nc_write_model_atts','put_att MUB_d0'//idom//' long_name')
+   call nc_check(nf90_put_att(ncFileID, MubVarID(id), "units", "Pa"), &
+                 'nc_write_model_atts','put_att MUB_d0'//idom//' long_name')
 
 ! Longitudes
 !      float XLONG(Time, south_north, west_east) ;
 !         XLONG:FieldType = 104 ;
 !         XLONG:MemoryOrder = "XY " ;
 !         XLONG:stagger = "" ;
-   call check(nf90_def_var(ncFileID, name="XLON_d0"//idom, xtype=nf90_real, &
-        dimids= (/ weDimID(id), snDimID(id) /), varid=LonVarID(id)) )
-   call check(nf90_put_att(ncFileID, LonVarID(id), "long_name", "longitude"))
-   call check(nf90_put_att(ncFileID, LonVarID(id), "units", "degrees_east"))
-   call check(nf90_put_att(ncFileID, LonVarID(id), "valid_range", &
-        (/ -180.0_r8, 180.0_r8 /)))
-   call check(nf90_put_att(ncFileID, LonVarID(id), "description", &
-        "LONGITUDE, WEST IS NEGATIVE"))
+   call nc_check(nf90_def_var(ncFileID, name="XLON_d0"//idom, xtype=nf90_real, &
+                 dimids= (/ weDimID(id), snDimID(id) /), varid=LonVarID(id)),  &
+                 'nc_write_model_atts','def_var XLON_d0'//idom)
+   call nc_check(nf90_put_att(ncFileID, LonVarID(id), "long_name", "longitude"), &
+                 'nc_write_model_atts','put_att XLON_d0'//idom//' long_name')
+   call nc_check(nf90_put_att(ncFileID, LonVarID(id), "units", "degrees_east"), &
+                 'nc_write_model_atts','put_att XLON_d0'//idom//' units')
+   call nc_check(nf90_put_att(ncFileID, LonVarID(id), "valid_range", &
+                 (/ -180.0_r8, 180.0_r8 /)), &
+                 'nc_write_model_atts','put_att XLON_d0'//idom//' valid_range')
+   call nc_check(nf90_put_att(ncFileID, LonVarID(id), "description", &
+                 "LONGITUDE, WEST IS NEGATIVE"), &
+                 'nc_write_model_atts','put_att XLON_d0'//idom//' description')
 
 ! Latitudes
 !      float XLAT(Time, south_north, west_east) ;
 !         XLAT:FieldType = 104 ;
 !         XLAT:MemoryOrder = "XY " ;
 !         XLAT:stagger = "" ;
-   call check(nf90_def_var(ncFileID, name="XLAT_d0"//idom, xtype=nf90_real, &
-        dimids=(/ weDimID(id), snDimID(id) /), varid=LatVarID(id)) ) 
-   call check(nf90_put_att(ncFileID, LatVarID(id), "long_name", "latitude"))
-   call check(nf90_put_att(ncFileID, LatVarID(id), "units", "degrees_north"))
-   call check(nf90_put_att(ncFileID, LatVarID(id), "valid_range", &
-        (/ -90.0_r8, 90.0_r8 /)))
-   call check(nf90_put_att(ncFileID, LatVarID(id), "description", &
-        "LATITUDE, SOUTH IS NEGATIVE"))
+   call nc_check(nf90_def_var(ncFileID, name="XLAT_d0"//idom, xtype=nf90_real, &
+                 dimids=(/ weDimID(id), snDimID(id) /), varid=LatVarID(id)), &
+                 'nc_write_model_atts','def_var XLAT_d0'//idom) 
+   call nc_check(nf90_put_att(ncFileID, LatVarID(id), "long_name", "latitude"), &
+                 'nc_write_model_atts','put_att XLAT_d0'//idom//' long_name')
+   call nc_check(nf90_put_att(ncFileID, LatVarID(id), "units", "degrees_north"), &
+                 'nc_write_model_atts','put_att XLAT_d0'//idom//' units')
+   call nc_check(nf90_put_att(ncFileID, LatVarID(id), "valid_range", &
+                 (/ -90.0_r8, 90.0_r8 /)), &
+                 'nc_write_model_atts','put_att XLAT_d0'//idom//' valid_range')
+   call nc_check(nf90_put_att(ncFileID, LatVarID(id), "description", &
+                 "LATITUDE, SOUTH IS NEGATIVE"), &
+                 'nc_write_model_atts','put_att XLAT_d0'//idom//' description')
 
 ! grid levels
-   call check(nf90_def_var(ncFileID, name="level_d0"//idom, xtype=nf90_short, &
-        dimids=btDimID(id), varid=ilevVarID(id)) )
-   call check(nf90_put_att(ncFileID, ilevVarID(id), "long_name", &
-        "placeholder for level"))
-   call check(nf90_put_att(ncFileID, ilevVarID(id), "units", &
-        "at this point, indexical"))
+   call nc_check(nf90_def_var(ncFileID, name="level_d0"//idom, xtype=nf90_short, &
+                 dimids=btDimID(id), varid=ilevVarID(id)), &
+                 'nc_write_model_atts','def_var level_d0'//idom)
+   call nc_check(nf90_put_att(ncFileID, ilevVarID(id), "long_name", &
+                 "placeholder for level"), &
+                 'nc_write_model_atts','put_att level_d0'//idom//' long_name')
+   call nc_check(nf90_put_att(ncFileID, ilevVarID(id), "units", &
+                 "at this point, indexical"), &
+                 'nc_write_model_atts','put_att level_d0'//idom//' units')
 
 ! Land Mask
 !    float XLAND(Time, south_north, west_east) ;
@@ -3356,13 +3469,18 @@
 !            XLAND:MemoryOrder = "XY " ;
 !            XLAND:units = "NA" ;
 !            XLAND:stagger = "" ;
-   call check(nf90_def_var(ncFileID, name="XLAND_d0"//idom, xtype=nf90_short, &
-        dimids= (/ weDimID(id), snDimID(id) /), varid=XlandVarID(id)) )
-   call check(nf90_put_att(ncFileID, XlandVarID(id), "long_name", "land mask"))
-   call check(nf90_put_att(ncFileID, XlandVarID(id), "units", "NA"))
-   call check(nf90_put_att(ncFileID, XlandVarID(id), "valid_range", (/ 1, 2 /)))
-   call check(nf90_put_att(ncFileID, XlandVarID(id), "description", &
-        "1 = LAND, 2 = WATER"))
+   call nc_check(nf90_def_var(ncFileID, name="XLAND_d0"//idom, xtype=nf90_short, &
+                 dimids= (/ weDimID(id), snDimID(id) /), varid=XlandVarID(id)),  &
+                 'nc_write_model_atts','def_var XLAND_d0'//idom)
+   call nc_check(nf90_put_att(ncFileID, XlandVarID(id), "long_name", "land mask"), &
+                 'nc_write_model_atts','put_att XLAND_d0'//idom//' long_name')
+   call nc_check(nf90_put_att(ncFileID, XlandVarID(id), "units", "NA"), &
+                 'nc_write_model_atts','put_att XLAND_d0'//idom//' units')
+   call nc_check(nf90_put_att(ncFileID, XlandVarID(id), "valid_range", (/ 1, 2 /)), &
+                 'nc_write_model_atts','put_att XLAND_d0'//idom//' valid_range')
+   call nc_check(nf90_put_att(ncFileID, XlandVarID(id), "description", &
+                 "1 = LAND, 2 = WATER"), &
+                 'nc_write_model_atts','put_att XLAND_d0'//idom//' description')
 
 !nc -- eliminated the reading in of MAPFACs since global WRF will have different 
 !nc --   MAPFACs in the x and y directions
@@ -3372,51 +3490,68 @@
 !            MAPFAC_M:FieldType = 104 ;
 !            MAPFAC_M:MemoryOrder = "XY " ;
 !            MAPFAC_M:stagger = "" ;
-!   call check(nf90_def_var(ncFileID, name="MAPFAC_M_d0"//idom, xtype=nf90_real, &
-!        dimids= (/ weDimID(id), snDimID(id) /), varid=MapFacMVarID(id)) )
-!   call check(nf90_put_att(ncFileID, MapFacMVarID(id), "long_name", &
-!       "Map scale factor on mass grid"))
-!   call check(nf90_put_att(ncFileID, MapFacMVarID(id), "units", "dimensionless"))
+!   call nc_check(nf90_def_var(ncFileID, name="MAPFAC_M_d0"//idom, xtype=nf90_real, &
+!                 dimids= (/ weDimID(id), snDimID(id) /), varid=MapFacMVarID(id)),  &
+!                 'nc_write_model_atts','def_var MAPFAC_M_d0'//idom)
+!   call nc_check(nf90_put_att(ncFileID, MapFacMVarID(id), "long_name", &
+!                 "Map scale factor on mass grid"), &
+!                 'nc_write_model_atts','put_att MAPFAC_M_d0'//idom//' long_name')
+!   call nc_check(nf90_put_att(ncFileID, MapFacMVarID(id), "units", "dimensionless"), &

@@ Diff output truncated at 40000 characters. @@


More information about the Dart-dev mailing list