/[MITgcm]/MITgcm/pkg/exf/exf_ad_dump.F
ViewVC logotype

Annotation of /MITgcm/pkg/exf/exf_ad_dump.F

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


Revision 1.2 - (hide annotations) (download)
Thu Oct 25 19:08:08 2007 UTC (16 years, 8 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint60, checkpoint61, checkpoint59q, checkpoint59p, checkpoint59r, checkpoint59m, checkpoint59l, checkpoint59o, checkpoint59n, checkpoint59k, checkpoint59j, checkpoint61f, checkpoint61g, checkpoint61d, checkpoint61e, checkpoint61b, checkpoint61c, checkpoint61a, checkpoint61n, checkpoint61o, checkpoint61l, checkpoint61m, checkpoint61j, checkpoint61k, checkpoint61h, checkpoint61i, checkpoint61t, checkpoint61u, checkpoint61r, checkpoint61s, checkpoint61p, checkpoint61q
Changes since 1.1: +13 -12 lines
Fix 1000 bugs.

1 heimbach 1.2 C $Header: /u/gcmpack/MITgcm/pkg/exf/exf_ad_dump.F,v 1.1 2007/10/25 18:41:04 heimbach Exp $
2 heimbach 1.1 C $Name: $
3    
4 heimbach 1.2 #include "AD_CONFIG.h"
5 heimbach 1.1 #include "PACKAGES_CONFIG.h"
6     #include "EXF_OPTIONS.h"
7    
8     CBOP
9     C !ROUTINE: exf_ad_dump
10     C !INTERFACE:
11     subroutine exf_ad_dump( mytime, myiter, myThid )
12    
13     C !DESCRIPTION: \bv
14     C *==========================================================*
15     C | SUBROUTINE exf_ad_dump |
16     C *==========================================================*
17     C Extract adjoint variable from TAMC/TAF-generated
18     C adjoint common blocks, contained in adcommon.h
19     C and write fields to file;
20     C Make sure common blocks in adcommon.h are up-to-date
21     C w.r.t. current adjoint code.
22     C *==========================================================*
23     C | SUBROUTINE exf_ad_dump |
24     C *==========================================================*
25     C \ev
26    
27     C !USES:
28     IMPLICIT NONE
29    
30     C == Global variables ===
31     #include "SIZE.h"
32     #include "EEPARAMS.h"
33     #include "PARAMS.h"
34     #ifdef ALLOW_MNC
35     #include "MNC_PARAMS.h"
36     #endif
37     #include "GRID.h"
38     #ifdef ALLOW_AUTODIFF_MONITOR
39     # include "adcommon.h"
40     #endif
41    
42     LOGICAL DIFFERENT_MULTIPLE
43     EXTERNAL DIFFERENT_MULTIPLE
44     INTEGER IO_ERRCOUNT
45     EXTERNAL IO_ERRCOUNT
46    
47     C !INPUT/OUTPUT PARAMETERS:
48     C == Routine arguments ==
49     C myIter - iteration counter for this thread
50     C myTime - time counter for this thread
51     C myThid - Thread number for this instance of the routine.
52     integer myThid
53     integer myiter
54     _RL mytime
55    
56     #if (defined (ALLOW_ADJOINT_RUN) || defined (ALLOW_ADMTLM))
57     #ifdef ALLOW_AUTODIFF_MONITOR
58    
59     C !LOCAL VARIABLES:
60     c == local variables ==
61     C suff - Hold suffix part of a filename
62     C beginIOErrCount - Begin and end IO error counts
63     C endIOErrCount
64     C msgBuf - Error message buffer
65     CHARACTER*(MAX_LEN_FNAM) suff
66     INTEGER beginIOErrCount
67     INTEGER endIOErrCount
68     CHARACTER*(MAX_LEN_MBUF) msgBuf
69    
70     c == end of interface ==
71     CEOP
72    
73     call TIMER_START('I/O (WRITE) [EXF_AD_DUMP]', myThid )
74    
75     IF (
76     & DIFFERENT_MULTIPLE(adjDumpFreq,mytime,deltaTClock)
77     & ) THEN
78    
79     _BARRIER
80     _BEGIN_MASTER( myThid )
81    
82     C-- Set suffix for this set of data files.
83     WRITE(suff,'(I10.10)') myIter
84     writeBinaryPrec = writeStatePrec
85    
86     C-- Read IO error counter
87     beginIOErrCount = IO_ERRCOUNT(myThid)
88    
89    
90     CALL MDSWRITEFIELD(
91     & 'ADJhflux.'//suff, writeBinaryPrec, globalFiles, 'RL',
92     & 1, adhflux, 1, myIter, myThid )
93     CALL MDSWRITEFIELD(
94     & 'ADJsflux.'//suff, writeBinaryPrec, globalFiles, 'RL',
95     & 1, adsflux, 1, myIter, myThid )
96     CALL MDSWRITEFIELD(
97     & 'ADJustress.'//suff, writeBinaryPrec, globalFiles, 'RL',
98 heimbach 1.2 & 1, adustress, 1, myIter, myThid )
99 heimbach 1.1 CALL MDSWRITEFIELD(
100     & 'ADJvstress.'//suff, writeBinaryPrec, globalFiles, 'RL',
101 heimbach 1.2 & 1, advstress, 1, myIter, myThid )
102 heimbach 1.1
103     # ifdef ALLOW_ATM_TEMP
104     CALL MDSWRITEFIELD(
105     & 'ADJatemp.'//suff, writeBinaryPrec, globalFiles, 'RL',
106     & 1, adatemp, 1, myIter, myThid )
107     CALL MDSWRITEFIELD(
108     & 'ADJaqh.'//suff, writeBinaryPrec, globalFiles, 'RL',
109     & 1, adaqh, 1, myIter, myThid )
110     CALL MDSWRITEFIELD(
111     & 'ADJlwflux.'//suff, writeBinaryPrec, globalFiles, 'RL',
112     & 1, adlwflux, 1, myIter, myThid )
113     CALL MDSWRITEFIELD(
114     & 'ADJprecip.'//suff, writeBinaryPrec, globalFiles, 'RL',
115     & 1, adprecip, 1, myIter, myThid )
116     # endif
117     # ifdef ALLOW_ATM_WIND
118     CALL MDSWRITEFIELD(
119     & 'ADJuwind.'//suff, writeBinaryPrec, globalFiles, 'RL',
120     & 1, aduwind, 1, myIter, myThid )
121     CALL MDSWRITEFIELD(
122     & 'ADJvwind.'//suff, writeBinaryPrec, globalFiles, 'RL',
123     & 1, advwind, 1, myIter, myThid )
124     # endif
125     # ifdef ALLOW_DOWNWARD_RADIATION
126     CALL MDSWRITEFIELD(
127     & 'ADJswdown.'//suff, writeBinaryPrec, globalFiles, 'RL',
128     & 1, adswdown, 1, myIter, myThid )
129     CALL MDSWRITEFIELD(
130     & 'ADJlwdown.'//suff, writeBinaryPrec, globalFiles, 'RL',
131     & 1, adlwdown, 1, myIter, myThid )
132     # endif
133     # ifdef ATMOSPHERIC_LOADING
134 heimbach 1.2 cph CALL MDSWRITEFIELD(
135     cph & 'ADJapressure.'//suff, writeBinaryPrec, globalFiles, 'RL',
136     cph & 1, adapressure, 1, myIter, myThid )
137 heimbach 1.1 # endif
138     # if defined(ALLOW_ATM_TEMP) || defined(SHORTWAVE_HEATING)
139 heimbach 1.2 cph CALL MDSWRITEFIELD(
140     cph & 'ADJswflux.'//suff, writeBinaryPrec, globalFiles, 'RL',
141     cph & 1, adswflux, 1, myIter, myThid )
142 heimbach 1.1 # endif
143     # if defined(ALLOW_ATM_TEMP) || defined(EXF_READ_EVAP)
144 heimbach 1.2 cph CALL MDSWRITEFIELD(
145     cph & 'ADJevap.'//suff, writeBinaryPrec, globalFiles, 'RL',
146     cph & 1, adevap, 1, myIter, myThid )
147 heimbach 1.1 # endif
148    
149     _END_MASTER( myThid )
150     _BARRIER
151    
152     ENDIF
153    
154     call TIMER_STOP( 'I/O (WRITE) [EXF_AD_DUMP]', myThid )
155    
156     #endif /* ALLOW_AUTODIFF_MONITOR */
157     #endif /* ALLOW_ADJOINT_RUN */
158    
159     end
160    
161    
162    
163    
164    
165    
166    
167    
168    

  ViewVC Help
Powered by ViewVC 1.1.22