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

Contents of /MITgcm/pkg/mnc/mnc_model_grids.F

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


Revision 1.8 - (show annotations) (download)
Fri Mar 19 03:28:37 2004 UTC (20 years, 2 months ago) by edhill
Branch: MAIN
CVS Tags: HEAD
Changes since 1.7: +1 -1 lines
FILE REMOVED
 o edit all MNC subroutines so that myThid is the _last_ argument

1 C $Header: /u/gcmpack/MITgcm/pkg/mnc/mnc_model_grids.F,v 1.7 2004/01/27 05:47:32 edhill Exp $
2 C $Name: $
3
4 #include "MNC_OPTIONS.h"
5
6 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7
8 SUBROUTINE MNC_W_GRIDINFO( myThid, RefName )
9
10 implicit none
11 integer myThid
12 character*(*) RefName
13
14 CALL MNC_W_GRIDINFO_ALL( myThid, RefName, 'N', 'D' )
15 RETURN
16 END
17
18 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
19
20 SUBROUTINE MNC_W_GRIDINFO_ALL(
21 I myThid,
22 I RefName,
23 I withHalo,
24 I RorD )
25
26 implicit none
27 #include "netcdf.inc"
28 #include "mnc_common.h"
29
30 #include "SIZE.h"
31 #include "EEPARAMS.h"
32 #include "EESUPPORT.h"
33 #include "PARAMS.h"
34 #include "GRID.h"
35
36 C Arguments
37 integer myThid
38 character*(*) RefName
39 character*(1) withHalo, RorD
40
41 C Functions
42 integer ILNBLNK
43
44 C Local Variables
45 integer i, n, bi,bj, iG,jG, rnX,rnY,rnZ, mt
46 integer istart(3), iend(3)
47 character*(MNC_MAX_CHAR) fnm, atnm, gnms(20),dnms(20)
48 character*(MAX_LEN_MBUF) msgbuf
49 REAL*4 t_R((sNx+2*OLx)*(sNy+2*OLy)*(Nr+1))
50 REAL*8 t_D((sNx+2*OLx)*(sNy+2*OLy)*(Nr+1))
51
52 C Initialize strings
53 fnm(1:MNC_MAX_CHAR) = mnc_blank_name(1:MNC_MAX_CHAR)
54 atnm(1:MNC_MAX_CHAR) = mnc_blank_name(1:MNC_MAX_CHAR)
55 DO i = 1,20
56 gnms(i)(1:MNC_MAX_CHAR) = mnc_blank_name(1:MNC_MAX_CHAR)
57 dnms(i)(1:MNC_MAX_CHAR) = mnc_blank_name(1:MNC_MAX_CHAR)
58 ENDDO
59
60 C dim names
61 dnms(11)(1:9) = 'X '
62 dnms(12)(1:9) = 'Y '
63 dnms(13)(1:9) = 'R '
64 dnms(14)(1:9) = 'Rp1 '
65
66 C grid names 123456789
67 gnms( 1)(1:9) = 'center '
68 gnms( 2)(1:9) = 'u '
69 gnms( 3)(1:9) = 'v '
70 gnms( 4)(1:9) = 'w '
71
72 C Only do I/O if I am the master thread
73 _BEGIN_MASTER( myThid )
74
75 C Output a grid file for all tiles owned by this thread or process
76 DO bj = 1,nSy
77 DO bi = 1,nSx
78
79 C Kludge until unstructered tiles -- mimics mdsio tile numbering
80 iG = bi+(myXGlobalLo-1)/sNx
81 jG = bj+(myYGlobalLo-1)/sNy
82
83 n = ILNBLNK(RefName)
84 IF (n .GT. (100-5-11)) n = 100-5-11
85 fnm(1:5) = 'grid_'
86 fnm(6:(6+n-1)) = RefName(1:n)
87 n = n + 6
88 write(fnm(n:(n+11-1)),'(a1,i3.3,a1,i3.3,a3)')
89 & '-',iG,'-',jG,'.nc'
90 CALL MNC_FILE_CREATE(myThid, fnm)
91
92 C Create the dimensions
93 IF (withHalo(1:1) .EQ. 'N') THEN
94 CALL MNC_DIM_INIT(myThid,fnm,dnms(11), sNx )
95 CALL MNC_DIM_INIT(myThid,fnm,dnms(12), sNy )
96 CALL MNC_DIM_INIT(myThid,fnm,dnms(13), Nr )
97 CALL MNC_DIM_INIT(myThid,fnm,dnms(14), Nr+1 )
98 ELSEIF (withHalo(1:1) .EQ. 'Y') THEN
99 CALL MNC_DIM_INIT(myThid,fnm,dnms(11), sNx+2*OLx )
100 CALL MNC_DIM_INIT(myThid,fnm,dnms(12), sNy+2*OLy )
101 CALL MNC_DIM_INIT(myThid,fnm,dnms(13), Nr )
102 CALL MNC_DIM_INIT(myThid,fnm,dnms(14), Nr+1)
103 ELSE
104 write(msgbuf,'(a)') 'MNC ERROR: withHalo must be [Y|N]'
105 CALL print_error( msgbuf, mythid )
106 stop 'ABNORMAL END: S/R MNC_W_GRIDINFO_ALL'
107 ENDIF
108
109 C Attributes
110 CALL MNC_FILE_ADD_ATTR_STR(myThid,fnm, 'mitgcm_tag_index',
111 & MNC_TAG_ID )
112 CALL MNC_FILE_ADD_ATTR_DBL(myThid,fnm, 'mitgcm_grid_ver',
113 & 1, 0.1D0 )
114 CALL MNC_FILE_ADD_ATTR_STR(myThid,fnm, 'reference',
115 & 'Put reference string here.' )
116 CALL MNC_FILE_ADD_ATTR_STR(myThid,fnm, 'author',
117 & 'Put author string here.' )
118 CALL MNC_FILE_ADD_ATTR_STR(myThid,fnm, 'date',
119 & 'Put date string here.' )
120
121 C Model parameters (SIZE.h) included as attributes
122 CALL MNC_FILE_ADD_ATTR_INT(myThid,fnm, 'sNx', 1, sNx)
123 CALL MNC_FILE_ADD_ATTR_INT(myThid,fnm, 'sNy', 1, sNy)
124 CALL MNC_FILE_ADD_ATTR_INT(myThid,fnm, 'OLx', 1, OLx)
125 CALL MNC_FILE_ADD_ATTR_INT(myThid,fnm, 'OLy', 1, OLy)
126 CALL MNC_FILE_ADD_ATTR_INT(myThid,fnm, 'nSx', 1, nSx)
127 CALL MNC_FILE_ADD_ATTR_INT(myThid,fnm, 'nSy', 1, nSy)
128 CALL MNC_FILE_ADD_ATTR_INT(myThid,fnm, 'nPx', 1, nPx)
129 CALL MNC_FILE_ADD_ATTR_INT(myThid,fnm, 'nPy', 1, nPy)
130 CALL MNC_FILE_ADD_ATTR_INT(myThid,fnm, 'Nx', 1, Nx)
131 CALL MNC_FILE_ADD_ATTR_INT(myThid,fnm, 'Ny', 1, Ny)
132 CALL MNC_FILE_ADD_ATTR_INT(myThid,fnm, 'Nr', 1, Nr)
133
134 C Grid info included as attributes
135 CALL MNC_FILE_ADD_ATTR_INT(myThid,fnm, 'bi', 1, bi)
136 CALL MNC_FILE_ADD_ATTR_INT(myThid,fnm, 'bj', 1, bj)
137 CALL MNC_FILE_ADD_ATTR_INT(myThid,fnm, 'iG', 1, iG)
138 CALL MNC_FILE_ADD_ATTR_INT(myThid,fnm, 'jG', 1, jG)
139 CALL MNC_FILE_ADD_ATTR_DBL(myThid,fnm, 'xC0', 1, xC0)
140 CALL MNC_FILE_ADD_ATTR_DBL(myThid,fnm, 'yC0', 1, yC0)
141 CALL MNC_FILE_ADD_ATTR_DBL(myThid,fnm, 'gravitySign',
142 & 1, gravitySign )
143 CALL MNC_FILE_ADD_ATTR_DBL(myThid,fnm, 'rkFac', 1, rkFac)
144
145 C Create the grids
146 C center
147 dnms(1)(1:MNC_MAX_CHAR) = dnms(11)(1:MNC_MAX_CHAR)
148 dnms(2)(1:MNC_MAX_CHAR) = dnms(12)(1:MNC_MAX_CHAR)
149 dnms(3)(1:MNC_MAX_CHAR) = dnms(13)(1:MNC_MAX_CHAR)
150 CALL MNC_GRID_INIT(myThid, fnm, gnms(1), 2, dnms)
151 CALL MNC_GRID_INIT(myThid, fnm, gnms(2), 3, dnms)
152 C r, rp1
153 CALL MNC_GRID_INIT(myThid, fnm, gnms(3),1,dnms(13))
154 CALL MNC_GRID_INIT(myThid, fnm, gnms(4),1,dnms(14))
155
156 C Indicies and sizes for extracting the data -- we need to skip
157 C over the exchange regions
158 rnX = sNx + 2*OLx
159 rnY = sNy + 2*OLy
160 rnZ = Nr
161 IF (withHalo(1:1) .EQ. 'N') THEN
162 istart(1) = OLx + 1
163 istart(2) = OLy + 1
164 istart(3) = 1
165 iend(1) = sNx + OLx
166 iend(2) = sNy + OLy
167 iend(3) = Nr
168 ELSE
169 istart(1) = 1
170 istart(2) = 1
171 istart(3) = 1
172 iend(1) = sNx + 2*OLx
173 iend(2) = sNy + 2*OLy
174 iend(3) = Nr
175 ENDIF
176
177 C Create and write grid parameters
178 IF ( RorD(1:1) .EQ. 'D' ) THEN
179
180 C rC, rF
181 CALL MNC_VAR_INIT_DBL(myThid,fnm,gnms(3),'rC','--')
182 CALL MNC_RESHAPE_RS_D(rnZ,1,1, 1,Nr, rC, t_D)
183 CALL MNC_VAR_WRITE_DBL(myThid, fnm, 'rC', t_D)
184 CALL MNC_VAR_INIT_DBL(myThid,fnm,gnms(4),'rF','--')
185 CALL MNC_RESHAPE_RS_D(rnZ+1,1,1, 1,Nr+1, rF, t_D)
186 CALL MNC_VAR_WRITE_DBL(myThid, fnm, 'rF', t_D)
187 C drC, drF
188 CALL MNC_VAR_INIT_DBL(myThid,fnm,gnms(3),'drC','--')
189 CALL MNC_RESHAPE_RS_D(rnZ,1,1, 1,Nr, drC, t_D)
190 CALL MNC_VAR_WRITE_DBL(myThid, fnm, 'drC', t_D)
191 CALL MNC_VAR_INIT_DBL(myThid,fnm,gnms(3),'drF','--')
192 CALL MNC_RESHAPE_RS_D(rnZ,1,1, 1,Nr, drF, t_D)
193 CALL MNC_VAR_WRITE_DBL(myThid, fnm, 'drF', t_D)
194 C saFac
195 CALL MNC_VAR_INIT_DBL(myThid,fnm,gnms(3),'saFac','--')
196 CALL MNC_RESHAPE_RS_D(rnZ,1,1, 1,Nr, saFac, t_D)
197 CALL MNC_VAR_WRITE_DBL(myThid, fnm, 'saFac', t_D)
198
199 C xC, yC
200 CALL MNC_VAR_INIT_DBL(myThid,fnm,gnms(1),'xC','m')
201 CALL MNC_RESHAPE_RS_D(rnX, rnY, 1, istart, iend,
202 & xC(1-OLx,1-OLy,bi,bj), t_D)
203 CALL MNC_VAR_WRITE_DBL(myThid, fnm, 'xC', t_D)
204 CALL MNC_VAR_INIT_DBL(myThid,fnm,gnms(1),'yC','m')
205 CALL MNC_RESHAPE_RS_D(rnX, rnY, 1, istart, iend,
206 & yC(1-OLx,1-OLy,bi,bj), t_D)
207 CALL MNC_VAR_WRITE_DBL(myThid, fnm, 'yC', t_D)
208 C xG, yG
209 CALL MNC_VAR_INIT_DBL(myThid,fnm,gnms(1),'xG','m')
210 CALL MNC_RESHAPE_RS_D(rnX, rnY, 1, istart, iend,
211 & xG(1-OLx,1-OLy,bi,bj), t_D)
212 CALL MNC_VAR_WRITE_DBL(myThid, fnm, 'xG', t_D)
213 CALL MNC_VAR_INIT_DBL(myThid,fnm,gnms(1),'yG','m')
214 CALL MNC_RESHAPE_RS_D(rnX, rnY, 1, istart, iend,
215 & yG(1-OLx,1-OLy,bi,bj), t_D)
216 CALL MNC_VAR_WRITE_DBL(myThid, fnm, 'yG', t_D)
217 C dxC, dyC
218 CALL MNC_VAR_INIT_DBL(myThid,fnm,gnms(1),'dxC','m')
219 CALL MNC_RESHAPE_RS_D(rnX, rnY, 1, istart, iend,
220 & dxC(1-OLx,1-OLy,bi,bj), t_D)
221 CALL MNC_VAR_WRITE_DBL(myThid, fnm, 'dxC', t_D)
222 CALL MNC_VAR_INIT_DBL(myThid,fnm,gnms(1),'dyC','m')
223 CALL MNC_RESHAPE_RS_D(rnX, rnY, 1, istart, iend,
224 & dyC(1-OLx,1-OLy,bi,bj), t_D)
225 CALL MNC_VAR_WRITE_DBL(myThid, fnm, 'dyC', t_D)
226 C dxF, dyF
227 CALL MNC_VAR_INIT_DBL(myThid,fnm,gnms(1),'dxF','m')
228 CALL MNC_RESHAPE_RS_D(rnX, rnY, 1, istart, iend,
229 & dxF(1-OLx,1-OLy,bi,bj), t_D)
230 CALL MNC_VAR_WRITE_DBL(myThid, fnm, 'dxF', t_D)
231 CALL MNC_VAR_INIT_DBL(myThid,fnm,gnms(1),'dyF','m')
232 CALL MNC_RESHAPE_RS_D(rnX, rnY, 1, istart, iend,
233 & dyF(1-OLx,1-OLy,bi,bj), t_D)
234 CALL MNC_VAR_WRITE_DBL(myThid, fnm, 'dyF', t_D)
235 C dxG, dyG
236 CALL MNC_VAR_INIT_DBL(myThid,fnm,gnms(1),'dxG','m')
237 CALL MNC_RESHAPE_RS_D(rnX, rnY, 1, istart, iend,
238 & dxG(1-OLx,1-OLy,bi,bj), t_D)
239 CALL MNC_VAR_WRITE_DBL(myThid, fnm, 'dxG', t_D)
240 CALL MNC_VAR_INIT_DBL(myThid,fnm,gnms(1),'dyG','m')
241 CALL MNC_RESHAPE_RS_D(rnX, rnY, 1, istart, iend,
242 & dyG(1-OLx,1-OLy,bi,bj), t_D)
243 CALL MNC_VAR_WRITE_DBL(myThid, fnm, 'dyG', t_D)
244 C dxV, dyU
245 CALL MNC_VAR_INIT_DBL(myThid,fnm,gnms(1),'dxV','m')
246 CALL MNC_RESHAPE_RS_D(rnX, rnY, 1, istart, iend,
247 & dxV(1-OLx,1-OLy,bi,bj), t_D)
248 CALL MNC_VAR_WRITE_DBL(myThid, fnm, 'dxV', t_D)
249 CALL MNC_VAR_INIT_DBL(myThid,fnm,gnms(1),'dyU','m')
250 CALL MNC_RESHAPE_RS_D(rnX, rnY, 1, istart, iend,
251 & dyU(1-OLx,1-OLy,bi,bj), t_D)
252 CALL MNC_VAR_WRITE_DBL(myThid, fnm, 'dyU', t_D)
253 C rA, rAw, rAs, rAz
254 CALL MNC_VAR_INIT_DBL(myThid,fnm,gnms(1),'rA','m')
255 CALL MNC_RESHAPE_RS_D(rnX, rnY, 1, istart, iend,
256 & rA(1-OLx,1-OLy,bi,bj), t_D)
257 CALL MNC_VAR_WRITE_DBL(myThid, fnm, 'rA', t_D)
258 CALL MNC_VAR_INIT_DBL(myThid,fnm,gnms(1),'rAw','m')
259 CALL MNC_RESHAPE_RS_D(rnX, rnY, 1, istart, iend,
260 & rAw(1-OLx,1-OLy,bi,bj), t_D)
261 CALL MNC_VAR_WRITE_DBL(myThid, fnm, 'rAw', t_D)
262 CALL MNC_VAR_INIT_DBL(myThid,fnm,gnms(1),'rAs','m')
263 CALL MNC_RESHAPE_RS_D(rnX, rnY, 1, istart, iend,
264 & rAs(1-OLx,1-OLy,bi,bj), t_D)
265 CALL MNC_VAR_WRITE_DBL(myThid, fnm, 'rAs', t_D)
266 CALL MNC_VAR_INIT_DBL(myThid,fnm,gnms(1),'rAz','m')
267 CALL MNC_RESHAPE_RS_D(rnX, rnY, 1, istart, iend,
268 & rAz(1-OLx,1-OLy,bi,bj), t_D)
269 CALL MNC_VAR_WRITE_DBL(myThid, fnm, 'rAz', t_D)
270 C fCori, fCoriG
271 CALL MNC_VAR_INIT_DBL(myThid,fnm,gnms(1),'fCori','m')
272 CALL MNC_RESHAPE_RS_D(rnX, rnY, 1, istart, iend,
273 & fCori(1-OLx,1-OLy,bi,bj), t_D)
274 CALL MNC_VAR_WRITE_DBL(myThid, fnm, 'fCori', t_D)
275 CALL MNC_VAR_INIT_DBL(myThid,fnm,gnms(1),'fCoriG','m')
276 CALL MNC_RESHAPE_RS_D(rnX, rnY, 1, istart, iend,
277 & fCoriG(1-OLx,1-OLy,bi,bj), t_D)
278 CALL MNC_VAR_WRITE_DBL(myThid, fnm, 'fCoriG', t_D)
279 C R_low, Ro_surf
280 CALL MNC_VAR_INIT_DBL(myThid,fnm,gnms(1),'R_low','--')
281 CALL MNC_RESHAPE_RS_D(rnX, rnY, 1, istart, iend,
282 & R_low(1-OLx,1-OLy,bi,bj), t_D)
283 CALL MNC_VAR_WRITE_DBL(myThid, fnm, 'R_low', t_D)
284 CALL MNC_VAR_INIT_DBL(myThid,fnm,gnms(1),'Ro_surf','--')
285 CALL MNC_RESHAPE_RS_D(rnX, rnY, 1, istart, iend,
286 & Ro_surf(1-OLx,1-OLy,bi,bj), t_D)
287 CALL MNC_VAR_WRITE_DBL(myThid, fnm, 'Ro_surf', t_D)
288 C HFacC, HFacW, HFacS
289 CALL MNC_VAR_INIT_DBL(myThid,fnm,gnms(2),'HFacC','--')
290 CALL MNC_RESHAPE_RS_D(rnX, rnY, rnZ, istart, iend,
291 & HFacC(1-OLx,1-OLy,1,bi,bj), t_D)
292 CALL MNC_VAR_WRITE_DBL(myThid, fnm, 'HFacC', t_D)
293 CALL MNC_VAR_INIT_DBL(myThid,fnm,gnms(2),'HFacW','--')
294 CALL MNC_RESHAPE_RS_D(rnX, rnY, rnZ, istart, iend,
295 & HFacW(1-OLx,1-OLy,1,bi,bj), t_D)
296 CALL MNC_VAR_WRITE_DBL(myThid, fnm, 'HFacW', t_D)
297 CALL MNC_VAR_INIT_DBL(myThid,fnm,gnms(2),'HFacS','--')
298 CALL MNC_RESHAPE_RS_D(rnX, rnY, rnZ, istart, iend,
299 & HFacS(1-OLx,1-OLy,1,bi,bj), t_D)
300 CALL MNC_VAR_WRITE_DBL(myThid, fnm, 'HFacS', t_D)
301
302 ELSEIF ( RorD(1:1) .EQ. 'R' ) THEN
303
304 C rC, rF
305 CALL MNC_VAR_INIT_REAL(myThid,fnm,gnms(3),'rC','--')
306 CALL MNC_RESHAPE_RS_R(rnZ,1,1, 1,Nr, rC, t_R)
307 CALL MNC_VAR_WRITE_REAL(myThid, fnm, 'rC', t_R)
308 CALL MNC_VAR_INIT_REAL(myThid,fnm,gnms(4),'rF','--')
309 CALL MNC_RESHAPE_RS_R(rnZ+1,1,1, 1,Nr+1, rF, t_R)
310 CALL MNC_VAR_WRITE_REAL(myThid, fnm, 'rF', t_R)
311 C drC, drF
312 CALL MNC_VAR_INIT_REAL(myThid,fnm,gnms(3),'drC','--')
313 CALL MNC_RESHAPE_RS_R(rnZ,1,1, 1,Nr, drC, t_R)
314 CALL MNC_VAR_WRITE_REAL(myThid, fnm, 'drC', t_R)
315 CALL MNC_VAR_INIT_REAL(myThid,fnm,gnms(3),'drF','--')
316 CALL MNC_RESHAPE_RS_R(rnZ,1,1, 1,Nr, drF, t_R)
317 CALL MNC_VAR_WRITE_REAL(myThid, fnm, 'drF', t_R)
318 C saFac
319 CALL MNC_VAR_INIT_REAL(myThid,fnm,gnms(3),'saFac','--')
320 CALL MNC_RESHAPE_RS_R(rnZ,1,1, 1,Nr, saFac, t_R)
321 CALL MNC_VAR_WRITE_REAL(myThid, fnm, 'saFac', t_R)
322
323 C xC, yC
324 CALL MNC_VAR_INIT_REAL(myThid,fnm,gnms(1),'xC','m')
325 CALL MNC_RESHAPE_RS_R(rnX, rnY, 1, istart, iend,
326 & xC(1-OLx,1-OLy,bi,bj), t_R)
327 CALL MNC_VAR_WRITE_REAL(myThid, fnm, 'xC', t_R)
328 CALL MNC_VAR_INIT_REAL(myThid,fnm,gnms(1),'yC','m')
329 CALL MNC_RESHAPE_RS_R(rnX, rnY, 1, istart, iend,
330 & yC(1-OLx,1-OLy,bi,bj), t_R)
331 CALL MNC_VAR_WRITE_REAL(myThid, fnm, 'yC', t_R)
332 C xG, yG
333 CALL MNC_VAR_INIT_REAL(myThid,fnm,gnms(1),'xG','m')
334 CALL MNC_RESHAPE_RS_R(rnX, rnY, 1, istart, iend,
335 & xG(1-OLx,1-OLy,bi,bj), t_R)
336 CALL MNC_VAR_WRITE_REAL(myThid, fnm, 'xG', t_R)
337 CALL MNC_VAR_INIT_REAL(myThid,fnm,gnms(1),'yG','m')
338 CALL MNC_RESHAPE_RS_R(rnX, rnY, 1, istart, iend,
339 & yG(1-OLx,1-OLy,bi,bj), t_R)
340 CALL MNC_VAR_WRITE_REAL(myThid, fnm, 'yG', t_R)
341 C dxC, dyC
342 CALL MNC_VAR_INIT_REAL(myThid,fnm,gnms(1),'dxC','m')
343 CALL MNC_RESHAPE_RS_R(rnX, rnY, 1, istart, iend,
344 & dxC(1-OLx,1-OLy,bi,bj), t_R)
345 CALL MNC_VAR_WRITE_REAL(myThid, fnm, 'dxC', t_R)
346 CALL MNC_VAR_INIT_REAL(myThid,fnm,gnms(1),'dyC','m')
347 CALL MNC_RESHAPE_RS_R(rnX, rnY, 1, istart, iend,
348 & dyC(1-OLx,1-OLy,bi,bj), t_R)
349 CALL MNC_VAR_WRITE_REAL(myThid, fnm, 'dyC', t_R)
350 C dxF, dyF
351 CALL MNC_VAR_INIT_REAL(myThid,fnm,gnms(1),'dxF','m')
352 CALL MNC_RESHAPE_RS_R(rnX, rnY, 1, istart, iend,
353 & dxF(1-OLx,1-OLy,bi,bj), t_R)
354 CALL MNC_VAR_WRITE_REAL(myThid, fnm, 'dxF', t_R)
355 CALL MNC_VAR_INIT_REAL(myThid,fnm,gnms(1),'dyF','m')
356 CALL MNC_RESHAPE_RS_R(rnX, rnY, 1, istart, iend,
357 & dyF(1-OLx,1-OLy,bi,bj), t_R)
358 CALL MNC_VAR_WRITE_REAL(myThid, fnm, 'dyF', t_R)
359 C dxG, dyG
360 CALL MNC_VAR_INIT_REAL(myThid,fnm,gnms(1),'dxG','m')
361 CALL MNC_RESHAPE_RS_R(rnX, rnY, 1, istart, iend,
362 & dxG(1-OLx,1-OLy,bi,bj), t_R)
363 CALL MNC_VAR_WRITE_REAL(myThid, fnm, 'dxG', t_R)
364 CALL MNC_VAR_INIT_REAL(myThid,fnm,gnms(1),'dyG','m')
365 CALL MNC_RESHAPE_RS_R(rnX, rnY, 1, istart, iend,
366 & dyG(1-OLx,1-OLy,bi,bj), t_R)
367 CALL MNC_VAR_WRITE_REAL(myThid, fnm, 'dyG', t_R)
368 C dxV, dyU
369 CALL MNC_VAR_INIT_REAL(myThid,fnm,gnms(1),'dxV','m')
370 CALL MNC_RESHAPE_RS_R(rnX, rnY, 1, istart, iend,
371 & dxV(1-OLx,1-OLy,bi,bj), t_R)
372 CALL MNC_VAR_WRITE_REAL(myThid, fnm, 'dxV', t_R)
373 CALL MNC_VAR_INIT_REAL(myThid,fnm,gnms(1),'dyU','m')
374 CALL MNC_RESHAPE_RS_R(rnX, rnY, 1, istart, iend,
375 & dyU(1-OLx,1-OLy,bi,bj), t_R)
376 CALL MNC_VAR_WRITE_REAL(myThid, fnm, 'dyU', t_R)
377 C rA, rAw, rAs, rAz
378 CALL MNC_VAR_INIT_REAL(myThid,fnm,gnms(1),'rA','m')
379 CALL MNC_RESHAPE_RS_R(rnX, rnY, 1, istart, iend,
380 & rA(1-OLx,1-OLy,bi,bj), t_R)
381 CALL MNC_VAR_WRITE_REAL(myThid, fnm, 'rA', t_R)
382 CALL MNC_VAR_INIT_REAL(myThid,fnm,gnms(1),'rAw','m')
383 CALL MNC_RESHAPE_RS_R(rnX, rnY, 1, istart, iend,
384 & rAw(1-OLx,1-OLy,bi,bj), t_R)
385 CALL MNC_VAR_WRITE_REAL(myThid, fnm, 'rAw', t_R)
386 CALL MNC_VAR_INIT_REAL(myThid,fnm,gnms(1),'rAs','m')
387 CALL MNC_RESHAPE_RS_R(rnX, rnY, 1, istart, iend,
388 & rAs(1-OLx,1-OLy,bi,bj), t_R)
389 CALL MNC_VAR_WRITE_REAL(myThid, fnm, 'rAs', t_R)
390 CALL MNC_VAR_INIT_REAL(myThid,fnm,gnms(1),'rAz','m')
391 CALL MNC_RESHAPE_RS_R(rnX, rnY, 1, istart, iend,
392 & rAz(1-OLx,1-OLy,bi,bj), t_R)
393 CALL MNC_VAR_WRITE_REAL(myThid, fnm, 'rAz', t_R)
394 C fCori, fCoriG
395 CALL MNC_VAR_INIT_REAL(myThid,fnm,gnms(1),'fCori','m')
396 CALL MNC_RESHAPE_RS_R(rnX, rnY, 1, istart, iend,
397 & fCori(1-OLx,1-OLy,bi,bj), t_R)
398 CALL MNC_VAR_WRITE_REAL(myThid, fnm, 'fCori', t_R)
399 CALL MNC_VAR_INIT_REAL(myThid,fnm,gnms(1),'fCoriG','m')
400 CALL MNC_RESHAPE_RS_R(rnX, rnY, 1, istart, iend,
401 & fCoriG(1-OLx,1-OLy,bi,bj), t_R)
402 CALL MNC_VAR_WRITE_REAL(myThid, fnm, 'fCoriG', t_R)
403 C R_low, Ro_surf
404 CALL MNC_VAR_INIT_REAL(myThid,fnm,gnms(1),'R_low','--')
405 CALL MNC_RESHAPE_RS_R(rnX, rnY, 1, istart, iend,
406 & R_low(1-OLx,1-OLy,bi,bj), t_R)
407 CALL MNC_VAR_WRITE_REAL(myThid, fnm, 'R_low', t_R)
408 CALL MNC_VAR_INIT_REAL(myThid,fnm,gnms(1),'Ro_surf','--')
409 CALL MNC_RESHAPE_RS_R(rnX, rnY, 1, istart, iend,
410 & Ro_surf(1-OLx,1-OLy,bi,bj), t_R)
411 CALL MNC_VAR_WRITE_REAL(myThid, fnm, 'Ro_surf', t_R)
412 C HFacC, HFacW, HFacS
413 CALL MNC_VAR_INIT_REAL(myThid,fnm,gnms(2),'HFacC','--')
414 CALL MNC_RESHAPE_RS_R(rnX, rnY, rnZ, istart, iend,
415 & HFacC(1-OLx,1-OLy,1,bi,bj), t_R)
416 CALL MNC_VAR_WRITE_REAL(myThid, fnm, 'HFacC', t_R)
417 CALL MNC_VAR_INIT_REAL(myThid,fnm,gnms(2),'HFacW','--')
418 CALL MNC_RESHAPE_RS_R(rnX, rnY, rnZ, istart, iend,
419 & HFacW(1-OLx,1-OLy,1,bi,bj), t_R)
420 CALL MNC_VAR_WRITE_REAL(myThid, fnm, 'HFacW', t_R)
421 CALL MNC_VAR_INIT_REAL(myThid,fnm,gnms(2),'HFacS','--')
422 CALL MNC_RESHAPE_RS_R(rnX, rnY, rnZ, istart, iend,
423 & HFacS(1-OLx,1-OLy,1,bi,bj), t_R)
424 CALL MNC_VAR_WRITE_REAL(myThid, fnm, 'HFacS', t_R)
425
426 ELSE
427 write(msgbuf,'(a)') 'MNC ERROR: RodD must be [R|D]'
428 CALL print_error( msgbuf, mythid )
429 stop 'ABNORMAL END: S/R MNC_W_GRIDINFO_ALL'
430 ENDIF
431
432 C Add long_name attributes to the variables
433 mt = myThid
434 atnm(1:12) = 'description '
435 CALL MNC_VAR_ADD_ATTR_STR(mt,fnm,'rC',atnm,
436 & 'r of cell center')
437 CALL MNC_VAR_ADD_ATTR_STR(mt,fnm,'rF',atnm,
438 & 'r of cell face')
439 CALL MNC_VAR_ADD_ATTR_STR(mt,fnm,'drC',atnm,
440 & 'r cell center separation')
441 CALL MNC_VAR_ADD_ATTR_STR(mt,fnm,'drF',atnm,
442 & 'r cell face separation')
443 CALL MNC_VAR_ADD_ATTR_STR(mt,fnm,'saFac',atnm,
444 & 'shallow atmosphere factor')
445 CALL MNC_VAR_ADD_ATTR_STR(mt,fnm,'xC',atnm,
446 & 'x of cell center')
447 CALL MNC_VAR_ADD_ATTR_STR(mt,fnm,'yC',atnm,
448 & 'y of cell center')
449 CALL MNC_VAR_ADD_ATTR_STR(mt,fnm,'xG',atnm,
450 & 'x of cell corner')
451 CALL MNC_VAR_ADD_ATTR_STR(mt,fnm,'yG',atnm,
452 & 'y of cell corner')
453 CALL MNC_VAR_ADD_ATTR_STR(mt,fnm,'dxC',atnm,
454 & 'x cell center separation')
455 CALL MNC_VAR_ADD_ATTR_STR(mt,fnm,'dyC',atnm,
456 & 'y cell center separation')
457 CALL MNC_VAR_ADD_ATTR_STR(mt,fnm,'dxF',atnm,
458 & 'x cell face separation')
459 CALL MNC_VAR_ADD_ATTR_STR(mt,fnm,'dyF',atnm,
460 & 'y cell face separation')
461 CALL MNC_VAR_ADD_ATTR_STR(mt,fnm,'dxG',atnm,
462 & 'x cell face separation')
463 CALL MNC_VAR_ADD_ATTR_STR(mt,fnm,'dyG',atnm,
464 & 'y cell face separation')
465 CALL MNC_VAR_ADD_ATTR_STR(mt,fnm,'dxV',atnm,
466 & 'x v-velocity separation')
467 CALL MNC_VAR_ADD_ATTR_STR(mt,fnm,'dyU',atnm,
468 & 'y u-velocity separation')
469 CALL MNC_VAR_ADD_ATTR_STR(mt,fnm,'rA',atnm,
470 & 'r-face area')
471 CALL MNC_VAR_ADD_ATTR_STR(mt,fnm,'rAw',atnm,
472 & '')
473 CALL MNC_VAR_ADD_ATTR_STR(mt,fnm,'rAs',atnm,
474 & '')
475 CALL MNC_VAR_ADD_ATTR_STR(mt,fnm,'rAz',atnm,
476 & '')
477 CALL MNC_VAR_ADD_ATTR_STR(mt,fnm,'fCori',atnm,
478 & 'Coriolis f')
479 CALL MNC_VAR_ADD_ATTR_STR(mt,fnm,'fCoriG',atnm,
480 & 'Coriolis f')
481 CALL MNC_VAR_ADD_ATTR_STR(mt,fnm,'R_low',atnm,
482 & 'base of fluid in r-units')
483 CALL MNC_VAR_ADD_ATTR_STR(mt,fnm,'Ro_surf',atnm,
484 & 'surface reference (at rest) position')
485 CALL MNC_VAR_ADD_ATTR_STR(mt,fnm,'HFacC',atnm,
486 & 'C-facing vertical fraction of open cell')
487 CALL MNC_VAR_ADD_ATTR_STR(mt,fnm,'HFacW',atnm,
488 & 'W-facing vertical fraction of open cell')
489 CALL MNC_VAR_ADD_ATTR_STR(mt,fnm,'HFacS',atnm,
490 & 'S-facing vertical fraction of open cell')
491
492 C CALL MNC_DUMP()
493
494 C Close the grid file
495 CALL MNC_FILE_CLOSE(myThid, fnm)
496
497 ENDDO
498 ENDDO
499
500 _END_MASTER( myThid )
501
502 RETURN
503 END
504
505 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|

  ViewVC Help
Powered by ViewVC 1.1.22