00001
00002
00003
00004 #include "cppdefs.h"
00005 #ifdef FLOATS
00006
00007
00008
00009 subroutine def_floats(ncid, total_rec, ierr,res)
00010
00011 implicit none
00012 # include "param.h"
00013 # include "mixing.h"
00014 # include "ncscrum.h"
00015 # include "ncscrum_floats.h"
00016 # include "floats.h"
00017 # include "scalars.h"
00018 # include "strings.h"
00019 # include "netcdf.inc"
00020
00021 logical create_new_file, res
00022 integer ncid, total_rec, ierr
00023 integer lstr, lvar, fltdim, ftimedim, twodim
00024 integer pgrd(2), temp(2)
00025 integer lenstr
00026 # ifdef SOLVE3D
00027 integer trcdim
00028 # endif /* SOLVE3D */
00029 character*65 vinfo(4)
00030 if (may_day_flag.ne.0) return
00031
00032 ierr=0
00033 lstr=lenstr(fltname)
00034 if (nrpfflt.gt.0) then
00035 lvar=total_rec-(1+mod(total_rec-1, nrpfflt))
00036 call insert_time_index (fltname, lstr, lvar, ierr)
00037 if (ierr .ne. 0) goto 99
00038 endif
00039
00040
00041
00042
00043
00044 create_new_file=ldefflt
00045 if (ncid.ne.-1) create_new_file=.false.
00046
00047 #if defined MPI & !defined PARALLEL_FILES
00048 if (mynode.gt.0) create_new_file=.false.
00049 #endif
00050 10 if (create_new_file) then
00051
00052 lstr=lenstr(fltname)
00053 ierr=nf_create(fltname(1:lstr),nf_clobber,ncid)
00054 if (ierr.ne.nf_noerr) then
00055 write(stdout,11) fltname(1:lstr)
00056 may_day_flag=3
00057 return
00058 endif
00059
00060
00061
00062
00063
00064 call put_global_atts (ncid, ierr)
00065 if (ierr.ne.nf_noerr) then
00066 write(stdout,11) fltname(1:lstr)
00067 may_day_flag=3
00068 return
00069 endif
00070
00071
00072
00073
00074
00075 ierr=nf_def_dim(ncid,'drifter',nfloats,fltdim)
00076 # ifdef SOLVE3D
00077 ierr=nf_def_dim(ncid,'tracer',NT,trcdim)
00078 # endif /* SOLVE3D */
00079 ierr=nf_def_dim(ncid,'ftime',nf_unlimited,ftimedim)
00080 ierr=nf_def_dim(ncid,'two',2,twodim)
00081
00082
00083
00084 pgrd(1)=fltdim
00085 pgrd(2)=ftimedim
00086
00087 temp(1)=twodim
00088 temp(2)=ftimedim
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102 vinfo(1)='time_step'
00103 vinfo(2)='time step and record numbers from initialization'
00104 vinfo(3)='nondimensionnal'
00105 vinfo(4)='time step/record number, vector, series'
00106
00107 lvar=lenstr(vinfo(1))
00108 ierr=nf_def_var(ncid,vinfo(1)(1:lvar),nf_int,
00109 & 2,temp,fltTstep)
00110 lvar=lenstr(vinfo(2))
00111 ierr=nf_put_att_text(ncid,fltTstep,'long_name',lvar,
00112 & vinfo(2)(1:lvar))
00113 lvar=lenstr(vinfo(3))
00114 ierr=nf_put_att_text(ncid,fltTstep,'units',lvar,
00115 & vinfo(3)(1:lvar))
00116 lvar=lenstr(vinfo(4))
00117 ierr=nf_put_att_text(ncid,fltTstep,'field',lvar,
00118 & vinfo(4)(1:lvar))
00119
00120
00121
00122
00123 lvar=lenstr(vname(1,indxTime))
00124 ierr=nf_def_var(ncid,vname(1,indxTime)(1:lvar),NF_FTYPE,
00125 & 1,ftimedim,fltTime)
00126 lvar=lenstr(vname(2,indxTime))
00127 ierr=nf_put_att_text(ncid,fltTime,'long_name',lvar,
00128 & vname(2,indxTime)(1:lvar))
00129 lvar=lenstr(vname(3,indxTime))
00130 ierr=nf_put_att_text(ncid,fltTime,'units',lvar,
00131 & vname(3,indxTime)(1:lvar))
00132 lvar=lenstr(vname(4,indxTime))
00133 ierr=nf_put_att_text(ncid,fltTime,'field',lvar,
00134 & vname(4,indxTime)(1:lvar))
00135
00136
00137
00138
00139 # ifdef SPHERICAL
00140
00141 vinfo(1)='lon'
00142 vinfo(2)='longitude of floats trajectories'
00143 vinfo(3)='degree_east'
00144 vinfo(4)='lon, scalar, series'
00145
00146 lvar=lenstr(vinfo(1))
00147 ierr=nf_def_var(ncid,vinfo(1)(1:lvar),NF_FTYPE,
00148 & 2,pgrd,fltLon)
00149 lvar=lenstr(vinfo(2))
00150 ierr=nf_put_att_text(ncid,fltLon,'long_name',lvar,
00151 & vinfo(2)(1:lvar))
00152 lvar=lenstr(vinfo(3))
00153 ierr=nf_put_att_text(ncid,fltLon,'units',lvar,
00154 & vinfo(3)(1:lvar))
00155 lvar=lenstr(vinfo(4))
00156 ierr=nf_put_att_text(ncid,fltLon,'field',lvar,
00157 & vinfo(4)(1:lvar))
00158
00159
00160 vinfo(1)='lat'
00161 vinfo(2)='latitude of floats trajectories'
00162 vinfo(3)='degree_north'
00163 vinfo(4)='lat, scalar, series'
00164
00165 lvar=lenstr(vinfo(1))
00166 ierr=nf_def_var(ncid,vinfo(1)(1:lvar),NF_FTYPE,
00167 & 2,pgrd,fltLat)
00168 lvar=lenstr(vinfo(2))
00169 ierr=nf_put_att_text(ncid,fltLat,'long_name',lvar,
00170 & vinfo(2)(1:lvar))
00171 lvar=lenstr(vinfo(3))
00172 ierr=nf_put_att_text(ncid,fltLat,'units',lvar,
00173 & vinfo(3)(1:lvar))
00174 lvar=lenstr(vinfo(4))
00175 ierr=nf_put_att_text(ncid,fltLat,'field',lvar,
00176 & vinfo(4)(1:lvar))
00177
00178
00179 # else
00180
00181 vinfo(1)='x'
00182 vinfo(2)='x-location of floats trajectories'
00183 vinfo(3)='meter'
00184 vinfo(4)='x, scalar, series'
00185
00186 lvar=lenstr(vinfo(1))
00187 ierr=nf_def_var(ncid,vinfo(1)(1:lvar),NF_FTYPE,
00188 & 2,pgrd,fltX)
00189 lvar=lenstr(vinfo(2))
00190 ierr=nf_put_att_text(ncid,fltX,'long_name',lvar,
00191 & vinfo(2)(1:lvar))
00192 lvar=lenstr(vinfo(3))
00193 ierr=nf_put_att_text(ncid,fltX,'units',lvar,
00194 & vinfo(3)(1:lvar))
00195 lvar=lenstr(vinfo(4))
00196 ierr=nf_put_att_text(ncid,fltX,'field',lvar,
00197 & vinfo(4)(1:lvar))
00198
00199
00200 vinfo(1)='y'
00201 vinfo(2)='y-location of floats trajectories'
00202 vinfo(3)='meter'
00203 vinfo(4)='y, scalar, series'
00204
00205 lvar=lenstr(vinfo(1))
00206 ierr=nf_def_var(ncid,vinfo(1)(1:lvar),NF_FTYPE,
00207 & 2,pgrd,fltY)
00208 lvar=lenstr(vinfo(2))
00209 ierr=nf_put_att_text(ncid,fltY,'long_name',lvar,
00210 & vinfo(2)(1:lvar))
00211 lvar=lenstr(vinfo(3))
00212 ierr=nf_put_att_text(ncid,fltY,'units',lvar,
00213 & vinfo(3)(1:lvar))
00214 lvar=lenstr(vinfo(4))
00215 ierr=nf_put_att_text(ncid,fltY,'field',lvar,
00216 & vinfo(4)(1:lvar))
00217
00218 # endif /* SPHERICAL */
00219
00220 if (wrtflt(indxfltGrd)) then
00221
00222
00223 vinfo(1)='grid_level'
00224 vinfo(2)='grid level in nested grid hierarchy'
00225 vinfo(3)='nondimensionnal'
00226
00227 lvar=lenstr(vinfo(1))
00228 ierr=nf_def_var(ncid,vinfo(1)(1:lvar),nf_int,
00229 & 2,pgrd,fltGlevel)
00230 lvar=lenstr(vinfo(2))
00231 ierr=nf_put_att_text(ncid,fltGlevel,'long_name',lvar,
00232 & vinfo(2)(1:lvar))
00233 lvar=lenstr(vinfo(3))
00234 ierr=nf_put_att_text(ncid,fltGlevel,'units',lvar,
00235 & vinfo(3)(1:lvar))
00236
00237
00238
00239
00240 vinfo(1)='Xgrid'
00241 vinfo(2)='x-grid floats locations'
00242 vinfo(3)='nondimensional'
00243 vinfo(4)='Xgrid, scalar, series'
00244
00245 lvar=lenstr(vinfo(1))
00246 ierr=nf_def_var(ncid,vinfo(1)(1:lvar),NF_FTYPE,
00247 & 2,pgrd,fltXgrd)
00248 lvar=lenstr(vinfo(2))
00249 ierr=nf_put_att_text(ncid,fltXgrd,'long_name',lvar,
00250 & vinfo(2)(1:lvar))
00251 lvar=lenstr(vinfo(3))
00252 ierr=nf_put_att_text(ncid,fltXgrd,'units',lvar,
00253 & vinfo(3)(1:lvar))
00254 lvar=lenstr(vinfo(4))
00255 ierr=nf_put_att_text(ncid,fltXgrd,'field',lvar,
00256 & vinfo(4)(1:lvar))
00257
00258
00259
00260
00261
00262 vinfo(1)='Ygrid'
00263 vinfo(2)='y-grid floats locations'
00264 vinfo(3)='nondimensional'
00265 vinfo(4)='Ygrid, scalar, series'
00266
00267 lvar=lenstr(vinfo(1))
00268 ierr=nf_def_var(ncid,vinfo(1)(1:lvar),NF_FTYPE,
00269 & 2,pgrd,fltYgrd)
00270 lvar=lenstr(vinfo(2))
00271 ierr=nf_put_att_text(ncid,fltYgrd,'long_name',lvar,
00272 & vinfo(2)(1:lvar))
00273 lvar=lenstr(vinfo(3))
00274 ierr=nf_put_att_text(ncid,fltYgrd,'units',lvar,
00275 & vinfo(3)(1:lvar))
00276 lvar=lenstr(vinfo(4))
00277 ierr=nf_put_att_text(ncid,fltYgrd,'field',lvar,
00278 & vinfo(4)(1:lvar))
00279
00280 # ifdef SOLVE3D
00281
00282
00283
00284
00285 vinfo(1)='Zgrid'
00286 vinfo(2)='z-grid floats locations'
00287 vinfo(3)='nondimensional'
00288 vinfo(4)='Zgrid, scalar, series'
00289
00290 lvar=lenstr(vinfo(1))
00291 ierr=nf_def_var(ncid,vinfo(1)(1:lvar),NF_FTYPE,
00292 & 2,pgrd,fltZgrd)
00293 lvar=lenstr(vinfo(2))
00294 ierr=nf_put_att_text(ncid,fltZgrd,'long_name',lvar,
00295 & vinfo(2)(1:lvar))
00296 lvar=lenstr(vinfo(3))
00297 ierr=nf_put_att_text(ncid,fltZgrd,'units',lvar,
00298 & vinfo(3)(1:lvar))
00299 lvar=lenstr(vinfo(4))
00300 ierr=nf_put_att_text(ncid,fltZgrd,'field',lvar,
00301 & vinfo(4)(1:lvar))
00302 # endif /* SOLVE3D */
00303
00304 endif
00305
00306 # ifdef SOLVE3D
00307
00308
00309
00310 vinfo(1)='depth'
00311 vinfo(2)='depth of floats trajectories'
00312 vinfo(3)='meter'
00313
00314 lvar=lenstr(vinfo(1))
00315 ierr=nf_def_var(ncid,vinfo(1)(1:lvar),NF_FTYPE,
00316 & 2,pgrd,fltDepth)
00317 lvar=lenstr(vinfo(2))
00318 ierr=nf_put_att_text(ncid,fltDepth,'long_name',lvar,
00319 & vinfo(2)(1:lvar))
00320 lvar=lenstr(vinfo(3))
00321 ierr=nf_put_att_text(ncid,fltDepth,'units',lvar,
00322 & vinfo(3)(1:lvar))
00323
00324 if (wrtflt(indxfltTemp)) then
00325
00326
00327 vinfo(1)='temp'
00328 vinfo(2)='temperature'
00329 vinfo(3)='degrees Celsius'
00330
00331 lvar=lenstr(vinfo(1))
00332 ierr=nf_def_var(ncid,vinfo(1)(1:lvar),NF_FTYPE,
00333 & 2,pgrd,fltTemp)
00334 lvar=lenstr(vinfo(2))
00335 ierr=nf_put_att_text(ncid,fltTemp,'long_name',lvar,
00336 & vinfo(2)(1:lvar))
00337 lvar=lenstr(vinfo(3))
00338 ierr=nf_put_att_text(ncid,fltTemp,'units',lvar,
00339 & vinfo(3)(1:lvar))
00340
00341 endif
00342
00343 # ifdef SALINITY
00344
00345 if (wrtflt(indxfltSalt)) then
00346
00347
00348
00349 vinfo(1)='salt'
00350 vinfo(2)='salinity'
00351 vinfo(3)='PSU'
00352
00353 lvar=lenstr(vinfo(1))
00354 ierr=nf_def_var(ncid,vinfo(1)(1:lvar),NF_FTYPE,
00355 & 2,pgrd,fltSal)
00356 lvar=lenstr(vinfo(2))
00357 ierr=nf_put_att_text(ncid,fltSal,'long_name',lvar,
00358 & vinfo(2)(1:lvar))
00359 lvar=lenstr(vinfo(3))
00360 ierr=nf_put_att_text(ncid,fltSal,'units',lvar,
00361 & vinfo(3)(1:lvar))
00362 endif
00363 # endif
00364
00365 if (wrtflt(indxfltRho)) then
00366
00367
00368 vinfo(1)='rho'
00369 vinfo(2)='density anomaly'
00370 vinfo(3)='kilogram meter-3'
00371
00372 lvar=lenstr(vinfo(1))
00373 ierr=nf_def_var(ncid,vinfo(1)(1:lvar),NF_FTYPE,
00374 & 2,pgrd,fltDen)
00375 lvar=lenstr(vinfo(2))
00376 ierr=nf_put_att_text(ncid,fltDen,'long_name',lvar,
00377 & vinfo(2)(1:lvar))
00378 lvar=lenstr(vinfo(3))
00379 ierr=nf_put_att_text(ncid,fltDen,'units',lvar,
00380 & vinfo(3)(1:lvar))
00381
00382 endif
00383
00384 # endif /* SOLVE3D */
00385
00386 if (wrtflt(indxfltVel)) then
00387
00388
00389
00390 vinfo(1)='vel'
00391 vinfo(2)='mean module velocity'
00392 vinfo(3)='meter/s'
00393
00394 lvar=lenstr(vinfo(1))
00395 ierr=nf_def_var(ncid,vinfo(1)(1:lvar),NF_FTYPE,
00396 & 2,pgrd,fltVel)
00397 lvar=lenstr(vinfo(2))
00398 ierr=nf_put_att_text(ncid,fltVel,'long_name',lvar,
00399 & vinfo(2)(1:lvar))
00400 lvar=lenstr(vinfo(3))
00401 ierr=nf_put_att_text(ncid,fltVel,'units',lvar,
00402 & vinfo(3)(1:lvar))
00403 endif
00404
00405 # ifdef IBM
00406
00407
00408 vinfo(1)='Age'
00409 vinfo(2)='days from initialization'
00410 vinfo(3)='days'
00411
00412 lvar=lenstr(vinfo(1))
00413 ierr=nf_def_var(ncid,vinfo(1)(1:lvar),NF_FTYPE,
00414 & 2,pgrd,fltAge)
00415 lvar=lenstr(vinfo(2))
00416 ierr=nf_put_att_text(ncid,fltAge,'long_name',lvar,
00417 & vinfo(2)(1:lvar))
00418 lvar=lenstr(vinfo(3))
00419 ierr=nf_put_att_text(ncid,fltAge,'units',lvar,
00420 & vinfo(3)(1:lvar))
00421 vinfo(1)='Zoe'
00422 vinfo(2)='Zoe stage'
00423 vinfo(3)='1-ZoeI:4-ZoeIV 5-megalopa'
00424
00425 lvar=lenstr(vinfo(1))
00426 ierr=nf_def_var(ncid,vinfo(1)(1:lvar),NF_FTYPE,
00427 & 2,pgrd,fltZoe)
00428 lvar=lenstr(vinfo(2))
00429 ierr=nf_put_att_text(ncid,fltZoe,'long_name',lvar,
00430 & vinfo(2)(1:lvar))
00431 lvar=lenstr(vinfo(3))
00432 ierr=nf_put_att_text(ncid,fltZoe,'units',lvar,
00433 & vinfo(3)(1:lvar))
00434 # endif
00435
00436
00437
00438
00439 ierr=nf_enddef(ncid)
00440 res=.true.
00441 write(stdout,'(6x,4A,1x,A,i4)') 'DEF_FLOATS - Created ',
00442 & 'new netCDF file ''', fltname(1:lstr), '''.'
00443 & MYID
00444
00445
00446
00447
00448
00449
00450
00451
00452 elseif (ncid.eq.-1) then
00453
00454 c write(*,*) 'I TRY TO OPEN THE FILE (XA)'
00455
00456 ierr=nf_open (fltname(1:lstr), nf_write, ncid)
00457
00458
00459
00460
00461 if (ierr. ne. nf_noerr) then
00462 #if defined MPI & !defined PARALLEL_FILES
00463 if (mynode.eq.0) then
00464 create_new_file=.true.
00465 goto 10
00466 else
00467 write(stdout,'(/1x,4A,2x,A,I4/)') 'DEF_HIS/AVG ERROR: ',
00468 & 'Cannot open file ''', fltname(1:lstr), '''.'
00469 & MYID
00470 goto 99
00471 endif
00472 #else
00473 create_new_file=.true.
00474 goto 10
00475 #endif
00476 endif
00477
00478
00479
00480
00481
00482
00483
00484
00485 ierr=nf_inq_varid (ncid, 'time_step', fltTstep)
00486 if (ierr .ne. nf_noerr) then
00487 write(stdout,1) 'time_step', fltname(1:lstr)
00488 goto 99
00489 endif
00490
00491
00492
00493
00494 lvar=lenstr(vname(1,indxTime))
00495 ierr=nf_inq_varid (ncid,vname(1,indxTime)(1:lvar),fltTime)
00496 if (ierr .ne. nf_noerr) then
00497 write(stdout,1) vname(1,indxTime)(1:lvar), fltname(1:lstr)
00498 goto 99
00499 endif
00500
00501
00502
00503
00504 # ifdef SPHERICAL
00505
00506 vinfo(1)='lon'
00507 lvar=lenstr(vinfo(1))
00508 ierr=nf_inq_varid (ncid,vinfo(1)(1:lvar),fltLon)
00509 if (ierr .ne. nf_noerr) then
00510 write(stdout,1) vinfo(1)(1:lvar), fltname(1:lstr)
00511 goto 99
00512 endif
00513
00514 vinfo(1)='lat'
00515 lvar=lenstr(vinfo(1))
00516 ierr=nf_inq_varid (ncid,vinfo(1)(1:lvar),fltLat)
00517 if (ierr .ne. nf_noerr) then
00518 write(stdout,1) vinfo(1)(1:lvar), fltname(1:lstr)
00519 goto 99
00520 endif
00521
00522 # else
00523
00524
00525 vinfo(1)='x'
00526 lvar=lenstr(vinfo(1))
00527 ierr=nf_inq_varid (ncid,vinfo(1)(1:lvar),fltX)
00528 if (ierr .ne. nf_noerr) then
00529 write(stdout,1) vinfo(1)(1:lvar), fltname(1:lstr)
00530 goto 99
00531 endif
00532
00533 vinfo(1)='y'
00534 lvar=lenstr(vinfo(1))
00535 ierr=nf_inq_varid (ncid,vinfo(1)(1:lvar),fltY)
00536 if (ierr .ne. nf_noerr) then
00537 write(stdout,1) vinfo(1)(1:lvar), fltname(1:lstr)
00538 goto 99
00539 endif
00540
00541 # endif /* SPHERICAL */
00542
00543 if (wrtflt(indxfltGrd)) then
00544
00545
00546
00547 vinfo(1)='grid_level'
00548 lvar=lenstr(vinfo(1))
00549 ierr=nf_inq_varid (ncid,vinfo(1)(1:lvar),fltGlevel)
00550 if (ierr .ne. nf_noerr) then
00551 write(stdout,1) vinfo(1)(1:lvar), fltname(1:lstr)
00552 goto 99
00553 endif
00554
00555
00556
00557
00558 vinfo(1)='Xgrid'
00559 lvar=lenstr(vinfo(1))
00560 ierr=nf_inq_varid (ncid,vinfo(1)(1:lvar),fltXgrd)
00561 if (ierr .ne. nf_noerr) then
00562 write(stdout,1) vinfo(1)(1:lvar), fltname(1:lstr)
00563 goto 99
00564 endif
00565
00566
00567
00568
00569 vinfo(1)='Ygrid'
00570 lvar=lenstr(vinfo(1))
00571 ierr=nf_inq_varid (ncid,vinfo(1)(1:lvar),fltYgrd)
00572 if (ierr .ne. nf_noerr) then
00573 write(stdout,1) vinfo(1)(1:lvar), fltname(1:lstr)
00574 goto 99
00575 endif
00576
00577
00578 # ifdef SOLVE3D
00579
00580
00581
00582 vinfo(1)='Zgrid'
00583 lvar=lenstr(vinfo(1))
00584 ierr=nf_inq_varid (ncid,vinfo(1)(1:lvar),fltZgrd)
00585 if (ierr .ne. nf_noerr) then
00586 write(stdout,1) vinfo(1)(1:lvar), fltname(1:lstr)
00587 goto 99
00588 endif
00589 # endif /* SOLVE3D */
00590
00591 endif
00592
00593 # ifdef SOLVE3D
00594
00595
00596
00597
00598 vinfo(1)='depth'
00599 lvar=lenstr(vinfo(1))
00600 ierr=nf_inq_varid (ncid,vinfo(1)(1:lvar),fltDepth)
00601 if (ierr .ne. nf_noerr) then
00602 write(stdout,1) vinfo(1)(1:lvar), fltname(1:lstr)
00603 goto 99
00604 endif
00605
00606 if (wrtflt(indxfltTemp)) then
00607
00608
00609 vinfo(1)='temp'
00610 lvar=lenstr(vinfo(1))
00611 ierr=nf_inq_varid (ncid,vinfo(1)(1:lvar),fltTemp)
00612 if (ierr .ne. nf_noerr) then
00613 write(stdout,1) vinfo(1)(1:lvar), fltname(1:lstr)
00614 goto 99
00615 endif
00616 endif
00617
00618 # ifdef SALINITY
00619 if (wrtflt(indxfltSalt)) then
00620
00621
00622 vinfo(1)='salt'
00623 lvar=lenstr(vinfo(1))
00624 ierr=nf_inq_varid (ncid,vinfo(1)(1:lvar),fltSal)
00625 if (ierr .ne. nf_noerr) then
00626 write(stdout,1) vinfo(1)(1:lvar), fltname(1:lstr)
00627 goto 99
00628 endif
00629 endif
00630 # endif
00631
00632 if (wrtflt(indxfltRho)) then
00633
00634
00635 vinfo(1)='rho'
00636 lvar=lenstr(vinfo(1))
00637 ierr=nf_inq_varid (ncid,vinfo(1)(1:lvar),fltDen)
00638 if (ierr .ne. nf_noerr) then
00639 write(stdout,1) vinfo(1)(1:lvar), fltname(1:lstr)
00640 goto 99
00641 endif
00642 endif
00643
00644 # endif /* SOLVE3D */
00645
00646 if (wrtflt(indxfltVel)) then
00647
00648 vinfo(1)='vel'
00649 lvar=lenstr(vinfo(1))
00650 ierr=nf_inq_varid (ncid,vinfo(1)(1:lvar),fltVel)
00651 if (ierr .ne. nf_noerr) then
00652 write(stdout,1) vinfo(1)(1:lvar), fltname(1:lstr)
00653 goto 99
00654 endif
00655 endif
00656
00657
00658
00659 ierr=nf_inq_dimid(ncid,'ftime',ftimedim)
00660 ierr=nf_inq_dimlen(ncid,ftimedim,nrecflt)
00661 nrecflt=nrecflt+1
00662 c write(*,*)'nrecflt = ',nrecflt
00663 if (ierr .ne. nf_noerr) then
00664 write(*,*)' DEF_FLOATS ERROR: cannot determine nrecflt '
00665 endif
00666
00667
00668
00669
00670 write(*,'(6x,2A,i4,1x,A,i4)') 'DEF_FLOATS -- Opened ',
00671 & 'existing file from record = ',nrecflt
00672
00673 endif
00674
00675 1 format(/1x,'DEF_HIS/AVG ERROR: Cannot find variable ''',
00676 & A, ''' in netCDF file ''', A, '''.'/)
00677
00678 11 format(/' DEF_FLOATS - unable to create floats file: ',a)
00679 20 format(/' DEF_FLOATS - error while writing variable: ',a,
00680 & /,15x,'into floats file: ',a)
00681
00682 99 return
00683 end
00684 #else
00685 subroutine def_floats_empty
00686 return
00687 end
00688 #endif /* FLOATS */