/[MITgcm]/MITgcm/verification/bottom_ctrl_5x5/code_ad/addummy_in_stepping.F
ViewVC logotype

Annotation of /MITgcm/verification/bottom_ctrl_5x5/code_ad/addummy_in_stepping.F

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


Revision 1.2 - (hide annotations) (download)
Tue Oct 9 02:36:41 2007 UTC (16 years, 6 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint63p, checkpoint63l, checkpoint63m, checkpoint63n, checkpoint63o, checkpoint63h, checkpoint63i, checkpoint63j, checkpoint63k, checkpoint63d, checkpoint63e, checkpoint63f, checkpoint63g, checkpoint63a, checkpoint63b, checkpoint63c, checkpoint60, checkpoint61, checkpoint62, checkpoint63, checkpoint59q, checkpoint59p, checkpoint59r, checkpoint59m, checkpoint59l, checkpoint59o, checkpoint59n, checkpoint59i, checkpoint59k, checkpoint59j, checkpoint62c, checkpoint62b, checkpoint62a, checkpoint62g, checkpoint62f, checkpoint62e, checkpoint62d, checkpoint62k, checkpoint62j, checkpoint62i, checkpoint62h, checkpoint62o, checkpoint62n, checkpoint62m, checkpoint62l, checkpoint62s, checkpoint62r, checkpoint62q, checkpoint62p, checkpoint62w, checkpoint62v, checkpoint62u, checkpoint62t, checkpoint62z, checkpoint62y, checkpoint62x, checkpoint61f, checkpoint61g, checkpoint61d, checkpoint61e, checkpoint61b, checkpoint61c, checkpoint61a, checkpoint61n, checkpoint61o, checkpoint61l, checkpoint61m, checkpoint61j, checkpoint61k, checkpoint61h, checkpoint61i, checkpoint61v, checkpoint61w, checkpoint61t, checkpoint61u, checkpoint61r, checkpoint61s, checkpoint61p, checkpoint61q, checkpoint61z, checkpoint61x, checkpoint61y
Changes since 1.1: +19 -18 lines
add missing cvs $Header:$ or $Name:$

1 jmc 1.2 C $Header: $
2     C $Name: $
3 heimbach 1.1
4     #include "CPP_OPTIONS.h"
5    
6     CBOP
7     C !ROUTINE: addummy_in_stepping
8     C !INTERFACE:
9     subroutine addummy_in_stepping( mytime, myiter, myThid )
10    
11     C !DESCRIPTION: \bv
12     C *==========================================================*
13     C | SUBROUTINE addummy_in_stepping |
14     C *==========================================================*
15     C Extract adjoint variable from TAMC/TAF-generated
16     C adjoint common blocks, contained in adcommon.h
17     C and write fields to file;
18     C Make sure common blocks in adcommon.h are up-to-date
19     C w.r.t. current adjoint code.
20     C *==========================================================*
21     C | SUBROUTINE addummy_in_stepping |
22     C *==========================================================*
23     C \ev
24    
25     C !USES:
26     IMPLICIT NONE
27    
28     C == Global variables ===
29     #include "SIZE.h"
30     #include "EEPARAMS.h"
31     #include "PARAMS.h"
32     #include "adcommon.h"
33    
34     LOGICAL DIFFERENT_MULTIPLE
35     EXTERNAL DIFFERENT_MULTIPLE
36     INTEGER IO_ERRCOUNT
37     EXTERNAL IO_ERRCOUNT
38    
39     C !INPUT/OUTPUT PARAMETERS:
40     C == Routine arguments ==
41     C myIter - iteration counter for this thread
42     C myTime - time counter for this thread
43     C myThid - Thread number for this instance of the routine.
44     integer myThid
45     integer myiter
46 jmc 1.2 _RL mytime
47 heimbach 1.1
48     C !LOCAL VARIABLES:
49     c == local variables ==
50     C suff - Hold suffix part of a filename
51     C beginIOErrCount - Begin and end IO error counts
52     C endIOErrCount
53     C msgBuf - Error message buffer
54     CHARACTER*(MAX_LEN_FNAM) suff
55     INTEGER beginIOErrCount
56     INTEGER endIOErrCount
57     CHARACTER*(MAX_LEN_MBUF) msgBuf
58    
59     c == end of interface ==
60     CEOP
61    
62     #if (defined (ALLOW_ADJOINT_RUN) || defined (ALLOW_ADMTLM))
63     #ifdef ALLOW_AUTODIFF_MONITOR
64    
65     call TIMER_START('I/O (WRITE) [ADJOINT LOOP]', myThid )
66    
67     IF (
68     & DIFFERENT_MULTIPLE(ADJdumpFreq,mytime,deltaTClock)
69     & ) THEN
70    
71     write(*,*) 'myIter= ',myiter
72    
73     _BARRIER
74     _BEGIN_MASTER( myThid )
75    
76     C-- Set suffix for this set of data files.
77     WRITE(suff,'(I10.10)') myIter
78     writeBinaryPrec = writeStatePrec
79    
80     C-- Read IO error counter
81     beginIOErrCount = IO_ERRCOUNT(myThid)
82    
83     Cml CALL WRITE_FLD_XY_RL ( 'ADJtaux.',suff, adfu, myIter, myThid)
84     Cml CALL WRITE_FLD_XY_RL ( 'ADJtauy.',suff, adfv, myIter, myThid)
85     Cml CALL WRITE_FLD_XY_RL ( 'ADJqnet.',suff, adqnet, myIter, myThid)
86     Cml CALL WRITE_FLD_XY_RL ( 'ADJempr.',suff, adempmr, myIter, myThid)
87     c
88 jmc 1.2 Cml CALL WRITE_FLD_XYZ_RL(
89 heimbach 1.1 Cml & 'ADJgtnm1.',suff, adgtnm1, myIter, myThid)
90 jmc 1.2 Cml CALL WRITE_FLD_XYZ_RL(
91 heimbach 1.1 Cml & 'ADJgsnm1.',suff, adgsnm1, myIter, myThid)
92 jmc 1.2 Cml CALL WRITE_FLD_XYZ_RL(
93 heimbach 1.1 Cml & 'ADJgunm1.',suff, adgunm1, myIter, myThid)
94 jmc 1.2 Cml CALL WRITE_FLD_XYZ_RL(
95 heimbach 1.1 Cml & 'ADJgvnm1.',suff, adgvnm1, myIter, myThid)
96     Cml#ifdef ALLOW_PASSIVE_TRACER
97 jmc 1.2 Cml CALL WRITE_FLD_XYZ_RL(
98 heimbach 1.1 Cml & 'ADJgtr1nm1. ',suff, adgtr1nm1, myIter, myThid)
99     Cml#endif
100     c
101 jmc 1.2 CALL WRITE_FLD_XYZ_RL(
102 heimbach 1.1 & 'ADJtheta.',suff, adtheta, myIter, myThid)
103 jmc 1.2 CALL WRITE_FLD_XYZ_RL(
104 heimbach 1.1 & 'ADJsalt.',suff, adsalt, myIter, myThid)
105 jmc 1.2 CALL WRITE_FLD_XYZ_RL(
106 heimbach 1.1 & 'ADJuvel.',suff, aduvel, myIter, myThid)
107 jmc 1.2 CALL WRITE_FLD_XYZ_RL(
108 heimbach 1.1 & 'ADJvvel.',suff, advvel, myIter, myThid)
109 jmc 1.2 CALL WRITE_FLD_XYZ_RL(
110 heimbach 1.1 & 'ADJwvel.',suff, adwvel, myIter, myThid)
111    
112     Cml#ifdef ALLOW_PASSIVE_TRACER
113 jmc 1.2 Cml CALL WRITE_FLD_XYZ_RL(
114 heimbach 1.1 Cml & 'ADJtr1. ',suff, adtr1, myIter, myThid)
115     Cml#endif
116     Cml#ifdef ALLOW_DIFFKR_CONTROL
117 jmc 1.2 Cml CALL WRITE_FLD_XYZ_RL ( 'ADJdiffkr.',suff, addiffkr,
118 heimbach 1.1 Cml & myIter, myThid)
119     Cml#endif
120     Cml#ifdef ALLOW_KAPGM_CONTROL
121 jmc 1.2 Cml CALL WRITE_FLD_XYZ_RL ( 'ADJkagm.',suff, adkapgm,
122 heimbach 1.1 Cml & myIter, myThid)
123     Cml#endif
124     #ifdef ALLOW_DEPTH_CONTROL
125     CML( Does not make sense at this point
126     CML CALL WRITE_FLD_XY_RL ( 'ADJxx_r_low.',suff,
127     CML & adxx_r_low, myIter, myThid)
128     CML)
129     CALL WRITE_FLD_XYZ_RL ( 'ADJhFacC.',suff,
130     & adhfacc, myIter, myThid)
131     CALL WRITE_FLD_XYZ_RL ( 'ADJhFacS.',suff,
132     & adhfacs, myIter, myThid)
133     CALL WRITE_FLD_XYZ_RL ( 'ADJhFacW.',suff,
134     & adhfacw, myIter, myThid)
135     CALL WRITE_FLD_XYZ_RL ( 'ADJrhFacC.',suff,
136     & adrecip_hfacc, myIter, myThid)
137     CALL WRITE_FLD_XYZ_RL ( 'ADJrhFacS.',suff,
138     & adrecip_hfacs, myIter, myThid)
139     CALL WRITE_FLD_XYZ_RL ( 'ADJrhFacW.',suff,
140     & adrecip_hfacw, myIter, myThid)
141     #endif /* ALLOW_DEPTH_CONTROL */
142    
143     cph CALL WRITE_FLD_XY_RL( 'ADJ_sst.',suff, adsst, myIter, myThid)
144     cph CALL WRITE_FLD_XY_RL( 'ADJ_sss.',suff, adsss, myIter, myThid)
145    
146     C-- Reread IO error counter
147     endIOErrCount = IO_ERRCOUNT(myThid)
148    
149     C-- Check for IO errors
150     IF ( endIOErrCount .NE. beginIOErrCount ) THEN
151     WRITE(msgBuf,'(A)') 'S/R ADDUMMY_IN_STEPPING'
152     CALL PRINT_ERROR( msgBuf, 1 )
153     WRITE(msgBuf,'(A)') 'Error writing out model state'
154     CALL PRINT_ERROR( msgBuf, 1 )
155     WRITE(msgBuf,'(A,I10)') 'Timestep ',myIter
156     CALL PRINT_ERROR( msgBuf, 1 )
157     ELSE
158 jmc 1.2 WRITE(msgBuf,'(A,I10)')
159 heimbach 1.1 & '// Model state written, timestep', myIter
160 jmc 1.2 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
161 heimbach 1.1 & SQUEEZE_RIGHT, 1 )
162     WRITE(msgBuf,'(A)') ' '
163 jmc 1.2 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
164 heimbach 1.1 & SQUEEZE_RIGHT, 1 )
165     ENDIF
166    
167     _END_MASTER( myThid )
168     _BARRIER
169    
170     ENDIF
171    
172     call TIMER_STOP( 'I/O (WRITE) [ADJOINT LOOP]', myThid )
173    
174     #endif /* ALLOW_AUTODIFF_MONITOR */
175     #endif /* ALLOW_ADJOINT_RUN */
176    
177     end
178    
179    
180    
181    
182    
183    
184    
185    
186    

  ViewVC Help
Powered by ViewVC 1.1.22