/[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.13 by edhill, Fri Mar 19 03:28:37 2004 UTC revision 1.18 by edhill, Sun Dec 26 15:24:50 2004 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 1
8    C     !ROUTINE: MNC_VAR_INIT_DBL
9    
10    C     !INTERFACE:
11        SUBROUTINE MNC_VAR_INIT_DBL(        SUBROUTINE MNC_VAR_INIT_DBL(
12       I     fname,       I     fname,
13       I     gname,       I     gname,
14       I     vname,       I     vname,
15       I     myThid )       I     myThid )
16    
17    C     !DESCRIPTION:
18    C     Create a double-precision real variable within a NetCDF file
19    C     context.
20          
21    C     !USES:
22        implicit none        implicit none
23  #include "netcdf.inc"  #include "netcdf.inc"
24    
25  C     Arguments  C     !INPUT PARAMETERS:
26        integer myThid        integer myThid
27        character*(*) fname,gname,vname        character*(*) fname,gname,vname
28    CEOP
29    
30        CALL MNC_VAR_INIT_ANY(fname,gname,vname, NF_DOUBLE, myThid)        CALL MNC_VAR_INIT_ANY(fname,gname,vname, NF_DOUBLE, myThid)
31        RETURN        RETURN
32        END        END
33    
34  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
35    CBOP 1
36    C     !ROUTINE: MNC_VAR_INIT_REAL
37    
38    C     !INTERFACE:
39        SUBROUTINE MNC_VAR_INIT_REAL(        SUBROUTINE MNC_VAR_INIT_REAL(
40       I     fname,       I     fname,
41       I     gname,       I     gname,
42       I     vname,       I     vname,
43       I     myThid )       I     myThid )
44    
45    C     !DESCRIPTION:
46    C     Create a single-precision real variable within a NetCDF file
47    C     context.
48          
49    C     !USES:
50        implicit none        implicit none
51  #include "netcdf.inc"  #include "netcdf.inc"
52    
53  C     Arguments  C     !INPUT PARAMETERS:
54        integer myThid        integer myThid
55        character*(*) fname,gname,vname        character*(*) fname,gname,vname
56    CEOP
57    
58        CALL MNC_VAR_INIT_ANY(fname,gname,vname, NF_FLOAT, myThid)        CALL MNC_VAR_INIT_ANY(fname,gname,vname, NF_FLOAT, myThid)
59        RETURN        RETURN
60        END        END
61    
62  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
63    CBOP 1
64    C     !ROUTINE: MNC_VAR_INIT_INT
65    
66    C     !INTERFACE:
67        SUBROUTINE MNC_VAR_INIT_INT(        SUBROUTINE MNC_VAR_INIT_INT(
68       I     fname,       I     fname,
69       I     gname,       I     gname,
70       I     vname,       I     vname,
71       I     myThid )       I     myThid )
72    
73    C     !DESCRIPTION:
74    C     Create an integer variable within a NetCDF file context.
75      
76    C     !USES:
77        implicit none        implicit none
78  #include "netcdf.inc"  #include "netcdf.inc"
79    
80  C     Arguments  C     !INPUT PARAMETERS:
81        integer myThid        integer myThid
82        character*(*) fname,gname,vname        character*(*) fname,gname,vname
83    CEOP
84    
85        CALL MNC_VAR_INIT_ANY(fname,gname,vname, NF_INT, myThid)        CALL MNC_VAR_INIT_ANY(fname,gname,vname, NF_INT, myThid)
86        RETURN        RETURN
87        END        END
88    
89  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
90    CBOP 1
91    C     !ROUTINE: MNC_VAR_INIT_ANY
92    
93    C     !INTERFACE:
94        SUBROUTINE MNC_VAR_INIT_ANY(        SUBROUTINE MNC_VAR_INIT_ANY(
95       I     fname,       I     fname,
96       I     gname,       I     gname,
# Line 69  C---+----1----+----2----+----3----+----4 Line 98  C---+----1----+----2----+----3----+----4
98       I     vtype,       I     vtype,
99       I     myThid )       I     myThid )
100    
101    C     !DESCRIPTION:
102    C     General function for creating variables within a NetCDF file
103    C     context.
104          
105    C     !USES:
106        implicit none        implicit none
107  #include "netcdf.inc"  #include "netcdf.inc"
108  #include "mnc_common.h"  #include "mnc_common.h"
109  #include "EEPARAMS.h"  #include "EEPARAMS.h"
110    
111  C     Arguments  C     !INPUT PARAMETERS:
112        integer myThid        integer myThid
113        character*(*) fname,gname,vname        character*(*) fname,gname,vname
114        integer vtype        integer vtype
115    CEOP
116    
117  C     Functions  C     !LOCAL VARIABLES:
       integer ILNBLNK  
   
 C     Local Variables  
118        integer i,j,k, n, indf,indv, fid, nd, ngrid, is,ie, err        integer i,j,k, n, indf,indv, fid, nd, ngrid, is,ie, err
119        integer vid, nv, ind_g_finfo, needed, nvar        integer vid, nv, ind_g_finfo, needed, nvar
120        character*(MAX_LEN_MBUF) msgbuf        character*(MAX_LEN_MBUF) msgbuf
121        integer ids(20)        integer ids(20)
122        integer lenf,leng,lenv        integer lenf,leng,lenv
123    
124    C     Functions
125          integer ILNBLNK
126    
127  C     Strip trailing spaces  C     Strip trailing spaces
128        lenf = ILNBLNK(fname)        lenf = ILNBLNK(fname)
129        leng = ILNBLNK(gname)        leng = ILNBLNK(gname)
# Line 167  C           Its OK, the variable and gri Line 202  C           Its OK, the variable and gri
202  C     Add the variable definition  C     Add the variable definition
203        CALL MNC_FILE_REDEF(fname, myThid)        CALL MNC_FILE_REDEF(fname, myThid)
204        err = NF_DEF_VAR(fid, vname, vtype, nd, ids, vid)        err = NF_DEF_VAR(fid, vname, vtype, nd, ids, vid)
205        write(msgbuf,'(5a)') 'defining variable ''', vname(1:lenv),        IF ( err .NE. NF_NOERR ) THEN
206            write(msgbuf,'(2a)') 'ERROR:  MNC will not ',
207         &       'overwrite variables in existing NetCDF'
208            CALL PRINT_ERROR( msgBuf, myThid )
209            write(msgbuf,'(2a)') '        files.  Please',
210         &       ' make sure that you are not trying to'
211            CALL PRINT_ERROR( msgBuf, myThid )
212            write(msgbuf,'(2a)') '        overwrite output',
213         &       'files from a previous model run!'
214            CALL PRINT_ERROR( msgBuf, myThid )
215            write(msgbuf,'(5a)') 'defining variable ''', vname(1:lenv),
216       &     ''' in file ''', fname(1:lenf), ''''       &     ''' in file ''', fname(1:lenf), ''''
217        CALL MNC_HANDLE_ERR(err, msgbuf, myThid)          CALL MNC_HANDLE_ERR(err, msgbuf, myThid)
218          ENDIF
219    
220  C     Success, so save the variable info  C     Success, so save the variable info
221        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,indv, myThid)
# Line 185  C     Success, so save the variable info Line 231  C     Success, so save the variable info
231        END        END
232    
233  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
234    CBOP 1
235    C     !ROUTINE: MNC_VAR_ADD_ATTR_STR
236    
237    C     !INTERFACE:
238        SUBROUTINE MNC_VAR_ADD_ATTR_STR(        SUBROUTINE MNC_VAR_ADD_ATTR_STR(
239       I     fname,       I     fname,
240       I     vname,       I     vname,
# Line 193  C---+----1----+----2----+----3----+----4 Line 242  C---+----1----+----2----+----3----+----4
242       I     sval,       I     sval,
243       I     myThid )       I     myThid )
244    
245    C     !DESCRIPTION:
246    C     Subroutine for adding a character string attribute to a NetCDF
247    C     file.
248          
249    C     !USES:
250        implicit none        implicit none
251  C     Arguments  
252    C     !INPUT PARAMETERS:
253        integer myThid        integer myThid
254        character*(*) fname,vname,atname,sval        character*(*) fname,vname,atname,sval
255    CEOP
256          real*8 dZero(1)
257          real*4 sZero(1)
258          integer iZero(1)
259          dZero(1) = 0.0D0
260          sZero(1) = 0.0
261          iZero(1) = 0
262    
263        CALL MNC_VAR_ADD_ATTR_ANY(fname,vname,atname,        CALL MNC_VAR_ADD_ATTR_ANY(fname,vname,atname,
264       &     1, sval, 0, 0.0D0, 0.0, 0, myThid)       &     1, sval, 0, dZero, sZero, iZero, myThid)
265        RETURN        RETURN
266        END        END
267  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
268    CBOP 1
269    C     !ROUTINE: MNC_VAR_ADD_ATTR_DBL
270    
271    C     !INTERFACE:
272        SUBROUTINE MNC_VAR_ADD_ATTR_DBL(        SUBROUTINE MNC_VAR_ADD_ATTR_DBL(
273       I     fname,       I     fname,
274       I     vname,       I     vname,
# Line 212  C---+----1----+----2----+----3----+----4 Line 277  C---+----1----+----2----+----3----+----4
277       I     dval,       I     dval,
278       I     myThid )       I     myThid )
279    
280    C     !DESCRIPTION:
281    C     Subroutine for adding a double-precision real attribute to a
282    C     NetCDF file.
283      
284    C     !USES:
285        implicit none        implicit none
286  C     Arguments  
287    C     !INPUT PARAMETERS:
288        integer myThid,nv        integer myThid,nv
289        character*(*) fname,vname,atname        character*(*) fname,vname,atname
290        REAL*8 dval(*)        REAL*8 dval(*)
291    CEOP
292          real*4 sZero(1)
293          integer iZero(1)
294          sZero(1) = 0.0
295          iZero(1) = 0
296    
297        CALL MNC_VAR_ADD_ATTR_ANY(fname,vname,atname,        CALL MNC_VAR_ADD_ATTR_ANY(fname,vname,atname,
298       &     2, ' ', nv, dval, 0.0, 0, myThid)       &     2, ' ', nv, dval, sZero, iZero, myThid)
299        RETURN        RETURN
300        END        END
301    
302  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
303    CBOP 1
304    C     !ROUTINE: MNC_VAR_ADD_ATTR_REAL
305    
306    C     !INTERFACE:
307        SUBROUTINE MNC_VAR_ADD_ATTR_REAL(        SUBROUTINE MNC_VAR_ADD_ATTR_REAL(
308       I     fname,       I     fname,
309       I     vname,       I     vname,
# Line 233  C---+----1----+----2----+----3----+----4 Line 312  C---+----1----+----2----+----3----+----4
312       I     rval,       I     rval,
313       I     myThid )       I     myThid )
314    
315    C     !DESCRIPTION:
316    C     Subroutine for adding a single-precision real attribute to a
317    C     NetCDF file.
318      
319    C     !USES:
320        implicit none        implicit none
321  C     Arguments  
322    C     !INPUT PARAMETERS:
323        integer myThid,nv        integer myThid,nv
324        character*(*) fname,vname,atname        character*(*) fname,vname,atname
325        REAL*4 rval(*)        REAL*4 rval(*)
326    CEOP
327          real*8 dZero(1)
328          integer iZero(1)
329          dZero(1) = 0.0D0
330          iZero(1) = 0
331    
332        CALL MNC_VAR_ADD_ATTR_ANY(fname,vname,atname,        CALL MNC_VAR_ADD_ATTR_ANY(fname,vname,atname,
333       &     3, ' ', nv, 0.0D0, rval, 0, myThid)       &     3, ' ', nv, dZero, rval, iZero, myThid)
334        RETURN        RETURN
335        END        END
336    
337  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
338    CBOP 1
339    C     !ROUTINE: MNC_VAR_ADD_ATTR_INT
340    
341    C     !INTERFACE:
342        SUBROUTINE MNC_VAR_ADD_ATTR_INT(        SUBROUTINE MNC_VAR_ADD_ATTR_INT(
343       I     fname,       I     fname,
344       I     vname,       I     vname,
# Line 254  C---+----1----+----2----+----3----+----4 Line 347  C---+----1----+----2----+----3----+----4
347       I     ival,       I     ival,
348       I     myThid )       I     myThid )
349    
350    C     !DESCRIPTION:
351    C     Subroutine for adding an integer attribute to a
352    C     NetCDF file.
353          
354    C     !USES:
355        implicit none        implicit none
356  C     Arguments  
357    C     !INPUT PARAMETERS:
358        integer myThid,nv        integer myThid,nv
359        character*(*) fname,vname,atname        character*(*) fname,vname,atname
360        integer ival(*)        integer ival(*)
361    CEOP
362          real*8 dZero(1)
363          real*4 sZero(1)
364          dZero(1) = 0.0D0
365          sZero(1) = 0.0
366    
367        CALL MNC_VAR_ADD_ATTR_ANY(fname,vname,atname,        CALL MNC_VAR_ADD_ATTR_ANY(fname,vname,atname,
368       &     4, ' ', nv, 0.0D0, 0.0, ival, myThid)       &     4, ' ', nv, dZero, sZero, ival, myThid)
369        RETURN        RETURN
370        END        END
371    
372  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
373    CBOP 1
374    C     !ROUTINE: MNC_VAR_ADD_ATTR_ANY
375    
376    C     !INTERFACE:
377        SUBROUTINE MNC_VAR_ADD_ATTR_ANY(        SUBROUTINE MNC_VAR_ADD_ATTR_ANY(
378       I     fname,       I     fname,
379       I     vname,       I     vname,
# Line 274  C---+----1----+----2----+----3----+----4 Line 381  C---+----1----+----2----+----3----+----4
381       I     atype, cs,len,dv,rv,iv,       I     atype, cs,len,dv,rv,iv,
382       I     myThid )       I     myThid )
383    
384    C     !DESCRIPTION:
385    C     General subroutine for adding attributes to a NetCDF file.
386          
387    C     !USES:
388        implicit none        implicit none
389  #include "netcdf.inc"  #include "netcdf.inc"
390  #include "mnc_common.h"  #include "mnc_common.h"
391  #include "EEPARAMS.h"  #include "EEPARAMS.h"
392    
393  C     Arguments  C     !INPUT PARAMETERS:
394        integer myThid,atype,len        integer myThid,atype,len
395        character*(*) fname,vname,atname        character*(*) fname,vname,atname
396        character*(*) cs        character*(*) cs
397        REAL*8 dv(*)        REAL*8 dv(*)
398        REAL*4 rv(*)        REAL*4 rv(*)
399        integer iv(*)        integer iv(*)
400    CEOP
401    
402  C     Functions  C     !LOCAL VARIABLES:
       integer ILNBLNK  
   
 C     Local Variables  
403        integer n, indf,ind_fv_ids, fid,vid, err        integer n, indf,ind_fv_ids, fid,vid, err
404        character*(MAX_LEN_MBUF) msgbuf        character*(MAX_LEN_MBUF) msgbuf
405        integer lenf,lenv,lenat,lens        integer lenf,lenv,lenat,lens
406    
407    C     Functions
408          integer ILNBLNK
409    
410  C     Strip trailing spaces  C     Strip trailing spaces
411        lenf = ILNBLNK(fname)        lenf = ILNBLNK(fname)
412        lenv = ILNBLNK(vname)        lenv = ILNBLNK(vname)

Legend:
Removed from v.1.13  
changed lines
  Added in v.1.18

  ViewVC Help
Powered by ViewVC 1.1.22