|
◆ vol7d_netcdf_export()
subroutine vol7d_netcdf_export |
( |
type(vol7d), intent(in) |
this, |
|
|
character(len=*), intent(in) |
ncconventions, |
|
|
integer, intent(inout), optional |
ncunit, |
|
|
character(len=*), intent(in), optional |
description, |
|
|
character(len=*), intent(inout), optional |
filename |
|
) |
| |
|
private |
- Parametri
-
[in] | this | volume vol7d da scrivere |
[in,out] | ncunit | unità netcdf su cui scrivere; se passata =0 ritorna il valore rielaborato (default =elaborato internamente da netcdf ) |
[in] | ncconventions | tipo di convenzione da utilizzare nella scrittura netcdf (per ora supportato "CF-1.1 vol7d") |
[in,out] | filename | nome del file su cui scrivere; se passato ="" ritorna il valore rielaborato |
[in] | description | descrizione del volume |
Definizione alla linea 62 del file vol7d_netcdf_class.f90.
64 TYPE(vol7d), INTENT(IN) :: this
65 integer, optional, intent(inout) :: ncunit
66 character(len=*), intent(in) :: ncconventions
67 character(len=*), intent(inout), optional :: filename
68 character(len=*), INTENT(IN), optional :: description
71 character(len=254) :: ldescription,arg,lfilename
72 integer :: nana, ntime, ntimerange, nlevel, nnetwork, &
73 ndativarr, ndativari, ndativarb, ndativard, ndativarc,&
74 ndatiattrr, ndatiattri, ndatiattrb, ndatiattrd, ndatiattrc,&
75 ndativarattrr, ndativarattri, ndativarattrb, ndativarattrd, ndativarattrc,&
76 nanavarr, nanavari, nanavarb, nanavard, nanavarc,&
77 nanaattrr, nanaattri, nanaattrb, nanaattrd, nanaattrc,&
78 nanavarattrr, nanavarattri, nanavarattrb, nanavarattrd, nanavarattrc
81 logical :: opened,exist
83 integer :: ana_ident_varid,ana_dimid,ana_lon_varid,ana_lat_varid &
84 ,ident_len_dimid,var_len_dimid &
85 ,level_dimid,level_vdim_dimid,level_vect_varid,network_dimid,network_name_varid &
86 ,network_name_len_dimid,timerange_vdim_dimid &
87 ,time_iminuti_varid,time_dimid,timerange_dimid,timerange_vect_varid,var_vdim_dimid &
88 ,dativard_dimid,dativarr_dimid,dativari_dimid,dativarb_dimid,dativarc_len_dimid,dativarc_dimid &
89 ,voldativarr_varid ,voldativari_varid ,voldativard_varid ,voldativarb_varid ,voldativarc_varid &
90 ,anavard_dimid,anavarr_dimid,anavari_dimid,anavarb_dimid,anavarc_len_dimid,anavarc_dimid &
91 ,volanavarr_varid ,volanavari_varid ,volanavard_varid ,volanavarb_varid ,volanavarc_varid &
92 ,anavarr_varid,anavari_varid,anavard_varid,anavarb_varid,anavarc_varid &
93 ,dativarr_varid,dativari_varid,dativard_varid,dativarb_varid,dativarc_varid
98 type(datetime) :: timeref
99 character (len=23) :: isodate
103 character(len=512):: a_name
105 character(len=65):: varchar(3)
107 call l4f_launcher(a_name,a_name_append=subcategory)
108 category=l4f_category_get(a_name)
111 if (ncconventions == "CF-1.1") then
112 call vol7d_netcdf_export_cf (this,ncconventions,ncunit,description,filename)
113 else if (ncconventions /= "CF-1.1 vol7d") then
115 call l4f_category_log(category,l4f_fatal, "ncconventions not supported: "// &
117 call raise_fatal_error()
120 call date_and_time(values=tarray)
123 if ( present(description)) then
124 ldescription=description
126 ldescription= "NETCDF generated by: "//trim(arg)
130 lfilename=trim(arg)// ".nc"
131 if ( index(arg, '/',back=.true.) > 0) lfilename=lfilename( index(arg, '/',back=.true.)+1 : )
133 if ( present(filename)) then
134 if (filename == "") then
141 IF ( PRESENT(ncunit)) THEN
149 INQUIRE(file=lfilename,exist=exist)
151 CALL l4f_category_log(category,l4f_error, &
152 "file exists, cannot open file "//trim(lfilename))
153 CALL raise_fatal_error()
156 CALL nccheck( "0",nf90_create(lfilename, nf90_clobber, lunit) )
157 CALL l4f_category_log(category,l4f_info, "opened "//trim(lfilename))
160 IF ( PRESENT(ncunit)) ncunit = lunit
162 call init(timeref,year=1,month=1,day=1,hour=00,minute=00)
163 call getval(timeref,isodate=isodate)
166 ntime= size(this%time)
167 ntimerange= size(this%timerange)
168 nlevel= size(this%level)
169 nnetwork= size(this%network)
177 if ( associated(this%dativar%r)) ndativarr= size(this%dativar%r)
178 if ( associated(this%dativar%i)) ndativari= size(this%dativar%i)
179 if ( associated(this%dativar%b)) ndativarb= size(this%dativar%b)
180 if ( associated(this%dativar%d)) ndativard= size(this%dativar%d)
181 if ( associated(this%dativar%c)) ndativarc= size(this%dativar%c)
183 ndatiattrr= size(this%datiattr%r)
184 ndatiattri= size(this%datiattr%i)
185 ndatiattrb= size(this%datiattr%b)
186 ndatiattrd= size(this%datiattr%d)
187 ndatiattrc= size(this%datiattr%c)
189 ndativarattrr= size(this%dativarattr%r)
190 ndativarattri= size(this%dativarattr%i)
191 ndativarattrb= size(this%dativarattr%b)
192 ndativarattrd= size(this%dativarattr%d)
193 ndativarattrc= size(this%dativarattr%c)
201 if ( associated(this%anavar%r)) nanavarr= size(this%anavar%r)
202 if ( associated(this%anavar%i)) nanavari= size(this%anavar%i)
203 if ( associated(this%anavar%b)) nanavarb= size(this%anavar%b)
204 if ( associated(this%anavar%d)) nanavard= size(this%anavar%d)
205 if ( associated(this%anavar%c)) nanavarc= size(this%anavar%c)
207 nanaattrr= size(this%anaattr%r)
208 nanaattri= size(this%anaattr%i)
209 nanaattrb= size(this%anaattr%b)
210 nanaattrd= size(this%anaattr%d)
211 nanaattrc= size(this%anaattr%c)
213 nanavarattrr= size(this%anavarattr%r)
214 nanavarattri= size(this%anavarattr%i)
215 nanavarattrb= size(this%anavarattr%b)
216 nanavarattrd= size(this%anavarattr%d)
217 nanavarattrc= size(this%anavarattr%c)
224 call nccheck( "0Conventions",nf90_put_att(lunit, nf90_global , "Conventions", "CF-1.1"))
225 call nccheck( "0title",nf90_put_att(lunit, nf90_global , "title", ldescription))
228 call nccheck( "1",nf90_def_dim(lunit, "ana", nana, ana_dimid) )
229 call nccheck( "2",nf90_def_dim(lunit, "ident_len",vol7d_ana_lenident , ident_len_dimid) )
231 call nccheck( "3",nf90_def_dim(lunit, "time", ntime, time_dimid) )
233 call nccheck( "4",nf90_def_dim(lunit, "timerange", ntimerange, timerange_dimid) )
234 call nccheck( "5",nf90_def_dim(lunit, "timerange_vdim", 3, timerange_vdim_dimid) )
236 call nccheck( "6",nf90_def_dim(lunit, "level", nlevel, level_dimid) )
237 call nccheck( "7",nf90_def_dim(lunit, "level_vdim", 4, level_vdim_dimid) )
239 call nccheck( "8",nf90_def_dim(lunit, "network_name", nnetwork, network_dimid) )
240 call nccheck( "9",nf90_def_dim(lunit, "network_name_len",network_name_len, network_name_len_dimid) )
242 call nccheck( "10",nf90_def_dim(lunit, "var_vdim",3, var_vdim_dimid) )
243 call nccheck( "11",nf90_def_dim(lunit, "var_len",65, var_len_dimid) )
246 if (nanavarr > 0) call nccheck( "a1",nf90_def_dim(lunit, "anavarr", nanavarr, anavarr_dimid) )
247 if (nanavari > 0) call nccheck( "a2",nf90_def_dim(lunit, "anavari", nanavari, anavari_dimid) )
248 if (nanavarb > 0) call nccheck( "a3",nf90_def_dim(lunit, "anavarb", nanavarb, anavarb_dimid) )
249 if (nanavard > 0) call nccheck( "a4",nf90_def_dim(lunit, "anavard", nanavard, anavard_dimid) )
250 if (nanavarc > 0) call nccheck( "a5",nf90_def_dim(lunit, "anavarc", nanavarc, anavarc_dimid) )
251 call nccheck( "a6",nf90_def_dim(lunit, "anavarc_len",vol7d_cdatalen, anavarc_len_dimid) )
254 if (ndativarr > 0) call nccheck( "d1",nf90_def_dim(lunit, "dativarr", ndativarr, dativarr_dimid) )
255 if (ndativari > 0) call nccheck( "d2",nf90_def_dim(lunit, "dativari", ndativari, dativari_dimid) )
256 if (ndativarb > 0) call nccheck( "d3",nf90_def_dim(lunit, "dativarb", ndativarb, dativarb_dimid) )
257 if (ndativard > 0) call nccheck( "d4",nf90_def_dim(lunit, "dativard", ndativard, dativard_dimid) )
258 if (ndativarc > 0) call nccheck( "d5",nf90_def_dim(lunit, "dativarc", ndativarc, dativarc_dimid) )
259 call nccheck( "d6",nf90_def_dim(lunit, "dativarc_len",vol7d_cdatalen, dativarc_len_dimid) )
264 call nccheck( "10",nf90_def_var(lunit, "ana_lat", nf90_double, ana_dimid, ana_lat_varid) )
265 call nccheck( "10long_name",nf90_put_att(lunit,ana_lat_varid , "long_name", "latitude") )
266 call nccheck( "10units",nf90_put_att(lunit,ana_lat_varid , "units", "degrees_north") )
267 call nccheck( "10standard_name",nf90_put_att(lunit,ana_lat_varid , "standard_name", "latitude") )
268 call nccheck( "10fillvalue",nf90_put_att(lunit,ana_lat_varid , "_FillValue",dmiss) )
269 call nccheck( "10missing_value",nf90_put_att(lunit,ana_lat_varid , "missing_value",dmiss) )
271 call nccheck( "11",nf90_def_var(lunit, "ana_lon", nf90_double, ana_dimid, ana_lon_varid) )
272 call nccheck( "11long_name",nf90_put_att(lunit,ana_lon_varid , "long_name", "longitude") )
273 call nccheck( "11units",nf90_put_att(lunit,ana_lon_varid , "units", "degrees_east") )
274 call nccheck( "11standard_name",nf90_put_att(lunit,ana_lon_varid , "standard_name", "longitude") )
275 call nccheck( "11fillvalue",nf90_put_att(lunit,ana_lon_varid , "_FillValue",dmiss) )
276 call nccheck( "11missing_value",nf90_put_att(lunit,ana_lon_varid , "missing_value",dmiss) )
278 call nccheck( "12",nf90_def_var(lunit, "ana_ident", nf90_char, (/ ident_len_dimid,ana_dimid/), ana_ident_varid) )
280 call nccheck( "12fillvalue",nf90_put_att(lunit,ana_ident_varid , "_FillValue",cmiss) )
281 call nccheck( "12missing_value",nf90_put_att(lunit,ana_ident_varid , "missing_value",cmiss) )
283 call nccheck( "13",nf90_def_var(lunit, "time", nf90_int, time_dimid, time_iminuti_varid) )
284 call nccheck( "1313",nf90_put_att(lunit,time_iminuti_varid, "units", "minute since "//isodate) )
285 call nccheck( "13fillvalue",nf90_put_att(lunit,time_iminuti_varid , "_FillValue",imiss) )
286 call nccheck( "13missing_value",nf90_put_att(lunit,time_iminuti_varid , "missing_value",imiss) )
288 call nccheck( "14",nf90_def_var(lunit, "timerange", nf90_int, (/timerange_vdim_dimid,timerange_dimid/), timerange_vect_varid) )
289 call nccheck( "14fillvalue",nf90_put_att(lunit, timerange_vect_varid , "_FillValue",imiss) )
290 call nccheck( "14missing_value",nf90_put_att(lunit, timerange_vect_varid , "missing_value",imiss) )
292 call nccheck( "15",nf90_def_var(lunit, "level", nf90_int, (/level_vdim_dimid,level_dimid/), level_vect_varid) )
293 call nccheck( "15fillvalue",nf90_put_att(lunit,level_vect_varid , "_FillValue",imiss) )
294 call nccheck( "15missing_value",nf90_put_att(lunit,level_vect_varid , "missing_value",imiss) )
296 call nccheck( "16",nf90_def_var(lunit, "network_name", nf90_char,(/ network_name_len_dimid,network_dimid/), network_name_varid) )
297 call nccheck( "16fillvalue",nf90_put_att(lunit,network_name_varid , "_FillValue",cmiss) )
298 call nccheck( "16missing_value",nf90_put_att(lunit,network_name_varid , "missing_value",cmiss) )
303 if (nanavarr > 0) then
304 call nccheck( "a81" ,nf90_def_var(lunit, "anavarr",nf90_char,&
305 (/var_len_dimid ,var_vdim_dimid,anavarr_dimid/),anavarr_varid ))
306 call nccheck( "a81fillvalue",nf90_put_att(lunit,anavarr_varid , "_FillValue",cmiss) )
307 call nccheck( "a81missing_value",nf90_put_att(lunit,anavarr_varid , "missing_value",cmiss) )
309 call nccheck( "a82" ,nf90_def_var(lunit, "volanavarr",nf90_real,&
310 (/ana_dimid,anavarr_dimid,network_dimid/),volanavarr_varid ))
311 call nccheck( "a82fillvalue",nf90_put_att(lunit,volanavarr_varid , "_FillValue",rmiss) )
312 call nccheck( "a82missing_value",nf90_put_att(lunit,volanavarr_varid , "missing_value",rmiss) )
314 if (nanavari > 0) then
315 call nccheck( "a83" ,nf90_def_var(lunit, "anavari",nf90_char,&
316 (/var_len_dimid,var_vdim_dimid ,anavari_dimid/),anavari_varid ))
317 call nccheck( "a83fillvalue",nf90_put_att(lunit,anavari_varid , "_FillValue",cmiss) )
318 call nccheck( "a83missing_value",nf90_put_att(lunit,anavari_varid , "missing_value",cmiss) )
320 call nccheck( "a84" ,nf90_def_var(lunit, "volanavari",nf90_int,&
321 (/ana_dimid,anavari_dimid,network_dimid/),volanavari_varid ))
322 call nccheck( "a84fillvalue",nf90_put_att(lunit,volanavari_varid , "_FillValue",imiss) )
323 call nccheck( "a84missing_value",nf90_put_att(lunit,volanavari_varid , "missing_value",imiss) )
325 if (nanavard > 0) then
326 call nccheck( "a85" ,nf90_def_var(lunit, "anavard",nf90_char,&
327 (/var_len_dimid,var_vdim_dimid ,anavard_dimid/),anavard_varid ))
328 call nccheck( "a85fillvalue",nf90_put_att(lunit,anavard_varid , "_FillValue",cmiss) )
329 call nccheck( "a85missing_value",nf90_put_att(lunit,anavard_varid , "missing_value",cmiss) )
331 call nccheck( "a86" ,nf90_def_var(lunit, "volanavard",nf90_double,&
332 (/ana_dimid,anavard_dimid,network_dimid/),volanavard_varid ))
333 call nccheck( "a86fillvalue",nf90_put_att(lunit,volanavard_varid , "_FillValue",dmiss) )
334 call nccheck( "a86missing_value",nf90_put_att(lunit,volanavard_varid , "missing_value",dmiss) )
336 if (nanavarb > 0) then
337 call nccheck( "a87" ,nf90_def_var(lunit, "anavarb",nf90_char,&
338 (/var_len_dimid,var_vdim_dimid ,anavarb_dimid/),anavarb_varid ))
339 call nccheck( "a87fillvalue",nf90_put_att(lunit,anavarb_varid , "_FillValue",cmiss) )
340 call nccheck( "a87missing_value",nf90_put_att(lunit,anavarb_varid , "missing_value",cmiss) )
342 call nccheck( "a88" ,nf90_def_var(lunit, "volanavarb",nf90_byte,&
343 (/ana_dimid,anavarb_dimid,network_dimid/),volanavarb_varid ))
344 call nccheck( "a88fillvalue",nf90_put_att(lunit,volanavarb_varid , "_FillValue",ibmiss) )
345 call nccheck( "a88missing_value",nf90_put_att(lunit,volanavarb_varid , "missing_value",ibmiss) )
347 if (nanavarc > 0) then
348 call nccheck( "a89" ,nf90_def_var(lunit, "anavarc",nf90_char,&
349 (/var_len_dimid,var_vdim_dimid ,anavarc_dimid/),anavarc_varid ))
350 call nccheck( "a89fillvalue",nf90_put_att(lunit,anavarc_varid , "_FillValue",cmiss) )
351 call nccheck( "a89missing_value",nf90_put_att(lunit,anavarc_varid , "missing_value",cmiss) )
353 call nccheck( "a90" ,nf90_def_var(lunit, "volanavarc",nf90_char,&
354 (/anavarc_len_dimid,ana_dimid,anavarc_dimid,network_dimid/),volanavarc_varid ))
355 call nccheck( "a90fillvalue",nf90_put_att(lunit,volanavarc_varid , "_FillValue",cmiss) )
356 call nccheck( "a90missing_value",nf90_put_att(lunit,volanavarc_varid , "missing_value",cmiss) )
363 if (ndativarr > 0) then
364 call nccheck( "d81" ,nf90_def_var(lunit, "dativarr",nf90_char,&
365 (/var_len_dimid,var_vdim_dimid ,dativarr_dimid/),dativarr_varid ))
366 call nccheck( "d8fillvalue",nf90_put_att(lunit,dativarr_varid, "_FillValue",cmiss) )
367 call nccheck( "d8missing_value",nf90_put_att(lunit,dativarr_varid, "missing_value",cmiss) )
369 call nccheck( "d82" ,nf90_def_var(lunit, "voldativarr",nf90_real,&
370 (/ana_dimid,time_dimid,level_dimid,timerange_dimid,dativarr_dimid,network_dimid/),voldativarr_varid ))
371 call nccheck( "d82fillvalue",nf90_put_att(lunit,voldativarr_varid , "_FillValue",rmiss) )
372 call nccheck( "d82missing_value",nf90_put_att(lunit,voldativarr_varid , "missing_value",rmiss) )
374 if (ndativari > 0) then
375 call nccheck( "d83" ,nf90_def_var(lunit, "dativari",nf90_char,&
376 (/var_len_dimid,var_vdim_dimid ,dativari_dimid/),dativari_varid ))
377 call nccheck( "d83fillvalue",nf90_put_att(lunit,dativari_varid, "_FillValue",cmiss) )
378 call nccheck( "d83missing_value",nf90_put_att(lunit,dativari_varid, "missing_value",cmiss) )
380 call nccheck( "d84" ,nf90_def_var(lunit, "voldativari",nf90_int,&
381 (/ana_dimid,time_dimid,level_dimid,timerange_dimid,dativari_dimid,network_dimid/),voldativari_varid ))
382 call nccheck( "d84fillvalue",nf90_put_att(lunit,voldativari_varid , "_FillValue",imiss) )
383 call nccheck( "d84missing_value",nf90_put_att(lunit,voldativari_varid , "missing_value",imiss) )
385 if (ndativard > 0) then
386 call nccheck( "d85" ,nf90_def_var(lunit, "dativard",nf90_char,&
387 (/var_len_dimid,var_vdim_dimid ,dativard_dimid/),dativard_varid ))
388 call nccheck( "d85fillvalue",nf90_put_att(lunit,dativard_varid, "_FillValue",cmiss) )
389 call nccheck( "d85missing_value",nf90_put_att(lunit,dativard_varid, "missing_value",cmiss) )
391 call nccheck( "d86" ,nf90_def_var(lunit, "voldativard",nf90_double,&
392 (/ana_dimid,time_dimid,level_dimid,timerange_dimid,dativard_dimid,network_dimid/),voldativard_varid ))
393 call nccheck( "d86fillvalue",nf90_put_att(lunit,voldativard_varid , "_FillValue",dmiss) )
394 call nccheck( "d86missing_value",nf90_put_att(lunit,voldativard_varid , "missing_value",dmiss) )
396 if (ndativarb > 0) then
397 call nccheck( "d87" ,nf90_def_var(lunit, "dativarb",nf90_char,&
398 (/var_len_dimid,var_vdim_dimid ,dativarb_dimid/),dativarb_varid ))
399 call nccheck( "d87fillvalue",nf90_put_att(lunit,dativarb_varid, "_FillValue",cmiss) )
400 call nccheck( "d87missing_value",nf90_put_att(lunit,dativarb_varid, "missing_value",cmiss) )
402 call nccheck( "d88" ,nf90_def_var(lunit, "voldativarb",nf90_byte,&
403 (/ana_dimid,time_dimid,level_dimid,timerange_dimid,dativarb_dimid,network_dimid/),voldativarb_varid ))
404 call nccheck( "d88fillvalue",nf90_put_att(lunit,voldativarb_varid , "_FillValue",ibmiss) )
405 call nccheck( "d88missing_value",nf90_put_att(lunit,voldativarb_varid , "missing_value",ibmiss) )
407 if (ndativarc > 0) then
408 call nccheck( "d89" ,nf90_def_var(lunit, "dativarc",nf90_char,&
409 (/var_len_dimid,var_vdim_dimid ,dativarc_dimid/),dativarc_varid ))
410 call nccheck( "d89fillvalue",nf90_put_att(lunit,dativarc_varid, "_FillValue",cmiss) )
411 call nccheck( "d89missing_value",nf90_put_att(lunit,dativarc_varid, "missing_value",cmiss) )
413 call nccheck( "d90" ,nf90_def_var(lunit, "voldativarc",nf90_char,&
414 (/dativarc_len_dimid,ana_dimid,time_dimid,level_dimid,timerange_dimid,dativarc_dimid,network_dimid/),voldativarc_varid ))
415 call nccheck( "d90fillvalue",nf90_put_att(lunit,voldativarc_varid , "_FillValue",cmiss) )
416 call nccheck( "d90missing_value",nf90_put_att(lunit,voldativarc_varid , "missing_value",cmiss) )
420 call nccheck( "22", nf90_enddef(lunit) )
423 if ( associated(this%ana)) call nccheck( "23", nf90_put_var(lunit, ana_lat_varid, getlat(this%ana(:)%coord)))
424 if ( associated(this%ana)) call nccheck( "24", nf90_put_var(lunit, ana_lon_varid, getlon(this%ana(:)%coord)))
426 if ( associated(this%ana)) call nccheck( "25", nf90_put_var(lunit, ana_ident_varid, this%ana(:)%ident))
428 if ( associated(this%time)) call nccheck( "26", nf90_put_var(lunit, time_iminuti_varid , &
429 int(timedelta_getamsec(this%time-timeref)/60000)))
431 if ( associated(this%level)) then
434 call nccheck( "27", nf90_put_var(lunit, level_vect_varid,&
435 (/this%level(i)%level1,&
437 this%level(i)%level2,&
439 start=(/1,i/),count=(/4,1/)))
443 if ( associated(this%timerange)) then
445 call nccheck( "28",nf90_put_var(lunit, timerange_vect_varid,&
446 (/this%timerange(i)%timerange,&
447 this%timerange(i)%p1,&
448 this%timerange(i)%p2/),&
449 start=(/1,i/),count=(/3,1/)))
453 if ( associated(this%network)) then
454 call nccheck( "29",nf90_put_var(lunit, network_name_varid,this%network(:)%name))
461 if ( associated(this%anavar%r)) then
462 varchar(1)= this%anavar%r(i)%description
463 varchar(2)= this%anavar%r(i)%unit
464 varchar(3)= this%anavar%r(i)%btable
465 call nccheck( "a291",nf90_put_var(lunit, anavarr_varid,&
467 ,start=(/1,1,i/),count=(/65,3,1/)))
472 if ( associated(this%anavar%i)) then
473 varchar(1)= this%anavar%i(i)%description
474 varchar(2)= this%anavar%i(i)%unit
475 varchar(3)= this%anavar%i(i)%btable
476 call nccheck( "a292",nf90_put_var(lunit, anavari_varid,&
478 ,start=(/1,1,i/),count=(/65,3,1/)))
483 if ( associated(this%anavar%d)) then
484 varchar(1)= this%anavar%d(i)%description
485 varchar(2)= this%anavar%d(i)%unit
486 varchar(3)= this%anavar%d(i)%btable
487 call nccheck( "a293",nf90_put_var(lunit, anavard_varid,&
489 ,start=(/1,1,i/),count=(/65,3,1/)))
494 if ( associated(this%anavar%b)) then
495 varchar(1)= this%anavar%b(i)%description
496 varchar(2)= this%anavar%b(i)%unit
497 varchar(3)= this%anavar%b(i)%btable
498 call nccheck( "a294",nf90_put_var(lunit, anavarb_varid,&
500 ,start=(/1,1,i/),count=(/65,3,1/)))
505 if ( associated(this%anavar%c)) then
506 varchar(1)= this%anavar%c(i)%description
507 varchar(2)= this%anavar%c(i)%unit
508 varchar(3)= this%anavar%c(i)%btable
509 call nccheck( "a295",nf90_put_var(lunit, anavarc_varid,&
511 ,start=(/1,1,i/),count=(/65,3,1/)))
520 if ( associated(this%dativar%r)) then
521 varchar(1)=this%dativar%r(i)%description
522 varchar(2)=this%dativar%r(i)%unit
523 varchar(3)=this%dativar%r(i)%btable
524 call nccheck( "a291",nf90_put_var(lunit, dativarr_varid,&
526 ,start=(/1,1,i/),count=(/65,3,1/)))
531 if ( associated(this%dativar%i)) then
532 varchar(1)=this%dativar%i(i)%description
533 varchar(2)=this%dativar%i(i)%unit
534 varchar(3)=this%dativar%i(i)%btable
535 call nccheck( "a292",nf90_put_var(lunit, dativari_varid,&
537 ,start=(/1,1,i/),count=(/65,3,1/)))
542 if ( associated(this%dativar%d)) then
543 varchar(1)=this%dativar%d(i)%description
544 varchar(2)=this%dativar%d(i)%unit
545 varchar(3)=this%dativar%d(i)%btable
546 call nccheck( "a293",nf90_put_var(lunit, dativard_varid,&
548 ,start=(/1,1,i/),count=(/65,3,1/)))
553 if ( associated(this%dativar%b)) then
554 varchar(1)=this%dativar%b(i)%description
555 varchar(2)=this%dativar%b(i)%unit
556 varchar(3)=this%dativar%b(i)%btable
557 call nccheck( "a294",nf90_put_var(lunit, dativarb_varid,&
559 ,start=(/1,1,i/),count=(/65,3,1/)))
564 if ( associated(this%dativar%c)) then
565 varchar(1)=this%dativar%c(i)%description
566 varchar(2)=this%dativar%c(i)%unit
567 varchar(3)=this%dativar%c(i)%btable
568 call nccheck( "a295",nf90_put_var(lunit, dativarc_varid,&
570 ,start=(/1,1,i/),count=(/65,3,1/)))
576 if ( associated(this%volanar)) call nccheck( "a231", nf90_put_var(lunit,volanavarr_varid,this%volanar))
577 if ( associated(this%volanai)) call nccheck( "a232", nf90_put_var(lunit,volanavari_varid,this%volanai))
578 if ( associated(this%volanad)) call nccheck( "a233", nf90_put_var(lunit,volanavard_varid,this%volanad))
579 if ( associated(this%volanab)) call nccheck( "a234", nf90_put_var(lunit,volanavarb_varid,this%volanab))
580 if ( associated(this%volanac)) call nccheck( "a235", nf90_put_var(lunit,volanavarc_varid,this%volanac))
583 if ( associated(this%voldatir)) call nccheck( "d231", nf90_put_var(lunit,voldativarr_varid,this%voldatir))
584 if ( associated(this%voldatii)) call nccheck( "d232", nf90_put_var(lunit,voldativari_varid,this%voldatii))
585 if ( associated(this%voldatid)) call nccheck( "d233", nf90_put_var(lunit,voldativard_varid,this%voldatid))
586 if ( associated(this%voldatib)) call nccheck( "d234", nf90_put_var(lunit,voldativarb_varid,this%voldatib))
587 if ( associated(this%voldatic)) call nccheck( "d235", nf90_put_var(lunit,voldativarc_varid,this%voldatic))
589 if (.not. present(ncunit)) call nccheck( "90", nf90_close(lunit) )
|