/[MITgcm]/MITgcm/pkg/mnc/mnc_var.F
ViewVC logotype

Diff of /MITgcm/pkg/mnc/mnc_var.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.14 by edhill, Mon Mar 29 03:33:52 2004 UTC revision 1.22 by edhill, Fri Mar 10 22:01:54 2006 UTC
# Line 4  C $Name$ Line 4  C $Name$
4  #include "MNC_OPTIONS.h"  #include "MNC_OPTIONS.h"
5                
6  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7  CBOP  CBOP 1
8  C     !ROUTINE: MNC_VAR_INIT_DBL  C     !ROUTINE: MNC_VAR_INIT_DBL
9    
10  C     !INTERFACE:  C     !INTERFACE:
# Line 12  C     !INTERFACE: Line 12  C     !INTERFACE:
12       I     fname,       I     fname,
13       I     gname,       I     gname,
14       I     vname,       I     vname,
15         I     irv,
16       I     myThid )       I     myThid )
17    
18  C     !DESCRIPTION:  C     !DESCRIPTION:
# Line 23  C     !USES: Line 24  C     !USES:
24  #include "netcdf.inc"  #include "netcdf.inc"
25    
26  C     !INPUT PARAMETERS:  C     !INPUT PARAMETERS:
27        integer myThid        integer irv,myThid
28        character*(*) fname,gname,vname        character*(*) fname,gname,vname
29  CEOP  CEOP
30    
31        CALL MNC_VAR_INIT_ANY(fname,gname,vname, NF_DOUBLE, myThid)        CALL MNC_VAR_INIT_ANY(fname,gname,vname, NF_DOUBLE, irv,myThid)
32        RETURN        RETURN
33        END        END
34    
35  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
36  CBOP  CBOP 1
37  C     !ROUTINE: MNC_VAR_INIT_REAL  C     !ROUTINE: MNC_VAR_INIT_REAL
38    
39  C     !INTERFACE:  C     !INTERFACE:
# Line 40  C     !INTERFACE: Line 41  C     !INTERFACE:
41       I     fname,       I     fname,
42       I     gname,       I     gname,
43       I     vname,       I     vname,
44         I     irv,
45       I     myThid )       I     myThid )
46    
47  C     !DESCRIPTION:  C     !DESCRIPTION:
# Line 51  C     !USES: Line 53  C     !USES:
53  #include "netcdf.inc"  #include "netcdf.inc"
54    
55  C     !INPUT PARAMETERS:  C     !INPUT PARAMETERS:
56        integer myThid        integer irv,myThid
57        character*(*) fname,gname,vname        character*(*) fname,gname,vname
58  CEOP  CEOP
59    
60        CALL MNC_VAR_INIT_ANY(fname,gname,vname, NF_FLOAT, myThid)        CALL MNC_VAR_INIT_ANY(fname,gname,vname, NF_FLOAT, irv,myThid)
61        RETURN        RETURN
62        END        END
63    
64  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
65  CBOP  CBOP 1
66  C     !ROUTINE: MNC_VAR_INIT_INT  C     !ROUTINE: MNC_VAR_INIT_INT
67    
68  C     !INTERFACE:  C     !INTERFACE:
# Line 68  C     !INTERFACE: Line 70  C     !INTERFACE:
70       I     fname,       I     fname,
71       I     gname,       I     gname,
72       I     vname,       I     vname,
73         I     irv,
74       I     myThid )       I     myThid )
75    
76  C     !DESCRIPTION:  C     !DESCRIPTION:
# Line 78  C     !USES: Line 81  C     !USES:
81  #include "netcdf.inc"  #include "netcdf.inc"
82    
83  C     !INPUT PARAMETERS:  C     !INPUT PARAMETERS:
84        integer myThid        integer irv,myThid
85        character*(*) fname,gname,vname        character*(*) fname,gname,vname
86  CEOP  CEOP
87    
88        CALL MNC_VAR_INIT_ANY(fname,gname,vname, NF_INT, myThid)        CALL MNC_VAR_INIT_ANY(fname,gname,vname, NF_INT, irv,myThid)
89        RETURN        RETURN
90        END        END
91    
92  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
93  CBOP  CBOP 1
94  C     !ROUTINE: MNC_VAR_INIT_ANY  C     !ROUTINE: MNC_VAR_INIT_ANY
95    
96  C     !INTERFACE:  C     !INTERFACE:
# Line 96  C     !INTERFACE: Line 99  C     !INTERFACE:
99       I     gname,       I     gname,
100       I     vname,       I     vname,
101       I     vtype,       I     vtype,
102         I     irv,
103       I     myThid )       I     myThid )
104    
105  C     !DESCRIPTION:  C     !DESCRIPTION:
# Line 109  C     !USES: Line 113  C     !USES:
113  #include "EEPARAMS.h"  #include "EEPARAMS.h"
114    
115  C     !INPUT PARAMETERS:  C     !INPUT PARAMETERS:
116        integer myThid        integer irv,myThid
117        character*(*) fname,gname,vname        character*(*) fname,gname,vname
118        integer vtype        integer vtype
119    CEOP
120    
121  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
122        integer i,j,k, n, indf,indv, fid, nd, ngrid, is,ie, err        integer i,j,k, n, nf, indf,indv, fid, nd, ngrid, is,ie, err
123        integer vid, nv, ind_g_finfo, needed, nvar        integer vid, nv, ind_g_finfo, needed, nvar
124        character*(MAX_LEN_MBUF) msgbuf        character*(MAX_LEN_MBUF) msgbuf
125        integer ids(20)        integer ids(20)
126        integer lenf,leng,lenv        integer lenf,leng,lenv
127  CEOP  
128  C     Functions  C     Functions
129        integer ILNBLNK        integer ILNBLNK
130    
# Line 129  C     Strip trailing spaces Line 134  C     Strip trailing spaces
134        lenv = ILNBLNK(vname)        lenv = ILNBLNK(vname)
135    
136  C     Check that the file is open  C     Check that the file is open
137        CALL MNC_GET_IND(MNC_MAX_ID, fname, mnc_f_names, indf, myThid)        CALL MNC_GET_IND(MNC_MAX_FID, fname, mnc_f_names, indf, myThid)
138        IF (indf .LT. 1) THEN        IF (indf .LT. 1) THEN
139          write(msgbuf,'(3a)') 'MNC ERROR: file ''', fname,          nf = ILNBLNK( fname )
140            write(msgbuf,'(3a)') 'MNC ERROR: file ''', fname(1:nf),
141       &       ''' must be opened first'       &       ''' must be opened first'
142          CALL print_error(msgbuf, mythid)          CALL print_error(msgbuf, mythid)
143          stop 'ABNORMAL END: S/R MNC_VAR_INIT_ANY'          stop 'ABNORMAL END: S/R MNC_VAR_INIT_ANY'
# Line 193  C     Check if the variable is already d Line 199  C     Check if the variable is already d
199              stop 'ABNORMAL END: S/R MNC_VAR_INIT_ANY'              stop 'ABNORMAL END: S/R MNC_VAR_INIT_ANY'
200            ELSE            ELSE
201  C           Its OK, the variable and grid names are the same  C           Its OK, the variable and grid names are the same
202                irv = 0
203              RETURN              RETURN
204            ENDIF            ENDIF
205          ENDIF          ENDIF
206        ENDDO        ENDDO
207    
208          irv = 1
209    
210  C     Add the variable definition  C     Add the variable definition
211        CALL MNC_FILE_REDEF(fname, myThid)        CALL MNC_FILE_REDEF(fname, myThid)
212        err = NF_DEF_VAR(fid, vname, vtype, nd, ids, vid)        err = NF_DEF_VAR(fid, vname, vtype, nd, ids, vid)
213        write(msgbuf,'(5a)') 'defining variable ''', vname(1:lenv),        IF ( err .NE. NF_NOERR ) THEN
214            write(msgbuf,'(2a)') 'ERROR:  MNC will not ',
215         &       'overwrite variables in existing NetCDF'
216            CALL PRINT_ERROR( msgBuf, myThid )
217            write(msgbuf,'(2a)') '        files.  Please',
218         &       ' make sure that you are not trying to'
219            CALL PRINT_ERROR( msgBuf, myThid )
220            write(msgbuf,'(2a)') '        overwrite output',
221         &       'files from a previous model run!'
222            CALL PRINT_ERROR( msgBuf, myThid )
223            write(msgbuf,'(5a)') 'defining variable ''', vname(1:lenv),
224       &     ''' in file ''', fname(1:lenf), ''''       &     ''' in file ''', fname(1:lenf), ''''
225        CALL MNC_HANDLE_ERR(err, msgbuf, myThid)          CALL MNC_HANDLE_ERR(err, msgbuf, myThid)
226          ENDIF
227    
228  C     Success, so save the variable info  C     Success, so save the variable info
229        CALL MNC_GET_NEXT_EMPTY_IND(MNC_MAX_ID,mnc_v_names,indv, myThid)        CALL MNC_GET_NEXT_EMPTY_IND(MNC_MAX_ID,mnc_v_names,'mnc_v_names',
230         &     indv, myThid)
231        mnc_v_names(indv)(1:lenv) = vname(1:lenv)        mnc_v_names(indv)(1:lenv) = vname(1:lenv)
232        nv = mnc_fv_ids(indf,1)        nv = mnc_fv_ids(indf,1)
233        i = 2 + nv*3        i = 2 + nv*3
# Line 219  C     Success, so save the variable info Line 240  C     Success, so save the variable info
240        END        END
241    
242  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
243  CBOP  CBOP 1
244  C     !ROUTINE: MNC_VAR_ADD_ATTR_STR  C     !ROUTINE: MNC_VAR_ADD_ATTR_STR
245    
246  C     !INTERFACE:  C     !INTERFACE:
# Line 241  C     !INPUT PARAMETERS: Line 262  C     !INPUT PARAMETERS:
262        integer myThid        integer myThid
263        character*(*) fname,vname,atname,sval        character*(*) fname,vname,atname,sval
264  CEOP  CEOP
265          real*8 dZero(1)
266          real*4 sZero(1)
267          integer iZero(1)
268          dZero(1) = 0.0D0
269          sZero(1) = 0.0
270          iZero(1) = 0
271    
272        CALL MNC_VAR_ADD_ATTR_ANY(fname,vname,atname,        CALL MNC_VAR_ADD_ATTR_ANY(fname,vname,atname,
273       &     1, sval, 0, 0.0D0, 0.0, 0, myThid)       &     1, sval, 0, dZero, sZero, iZero, myThid)
274        RETURN        RETURN
275        END        END
276  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
277  CBOP  CBOP 1
278  C     !ROUTINE: MNC_VAR_ADD_ATTR_DBL  C     !ROUTINE: MNC_VAR_ADD_ATTR_DBL
279    
280  C     !INTERFACE:  C     !INTERFACE:
# Line 271  C     !INPUT PARAMETERS: Line 298  C     !INPUT PARAMETERS:
298        character*(*) fname,vname,atname        character*(*) fname,vname,atname
299        REAL*8 dval(*)        REAL*8 dval(*)
300  CEOP  CEOP
301          real*4 sZero(1)
302          integer iZero(1)
303          sZero(1) = 0.0
304          iZero(1) = 0
305    
306        CALL MNC_VAR_ADD_ATTR_ANY(fname,vname,atname,        CALL MNC_VAR_ADD_ATTR_ANY(fname,vname,atname,
307       &     2, ' ', nv, dval, 0.0, 0, myThid)       &     2, ' ', nv, dval, sZero, iZero, myThid)
308        RETURN        RETURN
309        END        END
310    
311  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
312  CBOP  CBOP 1
313  C     !ROUTINE:  C     !ROUTINE: MNC_VAR_ADD_ATTR_REAL
314    
315  C     !INTERFACE:  C     !INTERFACE:
316        SUBROUTINE MNC_VAR_ADD_ATTR_REAL(        SUBROUTINE MNC_VAR_ADD_ATTR_REAL(
# Line 302  C     !INPUT PARAMETERS: Line 333  C     !INPUT PARAMETERS:
333        character*(*) fname,vname,atname        character*(*) fname,vname,atname
334        REAL*4 rval(*)        REAL*4 rval(*)
335  CEOP  CEOP
336          real*8 dZero(1)
337          integer iZero(1)
338          dZero(1) = 0.0D0
339          iZero(1) = 0
340    
341        CALL MNC_VAR_ADD_ATTR_ANY(fname,vname,atname,        CALL MNC_VAR_ADD_ATTR_ANY(fname,vname,atname,
342       &     3, ' ', nv, 0.0D0, rval, 0, myThid)       &     3, ' ', nv, dZero, rval, iZero, myThid)
343        RETURN        RETURN
344        END        END
345    
346  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
347  CBOP  CBOP 1
348  C     !ROUTINE: MNC_VAR_ADD_ATTR_INT  C     !ROUTINE: MNC_VAR_ADD_ATTR_INT
349    
350  C     !INTERFACE:  C     !INTERFACE:
# Line 333  C     !INPUT PARAMETERS: Line 368  C     !INPUT PARAMETERS:
368        character*(*) fname,vname,atname        character*(*) fname,vname,atname
369        integer ival(*)        integer ival(*)
370  CEOP  CEOP
371          real*8 dZero(1)
372          real*4 sZero(1)
373          dZero(1) = 0.0D0
374          sZero(1) = 0.0
375    
376        CALL MNC_VAR_ADD_ATTR_ANY(fname,vname,atname,        CALL MNC_VAR_ADD_ATTR_ANY(fname,vname,atname,
377       &     4, ' ', nv, 0.0D0, 0.0, ival, myThid)       &     4, ' ', nv, dZero, sZero, ival, myThid)
378        RETURN        RETURN
379        END        END
380    
381  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
382  CBOP  CBOP 1
383  C     !ROUTINE: MNC_VAR_ADD_ATTR_ANY  C     !ROUTINE: MNC_VAR_ADD_ATTR_ANY
384    
385  C     !INTERFACE:  C     !INTERFACE:
# Line 367  C     !INPUT PARAMETERS: Line 406  C     !INPUT PARAMETERS:
406        REAL*8 dv(*)        REAL*8 dv(*)
407        REAL*4 rv(*)        REAL*4 rv(*)
408        integer iv(*)        integer iv(*)
409    CEOP
410    
411  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
412        integer n, indf,ind_fv_ids, fid,vid, err        integer n, indf,ind_fv_ids, fid,vid, err
413        character*(MAX_LEN_MBUF) msgbuf        character*(MAX_LEN_MBUF) msgbuf
414        integer lenf,lenv,lenat,lens        integer lenf,lenv,lenat,lens
415  CEOP  
416  C     Functions  C     Functions
417        integer ILNBLNK        integer ILNBLNK
418    

Legend:
Removed from v.1.14  
changed lines
  Added in v.1.22

  ViewVC Help
Powered by ViewVC 1.1.22