/[MITgcm]/MITgcm/pkg/autodiff/g_dummy_in_stepping.F
ViewVC logotype

Annotation of /MITgcm/pkg/autodiff/g_dummy_in_stepping.F

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


Revision 1.15 - (hide annotations) (download)
Fri Jul 6 23:10:28 2012 UTC (11 years, 11 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint63q, checkpoint63r
Changes since 1.14: +2 -1 lines
add explicitly #include "AD_CONFIG.h" in each fortran src file where it is needed

1 jmc 1.15 C $Header: /u/gcmpack/MITgcm/pkg/autodiff/g_dummy_in_stepping.F,v 1.14 2011/02/26 00:41:20 heimbach Exp $
2 jmc 1.10 C $Name: $
3 heimbach 1.1
4 edhill 1.3 #include "AUTODIFF_OPTIONS.h"
5 jmc 1.15 #include "AD_CONFIG.h"
6 heimbach 1.1
7     CBOP
8     C !ROUTINE: g_dummy_in_stepping
9     C !INTERFACE:
10     subroutine g_dummy_in_stepping( mytime, myiter, myThid )
11    
12     C !DESCRIPTION: \bv
13     C *==========================================================*
14     C | SUBROUTINE g_dummy_in_stepping |
15     C *==========================================================*
16     C Extract tangent linear variable from TAMC/TAF-generated
17     C tangent linear common blocks, contained in g_common.h
18     C and write fields to file;
19     C Make sure common blocks in g_common.h are up-to-date
20     C w.r.t. current adjoint code.
21     C *==========================================================*
22     C | SUBROUTINE g_dummy_in_stepping |
23     C *==========================================================*
24     C \ev
25    
26     C !USES:
27     IMPLICIT NONE
28    
29     C == Global variables ===
30     #include "SIZE.h"
31     #include "EEPARAMS.h"
32     #include "PARAMS.h"
33 heimbach 1.2 #ifdef ALLOW_AUTODIFF_MONITOR
34     # include "g_common.h"
35     #endif
36 heimbach 1.1
37 jmc 1.8 LOGICAL DIFFERENT_MULTIPLE
38     EXTERNAL DIFFERENT_MULTIPLE
39 heimbach 1.1 INTEGER IO_ERRCOUNT
40     EXTERNAL IO_ERRCOUNT
41    
42     C !INPUT/OUTPUT PARAMETERS:
43     C == Routine arguments ==
44     C myIter - iteration counter for this thread
45     C myTime - time counter for this thread
46     C myThid - Thread number for this instance of the routine.
47     integer myThid
48     integer myiter
49 heimbach 1.2 _RL mytime
50    
51 heimbach 1.4 #ifdef ALLOW_TANGENTLINEAR_RUN
52 heimbach 1.2 #ifdef ALLOW_AUTODIFF_MONITOR
53 heimbach 1.1
54     C !LOCAL VARIABLES:
55     c == local variables ==
56     C suff - Hold suffix part of a filename
57     C beginIOErrCount - Begin and end IO error counts
58     C endIOErrCount
59     C msgBuf - Error message buffer
60     CHARACTER*(MAX_LEN_FNAM) suff
61     INTEGER beginIOErrCount
62     INTEGER endIOErrCount
63     CHARACTER*(MAX_LEN_MBUF) msgBuf
64    
65     c == end of interface ==
66     CEOP
67    
68     call TIMER_START('I/O (WRITE) [ADJOINT LOOP]', myThid )
69    
70     IF (
71 jmc 1.8 & DIFFERENT_MULTIPLE(adjDumpFreq,mytime,deltaTClock)
72 heimbach 1.1 & ) THEN
73    
74     write(*,*) 'myIter= ',myiter
75    
76     _BARRIER
77     _BEGIN_MASTER( myThid )
78    
79     C-- Set suffix for this set of data files.
80     WRITE(suff,'(I10.10)') myIter
81     writeBinaryPrec = writeStatePrec
82    
83     C-- Read IO error counter
84     beginIOErrCount = IO_ERRCOUNT(myThid)
85    
86     CALL WRITE_FLD_XY_RL ( 'G_Jtaux.',suff, g_fu, myIter, myThid)
87     CALL WRITE_FLD_XY_RL ( 'G_Jtauy.',suff, g_fv, myIter, myThid)
88     CALL WRITE_FLD_XY_RL ( 'G_Jqnet.',suff, g_qnet, myIter, myThid)
89     CALL WRITE_FLD_XY_RL ( 'G_Jempr.',suff, g_empmr, myIter, myThid)
90     c
91 jmc 1.10 CALL WRITE_FLD_XYZ_RL(
92 heimbach 1.1 & 'G_Jtheta.',suff, g_theta, myIter, myThid)
93 jmc 1.10 CALL WRITE_FLD_XYZ_RL(
94 heimbach 1.1 & 'G_Jsalt.',suff, g_salt, myIter, myThid)
95 jmc 1.10 CALL WRITE_FLD_XYZ_RL(
96 heimbach 1.1 & 'G_Juvel.',suff, g_uvel, myIter, myThid)
97 jmc 1.10 CALL WRITE_FLD_XYZ_RL(
98 heimbach 1.1 & 'G_Jvvel.',suff, g_vvel, myIter, myThid)
99 heimbach 1.5 CALL WRITE_FLD_XYZ_RL(
100 heimbach 1.9 & 'G_Jwvel.',suff, g_wvel, myIter, myThid)
101 heimbach 1.5 CALL WRITE_FLD_XY_RL(
102 heimbach 1.9 & 'G_Jetan.',suff, g_etan, myIter, myThid)
103 heimbach 1.1
104     #ifdef ALLOW_DIFFKR_CONTROL
105 jmc 1.10 CALL WRITE_FLD_XYZ_RL ( 'G_Jdiffkr.',suff, g_diffkr,
106 heimbach 1.1 & myIter, myThid)
107     #endif
108     #ifdef ALLOW_KAPGM_CONTROL
109 gforget 1.11 CALL WRITE_FLD_XYZ_RL ( 'G_Jkapgm.',suff, g_kapgm,
110     & myIter, myThid)
111     #endif
112     #ifdef ALLOW_KAPREDI_CONTROL
113     CALL WRITE_FLD_XYZ_RL ( 'G_Jkapredi.',suff, g_kapredi,
114 heimbach 1.1 & myIter, myThid)
115     #endif
116    
117     cph CALL WRITE_FLD_XY_RL( 'G_J_sst.',suff, g_sst, myIter, myThid)
118     cph CALL WRITE_FLD_XY_RL( 'G_J_sss.',suff, g_sss, myIter, myThid)
119    
120 heimbach 1.12 #ifdef ALLOW_AUTODIFF_MONITOR_PHIHYD
121     CALL WRITE_FLD_XYZ_RL(
122     & 'G_Jphihyd.',suff, g_totphihyd, myIter, myThid)
123     #endif
124    
125 heimbach 1.1 C-- Reread IO error counter
126     endIOErrCount = IO_ERRCOUNT(myThid)
127    
128     C-- Check for IO errors
129     IF ( endIOErrCount .NE. beginIOErrCount ) THEN
130     WRITE(msgBuf,'(A)') 'S/R WRITE_STATE'
131     CALL PRINT_ERROR( msgBuf, 1 )
132     WRITE(msgBuf,'(A)') 'Error writing out model state'
133     CALL PRINT_ERROR( msgBuf, 1 )
134     WRITE(msgBuf,'(A,I10)') 'Timestep ',myIter
135     CALL PRINT_ERROR( msgBuf, 1 )
136     ELSE
137 jmc 1.10 WRITE(msgBuf,'(A,I10)')
138 heimbach 1.1 & '// Model state written, timestep', myIter
139 jmc 1.10 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
140 heimbach 1.1 & SQUEEZE_RIGHT, 1 )
141     WRITE(msgBuf,'(A)') ' '
142 jmc 1.10 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
143 heimbach 1.1 & SQUEEZE_RIGHT, 1 )
144     ENDIF
145    
146     _END_MASTER( myThid )
147     _BARRIER
148    
149     ENDIF
150    
151     call TIMER_STOP( 'I/O (WRITE) [ADJOINT LOOP]', myThid )
152 heimbach 1.2
153     #endif /* ALLOW_AUTODIFF_MONITOR */
154 heimbach 1.4 #endif /* ALLOW_TANGENTLINEAR_RUN */
155 heimbach 1.2
156 heimbach 1.1 end
157    
158    
159    
160    
161    
162    
163    
164    
165    

  ViewVC Help
Powered by ViewVC 1.1.22