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

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

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


Revision 1.1 - (hide annotations) (download)
Thu Sep 20 23:12:47 2012 UTC (11 years, 7 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 heimbach 1.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