/[MITgcm]/MITgcm/verification/OpenAD/code_ad/ad_template.checkpoint.f
ViewVC logotype

Contents of /MITgcm/verification/OpenAD/code_ad/ad_template.checkpoint.f

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


Revision 1.1 - (show annotations) (download)
Wed Nov 30 21:34:42 2005 UTC (18 years, 10 months ago) by utke
Branch: MAIN
reuse templates from shallow water code

1 subroutine template()
2 use OpenAD_checkpoints
3 use OpenAD_tape
4 use OpenAD_rev
5
6 c we may need these for the checkpointing
7 use SIZE_mod
8 use EEPARAMS_mod
9 use PARAMS_mod
10 use BAR2_mod
11 use BARRIER_mod
12 use CD_CODE_VARS_mod
13 use CG2D_mod
14 use CG3D_mod
15 use DFILE_mod
16 use DYNVARS_mod
17 use EEIO_mod
18 use EESUPPORT_mod
19 use EOS_mod
20 use EXCH_JAM_mod
21 use EXCH_mod
22 use FC_NAMEMANGLE_mod
23 use FFIELDS_mod
24 use GAD_mod
25 use GLOBAL_MAX_mod
26 use GLOBAL_SUM_mod
27 use GRID_mod
28 use GW_mod
29 use MPI_INFO_mod
30 use SOLVE_FOR_PRESSURE3D_mod
31 use SOLVE_FOR_PRESSURE_mod
32 use SURFACE_mod
33 use tamc_mod
34 use tamc_keys_mod
35 use cost_mod
36 use g_cost_mod
37 use ctrl_mod
38 use ctrl_dummy_mod
39 use ctrl_weights_mod
40 use optim_mod
41 use grdchk_mod
42
43 !$TEMPLATE_PRAGMA_DECLARATIONS
44
45 integer :: cp_loop_variable_1,cp_loop_variable_2,
46 + cp_loop_variable_3,cp_loop_variable_4
47
48 type(modeType) :: our_orig_mode
49
50 integer iaddr
51 external iaddr
52
53 character*(80):: indentation='
54 + '
55
56 our_indent=our_indent+1
57
58 write(*,'(A,A,L,L,L,L,L)')
59 +indentation(1:our_indent), "enter __SRNAME__:",
60 +our_rev_mode%arg_store,
61 +our_rev_mode%arg_restore,
62 +our_rev_mode%plain,
63 +our_rev_mode%tape,
64 +our_rev_mode%adjoint
65
66 write(*,'(A,A,A,I6,A,I6,A,I6,A,I6,A,I8,A,I8)')
67 +indentation(1:our_indent), "enter __SRNAME__:",
68 +" CD:",cp_double_pointer,
69 +" CI:",cp_integer_pointer,
70 +" CB:",cp_boolean_pointer,
71 +" CS:",cp_string_pointer,
72 +" TD:",double_tape_pointer,
73 +" TI:",integer_tape_pointer
74
75 if (our_rev_mode%arg_store) then
76 write(*,'(A,A)')
77 +indentation(1:our_indent), " __SRNAME__: entering arg store"
78 !$PLACEHOLDER_PRAGMA$ id=4
79 end if
80 if (our_rev_mode%arg_restore) then
81 write(*,'(A,A)')
82 +indentation(1:our_indent), " __SRNAME__: entering arg restore"
83 !$PLACEHOLDER_PRAGMA$ id=6
84 end if
85 if (our_rev_mode%plain) then
86 write(*,'(A,A)')
87 +indentation(1:our_indent), " __SRNAME__: entering plain"
88 our_orig_mode=our_rev_mode
89 our_rev_mode%arg_store=.FALSE.
90 !$PLACEHOLDER_PRAGMA$ id=1
91 our_rev_mode=our_orig_mode
92 end if
93 if (our_rev_mode%tape) then
94 write(*,'(A,A)')
95 +indentation(1:our_indent), " __SRNAME__: entering tape"
96 our_orig_mode=our_rev_mode
97 our_rev_mode%arg_store=.TRUE.
98 our_rev_mode%arg_restore=.FALSE.
99 our_rev_mode%res_store=.FALSE.
100 our_rev_mode%res_restore=.FALSE.
101 our_rev_mode%plain=.TRUE.
102 our_rev_mode%tape=.FALSE.
103 our_rev_mode%adjoint=.FALSE.
104 !$PLACEHOLDER_PRAGMA$ id=2
105 write(*,'(A,A)')
106 +indentation(1:our_indent), " __SRNAME__: following with adjoint"
107 our_rev_mode%arg_store=.FALSE.
108 our_rev_mode%arg_restore=.TRUE.
109 our_rev_mode%res_store=.FALSE.
110 our_rev_mode%res_restore=.FALSE.
111 our_rev_mode%plain=.FALSE.
112 our_rev_mode%tape=.TRUE.
113 our_rev_mode%adjoint=.TRUE.
114 !$PLACEHOLDER_PRAGMA$ id=3
115 our_rev_mode=our_orig_mode
116 end if
117
118 write(*,'(A,A,A,I6,A,I6,A,I6,A,I6,A,I8,A,I8)')
119 +indentation(1:our_indent), "leave __SRNAME__:",
120 +" CD:",cp_double_pointer,
121 +" CI:",cp_integer_pointer,
122 +" CB:",cp_boolean_pointer,
123 +" CS:",cp_string_pointer,
124 +" TD:",double_tape_pointer,
125 +" TI:",integer_tape_pointer
126
127 write(*,'(A,A,L,L,L,L,L)')
128 +indentation(1:our_indent), "leave __SRNAME__:",
129 +our_rev_mode%arg_store,
130 +our_rev_mode%arg_restore,
131 +our_rev_mode%plain,
132 +our_rev_mode%tape,
133 +our_rev_mode%adjoint
134
135 our_indent=our_indent-1
136
137 end subroutine template

  ViewVC Help
Powered by ViewVC 1.1.22