/[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.3 - (hide annotations) (download)
Thu Aug 27 18:00:01 2009 UTC (14 years, 9 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint63p, checkpoint63l, checkpoint63m, checkpoint63n, checkpoint63o, checkpoint63h, checkpoint63i, checkpoint63j, checkpoint63k, checkpoint63d, checkpoint63e, checkpoint63f, checkpoint63g, checkpoint63a, checkpoint63b, checkpoint63c, checkpoint62, checkpoint63, 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, checkpoint61v, checkpoint61w, checkpoint61z, checkpoint61x, checkpoint61y
Changes since 1.2: +67 -88 lines
use type specific (RL or RS) S/R from rw pkg instead of calling old S/R
 MDSREADFIELD,MDSWRITEFIELD from mdsio pkg.

1 jmc 1.3 C $Header: /u/gcmpack/MITgcm/pkg/exf/exf_ad_dump.F,v 1.2 2007/10/25 19:08:08 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 jmc 1.3 SUBROUTINE EXF_AD_DUMP( myTime, myIter, myThid )
12 heimbach 1.1
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     C !INPUT/OUTPUT PARAMETERS:
43     C == Routine arguments ==
44 jmc 1.3 C myTime :: time counter for this thread
45     C myIter :: iteration counter for this thread
46     C myThid :: Thread number for this instance of the routine.
47     _RL myTime
48     INTEGER myIter
49     INTEGER myThid
50 heimbach 1.1
51     #if (defined (ALLOW_ADJOINT_RUN) || defined (ALLOW_ADMTLM))
52     #ifdef ALLOW_AUTODIFF_MONITOR
53    
54 jmc 1.3 C !FUNCTIONS:
55     LOGICAL DIFFERENT_MULTIPLE
56     EXTERNAL DIFFERENT_MULTIPLE
57     INTEGER IO_ERRCOUNT
58     EXTERNAL IO_ERRCOUNT
59    
60 heimbach 1.1 C !LOCAL VARIABLES:
61     c == local variables ==
62 jmc 1.3 C suff :: Hold suffix part of a filename
63     C msgBuf :: Error message buffer
64 heimbach 1.1 CHARACTER*(MAX_LEN_FNAM) suff
65 jmc 1.3 c CHARACTER*(MAX_LEN_MBUF) msgBuf
66 heimbach 1.1
67     c == end of interface ==
68     CEOP
69    
70 jmc 1.3 CALL TIMER_START('I/O (WRITE) [EXF_AD_DUMP]', myThid )
71 heimbach 1.1
72     IF (
73 jmc 1.3 & DIFFERENT_MULTIPLE(adjDumpFreq,myTime,deltaTClock)
74 heimbach 1.1 & ) THEN
75    
76     C-- Set suffix for this set of data files.
77     WRITE(suff,'(I10.10)') myIter
78     writeBinaryPrec = writeStatePrec
79    
80 jmc 1.3 CALL WRITE_REC_3D_RL(
81     & 'ADJhflux.'//suff, writeBinaryPrec, 1,
82     & adhflux, 1, myIter, myThid )
83     CALL WRITE_REC_3D_RL(
84     & 'ADJsflux.'//suff, writeBinaryPrec, 1,
85     & adsflux, 1, myIter, myThid )
86     CALL WRITE_REC_3D_RL(
87     & 'ADJustress.'//suff, writeBinaryPrec, 1,
88     & adustress, 1, myIter, myThid )
89     CALL WRITE_REC_3D_RL(
90     & 'ADJvstress.'//suff, writeBinaryPrec, 1,
91     & advstress, 1, myIter, myThid )
92 heimbach 1.1
93     # ifdef ALLOW_ATM_TEMP
94 jmc 1.3 CALL WRITE_REC_3D_RL(
95     & 'ADJatemp.'//suff, writeBinaryPrec, 1,
96     & adatemp, 1, myIter, myThid )
97     CALL WRITE_REC_3D_RL(
98     & 'ADJaqh.'//suff, writeBinaryPrec, 1,
99     & adaqh, 1, myIter, myThid )
100     CALL WRITE_REC_3D_RL(
101     & 'ADJlwflux.'//suff, writeBinaryPrec, 1,
102     & adlwflux, 1, myIter, myThid )
103     CALL WRITE_REC_3D_RL(
104     & 'ADJprecip.'//suff, writeBinaryPrec, 1,
105     & adprecip, 1, myIter, myThid )
106 heimbach 1.1 # endif
107     # ifdef ALLOW_ATM_WIND
108 jmc 1.3 CALL WRITE_REC_3D_RL(
109     & 'ADJuwind.'//suff, writeBinaryPrec, 1,
110     & aduwind, 1, myIter, myThid )
111     CALL WRITE_REC_3D_RL(
112     & 'ADJvwind.'//suff, writeBinaryPrec, 1,
113     & advwind, 1, myIter, myThid )
114 heimbach 1.1 # endif
115     # ifdef ALLOW_DOWNWARD_RADIATION
116 jmc 1.3 CALL WRITE_REC_3D_RL(
117     & 'ADJswdown.'//suff, writeBinaryPrec, 1,
118     & adswdown, 1, myIter, myThid )
119     CALL WRITE_REC_3D_RL(
120     & 'ADJlwdown.'//suff, writeBinaryPrec, 1,
121     & adlwdown, 1, myIter, myThid )
122 heimbach 1.1 # endif
123     # ifdef ATMOSPHERIC_LOADING
124 jmc 1.3 cph CALL WRITE_REC_3D_RL(
125     cph & 'ADJapressure.'//suff, writeBinaryPrec, 1,
126     cph & adapressure, 1, myIter, myThid )
127 heimbach 1.1 # endif
128     # if defined(ALLOW_ATM_TEMP) || defined(SHORTWAVE_HEATING)
129 jmc 1.3 cph CALL WRITE_REC_3D_RL(
130     cph & 'ADJswflux.'//suff, writeBinaryPrec, 1,
131     cph & adswflux, 1, myIter, myThid )
132 heimbach 1.1 # endif
133     # if defined(ALLOW_ATM_TEMP) || defined(EXF_READ_EVAP)
134 jmc 1.3 cph CALL WRITE_REC_3D_RL(
135     cph & 'ADJevap.'//suff, writeBinaryPrec, 1,
136     cph & adevap, 1, myIter, myThid )
137 heimbach 1.1 # endif
138    
139     ENDIF
140    
141 jmc 1.3 CALL TIMER_STOP( 'I/O (WRITE) [EXF_AD_DUMP]', myThid )
142 heimbach 1.1
143     #endif /* ALLOW_AUTODIFF_MONITOR */
144     #endif /* ALLOW_ADJOINT_RUN */
145    
146 jmc 1.3 RETURN
147     END

  ViewVC Help
Powered by ViewVC 1.1.22