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

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

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


Revision 1.3 - (hide annotations) (download)
Mon Mar 22 01:15:15 2010 UTC (14 years, 1 month ago) by jmc
Branch: MAIN
CVS Tags: checkpoint63p, checkpoint63q, checkpoint63l, checkpoint63m, checkpoint63n, checkpoint63o, checkpoint63h, checkpoint63i, checkpoint63j, checkpoint63k, checkpoint63d, checkpoint63e, checkpoint63f, checkpoint63g, checkpoint63a, checkpoint63b, checkpoint63c, checkpoint63, checkpoint62g, checkpoint62f, checkpoint62e, checkpoint62d, checkpoint62k, checkpoint62j, checkpoint62i, checkpoint62h, checkpoint62o, checkpoint62n, checkpoint62m, checkpoint62l, checkpoint62s, checkpoint62r, checkpoint62q, checkpoint62p, checkpoint62w, checkpoint62v, checkpoint62u, checkpoint62t, checkpoint62z, checkpoint62y, checkpoint62x
Changes since 1.2: +2 -2 lines
fix comment following "#endif"

1 jmc 1.3 C $Header: /u/gcmpack/MITgcm/verification/bottom_ctrl_5x5/code_ad/dummy_in_hfac.F,v 1.2 2007/10/09 02:36:41 jmc Exp $
2 jmc 1.2 C $Name: $
3    
4 heimbach 1.1 #include "CPP_OPTIONS.h"
5    
6     subroutine dummy_in_hfac( myname, myIter, myThid )
7     IMPLICIT NONE
8     C /==========================================================\
9     C | SUBROUTINE dummy_in_hfac |
10     C |==========================================================|
11     C == Global variables ===
12    
13     #include "SIZE.h"
14     #include "EEPARAMS.h"
15     #include "PARAMS.h"
16    
17     C == Routine arguments ==
18     C myThid - Thread number for this instance of the routine.
19     INTEGER myThid
20     INTEGER myIter
21     CHARACTER*(*) myname
22    
23     call TIMER_START('I/O (WRITE) [ADJOINT LOOP]', myThid )
24    
25     call TIMER_STOP( 'I/O (WRITE) [ADJOINT LOOP]', myThid )
26    
27     end
28    
29     CBOP
30     C !ROUTINE: addummy_in_hfac
31     C !INTERFACE:
32     subroutine addummy_in_hfac( myname, myIter, myThid )
33    
34     C !DESCRIPTION: \bv
35     C *==========================================================*
36     C | SUBROUTINE addummy_in_hfac |
37     C *==========================================================*
38     C Extract adjoint variable from TAMC/TAF-generated
39     C adjoint common blocks, contained in adcommon.h
40     C and write fields to file;
41     C Make sure common blocks in adcommon.h are up-to-date
42     C w.r.t. current adjoint code.
43     C *==========================================================*
44     C | SUBROUTINE addummy_in_hfac |
45     C *==========================================================*
46     C \ev
47    
48     C !USES:
49     IMPLICIT NONE
50    
51     C == Global variables ===
52     #include "SIZE.h"
53     #include "EEPARAMS.h"
54     #include "PARAMS.h"
55     #ifdef ALLOW_AUTODIFF_MONITOR
56     #include "adcommon.h"
57     #endif
58    
59     LOGICAL DIFFERENT_MULTIPLE
60     EXTERNAL DIFFERENT_MULTIPLE
61     INTEGER IO_ERRCOUNT
62     EXTERNAL IO_ERRCOUNT
63    
64     C !INPUT/OUTPUT PARAMETERS:
65     C == Routine arguments ==
66     C myThid - Thread number for this instance of the routine.
67     integer myThid
68     integer myIter
69     CHARACTER*(1) myname
70    
71     #ifdef ALLOW_AUTODIFF_MONITOR
72     C !LOCAL VARIABLES:
73     c == local variables ==
74     C suff - Hold suffix part of a filename
75     C beginIOErrCount - Begin and end IO error counts
76     C endIOErrCount
77     C msgBuf - Error message buffer
78     CHARACTER*(MAX_LEN_FNAM) suff
79     INTEGER beginIOErrCount
80     INTEGER endIOErrCount
81     CHARACTER*(MAX_LEN_MBUF) msgBuf
82     _RL mytime
83     CHARACTER*(5) myfullname
84    
85     c == end of interface ==
86     CEOP
87    
88     #ifdef ALLOW_DEPTH_CONTROL
89    
90     mytime = 0.
91    
92     call TIMER_START('I/O (WRITE) [ADJOINT LOOP]', myThid )
93    
94     IF (
95     & DIFFERENT_MULTIPLE(dumpFreq,mytime,
96     & mytime-deltaTClock)
97     & ) THEN
98    
99     _BARRIER
100     _BEGIN_MASTER( myThid )
101    
102     C-- Set suffix for this set of data files.
103     WRITE(suff,'(I10.10)') myIter
104     writeBinaryPrec = writeStatePrec
105    
106     C-- Read IO error counter
107     beginIOErrCount = IO_ERRCOUNT(myThid)
108    
109     IF ( myname .eq. 'C' ) THEN
110     myfullname = 'hFacC'
111 jmc 1.2 CALL WRITE_FLD_XYZ_RL ( 'ADJhFacC.', suff, adhfacc,
112 heimbach 1.1 & myIter, myThid)
113     ELSE IF ( myname .eq. 'W' ) THEN
114     myfullname = 'hFacW'
115 jmc 1.2 CALL WRITE_FLD_XYZ_RL ( 'ADJhFacW.', suff, adhfacw,
116 heimbach 1.1 & myIter, myThid)
117     ELSE IF ( myname .eq. 'S' ) THEN
118     myfullname = 'hFacS'
119 jmc 1.2 CALL WRITE_FLD_XYZ_RL ( 'ADJhFacS.', suff, adhfacs,
120 heimbach 1.1 & myIter, myThid)
121     ELSE
122     write(*,*) 'addummy_in_hfac: no valid myname specified'
123     END IF
124     C-- Reread IO error counter
125     endIOErrCount = IO_ERRCOUNT(myThid)
126    
127     C-- Check for IO errors
128     IF ( endIOErrCount .NE. beginIOErrCount ) THEN
129     WRITE(msgBuf,'(A)') 'S/R WRITE_STATE'
130     CALL PRINT_ERROR( msgBuf, 1 )
131     WRITE(msgBuf,'(A)') 'Error writing out model state'
132     CALL PRINT_ERROR( msgBuf, 1 )
133     WRITE(msgBuf,'(A,I10)') 'Timestep ',myIter
134     CALL PRINT_ERROR( msgBuf, 1 )
135     ELSE
136 jmc 1.2 WRITE(msgBuf,'(A,I10)')
137 heimbach 1.1 & '// ad'//myfullname//' written, timestep', myIter
138 jmc 1.2 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
139 heimbach 1.1 & SQUEEZE_RIGHT, 1 )
140     WRITE(msgBuf,'(A)') ' '
141 jmc 1.2 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
142 heimbach 1.1 & SQUEEZE_RIGHT, 1 )
143     ENDIF
144    
145     _END_MASTER( myThid )
146     _BARRIER
147    
148     ENDIF
149    
150     call TIMER_STOP( 'I/O (WRITE) [ADJOINT LOOP]', myThid )
151     #endif /* ALLOW_DEPTH_CONTROL */
152 jmc 1.3 #endif /* ALLOW_AUTODIFF_MONITOR */
153 heimbach 1.1
154     end

  ViewVC Help
Powered by ViewVC 1.1.22