/[MITgcm]/MITgcm/pkg/admtlm/admtlm_driver.F
ViewVC logotype

Annotation of /MITgcm/pkg/admtlm/admtlm_driver.F

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


Revision 1.3 - (hide annotations) (download)
Wed Nov 17 03:06:11 2004 UTC (19 years, 6 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint57d_post, checkpoint57g_post, checkpoint57b_post, checkpoint57c_pre, checkpoint56b_post, checkpoint57e_post, checkpoint57g_pre, checkpoint56c_post, checkpoint57f_pre, checkpoint57a_post, checkpoint57a_pre, checkpoint57, checkpoint56, eckpoint57e_pre, checkpoint57f_post, checkpoint57c_post, checkpoint56a_post
Changes since 1.2: +8 -5 lines
o finishing interface btw. dsvd and MITgcm
o SVD seems complete w.r.t. L2 norm of SST, SSS

1 heimbach 1.3 C $Header: /u/gcmpack/MITgcm/pkg/admtlm/admtlm_driver.F,v 1.2 2004/11/16 05:42:11 heimbach Exp $
2 heimbach 1.1 C $Name: $
3    
4     #include "CPP_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 heimbach 1.2 #ifdef ALLOW_ADMTLM
30     # include "tamc.h"
31     # include "ctrl.h"
32     # include "optim.h"
33 heimbach 1.1 #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 heimbach 1.2 C
43 heimbach 1.1 CEOP
44    
45     #ifndef DISABLE_DEBUGMODE
46     IF (debugMode) CALL DEBUG_ENTER('ADMTLM_DRIVER',myThid)
47     #endif
48    
49 heimbach 1.2 #if ( defined (ALLOW_ADMTLM) )
50 heimbach 1.1
51     myCurrentTime = startTime
52     myCurrentIter = nIter0
53     yadprefix = 'g_'
54    
55 heimbach 1.3 IF (optimcycle .GT. 0 ) THEN
56     _BEGIN_MASTER( mythid )
57     IF ( myProcId .eq. 0 ) THEN
58     CALL CTRL_UNPACK( .false., mythid )
59     ENDIF
60     _END_MASTER( mythid )
61     CALL ADMTLM_UPXX( mythid )
62 heimbach 1.1 ENDIF
63     c
64     CALL TIMER_START('G_THE_MAIN_LOOP [TANGENT RUN]',mythid)
65     CALL G_THE_MAIN_LOOP ( myCurrentTime, myCurrentIter, myThid )
66     CALL TIMER_STOP ('G_THE_MAIN_LOOP [TANGENT RUN]',mythid)
67     c
68 heimbach 1.2 c _BEGIN_MASTER( mythid )
69     c IF ( myProcId .eq. 0) THEN
70     c call CTRL_PACK( mycurrentiter, mycurrenttime, mythid )
71     c ENDIF
72     c _END_MASTER( mythid )
73 heimbach 1.1 c
74     CALL ADMTLM_METRIC ( mythid )
75     CALL ADMTLM_MAP ( mythid )
76     c
77     myCurrentTime = startTime
78     myCurrentIter = nIter0
79     yadprefix = 'ad'
80     c
81 heimbach 1.2 c _BEGIN_MASTER( mythid )
82     c IF (myProcId .eq. 0) THEN
83     c CALL CTRL_UNPACK( mycurrentiter, mycurrenttime, mythid )
84     c ENDIF
85     c _END_MASTER( mythid )
86     c
87     CALL CTRL_INIT( mythid )
88 heimbach 1.1 c
89     CALL TIMER_START('ADTHE_MAIN_LOOP [ADJOINT RUN]', mythid)
90 heimbach 1.2 CALL ADTHE_MAIN_LOOP ( myCurrentTime, myCurrentIter, mythid )
91 heimbach 1.1 CALL TIMER_STOP ('ADTHE_MAIN_LOOP [ADJOINT RUN]', mythid)
92     c
93     _BEGIN_MASTER( mythid )
94 heimbach 1.2 IF ( myProcId .eq. 0 ) THEN
95     call CTRL_PACK( .FALSE., mythid )
96 heimbach 1.1 ENDIF
97     _END_MASTER( mythid )
98     c
99     #endif
100    
101     #ifndef DISABLE_DEBUGMODE
102     IF (debugMode) CALL DEBUG_LEAVE('ADMTLM_DRIVER',myThid)
103     #endif
104    
105     RETURN
106     END

  ViewVC Help
Powered by ViewVC 1.1.22