/[MITgcm]/MITgcm/tools/OAD_support/OAD_rev.F90
ViewVC logotype

Contents of /MITgcm/tools/OAD_support/OAD_rev.F90

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


Revision 1.1 - (show annotations) (download)
Thu Sep 20 23:12:47 2012 UTC (11 years, 6 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint64y, checkpoint64x, checkpoint64z, checkpoint64o, checkpoint64a, checkpoint64q, checkpoint64p, checkpoint64s, checkpoint64r, checkpoint64u, checkpoint64t, checkpoint64w, checkpoint64v, checkpoint66g, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint64n, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, checkpoint64b, checkpoint64e, checkpoint64d, checkpoint64c, checkpoint64g, checkpoint64f, 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, checkpoint64i, checkpoint64h, checkpoint64k, checkpoint64, checkpoint65, checkpoint64j, checkpoint64m, checkpoint64l, HEAD
* Merge OAD_support from MITgcm_contrib/heimbach/OpenAD/OAD_support/
  to tools/OAD_support/
* Adjust genmake2 to reflect path change (attempt with ${OADTOOLS})
* Adjust insertTemplateDir.bash to reflect path change
Seems to work.

1 module OAD_rev
2
3 implicit none
4
5 private
6 public :: modeType, our_rev_mode, OAD_revInit, &
7 OAD_revPlain, OAD_revTape, OAD_revAdjoint, &
8 OAD_revStorePlain, OAD_revRestoreTape, &
9 our_indent, splitPrint, oad_dump_revmod
10
11 type modeType
12 logical :: arg_store=.FALSE.
13 logical :: arg_restore=.FALSE.
14 logical :: res_store=.FALSE.
15 logical :: res_restore=.FALSE.
16 logical :: plain=.FALSE.
17 logical :: tape=.FALSE.
18 logical :: adjoint=.FALSE.
19 logical :: switchedToCheckpoint=.FALSE.
20 logical :: strictAnonymous=.TRUE.
21 end type modeType
22
23 type(modeType), save :: our_rev_mode
24
25 interface OAD_revInit
26 module procedure init
27 end interface
28
29 interface OAD_revPlain
30 module procedure plain
31 end interface
32
33 interface OAD_revTape
34 module procedure tape
35 end interface
36
37 interface OAD_revAdjoint
38 module procedure adjoint
39 end interface
40
41 interface OAD_revStorePlain
42 module procedure storePlain
43 end interface
44
45 interface OAD_revRestoreTape
46 module procedure restoreTape
47 end interface
48
49 integer, save:: our_indent=0
50 logical, save:: splitPrint=.false.
51
52 interface oad_dump_revmod
53 module procedure dump_revmod
54 end interface
55
56 contains
57
58 subroutine init()
59 our_rev_mode%arg_store=.FALSE.
60 our_rev_mode%arg_restore=.FALSE.
61 our_rev_mode%res_store=.FALSE.
62 our_rev_mode%res_restore=.FALSE.
63 our_rev_mode%plain=.TRUE.
64 our_rev_mode%tape=.FALSE.
65 our_rev_mode%adjoint=.FALSE.
66 end subroutine
67
68 subroutine plain()
69 our_rev_mode%arg_store=.FALSE.
70 our_rev_mode%arg_restore=.FALSE.
71 our_rev_mode%res_store=.FALSE.
72 our_rev_mode%res_restore=.FALSE.
73 our_rev_mode%plain=.TRUE.
74 our_rev_mode%tape=.FALSE.
75 our_rev_mode%adjoint=.FALSE.
76 end subroutine
77
78 subroutine tape()
79 our_rev_mode%arg_store=.FALSE.
80 our_rev_mode%arg_restore=.FALSE.
81 our_rev_mode%res_store=.FALSE.
82 our_rev_mode%res_restore=.FALSE.
83 our_rev_mode%plain=.FALSE.
84 our_rev_mode%tape=.TRUE.
85 our_rev_mode%adjoint=.FALSE.
86 end subroutine
87
88 subroutine adjoint()
89 our_rev_mode%arg_store=.FALSE.
90 our_rev_mode%arg_restore=.FALSE.
91 our_rev_mode%res_store=.FALSE.
92 our_rev_mode%res_restore=.FALSE.
93 our_rev_mode%plain=.FALSE.
94 our_rev_mode%tape=.FALSE.
95 our_rev_mode%adjoint=.TRUE.
96 end subroutine
97
98 subroutine storePlain()
99 our_rev_mode%arg_store=.TRUE.
100 our_rev_mode%arg_restore=.FALSE.
101 our_rev_mode%res_store=.FALSE.
102 our_rev_mode%res_restore=.FALSE.
103 our_rev_mode%plain=.TRUE.
104 our_rev_mode%tape=.FALSE.
105 our_rev_mode%adjoint=.FALSE.
106 end subroutine
107
108 subroutine restoreTape()
109 our_rev_mode%arg_store=.FALSE.
110 our_rev_mode%arg_restore=.TRUE.
111 our_rev_mode%res_store=.FALSE.
112 our_rev_mode%res_restore=.FALSE.
113 our_rev_mode%plain=.FALSE.
114 our_rev_mode%tape=.TRUE.
115 our_rev_mode%adjoint=.FALSE.
116 end subroutine
117
118 subroutine dump_revmod()
119 write(*,'(A,L,A,L,A,L,A,L,A,L,A,L)', ADVANCE='NO') &
120 ' As:',our_rev_mode%arg_store, &
121 ' Ar:',our_rev_mode%arg_restore, &
122 ' Pl:',our_rev_mode%plain, &
123 ' Ta:',our_rev_mode%tape, &
124 ' Ad:',our_rev_mode%adjoint, &
125 ' Sw:',our_rev_mode%switchedToCheckpoint
126 end subroutine dump_revmod
127
128 end module OAD_rev

  ViewVC Help
Powered by ViewVC 1.1.22