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

Annotation of /MITgcm/pkg/mnc/mnc_cwrapper.F

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


Revision 1.35 - (hide annotations) (download)
Thu Jan 21 01:48:05 2010 UTC (14 years, 4 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint64y, checkpoint64x, checkpoint64z, checkpoint64q, checkpoint64p, checkpoint64s, checkpoint64r, checkpoint64u, checkpoint64t, checkpoint64w, checkpoint64v, checkpoint64i, checkpoint64h, checkpoint64k, checkpoint64j, checkpoint64m, checkpoint64l, checkpoint64o, checkpoint64n, checkpoint64a, checkpoint64c, checkpoint64b, checkpoint64e, checkpoint64d, checkpoint64g, checkpoint64f, checkpoint63p, checkpoint63q, checkpoint63r, checkpoint63s, checkpoint63l, checkpoint63m, checkpoint63n, checkpoint63o, checkpoint63h, checkpoint63i, checkpoint63j, checkpoint63k, checkpoint63d, checkpoint63e, checkpoint63f, checkpoint63g, checkpoint63a, checkpoint63b, checkpoint63c, checkpoint64, checkpoint65, checkpoint63, checkpoint66g, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, checkpoint65z, checkpoint65x, checkpoint65y, checkpoint65r, checkpoint65s, checkpoint65p, checkpoint65q, checkpoint65v, checkpoint65w, checkpoint65t, checkpoint65u, checkpoint65j, checkpoint65k, checkpoint65h, checkpoint65i, checkpoint65n, checkpoint65o, checkpoint65l, checkpoint65m, checkpoint65b, checkpoint65c, checkpoint65a, checkpoint65f, checkpoint65g, checkpoint65d, checkpoint65e, checkpoint62c, checkpoint62b, checkpoint62g, checkpoint62f, checkpoint62e, checkpoint62d, checkpoint62k, checkpoint62j, checkpoint62i, checkpoint62h, checkpoint62o, checkpoint62n, checkpoint62m, checkpoint62l, checkpoint62s, checkpoint62r, checkpoint62q, checkpoint62p, checkpoint62w, checkpoint62v, checkpoint62u, checkpoint62t, checkpoint62z, checkpoint62y, checkpoint62x, HEAD
Changes since 1.34: +20 -1 lines
remove unused variables

1 jmc 1.35 C $Header: /u/gcmpack/MITgcm/pkg/mnc/mnc_cwrapper.F,v 1.34 2009/06/28 01:08:25 jmc Exp $
2 edhill 1.1 C $Name: $
3 jmc 1.34
4 edhill 1.1 #include "MNC_OPTIONS.h"
5 jmc 1.34
6 jmc 1.35 C-- File mnc_cwrapper.F:
7     C-- Contents
8     C-- o MNC_CW_ADD_GNAME
9     C-- o MNC_CW_DEL_GNAME
10     C-- o MNC_CW_DUMP
11     C-- o MNC_CW_APPEND_VNAME
12     C-- o MNC_CW_ADD_VNAME
13     C-- o MNC_CW_DEL_VNAME
14     C-- o MNC_CW_ADD_VATTR_TEXT
15     C-- o MNC_CW_ADD_VATTR_INT
16     C-- o MNC_CW_ADD_VATTR_DBL
17     C-- o MNC_CW_ADD_VATTR_ANY
18     C-- o MNC_CW_GET_TILE_NUM
19     C-- o MNC_CW_GET_FACE_NUM
20     C-- o MNC_CW_GET_XYFO
21     C-- o MNC_CW_FILE_AORC
22    
23 edhill 1.1 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
24 edhill 1.12 CBOP 0
25 edhill 1.11 C !ROUTINE: MNC_CW_ADD_GNAME
26 edhill 1.1
27 edhill 1.11 C !INTERFACE:
28 jmc 1.34 SUBROUTINE MNC_CW_ADD_GNAME(
29     I name,
30     I ndim,
31     I dlens,
32     I dnames,
33     I inds_beg, inds_end,
34 edhill 1.9 I myThid )
35 edhill 1.1
36 edhill 1.11 C !DESCRIPTION:
37     C Add a grid name to the MNC convenience wrapper layer.
38 jmc 1.34
39 edhill 1.11 C !USES:
40 edhill 1.1 implicit none
41 mlosch 1.31 #include "MNC_COMMON.h"
42 edhill 1.1 #include "EEPARAMS.h"
43    
44 edhill 1.11 C !INPUT PARAMETERS:
45 edhill 1.1 integer myThid, ndim
46     character*(*) name
47 edhill 1.20 integer dlens(*), inds_beg(*), inds_end(*)
48     character*(*) dnames(*)
49 edhill 1.12 CEOP
50 edhill 1.1
51 edhill 1.11 C !LOCAL VARIABLES:
52     integer i, nnf,nnl, indg
53     character*(MAX_LEN_MBUF) msgbuf
54 edhill 1.12
55 edhill 1.2 C Functions
56     integer IFNBLNK, ILNBLNK
57    
58 edhill 1.1 nnf = IFNBLNK(name)
59     nnl = ILNBLNK(name)
60    
61     C Check that this name is not already defined
62 edhill 1.9 CALL MNC_GET_IND(MNC_MAX_ID, name, mnc_cw_gname, indg, myThid)
63 edhill 1.1 IF (indg .GT. 0) THEN
64 jmc 1.34 write(msgbuf,'(3a)') 'MNC_CW_ADD_GNAME ERROR: ''', name,
65 edhill 1.1 & ''' is already defined'
66     CALL print_error(msgbuf, mythid)
67 edhill 1.2 stop 'ABNORMAL END: S/R MNC_CW_ADD_GNAME'
68 edhill 1.1 ENDIF
69 jmc 1.34 CALL MNC_GET_NEXT_EMPTY_IND(MNC_MAX_ID, mnc_cw_gname,
70 edhill 1.26 & 'mnc_cw_gname', indg, myThid)
71 edhill 1.1
72 edhill 1.2 mnc_cw_gname(indg)(1:MNC_MAX_CHAR)=mnc_blank_name(1:MNC_MAX_CHAR)
73     mnc_cw_gname(indg)(1:(nnl-nnf+1)) = name(nnf:nnl)
74 edhill 1.1 mnc_cw_ndim(indg) = ndim
75    
76     DO i = 1,ndim
77     mnc_cw_dn(i,indg)(1:MNC_MAX_CHAR)=mnc_blank_name(1:MNC_MAX_CHAR)
78     nnf = IFNBLNK(dnames(i))
79     nnl = ILNBLNK(dnames(i))
80     mnc_cw_dn(i,indg)(1:(nnl-nnf+1)) = dnames(i)(nnf:nnl)
81     mnc_cw_dims(i,indg) = dlens(i)
82     mnc_cw_is(i,indg) = inds_beg(i)
83     mnc_cw_ie(i,indg) = inds_end(i)
84     ENDDO
85    
86     RETURN
87     END
88    
89 edhill 1.2 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
90 edhill 1.15 CBOP 0
91     C !ROUTINE: MNC_CW_DEL_GNAME
92    
93     C !INTERFACE:
94 jmc 1.34 SUBROUTINE MNC_CW_DEL_GNAME(
95     I name,
96 edhill 1.15 I myThid )
97    
98     C !DESCRIPTION:
99     C Delete a grid name from the MNC convenience wrapper layer.
100 jmc 1.34
101 edhill 1.15 C !USES:
102     implicit none
103 mlosch 1.31 #include "MNC_COMMON.h"
104 edhill 1.15 #include "EEPARAMS.h"
105    
106     C !INPUT PARAMETERS:
107     integer myThid
108     character*(*) name
109     CEOP
110    
111     C !LOCAL VARIABLES:
112     integer nnf,nnl, indg
113    
114     C Functions
115     integer IFNBLNK, ILNBLNK
116    
117     nnf = IFNBLNK(name)
118     nnl = ILNBLNK(name)
119    
120     C Check that this name is not already defined
121     CALL MNC_GET_IND(MNC_MAX_ID, name, mnc_cw_gname, indg, myThid)
122     IF (indg .LT. 1) THEN
123     RETURN
124     ENDIF
125    
126     mnc_cw_gname(indg)(1:MNC_MAX_CHAR)=mnc_blank_name(1:MNC_MAX_CHAR)
127     mnc_cw_ndim(indg) = 0
128    
129     RETURN
130     END
131    
132     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
133 edhill 1.12 CBOP 1
134 edhill 1.11 C !ROUTINE: MNC_CW_DUMP
135 edhill 1.2
136 edhill 1.11 C !INTERFACE:
137 edhill 1.10 SUBROUTINE MNC_CW_DUMP( myThid )
138 edhill 1.2
139 edhill 1.11 C !DESCRIPTION:
140     C Write a condensed view of the current state of the MNC look-up
141     C tables for the convenience wrapper section.
142 jmc 1.34
143 edhill 1.11 C !USES:
144 edhill 1.2 implicit none
145 mlosch 1.31 #include "MNC_COMMON.h"
146 edhill 1.10 #include "SIZE.h"
147     #include "EEPARAMS.h"
148     #include "PARAMS.h"
149    
150 edhill 1.11 C !INPUT PARAMETERS:
151 edhill 1.10 integer myThid
152 edhill 1.12 CEOP
153 edhill 1.2
154 edhill 1.11 C !LOCAL VARIABLES:
155 edhill 1.2 integer i,j, ntot
156 edhill 1.10 integer NBLNK
157     parameter ( NBLNK = 150 )
158     character s1*(NBLNK), blnk*(NBLNK)
159    
160     _BEGIN_MASTER(myThid)
161 jmc 1.34
162 edhill 1.10 DO i = 1,NBLNK
163     blnk(i:i) = ' '
164     ENDDO
165 jmc 1.34
166 edhill 1.10 s1(1:NBLNK) = blnk(1:NBLNK)
167     write(s1,'(a5,a)') 'MNC: ',
168     & 'The currently defined Grid Types are:'
169     CALL PRINT_MESSAGE(
170     & s1, standardMessageUnit, SQUEEZE_RIGHT, mythid)
171 edhill 1.2 ntot = 0
172     DO j = 1,MNC_MAX_ID
173 jmc 1.34 IF (mnc_cw_gname(j)(1:MNC_MAX_CHAR)
174 edhill 1.2 & .NE. mnc_blank_name(1:MNC_MAX_CHAR)) THEN
175 jmc 1.34
176 edhill 1.2 ntot = ntot + 1
177 edhill 1.10 s1(1:NBLNK) = blnk(1:NBLNK)
178 edhill 1.14 write(s1,'(a5,2i5,a3,a20,i3,a3,5i4,a4,5i4,a4,5i4,6a8)')
179 edhill 1.10 & 'MNC: ',
180 jmc 1.34 & j, ntot, ' : ', mnc_cw_gname(j)(1:20), mnc_cw_ndim(j),
181     & ' : ', (mnc_cw_dims(i,j), i=1,5),
182 edhill 1.2 & ' | ', (mnc_cw_is(i,j), i=1,5),
183     & ' | ', (mnc_cw_ie(i,j), i=1,5),
184 edhill 1.14 & ' | ', (mnc_cw_dn(i,j)(1:7), i=1,5)
185 edhill 1.10 CALL PRINT_MESSAGE(
186     & s1, standardMessageUnit, SQUEEZE_RIGHT, mythid)
187 jmc 1.34
188 edhill 1.2 ENDIF
189     ENDDO
190 jmc 1.34
191 edhill 1.10 s1(1:NBLNK) = blnk(1:NBLNK)
192     write(s1,'(a5,a)') 'MNC: ',
193     & 'The currently defined Variable Types are:'
194     CALL PRINT_MESSAGE(
195     & s1, standardMessageUnit, SQUEEZE_RIGHT, mythid)
196 edhill 1.3 ntot = 0
197     DO j = 1,MNC_MAX_ID
198 jmc 1.34 IF (mnc_cw_vname(j)(1:MNC_MAX_CHAR)
199 edhill 1.3 & .NE. mnc_blank_name(1:MNC_MAX_CHAR)) THEN
200 jmc 1.34
201 edhill 1.3 ntot = ntot + 1
202 edhill 1.10 s1(1:NBLNK) = blnk(1:NBLNK)
203     write(s1,'(a5,2i5,a3,a25,a3,i4)') 'MNC: ',
204 jmc 1.34 & j, ntot, ' | ',
205 edhill 1.10 & mnc_cw_vname(j)(1:20), ' | ', mnc_cw_vgind(j)
206     CALL PRINT_MESSAGE(
207     & s1, standardMessageUnit, SQUEEZE_RIGHT, mythid)
208 jmc 1.34
209 edhill 1.3 DO i = 1,mnc_cw_vnat(1,j)
210 edhill 1.10 s1(1:NBLNK) = blnk(1:NBLNK)
211 jmc 1.34 write(s1,'(a5,a14,i4,a3,a25,a3,a55)')
212     & 'MNC: ',' text_at:',i,
213 edhill 1.3 & ' : ', mnc_cw_vtnm(i,j)(1:25), ' : ',
214 edhill 1.26 & mnc_cw_vtat(i,j)(1:MNC_MAX_CHAR)
215 edhill 1.10 CALL PRINT_MESSAGE(
216     & s1, standardMessageUnit, SQUEEZE_RIGHT, mythid)
217 edhill 1.3 ENDDO
218     DO i = 1,mnc_cw_vnat(2,j)
219 edhill 1.10 s1(1:NBLNK) = blnk(1:NBLNK)
220 jmc 1.34 write(s1,'(a5,a14,i4,a3,a25,a3,i20)')
221     & 'MNC: ',' int__at:',i,
222 edhill 1.3 & ' : ', mnc_cw_vinm(i,j)(1:25), ' : ',
223     & mnc_cw_viat(i,j)
224 edhill 1.10 CALL PRINT_MESSAGE(
225     & s1, standardMessageUnit, SQUEEZE_RIGHT, mythid)
226 edhill 1.3 ENDDO
227     DO i = 1,mnc_cw_vnat(3,j)
228 edhill 1.10 s1(1:NBLNK) = blnk(1:NBLNK)
229 jmc 1.34 write(s1,'(a5,a14,i4,a3,a25,a3,f25.10)')
230     & 'MNC: ',' dbl__at:',i,
231 edhill 1.3 & ' : ', mnc_cw_vdnm(i,j)(1:25), ' : ',
232     & mnc_cw_vdat(i,j)
233 edhill 1.10 CALL PRINT_MESSAGE(
234     & s1, standardMessageUnit, SQUEEZE_RIGHT, mythid)
235     ENDDO
236 jmc 1.34
237 edhill 1.3 ENDIF
238     ENDDO
239     IF (ntot .EQ. 0) THEN
240 edhill 1.10 s1(1:NBLNK) = blnk(1:NBLNK)
241     write(s1,'(a)') 'MNC: None defined!'
242     CALL PRINT_MESSAGE(
243     & s1, standardMessageUnit, SQUEEZE_RIGHT, mythid)
244 edhill 1.3 ENDIF
245 jmc 1.34
246 edhill 1.10 _END_MASTER(myThid)
247 edhill 1.3
248 edhill 1.2 RETURN
249     END
250 edhill 1.1
251     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
252 edhill 1.12 CBOP 0
253 edhill 1.13 C !ROUTINE: MNC_CW_APPEND_VNAME
254    
255     C !INTERFACE:
256 jmc 1.34 SUBROUTINE MNC_CW_APPEND_VNAME(
257     I vname,
258     I gname,
259     I bi_dim, bj_dim,
260 edhill 1.13 I myThid )
261    
262     C !DESCRIPTION:
263     C If it is not yet defined within the MNC CW layer, append a
264     C variable type. Calls MNC\_CW\_ADD\_VNAME().
265 jmc 1.34
266 edhill 1.13 C !USES:
267     implicit none
268 mlosch 1.31 #include "MNC_COMMON.h"
269 edhill 1.13
270     C !INPUT PARAMETERS:
271     integer myThid, bi_dim, bj_dim
272     character*(*) vname, gname
273     CEOP
274    
275     C !LOCAL VARIABLES:
276     integer indv
277    
278     C Check whether vname is defined
279     CALL MNC_GET_IND(MNC_MAX_ID, vname, mnc_cw_vname, indv, myThid)
280     IF (indv .LT. 1) THEN
281     CALL MNC_CW_ADD_VNAME(vname, gname, bi_dim, bj_dim, myThid)
282     ENDIF
283    
284    
285     RETURN
286     END
287    
288     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
289     CBOP 0
290 edhill 1.11 C !ROUTINE: MNC_CW_ADD_VNAME
291 edhill 1.2
292 edhill 1.11 C !INTERFACE:
293 jmc 1.34 SUBROUTINE MNC_CW_ADD_VNAME(
294     I vname,
295     I gname,
296     I bi_dim, bj_dim,
297 edhill 1.9 I myThid )
298 edhill 1.2
299 jmc 1.34 C !DESCRIPTION:
300 edhill 1.13 C Add a variable type to the MNC CW layer. The variable type is an
301     C association between a variable type name and the following items:
302 edhill 1.12 C \begin{center}
303     C \begin{tabular}[h]{|ll|}\hline
304     C \textbf{Item} & \textbf{Purpose} \\\hline
305     C grid type & defines the in-memory arrangement \\
306     C \texttt{bi,bj} dimensions & tiling indices, if present \\\hline
307     C \end{tabular}
308     C \end{center}
309 jmc 1.34
310 edhill 1.11 C !USES:
311 edhill 1.2 implicit none
312 mlosch 1.31 #include "MNC_COMMON.h"
313 edhill 1.2 #include "EEPARAMS.h"
314    
315 edhill 1.11 C !INPUT PARAMETERS:
316 edhill 1.5 integer myThid, bi_dim, bj_dim
317 edhill 1.2 character*(*) vname, gname
318 edhill 1.12 CEOP
319 edhill 1.2
320 edhill 1.11 C !LOCAL VARIABLES:
321     integer i, nvf,nvl, ngf,ngl, indv,indg
322     character*(MAX_LEN_MBUF) msgbuf
323 edhill 1.12
324 edhill 1.2 C Functions
325     integer IFNBLNK, ILNBLNK
326    
327     nvf = IFNBLNK(vname)
328     nvl = ILNBLNK(vname)
329     ngf = IFNBLNK(gname)
330     ngl = ILNBLNK(gname)
331    
332     C Check that this vname is not already defined
333 edhill 1.9 CALL MNC_GET_IND(MNC_MAX_ID, vname, mnc_cw_vname, indv, myThid)
334 edhill 1.2 IF (indv .GT. 0) THEN
335 jmc 1.34 write(msgbuf,'(3a)') 'MNC_CW_ADD_VNAME ERROR: ''',
336 edhill 1.2 & vname(nvf:nvl), ''' is already defined'
337     CALL print_error(msgbuf, mythid)
338     stop 'ABNORMAL END: S/R MNC_CW_ADD_VNAME'
339     ENDIF
340 jmc 1.34 CALL MNC_GET_NEXT_EMPTY_IND(MNC_MAX_ID, mnc_cw_vname,
341 edhill 1.26 & 'mnc_cw_vname', indv, myThid)
342 edhill 1.2
343     C Check that gname exists
344 edhill 1.9 CALL MNC_GET_IND(MNC_MAX_ID, gname, mnc_cw_gname, indg, myThid)
345 edhill 1.2 IF (indg .LT. 1) THEN
346 jmc 1.34 write(msgbuf,'(3a)') 'MNC_CW_ADD_VNAME ERROR: ''',
347 edhill 1.2 & gname(ngf:ngl), ''' is not defined'
348     CALL print_error(msgbuf, mythid)
349     stop 'ABNORMAL END: S/R MNC_CW_ADD_VNAME'
350     ENDIF
351    
352     mnc_cw_vname(indv)(1:MNC_MAX_CHAR)=mnc_blank_name(1:MNC_MAX_CHAR)
353     mnc_cw_vname(indv)(1:(nvl-nvf+1)) = vname(nvf:nvl)
354     mnc_cw_vgind(indv) = indg
355     DO i = 1,3
356     mnc_cw_vnat(i,indv) = 0
357     ENDDO
358 edhill 1.5 mnc_cw_vbij(1,indv) = bi_dim
359     mnc_cw_vbij(2,indv) = bj_dim
360 edhill 1.6
361 edhill 1.18 #ifdef MNC_DEBUG_GTYPE
362 edhill 1.9 CALL MNC_CW_ADD_VATTR_TEXT(vname,1,'mitgcm_grid',gname, myThid)
363 edhill 1.18 #endif
364 edhill 1.2
365     RETURN
366     END
367    
368     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
369 edhill 1.12 CBOP 0
370 edhill 1.15 C !ROUTINE: MNC_CW_DEL_VNAME
371    
372     C !INTERFACE:
373 jmc 1.34 SUBROUTINE MNC_CW_DEL_VNAME(
374     I vname,
375 edhill 1.15 I myThid )
376    
377 jmc 1.34 C !DESCRIPTION:
378 edhill 1.15 C Delete a variable type from the MNC CW layer.
379 jmc 1.34
380 edhill 1.15 C !USES:
381     implicit none
382 mlosch 1.31 #include "MNC_COMMON.h"
383 edhill 1.15 #include "EEPARAMS.h"
384    
385     C !INPUT PARAMETERS:
386     integer myThid
387     character*(*) vname
388     CEOP
389    
390     C !LOCAL VARIABLES:
391     integer i, indv
392    
393     C Check that this vname is not already defined
394     CALL MNC_GET_IND(MNC_MAX_ID, vname, mnc_cw_vname, indv, myThid)
395     IF (indv .LT. 1) THEN
396     RETURN
397     ENDIF
398    
399     mnc_cw_vname(indv)(1:MNC_MAX_CHAR)=mnc_blank_name(1:MNC_MAX_CHAR)
400     mnc_cw_vgind(indv) = 0
401     DO i = 1,3
402     mnc_cw_vnat(i,indv) = 0
403     ENDDO
404    
405     RETURN
406     END
407    
408     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
409 edhill 1.20 CBOP
410 edhill 1.11 C !ROUTINE: MNC_CW_ADD_VATTR_TEXT
411     C !INTERFACE:
412 jmc 1.34 SUBROUTINE MNC_CW_ADD_VATTR_TEXT(
413     I vname, tname, tval,
414 edhill 1.9 I myThid )
415 edhill 1.3
416 edhill 1.11 C !DESCRIPTION:
417     C Add a text attribute
418 jmc 1.34
419 edhill 1.11 C !USES:
420 edhill 1.3 implicit none
421    
422 edhill 1.11 C !INPUT PARAMETERS:
423 edhill 1.19 integer myThid
424     character*(*) vname, tname, tval
425 edhill 1.20 integer ival
426     REAL*8 dval
427 edhill 1.11 CEOP
428 edhill 1.20 ival = 0
429     dval = 0.0D0
430     CALL MNC_CW_ADD_VATTR_ANY(vname, 1,
431     & tname, ' ', ' ', tval, ival, dval, myThid )
432 edhill 1.3 RETURN
433     END
434     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
435 edhill 1.11 CBOP
436     C !ROUTINE: MNC_CW_ADD_VATTR_INT
437     C !INTERFACE:
438 jmc 1.34 SUBROUTINE MNC_CW_ADD_VATTR_INT(
439     I vname, iname, ival,
440 edhill 1.9 I myThid )
441 edhill 1.3
442 edhill 1.11 C !DESCRIPTION:
443 edhill 1.20 C Add integer attribute
444 edhill 1.11
445     C !USES:
446 edhill 1.3 implicit none
447    
448 edhill 1.11 C !INPUT PARAMETERS:
449 edhill 1.19 integer myThid
450     character*(*) vname, iname
451     integer ival
452 edhill 1.20 REAL*8 dval
453 edhill 1.11 CEOP
454 edhill 1.20 dval = 0.0D0
455     CALL MNC_CW_ADD_VATTR_ANY(vname, 2,
456     & ' ', iname, ' ', ' ', ival, dval, myThid )
457 edhill 1.3 RETURN
458     END
459     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
460 edhill 1.20 CBOP
461 edhill 1.11 C !ROUTINE: MNC_CW_ADD_VATTR_DBL
462     C !INTERFACE:
463 jmc 1.34 SUBROUTINE MNC_CW_ADD_VATTR_DBL(
464     I vname, dname, dval,
465 edhill 1.9 I myThid )
466 edhill 1.3
467 edhill 1.11 C !DESCRIPTION:
468 jmc 1.34 C Add double-precision real attribute
469 edhill 1.11
470     C !USES:
471 edhill 1.3 implicit none
472    
473 edhill 1.11 C !INPUT PARAMETERS:
474 edhill 1.19 integer myThid
475     character*(*) vname, dname
476 edhill 1.20 integer ival
477 edhill 1.19 REAL*8 dval
478 edhill 1.11 CEOP
479 edhill 1.20 ival = 0
480     CALL MNC_CW_ADD_VATTR_ANY(vname, 3,
481     & ' ', ' ', dname, ' ', ival, dval, myThid )
482 edhill 1.3 RETURN
483     END
484     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
485 edhill 1.12 CBOP 1
486 edhill 1.11 C !ROUTINE: MNC_CW_ADD_VATTR_ANY
487 edhill 1.3
488 edhill 1.11 C !INTERFACE:
489 jmc 1.34 SUBROUTINE MNC_CW_ADD_VATTR_ANY(
490     I vname,
491 edhill 1.20 I atype,
492 edhill 1.19 I tname, iname, dname,
493 jmc 1.34 I tval, ival, dval,
494 edhill 1.9 I myThid )
495 edhill 1.2
496 edhill 1.11 C !DESCRIPTION:
497    
498     C !USES:
499 edhill 1.2 implicit none
500 mlosch 1.31 #include "MNC_COMMON.h"
501 edhill 1.2 #include "EEPARAMS.h"
502    
503 edhill 1.11 C !INPUT PARAMETERS:
504 edhill 1.19 integer myThid
505 edhill 1.20 integer atype
506 edhill 1.2 character*(*) vname
507 edhill 1.19 character*(*) tname, iname, dname
508     character*(*) tval
509     integer ival
510     REAL*8 dval
511 edhill 1.12 CEOP
512 edhill 1.2
513 edhill 1.11 C !LOCAL VARIABLES:
514 edhill 1.30 integer n, nvf,nvl, n1,n2, indv, ic
515 edhill 1.11 character*(MAX_LEN_MBUF) msgbuf
516 edhill 1.12
517 edhill 1.2 C Functions
518     integer IFNBLNK, ILNBLNK
519    
520     nvf = IFNBLNK(vname)
521     nvl = ILNBLNK(vname)
522    
523     C Check that vname is defined
524 edhill 1.9 CALL MNC_GET_IND(MNC_MAX_ID, vname, mnc_cw_vname, indv, myThid)
525 edhill 1.2 IF (indv .LT. 1) THEN
526 jmc 1.34 write(msgbuf,'(3a)') 'MNC_CW_ADD_VATTR_ANY ERROR: ''',
527 edhill 1.2 & vname(nvf:nvl), ''' is not defined'
528     CALL print_error(msgbuf, mythid)
529     stop 'ABNORMAL END: S/R MNC_CW_ADD_VATTR_ANY'
530     ENDIF
531    
532 edhill 1.20 IF (atype .EQ. 1) THEN
533     C Text Attribute
534     n = mnc_cw_vnat(1,indv) + 1
535     n1 = IFNBLNK(tname)
536     n2 = ILNBLNK(tname)
537 edhill 1.28 IF ((n2-n1+1) .GT. MNC_MAX_CHAR) THEN
538 jmc 1.34 write(msgbuf,'(3a,i6,2a)')
539 edhill 1.28 & 'MNC_CW_ADD_VATTR_ANY WARNING: attribute name ''',
540     & tname(n1:n2), ''' has more than ', MNC_MAX_CHAR,
541 edhill 1.30 & ' characters and has been truncated to fit--please',
542     & 'use a smaller name or increase MNC_MAX_CHAR'
543 jmc 1.29 CALL PRINT_MESSAGE( msgbuf, errorMessageUnit,
544     & SQUEEZE_RIGHT , myThid)
545 edhill 1.28 C MNC_MAX_CHAR = n2 - n1 + 1
546     n2 = MNC_MAX_CHAR + n1 - 1
547     ENDIF
548 edhill 1.20 C write(*,*) atype,tname(n1:n2)
549     mnc_cw_vtnm(n,indv)(1:MNC_MAX_CHAR) =
550 edhill 1.16 & mnc_blank_name(1:MNC_MAX_CHAR)
551 edhill 1.20 mnc_cw_vtnm(n,indv)(1:(n2-n1+1)) = tname(n1:n2)
552 edhill 1.28
553 edhill 1.20 n1 = IFNBLNK(tval)
554     n2 = ILNBLNK(tval)
555 edhill 1.30 IF ((n2-n1+1) .GT. MNC_MAX_CATT) THEN
556 jmc 1.34 write(msgbuf,'(3a,i6,2a)')
557 edhill 1.28 & 'MNC_CW_ADD_VATTR_ANY WARNING: attribute value ''',
558 edhill 1.30 & tval(n1:n2), ''' has more than ', MNC_MAX_CATT,
559     & ' characters and has been truncated to fit--please',
560     & 'use a smaller name or increase MNC_MAX_CATT'
561 jmc 1.29 CALL PRINT_MESSAGE( msgbuf, errorMessageUnit,
562     & SQUEEZE_RIGHT , myThid)
563 edhill 1.30 n2 = MNC_MAX_CATT + n1 - 1
564 edhill 1.28 ENDIF
565 jmc 1.34
566 edhill 1.30 mnc_cw_vnat(1,indv) = n
567     DO ic = 1,MNC_MAX_CATT
568     mnc_cw_vtat(n,indv)(ic:ic) = ' '
569     ENDDO
570     IF ((n1 .NE. 0) .AND. (n2 .NE. 0)) THEN
571 edhill 1.21 mnc_cw_vtat(n,indv)(1:(n2-n1+1)) = tval(n1:n2)
572     ENDIF
573 edhill 1.20 ENDIF
574 jmc 1.34
575 edhill 1.20 IF (atype .EQ. 2) THEN
576     C Integer Attribute
577     n = mnc_cw_vnat(2,indv) + 1
578     n1 = IFNBLNK(iname)
579     n2 = ILNBLNK(iname)
580     C write(*,*) atype,iname(n1:n2)
581     mnc_cw_vinm(n,indv)(1:(n2-n1+1)) = iname(n1:n2)
582     mnc_cw_viat(n,indv) = ival
583     mnc_cw_vnat(2,indv) = n
584     ENDIF
585    
586     IF (atype .EQ. 3) THEN
587     C Double Attribute
588     n = mnc_cw_vnat(3,indv) + 1
589     n1 = IFNBLNK(dname)
590     n2 = ILNBLNK(dname)
591     C write(*,*) atype,dname(n1:n2)
592     mnc_cw_vdnm(n,indv)(1:(n2-n1+1)) = dname(n1:n2)
593     mnc_cw_vdat(n,indv) = dval
594     mnc_cw_vnat(3,indv) = n
595     ENDIF
596 jmc 1.34
597 edhill 1.3 RETURN
598     END
599    
600     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
601 edhill 1.12 CBOP 1
602 edhill 1.11 C !ROUTINE: MNC_CW_GET_TILE_NUM
603 edhill 1.3
604 edhill 1.11 C !INTERFACE:
605 jmc 1.34 SUBROUTINE MNC_CW_GET_TILE_NUM(
606     I bi, bj,
607     O uniq_tnum,
608 edhill 1.9 I myThid )
609 edhill 1.3
610 edhill 1.11 C !DESCRIPTION:
611    
612     C !USES:
613 edhill 1.3 implicit none
614     #include "EEPARAMS.h"
615     #include "SIZE.h"
616 edhill 1.7 #ifdef ALLOW_EXCH2
617 jmc 1.33 #include "W2_EXCH2_SIZE.h"
618 edhill 1.7 #include "W2_EXCH2_TOPOLOGY.h"
619     #endif
620 edhill 1.3
621 edhill 1.11 C !INPUT PARAMETERS:
622 edhill 1.3 integer myThid, bi,bj, uniq_tnum
623 edhill 1.12 CEOP
624 edhill 1.3
625 edhill 1.11 C !LOCAL VARIABLES:
626 edhill 1.3 integer iG,jG
627    
628 edhill 1.4 iG = 0
629     jG = 0
630    
631 edhill 1.3 #ifdef ALLOW_EXCH2
632    
633 jmc 1.34 uniq_tnum = W2_myTileList(bi,bj)
634 edhill 1.3
635     #else
636    
637     C Global tile number for simple (non-cube) domains
638     iG = bi+(myXGlobalLo-1)/sNx
639     jG = bj+(myYGlobalLo-1)/sNy
640 edhill 1.4
641     uniq_tnum = (jG - 1)*(nPx*nSx) + iG
642 edhill 1.3
643     #endif
644    
645 edhill 1.4 CEH3 write(*,*) 'iG,jG,uniq_tnum :', iG,jG,uniq_tnum
646    
647 edhill 1.3 RETURN
648     END
649    
650     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
651 edhill 1.12 CBOP 1
652 edhill 1.25 C !ROUTINE: MNC_CW_GET_FACE_NUM
653    
654     C !INTERFACE:
655 jmc 1.34 SUBROUTINE MNC_CW_GET_FACE_NUM(
656     I bi, bj,
657     O uniq_fnum,
658 edhill 1.25 I myThid )
659    
660     C !DESCRIPTION:
661    
662     C !USES:
663     implicit none
664     #include "EEPARAMS.h"
665     #include "SIZE.h"
666     #ifdef ALLOW_EXCH2
667 jmc 1.33 #include "W2_EXCH2_SIZE.h"
668 edhill 1.25 #include "W2_EXCH2_TOPOLOGY.h"
669     #endif
670    
671     C !INPUT PARAMETERS:
672     integer myThid, bi,bj, uniq_fnum
673     CEOP
674    
675     #ifdef ALLOW_EXCH2
676    
677 jmc 1.34 uniq_fnum = exch2_myFace( W2_myTileList(bi,bj) )
678 edhill 1.25
679     #else
680    
681     C Global face number for simple (EXCH "1") domains
682     uniq_fnum = -1
683    
684     #endif
685    
686     RETURN
687     END
688    
689     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
690     CBOP 1
691     C !ROUTINE: MNC_CW_GET_XYFO
692    
693     C !INTERFACE:
694 jmc 1.34 SUBROUTINE MNC_CW_GET_XYFO(
695     I bi, bj,
696     O ixoff, iyoff,
697 edhill 1.25 I myThid )
698    
699     C !DESCRIPTION:
700    
701     C !USES:
702     implicit none
703     #include "EEPARAMS.h"
704     #include "SIZE.h"
705     #ifdef ALLOW_EXCH2
706 jmc 1.33 #include "W2_EXCH2_SIZE.h"
707 edhill 1.25 #include "W2_EXCH2_TOPOLOGY.h"
708     #endif
709    
710     C !INPUT PARAMETERS:
711     integer myThid, bi,bj, ixoff,iyoff
712     CEOP
713    
714     C !LOCAL VARIABLES:
715 jmc 1.35 #ifdef ALLOW_EXCH2
716 edhill 1.25 integer uniq_tnum
717 jmc 1.35 #endif
718 edhill 1.25
719     #ifdef ALLOW_EXCH2
720    
721 jmc 1.34 uniq_tnum = W2_myTileList(bi,bj)
722 edhill 1.25 ixoff = exch2_tbasex( uniq_tnum )
723     iyoff = exch2_tbasey( uniq_tnum )
724    
725     #else
726    
727     C Global tile number for simple (non-cube) domains
728     C iG = bi+(myXGlobalLo-1)/sNx
729     C jG = bj+(myYGlobalLo-1)/sNy
730     C uniq_tnum = (jG - 1)*(nPx*nSx) + iG
731     ixoff = myXGlobalLo + bi * sNx
732     iyoff = myYGlobalLo + bj * sNy
733    
734     #endif
735    
736     RETURN
737     END
738    
739     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
740     CBOP 1
741 edhill 1.11 C !ROUTINE: MNC_CW_FILE_AORC
742 jmc 1.34
743 edhill 1.11 C !INTERFACE:
744 jmc 1.34 SUBROUTINE MNC_CW_FILE_AORC(
745     I fname,
746     O indf,
747     I lbi, lbj, uniq_tnum,
748 edhill 1.9 I myThid )
749 edhill 1.3
750 edhill 1.11 C !DESCRIPTION:
751 edhill 1.13 C Open a NetCDF file, appending to the file if it already exists
752     C and, if not, creating a new file.
753 edhill 1.11
754     C !USES:
755 edhill 1.3 implicit none
756 mlosch 1.31 #include "MNC_COMMON.h"
757 edhill 1.3 #include "EEPARAMS.h"
758 utke 1.32 #include "netcdf.inc"
759 edhill 1.3
760 edhill 1.11 C !INPUT PARAMETERS:
761 edhill 1.23 integer myThid, indf, lbi, lbj, uniq_tnum
762 edhill 1.3 character*(*) fname
763 edhill 1.12 CEOP
764 edhill 1.3
765 edhill 1.11 C !LOCAL VARIABLES:
766 edhill 1.14 integer ierr
767 edhill 1.3
768     C Check if the file is already open
769 edhill 1.27 CALL MNC_GET_IND(MNC_MAX_FID, fname, mnc_f_names, indf, myThid)
770 edhill 1.3 IF (indf .GT. 0) THEN
771     RETURN
772     ENDIF
773    
774     C Try to open an existing file
775 edhill 1.9 CALL MNC_FILE_TRY_READ(fname, ierr, indf, myThid)
776 edhill 1.23 IF (ierr .NE. NF_NOERR) THEN
777     C Try to create a new one
778     CALL MNC_FILE_OPEN(fname, 0, indf, myThid)
779 edhill 1.3 ENDIF
780    
781 edhill 1.23 C Add the global attributes
782     CALL MNC_CW_SET_GATTR(fname, lbi,lbj, uniq_tnum, myThid)
783 edhill 1.2
784 edhill 1.1 RETURN
785     END
786    
787     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|

  ViewVC Help
Powered by ViewVC 1.1.22