/[MITgcm]/MITgcm/pkg/autodiff/active_file_g.F
ViewVC logotype

Contents of /MITgcm/pkg/autodiff/active_file_g.F

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


Revision 1.9 - (show annotations) (download)
Sat Nov 5 19:20:42 2011 UTC (12 years, 7 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint63g, checkpoint63p, checkpoint63q, checkpoint63l, checkpoint63m, checkpoint63n, checkpoint63o, checkpoint63h, checkpoint63i, checkpoint63j, checkpoint63k, checkpoint63e, checkpoint63f
Changes since 1.8: +13 -324 lines
*  make derivative dummy available in derivative active read routine
   (needed by kalex)
* clean up obsolete _tile_ routines

1 C $Header: /u/gcmpack/MITgcm/pkg/autodiff/active_file_g.F,v 1.8 2009/10/10 18:07:04 heimbach Exp $
2 C $Name: $
3
4 #include "AUTODIFF_OPTIONS.h"
5
6 c ==================================================================
7 c
8 c active_file_g.F: Routines to handle the I/O of the active file for
9 c the tangent linear calculations. All files are
10 c direct access files.
11 c
12 c Routines
13 c
14 c o g_active_read_xy - Read an active 2D variable from file.
15 c o g_active_read_xyz - Read an active 3D variable from file.
16 c o g_active_read_xz - Read an active 2D xz-slice from file.
17 c o g_active_read_yz - Read an active 2D yz-slice from file.
18 c
19 c o g_active_write_xy - Write an active 2D variable to a file.
20 c o g_active_write_xyz - Write an active 3D variable to a file.
21 c o g_active_write_xz - Write an active 2D xz-slice to a file.
22 c o g_active_write_yz - Write an active 2D yz-slice to a file.
23 c
24 c changed: Christian Eckert eckert@mit.edu 24-Apr-2000
25 c - Added routines that do active writes on tiles
26 c instead of a whole thread.
27 c changed: heimbach@mit.edu 05-Mar-2001
28 c - added active file handling of xz-/yz-arrays
29 c
30 c ==================================================================
31
32
33 CBOP
34 C !ROUTINE: g_active_read_xy
35 C !INTERFACE:
36 subroutine g_active_read_xy(
37 I active_var_file,
38 O active_var,
39 I g_active_var,
40 I irec,
41 I doglobalread,
42 I lAdInit,
43 I myOptimIter,
44 I mythid,
45 I dummy,
46 I g_dummy
47 & )
48
49 C !DESCRIPTION: \bv
50 c ==================================================================
51 c SUBROUTINE g_active_read_xy
52 c ==================================================================
53 c o Read an active 2D (XY) variable from file.
54 c started: Christian Eckert eckert@mit.edu 30-Jun-1999
55 c ==================================================================
56 c SUBROUTINE g_active_read_xy
57 c ==================================================================
58 C \ev
59
60 C !USES:
61 implicit none
62
63 c == global variables ==
64 #include "EEPARAMS.h"
65 #include "SIZE.h"
66
67 C !INPUT/OUTPUT PARAMETERS:
68 c == routine arguments ==
69 c active_var_file: filename
70 c active_var: array
71 c irec: record number
72 c myOptimIter: number of optimization iteration (default: 0)
73 c mythid: thread number for this instance
74 c doglobalread: flag for global or local read/write
75 c (default: .false.)
76 c lAdInit: initialisation of corresponding adjoint
77 c variable and write to active file
78 character*(*) active_var_file
79 _RL active_var(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
80 _RL g_active_var(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
81 integer irec
82 integer myOptimIter
83 integer mythid
84 logical doglobalread
85 logical lAdInit
86 _RL dummy, g_dummy
87
88 C !LOCAL VARIABLES:
89 c == local variables ==
90 integer mynr
91 integer il
92 integer ilnblnk
93 character*(2) pref
94 character*(80) fname
95
96 c == end of interface ==
97 CEOP
98
99 mynr = 1
100 pref = 'g_'
101 write(fname(1:80),'(a)') ' '
102 il = ilnblnk(active_var_file)
103 write(fname(1:2),'(a)') pref
104 write(fname(3:2+il),'(a)') active_var_file(1:il)
105
106 call active_read_rl( active_var_file, active_var, doglobalread,
107 & lAdInit, irec, mynr,
108 & FORWARD_SIMULATION, myOptimIter, mythid)
109
110 call active_read_rl( fname, g_active_var, doglobalread,
111 & lAdInit, irec, mynr,
112 & TANGENT_SIMULATION, myOptimIter, mythid)
113
114 return
115 end
116
117 c ==================================================================
118
119 CBOP
120 C !ROUTINE: g_active_read_xyz
121 C !INTERFACE:
122 subroutine g_active_read_xyz(
123 I active_var_file,
124 O active_var,
125 I g_active_var,
126 I irec,
127 I doglobalread,
128 I lAdInit,
129 I myOptimIter,
130 I mythid,
131 I dummy,
132 I g_dummy
133 & )
134
135 C !DESCRIPTION: \bv
136 c ==================================================================
137 c SUBROUTINE g_active_read_xyz
138 c ==================================================================
139 c o Read an active 3D variable from file.
140 c started: Christian Eckert eckert@mit.edu 30-Jun-1999
141 c ==================================================================
142 c SUBROUTINE g_active_read_xyz
143 c ==================================================================
144 C \ev
145
146 C !USES:
147 implicit none
148
149 c == global variables ==
150 #include "EEPARAMS.h"
151 #include "SIZE.h"
152
153 C !INPUT/OUTPUT PARAMETERS:
154 c == routine arguments ==
155 c active_var_file: filename
156 c active_var: array
157 c irec: record number
158 c myOptimIter: number of optimization iteration (default: 0)
159 c mythid: thread number for this instance
160 c doglobalread: flag for global or local read/write
161 c (default: .false.)
162 c lAdInit: initialisation of corresponding adjoint
163 c variable and write to active file
164 character*(*) active_var_file
165 _RL active_var(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
166 _RL g_active_var(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
167 integer irec
168 integer myOptimIter
169 integer mythid
170 logical doglobalread
171 logical lAdInit
172 _RL dummy, g_dummy
173
174 C !LOCAL VARIABLES:
175 c == local variables ==
176 integer mynr
177 integer il
178 integer ilnblnk
179 character*(2) pref
180 character*(80) fname
181
182 c == end of interface ==
183 CEOP
184
185 mynr = nr
186 pref = 'g_'
187 write(fname(1:80),'(a)') ' '
188 il = ilnblnk(active_var_file)
189 write(fname(1:2),'(a)') pref
190 write(fname(3:2+il),'(a)') active_var_file(1:il)
191
192 call active_read_rl( active_var_file, active_var, doglobalread,
193 & lAdInit, irec, mynr,
194 & FORWARD_SIMULATION, myOptimIter, mythid)
195
196 call active_read_rl( fname, g_active_var, doglobalread,
197 & lAdInit, irec, mynr,
198 & TANGENT_SIMULATION, myOptimIter, mythid)
199
200 return
201 end
202
203 c ==================================================================
204
205
206 CBOP
207 C !ROUTINE: g_active_read_xz
208 C !INTERFACE:
209 subroutine g_active_read_xz(
210 I active_var_file,
211 O active_var,
212 I g_active_var,
213 I irec,
214 I doglobalread,
215 I lAdInit,
216 I myOptimIter,
217 I mythid,
218 I dummy,
219 I g_dummy
220 & )
221
222 C !DESCRIPTION: \bv
223 c ==================================================================
224 c SUBROUTINE g_active_read_xz
225 c ==================================================================
226 c o Read an active 2D xz-slice from file.
227 c started: heimbach@mit.edu 05-Mar-2001
228 c ==================================================================
229 c SUBROUTINE g_active_read_xz
230 c ==================================================================
231 C \ev
232
233 C !USES:
234 implicit none
235
236 c == global variables ==
237 #include "EEPARAMS.h"
238 #include "SIZE.h"
239
240 C !INPUT/OUTPUT PARAMETERS:
241 c == routine arguments ==
242 c active_var_file: filename
243 c active_var: array
244 c irec: record number
245 c myOptimIter: number of optimization iteration (default: 0)
246 c mythid: thread number for this instance
247 c doglobalread: flag for global or local read/write
248 c (default: .false.)
249 c lAdInit: initialisation of corresponding adjoint
250 c variable and write to active file
251 character*(*) active_var_file
252 _RL active_var(1-olx:snx+olx,nsx,nsy)
253 _RL g_active_var(1-olx:snx+olx,nsx,nsy)
254 integer irec
255 integer myOptimIter
256 integer mythid
257 logical doglobalread
258 logical lAdInit
259 _RL dummy, g_dummy
260
261 C !LOCAL VARIABLES:
262 c == local variables ==
263 integer mynr
264 integer il
265 integer ilnblnk
266 character*(2) pref
267 character*(80) fname
268
269 c == end of interface ==
270 CEOP
271
272 mynr = nr
273 pref = 'g_'
274 write(fname(1:80),'(a)') ' '
275 il = ilnblnk(active_var_file)
276 write(fname(1:2),'(a)') pref
277 write(fname(3:2+il),'(a)') active_var_file(1:il)
278
279 call active_read_xz_rl( active_var_file, active_var, doglobalread,
280 & lAdInit, irec, mynr,
281 & FORWARD_SIMULATION, myOptimIter, mythid)
282
283 call active_read_xz_rl( fname, g_active_var, doglobalread,
284 & lAdInit, irec, mynr,
285 & TANGENT_SIMULATION, myOptimIter, mythid)
286
287 return
288 end
289
290 c ==================================================================
291
292
293 CBOP
294 C !ROUTINE: g_active_read_yz
295 C !INTERFACE:
296 subroutine g_active_read_yz(
297 I active_var_file,
298 O active_var,
299 I g_active_var,
300 I irec,
301 I doglobalread,
302 I lAdInit,
303 I myOptimIter,
304 I mythid,
305 I dummy,
306 I g_dummy
307 & )
308
309 C !DESCRIPTION: \bv
310 c ==================================================================
311 c SUBROUTINE g_active_read_yz
312 c ==================================================================
313 c o Read an active 2D yz-slice from file.
314 c started: heimbach@mit.edu 05-Mar-2001
315 c ==================================================================
316 c SUBROUTINE g_active_read_yz
317 c ==================================================================
318 C \ev
319
320 C !USES:
321 implicit none
322
323 c == global variables ==
324 #include "EEPARAMS.h"
325 #include "SIZE.h"
326
327 C !INPUT/OUTPUT PARAMETERS:
328 c == routine arguments ==
329 c active_var_file: filename
330 c active_var: array
331 c irec: record number
332 c myOptimIter: number of optimization iteration (default: 0)
333 c mythid: thread number for this instance
334 c doglobalread: flag for global or local read/write
335 c (default: .false.)
336 c lAdInit: initialisation of corresponding adjoint
337 c variable and write to active file
338 character*(*) active_var_file
339 _RL active_var(1-oly:sny+oly,nsx,nsy)
340 _RL g_active_var(1-oly:sny+oly,nsx,nsy)
341 integer irec
342 integer myOptimIter
343 integer mythid
344 logical doglobalread
345 logical lAdInit
346 _RL dummy, g_dummy
347
348 C !LOCAL VARIABLES:
349 c == local variables ==
350 integer mynr
351 integer il
352 integer ilnblnk
353 character*(2) pref
354 character*(80) fname
355
356 c == end of interface ==
357 CEOP
358
359 mynr = nr
360 pref = 'g_'
361 write(fname(1:80),'(a)') ' '
362 il = ilnblnk(active_var_file)
363 write(fname(1:2),'(a)') pref
364 write(fname(3:2+il),'(a)') active_var_file(1:il)
365
366 call active_read_yz_rl( active_var_file, active_var, doglobalread,
367 & lAdInit, irec, mynr,
368 & FORWARD_SIMULATION, myOptimIter, mythid)
369
370 call active_read_yz_rl( fname, g_active_var, doglobalread,
371 & lAdInit, irec, mynr,
372 & TANGENT_SIMULATION, myOptimIter, mythid)
373
374 return
375 end
376
377 c ==================================================================
378
379 CBOP
380 C !ROUTINE: g_active_write_xy
381 C !INTERFACE:
382 subroutine g_active_write_xy(
383 I active_var_file,
384 I active_var,
385 I g_active_var,
386 I irec,
387 I myOptimIter,
388 I mythid,
389 I dummy,
390 I g_dummy
391 & )
392
393 C !DESCRIPTION: \bv
394 c ==================================================================
395 c SUBROUTINE g_active_write_xy
396 c ==================================================================
397 c o Write an active 2D variable to a file.
398 c started: Christian Eckert eckert@mit.edu 30-Jun-1999
399 c ==================================================================
400 c SUBROUTINE g_active_write_xy
401 c ==================================================================
402 C \ev
403
404 C !USES:
405 implicit none
406
407 c == global variables ==
408 #include "EEPARAMS.h"
409 #include "SIZE.h"
410
411 c == routine arguments ==
412 c active_var_file: filename
413 c active_var: array
414 c irec: record number
415 c myOptimIter: number of optimization iteration (default: 0)
416 c mythid: thread number for this instance
417 character*(*) active_var_file
418 _RL active_var(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
419 _RL g_active_var(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
420 integer irec
421 integer myOptimIter
422 integer mythid
423 _RL dummy
424 _RL g_dummy
425
426 C !LOCAL VARIABLES:
427 c == local variables ==
428 integer mynr
429 logical globalfile
430 integer il
431 integer ilnblnk
432 character*(2) pref
433 character*(80) fname
434
435 c == end of interface ==
436 CEOP
437
438 mynr = 1
439 globalfile = .false.
440 pref = 'g_'
441 write(fname(1:80),'(a)') ' '
442 il = ilnblnk(active_var_file)
443 write(fname(1:2),'(a)') pref
444 write(fname(3:2+il),'(a)') active_var_file(1:il)
445
446 call active_write_rl( active_var_file, active_var, globalfile,
447 & irec, mynr,
448 & FORWARD_SIMULATION, myOptimIter, mythid )
449
450 call active_write_rl( fname, g_active_var, globalfile,
451 & irec, mynr,
452 & TANGENT_SIMULATION, myOptimIter, mythid )
453
454 return
455 end
456
457 c ==================================================================
458
459 CBOP
460 C !ROUTINE: g_active_write_xyz
461 C !INTERFACE:
462 subroutine g_active_write_xyz(
463 I active_var_file,
464 I active_var,
465 I g_active_var,
466 I irec,
467 I myOptimIter,
468 I mythid,
469 I dummy,
470 I g_dummy
471 & )
472
473 C !DESCRIPTION: \bv
474 c ==================================================================
475 c SUBROUTINE g_active_write_xyz
476 c ==================================================================
477 c o Write an active 3D variable to a file.
478 c started: Christian Eckert eckert@mit.edu 30-Jun-1999
479 c ==================================================================
480 c SUBROUTINE g_active_write_xyz
481 c ==================================================================
482 C \ev
483
484 C !USES:
485 implicit none
486
487 c == global variables ==
488 #include "EEPARAMS.h"
489 #include "SIZE.h"
490
491 c == routine arguments ==
492 c active_var_file: filename
493 c active_var: array
494 c irec: record number
495 c myOptimIter: number of optimization iteration (default: 0)
496 c mythid: thread number for this instance
497 character*(*) active_var_file
498 _RL active_var(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
499 _RL g_active_var(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
500 integer irec
501 integer myOptimIter
502 integer mythid
503 _RL dummy
504 _RL g_dummy
505
506 C !LOCAL VARIABLES:
507 c == local variables ==
508 integer mynr
509 logical globalfile
510 integer il
511 integer ilnblnk
512 character*(2) pref
513 character*(80) fname
514
515 c == end of interface ==
516 CEOP
517
518 mynr = nr
519 globalfile = .false.
520 pref = 'g_'
521 write(fname(1:80),'(a)') ' '
522 il = ilnblnk(active_var_file)
523 write(fname(1:2),'(a)') pref
524 write(fname(3:2+il),'(a)') active_var_file(1:il)
525
526 call active_write_rl( active_var_file, active_var, globalfile,
527 & irec, mynr,
528 & FORWARD_SIMULATION, myOptimIter, mythid)
529
530 call active_write_rl( fname, g_active_var, globalfile,
531 & irec, mynr,
532 & TANGENT_SIMULATION, myOptimIter, mythid)
533
534 return
535 end
536
537 c ==================================================================
538
539 CBOP
540 C !ROUTINE: g_active_write_xz
541 C !INTERFACE:
542 subroutine g_active_write_xz(
543 I active_var_file,
544 I active_var,
545 I g_active_var,
546 I irec,
547 I myOptimIter,
548 I mythid,
549 I dummy,
550 I g_dummy
551 & )
552
553 C !DESCRIPTION: \bv
554 c ==================================================================
555 c SUBROUTINE g_active_write_xz
556 c ==================================================================
557 c o Write an active 2D xz-slice to a file.
558 c started: heimbach@mit.edu 05-Mar-2001
559 c ==================================================================
560 c SUBROUTINE g_active_write_xz
561 c ==================================================================
562 C \ev
563
564 C !USES:
565 implicit none
566
567 c == global variables ==
568 #include "EEPARAMS.h"
569 #include "SIZE.h"
570
571 c == routine arguments ==
572 c active_var_file: filename
573 c active_var: array
574 c irec: record number
575 c myOptimIter: number of optimization iteration (default: 0)
576 c mythid: thread number for this instance
577 character*(*) active_var_file
578 _RL active_var(1-olx:snx+olx,nsx,nsy)
579 _RL g_active_var(1-olx:snx+olx,nsx,nsy)
580 integer irec
581 integer myOptimIter
582 integer mythid
583 _RL dummy
584 _RL g_dummy
585
586 C !LOCAL VARIABLES:
587 c == local variables ==
588 integer mynr
589 logical globalfile
590 integer il
591 integer ilnblnk
592 character*(2) pref
593 character*(80) fname
594
595 c == end of interface ==
596 CEOP
597
598 mynr = nr
599 globalfile = .false.
600 pref = 'g_'
601 write(fname(1:80),'(a)') ' '
602 il = ilnblnk(active_var_file)
603 write(fname(1:2),'(a)') pref
604 write(fname(3:2+il),'(a)') active_var_file(1:il)
605
606 call active_write_xz_rl( active_var_file, active_var, globalfile,
607 & irec, mynr,
608 & FORWARD_SIMULATION, myOptimIter, mythid )
609
610 call active_write_xz_rl( fname, g_active_var, globalfile,
611 & irec, mynr,
612 & TANGENT_SIMULATION, myOptimIter, mythid )
613
614 return
615 end
616
617 c ==================================================================
618
619 CBOP
620 C !ROUTINE: g_active_write_yz
621 C !INTERFACE:
622 subroutine g_active_write_yz(
623 I active_var_file,
624 I active_var,
625 I g_active_var,
626 I irec,
627 I myOptimIter,
628 I mythid,
629 I dummy,
630 I g_dummy
631 & )
632
633 C !DESCRIPTION: \bv
634 c ==================================================================
635 c SUBROUTINE g_active_write_yz
636 c ==================================================================
637 c o Write an active 2D variable to a file.
638 c started: heimbach@mit.edu 05-Mar-2001
639 c ==================================================================
640 c SUBROUTINE g_active_write_yz
641 c ==================================================================
642 C \ev
643
644 C !USES:
645 implicit none
646
647 c == global variables ==
648 #include "EEPARAMS.h"
649 #include "SIZE.h"
650
651 c == routine arguments ==
652 c active_var_file: filename
653 c active_var: array
654 c irec: record number
655 c myOptimIter: number of optimization iteration (default: 0)
656 c mythid: thread number for this instance
657 character*(*) active_var_file
658 _RL active_var(1-oly:sny+oly,nsx,nsy)
659 _RL g_active_var(1-oly:sny+oly,nsx,nsy)
660 integer irec
661 integer myOptimIter
662 integer mythid
663 _RL dummy
664 _RL g_dummy
665
666 C !LOCAL VARIABLES:
667 c == local variables ==
668 integer mynr
669 logical globalfile
670 integer il
671 integer ilnblnk
672 character*(2) pref
673 character*(80) fname
674
675 c == end of interface ==
676 CEOP
677
678 mynr = nr
679 globalfile = .false.
680 pref = 'g_'
681 write(fname(1:80),'(a)') ' '
682 il = ilnblnk(active_var_file)
683 write(fname(1:2),'(a)') pref
684 write(fname(3:2+il),'(a)') active_var_file(1:il)
685
686 call active_write_yz_rl( active_var_file, active_var, globalfile,
687 & irec, mynr,
688 & FORWARD_SIMULATION, myOptimIter, mythid )
689
690 call active_write_yz_rl( fname, g_active_var, globalfile,
691 & irec, mynr,
692 & TANGENT_SIMULATION, myOptimIter, mythid )
693
694 return
695 end
696
697 c ==================================================================
698 c ==================================================================
699

  ViewVC Help
Powered by ViewVC 1.1.22