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

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

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


Revision 1.4 - (show annotations) (download)
Fri Jul 6 23:03:40 2012 UTC (11 years, 11 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint63q, checkpoint63r
Changes since 1.3: +2 -3 lines
move #include "AD_CONFIG.h" after the other included OPTIONS files
and remove PACKAGES_CONFIG.h

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

  ViewVC Help
Powered by ViewVC 1.1.22