3 |
|
|
4 |
#include "MNC_OPTIONS.h" |
#include "MNC_OPTIONS.h" |
5 |
|
|
6 |
C================================================================== |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
7 |
|
|
8 |
SUBROUTINE MNC_FILE_CREATE( |
SUBROUTINE MNC_FILE_CREATE( |
9 |
I myThid, |
I myThid, |
20 |
RETURN |
RETURN |
21 |
END |
END |
22 |
|
|
23 |
C================================================================== |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
24 |
|
|
25 |
SUBROUTINE MNC_FILE_OPEN( |
SUBROUTINE MNC_FILE_OPEN( |
26 |
I myThid, |
I myThid, |
86 |
RETURN |
RETURN |
87 |
END |
END |
88 |
|
|
89 |
C================================================================== |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
90 |
|
|
91 |
SUBROUTINE MNC_FILE_ADD_ATTR_STR( |
SUBROUTINE MNC_FILE_ADD_ATTR_STR( |
92 |
I myThid, |
I myThid, |
104 |
RETURN |
RETURN |
105 |
END |
END |
106 |
|
|
107 |
C================================================================== |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
108 |
|
|
109 |
SUBROUTINE MNC_FILE_ADD_ATTR_DBL( |
SUBROUTINE MNC_FILE_ADD_ATTR_DBL( |
110 |
I myThid, |
I myThid, |
124 |
RETURN |
RETURN |
125 |
END |
END |
126 |
|
|
127 |
C================================================================== |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
128 |
|
|
129 |
SUBROUTINE MNC_FILE_ADD_ATTR_REAL( |
SUBROUTINE MNC_FILE_ADD_ATTR_REAL( |
130 |
I myThid, |
I myThid, |
144 |
RETURN |
RETURN |
145 |
END |
END |
146 |
|
|
147 |
C================================================================== |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
148 |
|
|
149 |
SUBROUTINE MNC_FILE_ADD_ATTR_INT( |
SUBROUTINE MNC_FILE_ADD_ATTR_INT( |
150 |
I myThid, |
I myThid, |
163 |
RETURN |
RETURN |
164 |
END |
END |
165 |
|
|
166 |
C================================================================== |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
167 |
|
|
168 |
SUBROUTINE MNC_FILE_ADD_ATTR_ANY( |
SUBROUTINE MNC_FILE_ADD_ATTR_ANY( |
169 |
I myThid, |
I myThid, |
235 |
RETURN |
RETURN |
236 |
END |
END |
237 |
|
|
238 |
C================================================================== |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
239 |
|
|
240 |
SUBROUTINE MNC_FILE_CLOSE( |
SUBROUTINE MNC_FILE_CLOSE( |
241 |
I myThid, |
I myThid, |
309 |
RETURN |
RETURN |
310 |
END |
END |
311 |
|
|
312 |
C================================================================== |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
313 |
|
|
314 |
SUBROUTINE MNC_FILE_CLOSE_ALL_MATCHING( |
SUBROUTINE MNC_FILE_CLOSE_ALL_MATCHING( |
315 |
I myThid, |
I myThid, |
343 |
RETURN |
RETURN |
344 |
END |
END |
345 |
|
|
346 |
C================================================================== |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
347 |
|
|
348 |
SUBROUTINE MNC_FILE_CLOSE_ALL( |
SUBROUTINE MNC_FILE_CLOSE_ALL( |
349 |
I myThid ) |
I myThid ) |
372 |
RETURN |
RETURN |
373 |
END |
END |
374 |
|
|
375 |
C================================================================== |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
376 |
|
|
377 |
SUBROUTINE MNC_FILE_REDEF( |
SUBROUTINE MNC_FILE_REDEF( |
378 |
I myThid, |
I myThid, |
417 |
RETURN |
RETURN |
418 |
END |
END |
419 |
|
|
420 |
C================================================================== |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
421 |
|
|
422 |
SUBROUTINE MNC_FILE_ENDDEF( |
SUBROUTINE MNC_FILE_ENDDEF( |
423 |
I myThid, |
I myThid, |
462 |
RETURN |
RETURN |
463 |
END |
END |
464 |
|
|
465 |
C================================================================== |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
466 |
|
|
467 |
SUBROUTINE MNC_FILE_READALL( |
SUBROUTINE MNC_FILE_READALL( |
468 |
I myThid, |
I myThid, |
470 |
|
|
471 |
implicit none |
implicit none |
472 |
#include "netcdf.inc" |
#include "netcdf.inc" |
|
#include "mnc_common.h" |
|
473 |
#include "EEPARAMS.h" |
#include "EEPARAMS.h" |
474 |
|
|
475 |
C Arguments |
C Arguments |
480 |
integer IFNBLNK, ILNBLNK |
integer IFNBLNK, ILNBLNK |
481 |
|
|
482 |
C Local Variables |
C Local Variables |
483 |
|
integer ierr, nff,nlf |
484 |
|
character*(MAX_LEN_MBUF) msgbuf |
485 |
|
|
486 |
|
nff = IFNBLNK(fname) |
487 |
|
nlf = ILNBLNK(fname) |
488 |
|
CALL MNC_FILE_TRY_READ(myThid, fname, ierr) |
489 |
|
write(msgbuf,'(3a)') 'MNC ERROR: cannot open file ''', |
490 |
|
& fname(nff:nlf), ''' for read/write access' |
491 |
|
CALL MNC_HANDLE_ERR(myThid, ierr, msgbuf) |
492 |
|
|
493 |
|
RETURN |
494 |
|
END |
495 |
|
|
496 |
|
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
497 |
|
|
498 |
|
SUBROUTINE MNC_FILE_TRY_READ( |
499 |
|
I myThid, |
500 |
|
I fname, |
501 |
|
I ierr ) |
502 |
|
|
503 |
|
implicit none |
504 |
|
#include "netcdf.inc" |
505 |
|
#include "mnc_common.h" |
506 |
|
#include "EEPARAMS.h" |
507 |
|
|
508 |
|
C Arguments |
509 |
|
integer myThid, ierr |
510 |
|
character*(*) fname |
511 |
|
|
512 |
|
C Functions |
513 |
|
integer IFNBLNK, ILNBLNK |
514 |
|
|
515 |
|
C Local Variables |
516 |
integer i,j,k, fid, err, ndim,nvar,ngat,unlimid |
integer i,j,k, fid, err, ndim,nvar,ngat,unlimid |
517 |
integer dlen, id, indf, xtype, nat, nff,nlf, iv |
integer dlen, id, indf, xtype, nat, nff,nlf, iv |
518 |
integer ndv, did, ns,ne, n1,n2, indg, indv |
integer ndv, did, ns,ne, n1,n2, indg, indv |
525 |
nff = IFNBLNK(fname) |
nff = IFNBLNK(fname) |
526 |
nlf = ILNBLNK(fname) |
nlf = ILNBLNK(fname) |
527 |
err = NF_OPEN(fname, NF_WRITE, fid) |
err = NF_OPEN(fname, NF_WRITE, fid) |
528 |
write(msgbuf,'(3a)') 'MNC ERROR: cannot open file ''', |
ierr = NF_NOERR |
529 |
& fname(nff:nlf), ''' for read/write access' |
IF (err .NE. NF_NOERR) THEN |
530 |
CALL MNC_HANDLE_ERR(myThid, err, msgbuf) |
ierr = err |
531 |
|
RETURN |
532 |
|
ENDIF |
533 |
CALL MNC_GET_NEXT_EMPTY_IND(myThid,MNC_MAX_ID,mnc_f_names,indf) |
CALL MNC_GET_NEXT_EMPTY_IND(myThid,MNC_MAX_ID,mnc_f_names,indf) |
534 |
mnc_f_names(indf)(1:(nlf-nff+1)) = fname(nff:nlf) |
mnc_f_names(indf)(1:(nlf-nff+1)) = fname(nff:nlf) |
535 |
mnc_f_info(indf,2) = fid |
mnc_f_info(indf,2) = fid |