/[MITgcm]/MITgcm/pkg/autodiff/addummy_in_dynamics.F
ViewVC logotype

Contents of /MITgcm/pkg/autodiff/addummy_in_dynamics.F

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


Revision 1.7 - (show annotations) (download)
Wed Aug 29 13:12:21 2012 UTC (11 years, 9 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint64q, checkpoint64p, checkpoint64s, checkpoint64r, checkpoint64u, checkpoint64t, checkpoint64i, checkpoint64h, checkpoint64k, checkpoint64j, checkpoint64m, checkpoint64l, checkpoint64o, checkpoint64n, checkpoint64a, checkpoint64c, checkpoint64b, checkpoint64e, checkpoint64d, checkpoint64g, checkpoint64f, checkpoint63s, checkpoint64
Changes since 1.6: +8 -4 lines
comment out the very nasty "writeBinaryPrec = writeStatePrec" line

1 C $Header: /u/gcmpack/MITgcm/pkg/autodiff/addummy_in_dynamics.F,v 1.6 2012/08/07 21:17:34 gforget Exp $
2 C $Name: $
3
4 #include "AUTODIFF_OPTIONS.h"
5 #include "AD_CONFIG.h"
6
7 CBOP
8 C !ROUTINE: ADDUMMY_IN_DYNAMICS
9 C !INTERFACE:
10 SUBROUTINE ADDUMMY_IN_DYNAMICS( myTime, myIter, myThid )
11
12 C !DESCRIPTION: \bv
13 C *==========================================================*
14 C | SUBROUTINE ADDUMMY_IN_DYNAMICS |
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 ADDUMMY_IN_DYNAMICS |
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 #include "AUTODIFF_PARAMS.h"
34 #ifdef ALLOW_MNC
35 #include "MNC_PARAMS.h"
36 #endif
37 c#include "GRID.h"
38 #ifdef ALLOW_AUTODIFF_MONITOR
39 # include "adcommon.h"
40 # include "AUTODIFF.h"
41 #endif
42
43 C !INPUT/OUTPUT PARAMETERS:
44 C == Routine arguments ==
45 C myTime :: time counter for this thread
46 C myIter :: iteration counter for this thread
47 C myThid :: Thread number for this instance of the routine.
48 _RL myTime
49 INTEGER myIter
50 INTEGER myThid
51
52 #if (defined (ALLOW_ADJOINT_RUN) || defined (ALLOW_ADMTLM))
53 #ifdef ALLOW_AUTODIFF_MONITOR
54
55 C !FUNCTIONS:
56 LOGICAL DIFFERENT_MULTIPLE
57 EXTERNAL DIFFERENT_MULTIPLE
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 CHARACTER*(MAX_LEN_MBUF) msgBuf
65 #ifdef ALLOW_AUTODIFF_MONITOR_DIAG
66 _RL var3Du(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
67 _RS dumRS(1)
68 #endif
69 CEOP
70
71 IF (
72 & DIFFERENT_MULTIPLE(adjDumpFreq,myTime,deltaTClock)
73 & ) THEN
74
75 CALL TIMER_START('I/O (WRITE) [ADJOINT LOOP]', myThid )
76
77 c increment ad dump record number (used only if dumpAdByRec is true)
78 dumpAdRecDy=dumpAdRecDy+1
79 c#ifdef ALLOW_DEBUG
80 c IF ( debugMode ) print*,'dumpAdRecDy',dumpAdRecDy
81 c#endif
82
83 IF ( dumpAdVarExch.EQ.1 ) THEN
84 #ifdef AUTODIFF_TAMC_COMPATIBILITY
85 C
86 #else /* ndfef AUTODIFF_TAMC_COMPATIBILITY */
87 # ifdef ALLOW_AUTODIFF_MONITOR_DIAG
88 CALL ADEXCH_3D_RL( adrhoinsitu, Nr, myThid )
89 CALL ADEXCH_3D_RL( adtotphihyd, Nr, myThid )
90 # endif
91 #endif /* AUTODIFF_TAMC_COMPATIBILITY */
92 ENDIF
93
94 C-- Set suffix for this set of data files.
95 WRITE(suff,'(I10.10)') myIter
96 C ==>> Resetting run-time parameter writeBinaryPrec in the middle of a run
97 C ==>> is very very very nasty !!!
98 c writeBinaryPrec = writeStatePrec
99 C <<== If you really want to mess-up with this at your own risk,
100 C <<== uncomment the line above
101
102 #ifdef ALLOW_AUTODIFF_MONITOR_DIAG
103 IF ( dumpAdVarExch.NE.2 ) THEN
104 IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XYZ_RL( 'ADJrhoinsitu.',
105 & suff, adrhoinsitu, myIter, myThid )
106 IF ( dumpAdByRec ) CALL WRITE_REC_XYZ_RL( 'ADJrhoinsitu',
107 & adrhoinsitu, dumpAdRecDy, myIter, myThid )
108 cph( is set to zero in addiags_phi_hyd
109 c CALL WRITE_FLD_XYZ_RL( 'ADJtotphihyd.', suff,
110 c adtotphihyd, myIter, myThid )
111 cph)
112 ELSE
113 C case dumpAdVarExch = 2
114 CALL COPY_ADVAR_OUTP( dumRS,adrhoinsitu,var3Du,Nr,12,myThid )
115 IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XYZ_RL( 'ADJrhoinsitu.',
116 & suff, var3Du, myIter, myThid )
117 IF ( dumpAdByRec ) CALL WRITE_REC_XYZ_RL( 'ADJrhoinsitu',
118 & var3Du, dumpAdRecDy, myIter, myThid )
119 ENDIF
120 #endif
121
122 CALL TIMER_STOP( 'I/O (WRITE) [ADJOINT LOOP]', myThid )
123
124 ENDIF
125
126 #endif /* ALLOW_AUTODIFF_MONITOR */
127 #endif /* ALLOW_ADJOINT_RUN */
128
129 RETURN
130 END

  ViewVC Help
Powered by ViewVC 1.1.22