/[MITgcm]/MITgcm/pkg/ctrl/ctrl_pack.F
ViewVC logotype

Contents of /MITgcm/pkg/ctrl/ctrl_pack.F

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


Revision 1.37 - (show annotations) (download)
Sun Mar 13 22:25:56 2011 UTC (13 years, 2 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint62v, checkpoint62u, checkpoint62w
Changes since 1.36: +3 -3 lines
Merging Benny Cheng code for init. etan, uvel, vvel controls
Fix weight handling

1 C $Header: /u/gcmpack/MITgcm/pkg/ctrl/ctrl_pack.F,v 1.36 2010/09/26 02:51:38 gforget Exp $
2 C $Name: $
3
4 #include "PACKAGES_CONFIG.h"
5 #include "CTRL_CPPOPTIONS.h"
6
7 subroutine ctrl_pack( first, mythid )
8
9 c ==================================================================
10 c SUBROUTINE ctrl_pack
11 c ==================================================================
12 c
13 c o Compress the control vector such that only ocean points are
14 c written to file.
15 c
16 c started: Christian Eckert eckert@mit.edu 10-Mar=2000
17 c
18 c changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000
19 c - Transferred some filename declarations
20 c from here to namelist in ctrl_init
21 c
22 c Patrick Heimbach heimbach@mit.edu 16-Jun-2000
23 c - single file name convention with or without
24 c ALLOW_ECCO_OPTIMIZATION
25 c
26 c G. Gebbie, added open boundary control packing,
27 c gebbie@mit.edu 18 -Mar- 2003
28 c
29 c heimbach@mit.edu totally restructured 28-Oct-2003
30 c
31 c ==================================================================
32 c SUBROUTINE ctrl_pack
33 c ==================================================================
34
35 implicit none
36
37 c == global variables ==
38
39 #include "EEPARAMS.h"
40 #include "SIZE.h"
41 #include "PARAMS.h"
42 #include "GRID.h"
43
44 #include "ctrl.h"
45 #include "optim.h"
46
47 #ifdef ALLOW_COST
48 # include "cost.h"
49 #endif
50 #ifdef ALLOW_ECCO
51 # include "ecco_cost.h"
52 #else
53 # include "ctrl_weights.h"
54 #endif
55
56 c == routine arguments ==
57
58 logical first
59 integer mythid
60
61 #ifndef EXCLUDE_CTRL_PACK
62 c == local variables ==
63
64 _RL fcloc
65
66 integer i, j, k
67 integer ii
68 integer il
69 integer irec
70 integer ig,jg
71 integer ivartype
72 integer iobcs
73
74 logical doglobalread
75 logical ladinit
76 integer cbuffindex
77 logical lxxadxx
78
79 integer cunit
80 integer ictrlgrad
81
82 character*(128) cfile
83 character*( 80) weighttype
84
85 c == external ==
86
87 integer ilnblnk
88 external ilnblnk
89
90 c == end of interface ==
91
92 #ifndef ALLOW_ECCO_OPTIMIZATION
93 fmin = 0. _d 0
94 #endif
95
96 c-- Tiled files are used.
97 doglobalread = .false.
98
99 c-- Initialise adjoint variables on active files.
100 ladinit = .false.
101
102 c-- Initialise global buffer index
103 nbuffglobal = 0
104
105 c-- Assign file names.
106
107 call ctrl_set_fname(xx_theta_file, fname_theta, mythid)
108 call ctrl_set_fname(xx_salt_file, fname_salt, mythid)
109 call ctrl_set_fname(xx_hflux_file, fname_hflux, mythid)
110 call ctrl_set_fname(xx_sflux_file, fname_sflux, mythid)
111 call ctrl_set_fname(xx_tauu_file, fname_tauu, mythid)
112 call ctrl_set_fname(xx_tauv_file, fname_tauv, mythid)
113 call ctrl_set_fname(xx_atemp_file, fname_atemp, mythid)
114 call ctrl_set_fname(xx_aqh_file, fname_aqh, mythid)
115 call ctrl_set_fname(xx_precip_file, fname_precip, mythid)
116 call ctrl_set_fname(xx_swflux_file, fname_swflux, mythid)
117 call ctrl_set_fname(xx_swdown_file, fname_swdown, mythid)
118 call ctrl_set_fname(xx_lwflux_file, fname_lwflux, mythid)
119 call ctrl_set_fname(xx_lwdown_file, fname_lwdown, mythid)
120 call ctrl_set_fname(xx_evap_file, fname_evap, mythid)
121 call ctrl_set_fname(xx_snowprecip_file, fname_snowprecip, mythid)
122 call ctrl_set_fname(xx_apressure_file, fname_apressure, mythid)
123 call ctrl_set_fname(xx_runoff_file, fname_runoff, mythid)
124
125 call ctrl_set_fname(xx_uwind_file, fname_uwind, mythid)
126 call ctrl_set_fname(xx_vwind_file, fname_vwind, mythid)
127 call ctrl_set_fname(xx_obcsn_file, fname_obcsn, mythid)
128 call ctrl_set_fname(xx_obcss_file, fname_obcss, mythid)
129 call ctrl_set_fname(xx_obcsw_file, fname_obcsw, mythid)
130 call ctrl_set_fname(xx_obcse_file, fname_obcse, mythid)
131 call ctrl_set_fname(xx_diffkr_file, fname_diffkr, mythid)
132 call ctrl_set_fname(xx_kapgm_file, fname_kapgm, mythid)
133 call ctrl_set_fname(xx_kapredi_file, fname_kapredi, mythid)
134 call ctrl_set_fname(xx_tr1_file, fname_tr1, mythid)
135 call ctrl_set_fname(xx_sst_file, fname_sst, mythid)
136 call ctrl_set_fname(xx_sss_file, fname_sss, mythid)
137 call ctrl_set_fname(xx_depth_file, fname_depth, mythid)
138 call ctrl_set_fname(xx_efluxy_file, fname_efluxy, mythid)
139 call ctrl_set_fname(xx_efluxp_file, fname_efluxp, mythid)
140 call ctrl_set_fname(xx_bottomdrag_file, fname_bottomdrag, mythid)
141 call ctrl_set_fname(xx_edtaux_file, fname_edtaux, mythid)
142 call ctrl_set_fname(xx_edtauy_file, fname_edtauy, mythid)
143 call ctrl_set_fname(xx_uvel_file, fname_uvel, mythid)
144 call ctrl_set_fname(xx_vvel_file, fname_vvel, mythid)
145 call ctrl_set_fname(xx_etan_file, fname_etan, mythid)
146 call ctrl_set_fname(xx_relaxsst_file, fname_relaxsst, mythid)
147 call ctrl_set_fname(xx_relaxsss_file, fname_relaxsss, mythid)
148 call ctrl_set_fname(xx_siarea_file, fname_siarea, mythid)
149 call ctrl_set_fname(xx_siheff_file, fname_siheff, mythid)
150 call ctrl_set_fname(xx_sihsnow_file, fname_sihsnow, mythid)
151 cHFLUXM_CONTROL
152 call ctrl_set_fname(xx_hfluxm_file, fname_hfluxm, mythid)
153 cHFLUXM_CONTROL
154
155 c-- Only the master thread will do I/O.
156 _BEGIN_MASTER( mythid )
157
158 if ( first ) then
159 c >>> Initialise control vector for optimcycle=0 <<<
160 lxxadxx = .TRUE.
161 ictrlgrad = 1
162 fcloc = fmin
163 write(cfile(1:128),'(4a,i4.4)')
164 & ctrlname(1:9),'_',yctrlid(1:10),
165 & yctrlpospack, optimcycle
166 print *, 'ph-pack: packing ', ctrlname(1:9)
167 else
168 c >>> Write gradient vector <<<
169 lxxadxx = .FALSE.
170 ictrlgrad = 2
171 fcloc = fc
172 write(cfile(1:128),'(4a,i4.4)')
173 & costname(1:9),'_',yctrlid(1:10),
174 & yctrlpospack, optimcycle
175 print *, 'ph-pack: packing ', costname(1:9)
176 endif
177
178 c-- Only Proc 0 will do I/O.
179 IF ( myProcId .eq. 0 ) THEN
180
181 call mdsfindunit( cunit, mythid )
182 open( cunit, file = cfile,
183 & status = 'unknown',
184 & form = 'unformatted',
185 & access = 'sequential' )
186
187 c-- Header information.
188 write(cunit) nvartype
189 write(cunit) nvarlength
190 write(cunit) yctrlid
191 write(cunit) optimCycle
192 write(cunit) fc
193 C place holder of obsolete variable iG
194 write(cunit) 1
195 C place holder of obsolete variable jG
196 write(cunit) 1
197 write(cunit) nsx
198 write(cunit) nsy
199 write(cunit) (nWetcGlobal(k), k=1,nr)
200 write(cunit) (nWetsGlobal(k), k=1,nr)
201 write(cunit) (nWetwGlobal(k), k=1,nr)
202 #ifdef ALLOW_CTRL_WETV
203 write(cunit) (nWetvGlobal(k), k=1,nr)
204 #endif
205
206 #ifdef ALLOW_OBCSN_CONTROL
207 write(cunit) ((nWetobcsnGlo(k,iobcs), k=1,nr),iobcs= 1,nobcs)
208 #endif
209 #ifdef ALLOW_OBCSS_CONTROL
210 write(cunit) ((nWetobcssGlo(k,iobcs), k=1,nr),iobcs= 1,nobcs)
211 #endif
212 #ifdef ALLOW_OBCSW_CONTROL
213 write(cunit) ((nWetobcswGlo(k,iobcs), k=1,nr),iobcs= 1,nobcs)
214 #endif
215 #ifdef ALLOW_OBCSE_CONTROL
216 write(cunit) ((nWetobcseGlo(k,iobcs), k=1,nr),iobcs= 1,nobcs)
217 #endif
218 write(cunit) (ncvarindex(i), i=1,maxcvars)
219 write(cunit) (ncvarrecs(i), i=1,maxcvars)
220 write(cunit) (ncvarxmax(i), i=1,maxcvars)
221 write(cunit) (ncvarymax(i), i=1,maxcvars)
222 write(cunit) (ncvarnrmax(i), i=1,maxcvars)
223 write(cunit) (ncvargrd(i), i=1,maxcvars)
224 write(cunit)
225
226 #ifdef ALLOW_PACKUNPACK_METHOD2
227 ENDIF
228 _END_MASTER( mythid )
229 _BARRIER
230 #endif
231
232 #ifdef ALLOW_THETA0_CONTROL
233 ivartype = 1
234 write(weighttype(1:80),'(80a)') ' '
235 write(weighttype(1:80),'(a)') "wthetaLev"
236 call ctrl_set_pack_xyz(
237 & cunit, ivartype, fname_theta(ictrlgrad), "maskCtrlC",
238 & weighttype, wtheta, lxxadxx, mythid)
239 #endif
240
241 #ifdef ALLOW_SALT0_CONTROL
242 ivartype = 2
243 write(weighttype(1:80),'(80a)') ' '
244 write(weighttype(1:80),'(a)') "wsaltLev"
245 call ctrl_set_pack_xyz(
246 & cunit, ivartype, fname_salt(ictrlgrad), "maskCtrlC",
247 & weighttype, wsalt, lxxadxx, mythid)
248 #endif
249
250 #if (defined (ALLOW_HFLUX_CONTROL) || defined (ALLOW_HFLUX0_CONTROL))
251 ivartype = 3
252 write(weighttype(1:80),'(80a)') ' '
253 write(weighttype(1:80),'(a)') "whflux"
254 call ctrl_set_pack_xy(
255 & cunit, ivartype, fname_hflux(ictrlgrad), "maskCtrlC",
256 & weighttype, lxxadxx, mythid)
257 #endif
258
259 #if (defined (ALLOW_SFLUX_CONTROL) || defined (ALLOW_SFLUX0_CONTROL))
260 ivartype = 4
261 write(weighttype(1:80),'(80a)') ' '
262 write(weighttype(1:80),'(a)') "wsflux"
263 call ctrl_set_pack_xy(
264 & cunit, ivartype, fname_sflux(ictrlgrad), "maskCtrlC",
265 & weighttype, lxxadxx, mythid)
266 #endif
267
268 #if (defined (ALLOW_USTRESS_CONTROL) || defined (ALLOW_TAUU0_CONTROL))
269 ivartype = 5
270 write(weighttype(1:80),'(80a)') ' '
271 write(weighttype(1:80),'(a)') "wtauu"
272 call ctrl_set_pack_xy(
273 #ifndef ALLOW_ROTATE_UV_CONTROLS
274 & cunit, ivartype, fname_tauu(ictrlgrad), "maskCtrlW",
275 #else
276 & cunit, ivartype, fname_tauu(ictrlgrad), "maskCtrlC",
277 #endif
278 & weighttype, lxxadxx, mythid)
279 #endif
280
281 #if (defined (ALLOW_VSTRESS_CONTROL) || defined (ALLOW_TAUV0_CONTROL))
282 ivartype = 6
283 write(weighttype(1:80),'(80a)') ' '
284 write(weighttype(1:80),'(a)') "wtauv"
285 call ctrl_set_pack_xy(
286 #ifndef ALLOW_ROTATE_UV_CONTROLS
287 & cunit, ivartype, fname_tauv(ictrlgrad), "maskCtrlS",
288 #else
289 & cunit, ivartype, fname_tauv(ictrlgrad), "maskCtrlC",
290 #endif
291 & weighttype, lxxadxx, mythid)
292 #endif
293
294 #ifdef ALLOW_ATEMP_CONTROL
295 ivartype = 7
296 write(weighttype(1:80),'(80a)') ' '
297 write(weighttype(1:80),'(a)') "watemp"
298 call ctrl_set_pack_xy(
299 & cunit, ivartype, fname_atemp(ictrlgrad), "maskCtrlC",
300 & weighttype, lxxadxx, mythid)
301 #endif
302
303 #ifdef ALLOW_AQH_CONTROL
304 ivartype = 8
305 write(weighttype(1:80),'(80a)') ' '
306 write(weighttype(1:80),'(a)') "waqh"
307 call ctrl_set_pack_xy(
308 & cunit, ivartype, fname_aqh(ictrlgrad), "maskCtrlC",
309 & weighttype, lxxadxx, mythid)
310 #endif
311
312 #ifdef ALLOW_UWIND_CONTROL
313 ivartype = 9
314 write(weighttype(1:80),'(80a)') ' '
315 write(weighttype(1:80),'(a)') "wuwind"
316 call ctrl_set_pack_xy(
317 & cunit, ivartype, fname_uwind(ictrlgrad), "maskCtrlC",
318 & weighttype, lxxadxx, mythid)
319 #endif
320
321 #ifdef ALLOW_VWIND_CONTROL
322 ivartype = 10
323 write(weighttype(1:80),'(80a)') ' '
324 write(weighttype(1:80),'(a)') "wvwind"
325 call ctrl_set_pack_xy(
326 & cunit, ivartype, fname_vwind(ictrlgrad), "maskCtrlC",
327 & weighttype, lxxadxx, mythid)
328 #endif
329
330 #ifdef ALLOW_OBCSN_CONTROL
331 ivartype = 11
332 write(weighttype(1:80),'(80a)') ' '
333 write(weighttype(1:80),'(a)') "wobcsn"
334 call ctrl_set_pack_xz(
335 & cunit, ivartype, fname_obcsn(ictrlgrad), "maskobcsn",
336 & weighttype, wobcsn, lxxadxx, mythid)
337 #endif
338
339 #ifdef ALLOW_OBCSS_CONTROL
340 ivartype = 12
341 write(weighttype(1:80),'(80a)') ' '
342 write(weighttype(1:80),'(a)') "wobcss"
343 call ctrl_set_pack_xz(
344 & cunit, ivartype, fname_obcss(ictrlgrad), "maskobcss",
345 & weighttype, wobcss, lxxadxx, mythid)
346 #endif
347
348 #ifdef ALLOW_OBCSW_CONTROL
349 ivartype = 13
350 write(weighttype(1:80),'(80a)') ' '
351 write(weighttype(1:80),'(a)') "wobcsw"
352 call ctrl_set_pack_yz(
353 & cunit, ivartype, fname_obcsw(ictrlgrad), "maskobcsw",
354 & weighttype, wobcsw, lxxadxx, mythid)
355 #endif
356
357 #ifdef ALLOW_OBCSE_CONTROL
358 ivartype = 14
359 write(weighttype(1:80),'(80a)') ' '
360 write(weighttype(1:80),'(a)') "wobcse"
361 call ctrl_set_pack_yz(
362 & cunit, ivartype, fname_obcse(ictrlgrad), "maskobcse",
363 & weighttype, wobcse, lxxadxx, mythid)
364 #endif
365
366 #ifdef ALLOW_DIFFKR_CONTROL
367 ivartype = 15
368 write(weighttype(1:80),'(80a)') ' '
369 write(weighttype(1:80),'(a)') "wdiffkr"
370 call ctrl_set_pack_xyz(
371 & cunit, ivartype, fname_diffkr(ictrlgrad), "maskCtrlC",
372 & weighttype, wdiffkr, lxxadxx, mythid)
373 #endif
374
375 #ifdef ALLOW_KAPGM_CONTROL
376 ivartype = 16
377 write(weighttype(1:80),'(80a)') ' '
378 write(weighttype(1:80),'(a)') "wkapgm"
379 call ctrl_set_pack_xyz(
380 & cunit, ivartype, fname_kapgm(ictrlgrad), "maskCtrlC",
381 & weighttype, wkapgm, lxxadxx, mythid)
382 #endif
383
384 #ifdef ALLOW_TR10_CONTROL
385 ivartype = 17
386 write(weighttype(1:80),'(80a)') ' '
387 write(weighttype(1:80),'(a)') "wtr1"
388 call ctrl_set_pack_xyz(
389 & cunit, ivartype, fname_tr1(ictrlgrad), "maskCtrlC",
390 & weighttype, wunit, lxxadxx, mythid)
391 #endif
392
393 #if (defined (ALLOW_SST_CONTROL) || defined (ALLOW_SST0_CONTROL))
394 ivartype = 18
395 write(weighttype(1:80),'(80a)') ' '
396 write(weighttype(1:80),'(a)') "wsst"
397 call ctrl_set_pack_xy(
398 & cunit, ivartype, fname_sst(ictrlgrad), "maskCtrlC",
399 & weighttype, lxxadxx, mythid)
400 #endif
401
402 #if (defined (ALLOW_SSS_CONTROL) || defined (ALLOW_SSS0_CONTROL))
403 ivartype = 19
404 write(weighttype(1:80),'(80a)') ' '
405 write(weighttype(1:80),'(a)') "wsss"
406 call ctrl_set_pack_xy(
407 & cunit, ivartype, fname_sss(ictrlgrad),
408 & "maskCtrlC", weighttype, lxxadxx, mythid)
409 #endif
410
411 #ifdef ALLOW_DEPTH_CONTROL
412 ivartype = 20
413 write(weighttype(1:80),'(80a)') ' '
414 write(weighttype(1:80),'(a)') "wdepth"
415 call ctrl_set_pack_xy(
416 & cunit, ivartype, fname_depth(ictrlgrad),
417 & "maskCtrlC", weighttype, lxxadxx, mythid)
418 #endif /* ALLOW_DEPTH_CONTROL */
419
420 #ifdef ALLOW_EFLUXY0_CONTROL
421 ivartype = 21
422 write(weighttype(1:80),'(80a)') ' '
423 write(weighttype(1:80),'(a)') "wefluxy0"
424 call ctrl_set_pack_xyz(
425 & cunit, ivartype, fname_efluxy(ictrlgrad), "maskCtrlS",
426 & weighttype, wunit, lxxadxx, mythid)
427 #endif
428
429 #ifdef ALLOW_EFLUXP0_CONTROL
430 ivartype = 22
431 write(weighttype(1:80),'(80a)') ' '
432 write(weighttype(1:80),'(a)') "wefluxp0"
433 call ctrl_set_pack_xyz(
434 & cunit, ivartype, fname_efluxp(ictrlgrad), "maskhFacV",
435 & weighttype, wunit, lxxadxx, mythid)
436 #endif
437
438 #ifdef ALLOW_BOTTOMDRAG_CONTROL
439 ivartype = 23
440 write(weighttype(1:80),'(80a)') ' '
441 write(weighttype(1:80),'(a)') "wbottomdrag"
442 call ctrl_set_pack_xy(
443 & cunit, ivartype, fname_bottomdrag(ictrlgrad), "maskCtrlC",
444 & weighttype, lxxadxx, mythid)
445 #endif
446
447 #ifdef ALLOW_HFLUXM_CONTROL
448 ivartype = 24
449 write(weighttype(1:80),'(80a)') ' '
450 write(weighttype(1:80),'(a)') "whfluxm"
451 call ctrl_set_pack_xy(
452 & cunit, ivartype, fname_hfluxm(ictrlgrad), "maskCtrlC",
453 & weighttype, lxxadxx, mythid)
454 #endif
455
456 #ifdef ALLOW_EDDYPSI_CONTROL
457 ivartype = 25
458 write(weighttype(1:80),'(80a)') ' '
459 write(weighttype(1:80),'(a)') "wedtaux"
460 call ctrl_set_pack_xyz(
461 & cunit, ivartype, fname_edtaux(ictrlgrad), "maskCtrlW",
462 & weighttype, wedtaux, lxxadxx, mythid)
463
464 ivartype = 26
465 write(weighttype(1:80),'(80a)') ' '
466 write(weighttype(1:80),'(a)') "wedtauy"
467 call ctrl_set_pack_xyz(
468 & cunit, ivartype, fname_edtauy(ictrlgrad), "maskCtrlS",
469 & weighttype, wedtauy, lxxadxx, mythid)
470 #endif
471
472 #ifdef ALLOW_UVEL0_CONTROL
473 ivartype = 27
474 write(weighttype(1:80),'(80a)') ' '
475 write(weighttype(1:80),'(a)') "wuvel"
476 call ctrl_set_pack_xyz(
477 & cunit, ivartype, fname_uvel(ictrlgrad), "maskCtrlW",
478 & weighttype, wuvel, lxxadxx, mythid)
479 #endif
480
481 #ifdef ALLOW_VVEL0_CONTROL
482 ivartype = 28
483 write(weighttype(1:80),'(80a)') ' '
484 write(weighttype(1:80),'(a)') "wvvel"
485 call ctrl_set_pack_xyz(
486 & cunit, ivartype, fname_vvel(ictrlgrad), "maskCtrlS",
487 & weighttype, wvvel, lxxadxx, mythid)
488 #endif
489
490 #ifdef ALLOW_ETAN0_CONTROL
491 ivartype = 29
492 write(weighttype(1:80),'(80a)') ' '
493 write(weighttype(1:80),'(a)') "wetan"
494 call ctrl_set_pack_xy(
495 & cunit, ivartype, fname_etan(ictrlgrad),
496 & "maskCtrlC", weighttype, lxxadxx, mythid)
497 #endif
498
499 #ifdef ALLOW_RELAXSST_CONTROL
500 ivartype = 30
501 write(weighttype(1:80),'(80a)') ' '
502 write(weighttype(1:80),'(a)') "wrelaxsst"
503 call ctrl_set_pack_xy(
504 & cunit, ivartype, fname_relaxsst(ictrlgrad),
505 & "maskCtrlC", weighttype, lxxadxx, mythid)
506 #endif
507
508 #ifdef ALLOW_RELAXSSS_CONTROL
509 ivartype = 31
510 write(weighttype(1:80),'(80a)') ' '
511 write(weighttype(1:80),'(a)') "wrelaxsss"
512 call ctrl_set_pack_xy(
513 & cunit, ivartype, fname_relaxsss(ictrlgrad),
514 & "maskCtrlC", weighttype, lxxadxx, mythid)
515 #endif
516
517 #ifdef ALLOW_PRECIP_CONTROL
518 ivartype = 32
519 write(weighttype(1:80),'(80a)') ' '
520 write(weighttype(1:80),'(a)') "wprecip"
521 call ctrl_set_pack_xy(
522 & cunit, ivartype, fname_precip(ictrlgrad),
523 & "maskCtrlC", weighttype, lxxadxx, mythid)
524 #endif
525
526 #ifdef ALLOW_SWFLUX_CONTROL
527 ivartype = 33
528 write(weighttype(1:80),'(80a)') ' '
529 write(weighttype(1:80),'(a)') "wswflux"
530 call ctrl_set_pack_xy(
531 & cunit, ivartype, fname_swflux(ictrlgrad),
532 & "maskCtrlC", weighttype, lxxadxx, mythid)
533 #endif
534
535 #ifdef ALLOW_SWDOWN_CONTROL
536 ivartype = 34
537 write(weighttype(1:80),'(80a)') ' '
538 write(weighttype(1:80),'(a)') "wswdown"
539 call ctrl_set_pack_xy(
540 & cunit, ivartype, fname_swdown(ictrlgrad),
541 & "maskCtrlC", weighttype, lxxadxx, mythid)
542 #endif
543
544 #ifdef ALLOW_LWFLUX_CONTROL
545 ivartype = 35
546 write(weighttype(1:80),'(80a)') ' '
547 write(weighttype(1:80),'(a)') "wlwflux"
548 call ctrl_set_pack_xy(
549 & cunit, ivartype, fname_lwflux(ictrlgrad),
550 & "maskCtrlC", weighttype, lxxadxx, mythid)
551 #endif
552
553 #ifdef ALLOW_LWDOWN_CONTROL
554 ivartype = 36
555 write(weighttype(1:80),'(80a)') ' '
556 write(weighttype(1:80),'(a)') "wlwdown"
557 call ctrl_set_pack_xy(
558 & cunit, ivartype, fname_lwdown(ictrlgrad),
559 & "maskCtrlC", weighttype, lxxadxx, mythid)
560 #endif
561
562 #ifdef ALLOW_EVAP_CONTROL
563 ivartype = 37
564 write(weighttype(1:80),'(80a)') ' '
565 write(weighttype(1:80),'(a)') "wevap"
566 call ctrl_set_pack_xy(
567 & cunit, ivartype, fname_evap(ictrlgrad),
568 & "maskCtrlC", weighttype, lxxadxx, mythid)
569 #endif
570
571 #ifdef ALLOW_SNOWPRECIP_CONTROL
572 ivartype = 38
573 write(weighttype(1:80),'(80a)') ' '
574 write(weighttype(1:80),'(a)') "wsnowprecip"
575 call ctrl_set_pack_xy(
576 & cunit, ivartype, fname_snowprecip(ictrlgrad),
577 & "maskCtrlC", weighttype, lxxadxx, mythid)
578 #endif
579
580 #ifdef ALLOW_APRESSURE_CONTROL
581 ivartype = 39
582 write(weighttype(1:80),'(80a)') ' '
583 write(weighttype(1:80),'(a)') "wapressure"
584 call ctrl_set_pack_xy(
585 & cunit, ivartype, fname_apressure(ictrlgrad),
586 & "maskCtrlC", weighttype, lxxadxx, mythid)
587 #endif
588
589 #ifdef ALLOW_RUNOFF_CONTROL
590 ivartype = 40
591 write(weighttype(1:80),'(80a)') ' '
592 write(weighttype(1:80),'(a)') "wrunoff"
593 call ctrl_set_pack_xy(
594 & cunit, ivartype, fname_runoff(ictrlgrad),
595 & "maskCtrlC", weighttype, lxxadxx, mythid)
596 #endif
597
598 #ifdef ALLOW_SIAREA_CONTROL
599 ivartype = 41
600 write(weighttype(1:80),'(80a)') ' '
601 write(weighttype(1:80),'(a)') "wunit"
602 call ctrl_set_pack_xy(
603 & cunit, ivartype, fname_siarea(ictrlgrad),
604 & "maskCtrlC", weighttype, lxxadxx, mythid)
605 #endif
606
607 #ifdef ALLOW_SIHEFF_CONTROL
608 ivartype = 42
609 write(weighttype(1:80),'(80a)') ' '
610 write(weighttype(1:80),'(a)') "wunit"
611 call ctrl_set_pack_xy(
612 & cunit, ivartype, fname_siheff(ictrlgrad),
613 & "maskCtrlC", weighttype, lxxadxx, mythid)
614 #endif
615
616 #ifdef ALLOW_SIHSNOW_CONTROL
617 ivartype = 43
618 write(weighttype(1:80),'(80a)') ' '
619 write(weighttype(1:80),'(a)') "wunit"
620 call ctrl_set_pack_xy(
621 & cunit, ivartype, fname_sihsnow(ictrlgrad),
622 & "maskCtrlC", weighttype, lxxadxx, mythid)
623 #endif
624
625 #ifdef ALLOW_KAPREDI_CONTROL
626 ivartype = 44
627 write(weighttype(1:80),'(80a)') ' '
628 write(weighttype(1:80),'(a)') "wkapredi"
629 call ctrl_set_pack_xyz(
630 & cunit, ivartype, fname_kapredi(ictrlgrad), "maskCtrlC",
631 & weighttype, wkapredi, lxxadxx, mythid)
632 #endif
633
634 #ifdef ALLOW_PACKUNPACK_METHOD2
635 _BEGIN_MASTER( mythid )
636 IF ( myProcId .eq. 0 ) THEN
637 #endif
638
639 close ( cunit )
640 ENDIF !IF ( myProcId .eq. 0 )
641 _END_MASTER( mythid )
642 _BARRIER
643 #endif /* EXCLUDE_CTRL_PACK */
644
645 return
646 end
647

  ViewVC Help
Powered by ViewVC 1.1.22