1 |
C $Header: /u/gcmpack/MITgcm/pkg/admtlm/admtlm_driver.F,v 1.9 2010/11/22 23:47:50 jmc Exp $ |
2 |
C $Name: $ |
3 |
|
4 |
#include "ADMTLM_OPTIONS.h" |
5 |
|
6 |
CBOP |
7 |
|
8 |
C !ROUTINE: ADMTLM_DRIVER |
9 |
|
10 |
C !INTERFACE: |
11 |
SUBROUTINE ADMTLM_DRIVER( myThid ) |
12 |
IMPLICIT NONE |
13 |
|
14 |
C !DESCRIPTION: \bv |
15 |
C *==========================================================* |
16 |
C | SUBROUTINE ADMTLM_DRIVER |
17 |
C | o Master controlling routine for model using the MITgcm |
18 |
C | UV parallel wrapper. |
19 |
C *==========================================================* |
20 |
C \ev |
21 |
|
22 |
C !USES: |
23 |
C == Global variables === |
24 |
#include "SIZE.h" |
25 |
#include "EEPARAMS.h" |
26 |
#include "PARAMS.h" |
27 |
#include "DYNVARS.h" |
28 |
|
29 |
#ifdef ALLOW_ADMTLM |
30 |
# include "tamc.h" |
31 |
# include "ctrl.h" |
32 |
# include "optim.h" |
33 |
#endif |
34 |
|
35 |
C !INPUT/OUTPUT PARAMETERS: |
36 |
C == Routine arguments == |
37 |
INTEGER myThid |
38 |
|
39 |
C == Local == |
40 |
INTEGER myCurrentIter |
41 |
_RL myCurrentTime |
42 |
C |
43 |
CEOP |
44 |
|
45 |
#ifdef ALLOW_DEBUG |
46 |
IF (debugMode) CALL DEBUG_ENTER('ADMTLM_DRIVER',myThid) |
47 |
#endif |
48 |
|
49 |
#if ( defined (ALLOW_ADMTLM) ) |
50 |
|
51 |
myCurrentTime = startTime |
52 |
myCurrentIter = nIter0 |
53 |
yadprefix = 'g_' |
54 |
|
55 |
CALL CTRL_INIT( mythid ) |
56 |
c |
57 |
CALL TIMER_START('ADMTLM_DRIVER [TANGENT RUN]',mythid) |
58 |
CALL G_THE_MAIN_LOOP ( myCurrentTime, myCurrentIter, myThid ) |
59 |
CALL TIMER_STOP ('ADMTLM_DRIVER [TANGENT RUN]',mythid) |
60 |
c |
61 |
myCurrentTime = startTime |
62 |
myCurrentIter = nIter0 |
63 |
yadprefix = 'ad' |
64 |
c |
65 |
CALL CTRL_INIT( mythid ) |
66 |
c |
67 |
if ( doAdmtlmBypassAD ) then |
68 |
c |
69 |
#ifdef ALLOW_BYPASSAD |
70 |
CALL TIMER_START('ADMTLM_DRIVER [BYPASSAD]',mythid) |
71 |
CALL ADMTLM_BYPASSAD( mythid ) |
72 |
CALL TIMER_STOP ('ADMTLM_DRIVER [BYPASSAD]',mythid) |
73 |
#endif |
74 |
c |
75 |
else |
76 |
c |
77 |
CALL ADMTLM_METRIC ( mythid ) |
78 |
CALL ADMTLM_MAP ( mythid ) |
79 |
c |
80 |
CALL TIMER_START('ADMTLM_DRIVER [ADJOINT RUN]',mythid) |
81 |
CALL ADTHE_MAIN_LOOP ( myCurrentTime, myCurrentIter, mythid ) |
82 |
CALL TIMER_STOP ('ADMTLM_DRIVER [ADJOINT RUN]',mythid) |
83 |
c |
84 |
endif |
85 |
c |
86 |
#endif |
87 |
|
88 |
#ifdef ALLOW_DEBUG |
89 |
IF (debugMode) CALL DEBUG_LEAVE('ADMTLM_DRIVER',myThid) |
90 |
#endif |
91 |
|
92 |
RETURN |
93 |
END |