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

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

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

revision 1.3 by edhill, Sat Dec 18 19:42:39 2004 UTC revision 1.12 by mlosch, Sat Oct 25 20:36:34 2008 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-|--+----|
 C CBOP 1  
 C C     !ROUTINE: MNC_CW_DEF_CVAR  
         
 C C     !INTERFACE:  
 C       SUBROUTINE MNC_CW_DEF_CVAR(  
 C      I     cvname,  
 C      I     cvnum,  
 C      I     cvdat,  
 C      I     myThid )  
   
 C C     !DESCRIPTION:  
 C C     Store data for a CF-convention coordinate variable (a vector) for  
 C C     the given dimension name.  
   
 C C     !USES:  
 C       implicit none  
 C #include "mnc_common.h"  
 C #include "EEPARAMS.h"  
   
 C C     !INPUT PARAMETERS:  
 C       character*(*) cvname  
 C       _RL cvdat(*)  
 C       integer cvnum, myThid  
 C CEOP  
   
 C C     !LOCAL VARIABLES:  
 C       integer i, imx, ind, nnf,nnl  
 C       character*(MAX_LEN_MBUF) msgbuf  
   
 C C     Functions  
 C       integer IFNBLNK, ILNBLNK  
   
 C       nnf = IFNBLNK(cvname)  
 C       nnl = ILNBLNK(cvname)  
   
 C C     Check that this name is not already defined  
 C       CALL MNC_GET_IND(MNC_MAX_ID, cvname, mnc_cw_cvnm, ind, myThid)  
 C       IF (ind .GT. 0) THEN  
 C         write(msgbuf,'(3a)') 'MNC_CW_DEF_CVAR ERROR: ''',  
 C      &       cvname(nnf:nnl), ''' is already defined'  
 C         CALL print_error(msgbuf, mythid)  
 C         stop 'ABNORMAL END: S/R MNC_CW_DEF_CVAR'  
 C       ENDIF  
 C       CALL MNC_GET_NEXT_EMPTY_IND(MNC_MAX_ID, mnc_cw_cvnm,  
 C      &     ind, myThid)  
   
 C       imx = 0  
 C       DO i = 1,MNC_MAX_ID  
 C         IF (mnc_cw_cvnm(i)(1:1) .NE. ' ') THEN  
 C           imx = max(imx, mnc_cw_cvse(2,i))  
 C         ENDIF  
 C       ENDDO  
   
 C       IF ((MNC_CW_CVDAT - imx - 1) .LT. cvnum) THEN  
 C         write(msgbuf,'(3a)') 'MNC_CW_DEF_CVAR ERROR: out of space',  
 C      &       '--please increase size of MNC_CW_CVDAT in the file ',  
 C      &       '''mnc_common.h'''  
 C         CALL print_error(msgbuf, mythid)  
 C         stop 'ABNORMAL END: S/R MNC_CW_DEF_CVAR'  
 C       ENDIF  
   
 C       DO i = 1,cvnum  
 C         mnc_cw_cvdt(imx+i) = cvdat(i)  
 C       ENDDO  
 C       mnc_cw_cvse(1,ind) = imx + 1  
 C       mnc_cw_cvse(2,ind) = imx + cvnum  
   
 C       RETURN  
 C       END  
   
 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  
7  CBOP 1  CBOP 1
8  C     !ROUTINE: MNC_CW_WRITE_CVAR  C     !ROUTINE: MNC_CW_WRITE_CVAR
9                
# Line 92  C     Write a CF-convention coordinate v Line 21  C     Write a CF-convention coordinate v
21    
22  C     !USES:  C     !USES:
23        implicit none        implicit none
24  #include "netcdf.inc"  #include "MNC_COMMON.h"
 #include "mnc_common.h"  
25  #include "SIZE.h"  #include "SIZE.h"
26  #include "EEPARAMS.h"  #include "EEPARAMS.h"
27  #include "EESUPPORT.h"  #include "EESUPPORT.h"
28  #include "PARAMS.h"  #include "PARAMS.h"
29  #include "GRID.h"  #include "GRID.h"
30    #ifdef ALLOW_EXCH2
31    #include "W2_EXCH2_TOPOLOGY.h"
32    #include "W2_EXCH2_PARAMS.h"
33    #endif
34    #include "netcdf.inc"
35    
36    C     Functions
37          integer IFNBLNK, ILNBLNK
38    
39  C     !INPUT PARAMETERS:  C     !INPUT PARAMETERS:
40        character*(*) fname        character*(*) fname
# Line 108  C     !INPUT PARAMETERS: Line 44  C     !INPUT PARAMETERS:
44  CEOP  CEOP
45    
46  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
47        integer i, vid, nnf,nnl, doit, err        integer i, vid, nnf, nnl, doit, err
48        integer nids, cv_did(1)        integer nids, cv_did(1), xtmin,ytmin
49        character*(MAX_LEN_MBUF) msgbuf        character*(MAX_LEN_MBUF) msgbuf
50        integer cv_start(1), cv_count(1)        integer cv_start(1), cv_count(1)
51        _RS rtmp(sNx + 2*OLx + sNy + 2*OLy + Nr)        _RS rtmp(sNx + 2*OLx + sNy + 2*OLy + Nr)
52    C     variables for text attributes
53  C     Functions        integer MAX_LEN_NAME, ia
54        integer IFNBLNK, ILNBLNK        PARAMETER ( MAX_LEN_NAME = 128 )
55          character*(MAX_LEN_NAME) units, long_name, positive
56    
57          DO i=1,MAX_LEN_NAME
58             units(i:i)     = ' '
59             long_name(i:i) = ' '
60             positive(i:i)  = ' '
61          ENDDO
62    
63        nnf = IFNBLNK(cvname)        nnf = IFNBLNK(cvname)
64        nnl = ILNBLNK(cvname)        nnl = ILNBLNK(cvname)
65    
66        doit = 0        xtmin = 0
67          ytmin = 0
68    #ifdef ALLOW_EXCH2
69          xtmin = exch2_tbasex(W2_myTileList(bi))
70          ytmin = exch2_tbasey(W2_myTileList(bi))
71    #endif
72          doit = 1
73        nids = 1        nids = 1
74        cv_did(1)= did        cv_did(1)= did
75    
# Line 129  C     Check all the coordinate variables Line 78  C     Check all the coordinate variables
78    
79          cv_start(1) = 1          cv_start(1) = 1
80          cv_count(1) = sNx          cv_count(1) = sNx
81    #ifdef ALLOW_EXCH2
82          DO i = cv_start(1),cv_count(1)          DO i = cv_start(1),cv_count(1)
83            rtmp(i) = xC(i,1,bi,bj)           rtmp(i) = xtmin + i
84          ENDDO          ENDDO
85          doit = 1  #else
86            IF ( usingCurvilinearGrid .OR. rotateGrid ) THEN
87             DO i = cv_start(1),cv_count(1)
88              rtmp(i) = xtmin + i
89             ENDDO
90            ELSE
91             DO i = cv_start(1),cv_count(1)
92              rtmp(i) = xC(i,1,bi,bj)
93             ENDDO
94            ENDIF
95    #endif
96            IF ( usingCartesianGrid ) THEN
97             long_name = 'X-coordinate of cell center'
98             units     = 'meters'
99            ELSEIF ( usingCurvilinearGrid .OR. rotateGrid ) THEN
100             long_name = 'i-index of cell center'
101             units     = 'none'
102            ELSEIF ( usingSphericalPolarGrid ) THEN
103             long_name = 'longitude of cell center'
104             units     = 'degrees_east'
105            ELSEIF ( usingCylindricalGrid ) THEN
106             long_name = 'polar angle coordinate of cell center'
107             units     = 'degrees'
108            ELSE
109    C       unknown grid type
110             print *, 'S/R MNC_CW_CVARS: Ooops, unknown horizontal grid!'
111            ENDIF
112    
113        ELSEIF (cvname(nnf:nnl) .EQ. 'Xp1') THEN        ELSEIF (cvname(nnf:nnl) .EQ. 'Xp1') THEN
114    
115          cv_start(1) = 1          cv_start(1) = 1
116          cv_count(1) = sNx + 1          cv_count(1) = sNx + 1
117    #ifdef ALLOW_EXCH2
118          DO i = cv_start(1),cv_count(1)          DO i = cv_start(1),cv_count(1)
119            rtmp(i) = xG(i,1,bi,bj)           rtmp(i) = xtmin + i
120          ENDDO          ENDDO
121          doit = 1  #else
122            IF ( usingCurvilinearGrid .OR. rotateGrid ) THEN
123             DO i = cv_start(1),cv_count(1)
124              rtmp(i) = xtmin + i
125             ENDDO
126            ELSE
127             DO i = cv_start(1),cv_count(1)
128              rtmp(i) = xG(i,1,bi,bj)
129             ENDDO
130            ENDIF
131    #endif
132            IF ( usingCartesianGrid ) THEN
133             long_name = 'X-Coordinate of cell corner'
134             units     = 'meters'
135            ELSEIF ( usingCurvilinearGrid .OR. rotateGrid ) THEN
136             long_name = 'i-index of cell corner'
137             units     = 'none'
138            ELSEIF ( usingSphericalPolarGrid ) THEN
139             long_name = 'longitude of cell corner'
140             units     = 'degrees_east'
141            ELSEIF ( usingCylindricalGrid ) THEN
142             long_name = 'polar angle  of cell corner'
143             units     = 'degrees'
144            ELSE
145    C       unknown grid type
146             print *, 'S/R MNC_CW_CVARS: Ooops, unknown horizontal grid!'
147            ENDIF
148    
149        ELSEIF (cvname(nnf:nnl) .EQ. 'Xwh') THEN        ELSEIF (cvname(nnf:nnl) .EQ. 'Xwh') THEN
150    
151          cv_start(1) = 1          cv_start(1) = 1
152          cv_count(1) = sNx + 2*OLx          cv_count(1) = sNx + 2*OLx
153    #ifdef ALLOW_EXCH2
154          DO i = cv_start(1),cv_count(1)          DO i = cv_start(1),cv_count(1)
155            rtmp(i) = xC(i,1,bi,bj)           rtmp(i) = xtmin + i
156          ENDDO          ENDDO
157          doit = 1  #else
158            IF ( usingCurvilinearGrid .OR. rotateGrid ) THEN
159             DO i = cv_start(1),cv_count(1)
160              rtmp(i) = xtmin - OLx + i
161             ENDDO
162            ELSE
163             DO i = cv_start(1),cv_count(1)
164              rtmp(i) = xC(i,1,bi,bj)
165    CML????          rtmp(i) = xC(i-Olx,1,bi,bj)
166             ENDDO
167            ENDIF
168    #endif
169            IF ( usingCartesianGrid ) THEN
170             long_name = 'X-Coordinate of cell center including overlaps'
171             units     = 'meters'
172            ELSEIF ( usingCurvilinearGrid .OR. rotateGrid ) THEN
173             long_name = 'i-index of cell center including overlaps'
174             units     = 'none'
175            ELSEIF ( usingSphericalPolarGrid ) THEN
176             long_name = 'longitude of cell center including overlaps'
177             units     = 'degrees_east'
178            ELSEIF ( usingCylindricalGrid ) THEN
179             long_name =
180         &        'polar angle coordinate of cell center including overlaps'
181             units     = 'degrees'
182            ELSE
183    C       unknown grid type
184             print *, 'S/R MNC_CW_CVARS: Ooops, unknown horizontal grid!'
185            ENDIF
186            
187        ELSEIF (cvname(nnf:nnl) .EQ. 'Y') THEN        ELSEIF (cvname(nnf:nnl) .EQ. 'Y') THEN
188    
189          cv_start(1) = 1          cv_start(1) = 1
190          cv_count(1) = sNy          cv_count(1) = sNy
191    #ifdef ALLOW_EXCH2
192          DO i = cv_start(1),cv_count(1)          DO i = cv_start(1),cv_count(1)
193            rtmp(i) = yC(1,i,bi,bj)           rtmp(i) = ytmin + i
194          ENDDO          ENDDO
195          doit = 1  #else
196            IF ( usingCurvilinearGrid .OR. rotateGrid ) THEN
197             DO i = cv_start(1),cv_count(1)
198              rtmp(i) = ytmin + i
199             ENDDO
200            ELSE
201             DO i = cv_start(1),cv_count(1)
202              rtmp(i) = yC(1,i,bi,bj)
203             ENDDO
204            ENDIF
205    #endif
206            IF ( usingCartesianGrid ) THEN
207             long_name = 'Y-Coordinate of cell center'
208             units     = 'meters'
209            ELSEIF ( usingCurvilinearGrid .OR. rotateGrid ) THEN
210             long_name = 'j-index of cell center'
211             units     = 'none'
212            ELSEIF ( usingSphericalPolarGrid ) THEN
213             long_name = 'latitude of cell center'
214             units     = 'degrees_north'
215            ELSEIF ( usingCylindricalGrid ) THEN
216             long_name = 'radial coordinate of cell center'
217             units     = 'meters'
218            ELSE
219    C       unknown grid type
220             print *, 'S/R MNC_CW_CVARS: Ooops, unknown horizontal grid!'
221            ENDIF
222    
223        ELSEIF (cvname(nnf:nnl) .EQ. 'Yp1') THEN        ELSEIF (cvname(nnf:nnl) .EQ. 'Yp1') THEN
224    
225          cv_start(1) = 1          cv_start(1) = 1
226          cv_count(1) = sNy + 1          cv_count(1) = sNy + 1
227    #ifdef ALLOW_EXCH2
228          DO i = cv_start(1),cv_count(1)          DO i = cv_start(1),cv_count(1)
229            rtmp(i) = yG(1,i,bi,bj)           rtmp(i) = ytmin + i
230          ENDDO          ENDDO
231          doit = 1  #else
232            IF ( usingCurvilinearGrid .OR. rotateGrid ) THEN
233             DO i = cv_start(1),cv_count(1)
234              rtmp(i) = ytmin + i
235             ENDDO
236            ELSE
237             DO i = cv_start(1),cv_count(1)
238              rtmp(i) = yG(1,i,bi,bj)
239             ENDDO
240            ENDIF
241    #endif
242            IF ( usingCartesianGrid ) THEN
243             long_name = 'Y-Coordinate of cell corner'
244             units     = 'meters'
245            ELSEIF ( usingCurvilinearGrid .OR. rotateGrid ) THEN
246             long_name = 'j-index of cell corner'
247             units     = 'none'
248            ELSEIF ( usingSphericalPolarGrid ) THEN
249             long_name = 'latitude of cell corner'
250             units     = 'degrees_north'
251            ELSEIF ( usingCylindricalGrid ) THEN
252             long_name = 'radial coordinate of cell corner'
253             units     = 'meters'
254            ELSE
255    C       unknown grid type
256             print *, 'S/R MNC_CW_CVARS: Ooops, unknown horizontal grid!'
257            ENDIF
258    
259        ELSEIF (cvname(nnf:nnl) .EQ. 'Ywh') THEN        ELSEIF (cvname(nnf:nnl) .EQ. 'Ywh') THEN
260    
261          cv_start(1) = 1          cv_start(1) = 1
262          cv_count(1) = sNy + 2*OLy          cv_count(1) = sNy + 2*OLy
263    #ifdef ALLOW_EXCH2
264          DO i = cv_start(1),cv_count(1)          DO i = cv_start(1),cv_count(1)
265            rtmp(i) = yC(1,i-OLy,bi,bj)           rtmp(i) = ytmin + i
266          ENDDO          ENDDO
267          doit = 1  #else
268            IF ( usingCurvilinearGrid .OR. rotateGrid ) THEN
269             DO i = cv_start(1),cv_count(1)
270              rtmp(i) = ytmin - OLy + i
271             ENDDO
272            ELSE
273             DO i = cv_start(1),cv_count(1)
274              rtmp(i) = yC(1,i-OLy,bi,bj)
275             ENDDO
276            ENDIF
277    #endif
278            IF ( usingCartesianGrid ) THEN
279             long_name = 'Y-Coordinate of cell center including overlaps'
280             units     = 'meters'
281            ELSEIF ( usingCurvilinearGrid .OR. rotateGrid ) THEN
282             long_name = 'j-index of cell center including overlaps'
283             units     = 'none'
284            ELSEIF ( usingSphericalPolarGrid ) THEN
285             long_name = 'latitude of cell center including overlaps'
286             units     = 'degrees_north'
287            ELSEIF ( usingCylindricalGrid ) THEN
288             long_name =
289         &        'radial coordinate of cell center including overlaps'
290             units     = 'meters'
291            ELSE
292    C       unknown grid type
293             print *, 'S/R MNC_CW_CVARS: Ooops, unknown horizontal grid!'
294            ENDIF
295    
296        ELSEIF (cvname(nnf:nnl) .EQ. 'Z') THEN        ELSEIF (cvname(nnf:nnl) .EQ. 'Z') THEN
297    
# Line 186  C     Check all the coordinate variables Line 300  C     Check all the coordinate variables
300          DO i = cv_start(1),cv_count(1)          DO i = cv_start(1),cv_count(1)
301            rtmp(i) = rC(i)            rtmp(i) = rC(i)
302          ENDDO          ENDDO
303          doit = 1  C    
304            long_name = 'vertical coordinate of cell center'
305            IF ( usingZCoords ) THEN
306             units     = 'meters'
307             positive  = 'up'
308            ELSEIF ( usingPCoords ) THEN
309             units     = 'pascal'
310            ELSE
311    C       unknown grid type
312             print *, 'S/R MNC_CW_CVARS: Ooops, unknown vertical grid!'
313            ENDIF
314    
315        ELSEIF (cvname(nnf:nnl) .EQ. 'Zp1') THEN        ELSEIF (cvname(nnf:nnl) .EQ. 'Zp1') THEN
316    
# Line 195  C     Check all the coordinate variables Line 319  C     Check all the coordinate variables
319          DO i = cv_start(1),cv_count(1)          DO i = cv_start(1),cv_count(1)
320            rtmp(i) = rF(i)            rtmp(i) = rF(i)
321          ENDDO          ENDDO
322          doit = 1  C
323            long_name = 'vertical coordinate of cell interface'
324            IF ( usingZCoords ) THEN
325             units     = 'meters'
326             positive  = 'up'
327            ELSEIF ( usingPCoords ) THEN
328             units     = 'pascal'
329            ELSE
330    C       unknown grid type
331             print *, 'S/R MNC_CW_CVARS: Ooops, unknown vertical grid!'
332            ENDIF
333    
334          ELSEIF (cvname(nnf:nnl) .EQ. 'Zu') THEN
335    
336            cv_start(1) = 1
337            cv_count(1) = Nr
338            DO i = cv_start(1),cv_count(1)
339              rtmp(i) = rF(i + 1)
340            ENDDO
341    C
342            IF ( usingZCoords ) THEN
343             long_name = 'vertical coordinate of lower cell interface'
344             units     = 'meters'
345             positive  = 'up'
346            ELSEIF ( usingPCoords ) THEN
347             long_name = 'vertical coordinate of upper cell interface'
348             units     = 'pascal'
349            ELSE
350    C       unknown grid type
351             print *, 'S/R MNC_CW_CVARS: Ooops, unknown vertical grid!'
352            ENDIF
353    
354          ELSEIF (cvname(nnf:nnl) .EQ. 'Zl') THEN
355    
356            cv_start(1) = 1
357            cv_count(1) = Nr
358            DO i = cv_start(1),cv_count(1)
359              rtmp(i) = rF(i)
360            ENDDO
361    C
362            IF ( usingZCoords ) THEN
363             long_name = 'vertical coordinate of upper cell interface'
364             units     = 'meters'
365             positive  = 'up'
366            ELSEIF ( usingPCoords ) THEN
367             long_name = 'vertical coordinate of lower cell interface'
368             units     = 'pascal'
369            ELSE
370    C       unknown grid type
371             print *, 'S/R MNC_CW_CVARS: Ooops, unknown vertical grid!'
372            ENDIF
373    
374          ELSEIF (cvname(nnf:nnl) .EQ. 'Zm1') THEN
375    
376            cv_start(1) = 1
377            cv_count(1) = Nr - 1
378            DO i = cv_start(1),cv_count(1)
379              rtmp(i) = rF(i + 1)
380            ENDDO
381    C
382            IF ( usingZCoords ) THEN
383             long_name = 'vertical coordinate of lower cell interface'
384             units     = 'meters'
385             positive  = 'up'
386            ELSEIF ( usingPCoords ) THEN
387             long_name = 'vertical coordinate of upper cell interface'
388             units     = 'pascal'
389            ELSE
390    C       unknown grid type
391             print *, 'S/R MNC_CW_CVARS: Ooops, unknown vertical grid!'
392            ENDIF
393    
394          ELSE
395    
396            doit = 0
397    
398        ENDIF        ENDIF
399    
400        IF ( doit .EQ. 1 ) THEN        IF ( doit .EQ. 1 ) THEN
401    
402          CALL MNC_FILE_REDEF(fname, myThid)          CALL MNC_FILE_REDEF(fname, myThid)
403    #ifdef REAL4_IS_SLOW
404          err = NF_DEF_VAR(fid, cvname, NF_DOUBLE,          err = NF_DEF_VAR(fid, cvname, NF_DOUBLE,
405       &       nids, cv_did, vid)       &       nids, cv_did, vid)
406    #else
407            err = NF_DEF_VAR(fid, cvname, NF_FLOAT,
408         &       nids, cv_did, vid)
409    #endif /* REAL4_IS_SLOW */
410            i = ILNBLNK( fname )
411          write(msgbuf,'(5a)') 'defining coordinate variable ''',          write(msgbuf,'(5a)') 'defining coordinate variable ''',
412       &       cvname(nnf:nnl), ''' in file ''', fname, ''''       &       cvname(nnf:nnl), ''' in file ''', fname(1:i), ''''
413          CALL MNC_HANDLE_ERR(err, msgbuf, myThid)          CALL MNC_HANDLE_ERR(err, msgbuf, myThid)
414    C     add attributes if set
415            ia = ILNBLNK(long_name)
416            IF ( ia .GT. 0 ) THEN
417             err = NF_PUT_ATT_TEXT(fid, vid, 'long_name', ia, long_name)
418             write(msgbuf,'(5a)')
419         &     'adding attribute ''long_name'' to coordinate variable ''',
420         &     cvname(nnf:nnl), ''' in file ''', fname(1:i), ''''
421             CALL MNC_HANDLE_ERR(err, msgbuf, myThid)
422            ENDIF
423            ia = ILNBLNK(units)
424            IF ( ia .GT. 0 ) THEN
425             err = NF_PUT_ATT_TEXT(fid, vid, 'units', ia, units)
426             write(msgbuf,'(5a)')
427         &     'adding attribute ''units'' to coordinate variable ''',
428         &     cvname(nnf:nnl), ''' in file ''', fname(1:i), ''''
429             CALL MNC_HANDLE_ERR(err, msgbuf, myThid)
430            ENDIF
431            ia = ILNBLNK(positive)
432            IF ( ia .GT. 0 ) THEN
433             err = NF_PUT_ATT_TEXT(fid, vid, 'positive', ia, positive)
434             write(msgbuf,'(5a)')
435         &     'adding attribute ''positive'' to coordinate variable ''',
436         &     cvname(nnf:nnl), ''' in file ''', fname(1:i), ''''
437             CALL MNC_HANDLE_ERR(err, msgbuf, myThid)
438            ENDIF
439    C    
440          CALL MNC_FILE_ENDDEF(fname, myThid)          CALL MNC_FILE_ENDDEF(fname, myThid)
441    #ifdef REAL4_IS_SLOW
442          err = NF_PUT_VARA_DOUBLE(fid, vid,          err = NF_PUT_VARA_DOUBLE(fid, vid,
443       &       cv_start, cv_count, rtmp)       &       cv_start, cv_count, rtmp)
444    #else
445            err = NF_PUT_VARA_REAL(fid, vid,
446         &       cv_start, cv_count, rtmp)
447    #endif /* REAL4_IS_SLOW */
448          write(msgbuf,'(5a)') 'writing coordinate variable ''',          write(msgbuf,'(5a)') 'writing coordinate variable ''',
449       &       cvname(nnf:nnl), ''' in file ''', fname, ''''       &       cvname(nnf:nnl), ''' in file ''', fname(1:i), ''''
450          CALL MNC_HANDLE_ERR(err, msgbuf, myThid)          CALL MNC_HANDLE_ERR(err, msgbuf, myThid)
451                    
452        ENDIF        ENDIF

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.12

  ViewVC Help
Powered by ViewVC 1.1.22