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

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

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

revision 1.2 by heimbach, Thu Oct 25 19:08:08 2007 UTC revision 1.3 by jmc, Thu Aug 27 18:00:01 2009 UTC
# Line 8  C $Name$ Line 8  C $Name$
8  CBOP  CBOP
9  C     !ROUTINE: exf_ad_dump  C     !ROUTINE: exf_ad_dump
10  C     !INTERFACE:  C     !INTERFACE:
11        subroutine exf_ad_dump( mytime, myiter, myThid )        SUBROUTINE EXF_AD_DUMP( myTime, myIter, myThid )
12    
13  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
14  C     *==========================================================*  C     *==========================================================*
# Line 39  C     == Global variables === Line 39  C     == Global variables ===
39  # include "adcommon.h"  # include "adcommon.h"
40  #endif  #endif
41    
       LOGICAL  DIFFERENT_MULTIPLE  
       EXTERNAL DIFFERENT_MULTIPLE  
       INTEGER  IO_ERRCOUNT  
       EXTERNAL IO_ERRCOUNT  
   
42  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
43  C     == Routine arguments ==  C     == Routine arguments ==
44  C     myIter - iteration counter for this thread  C     myTime :: time counter for this thread
45  C     myTime - time counter for this thread  C     myIter :: iteration counter for this thread
46  C     myThid - Thread number for this instance of the routine.  C     myThid :: Thread number for this instance of the routine.
47        integer myThid        _RL     myTime
48        integer myiter        INTEGER myIter
49        _RL     mytime        INTEGER myThid
50    
51  #if (defined (ALLOW_ADJOINT_RUN) || defined (ALLOW_ADMTLM))  #if (defined (ALLOW_ADJOINT_RUN) || defined (ALLOW_ADMTLM))
52  #ifdef ALLOW_AUTODIFF_MONITOR  #ifdef ALLOW_AUTODIFF_MONITOR
53    
54    C     !FUNCTIONS:
55          LOGICAL  DIFFERENT_MULTIPLE
56          EXTERNAL DIFFERENT_MULTIPLE
57          INTEGER  IO_ERRCOUNT
58          EXTERNAL IO_ERRCOUNT
59    
60  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
61  c     == local variables ==  c     == local variables ==
62  C     suff - Hold suffix part of a filename  C     suff   :: Hold suffix part of a filename
63  C     beginIOErrCount - Begin and end IO error counts  C     msgBuf :: Error message buffer
 C     endIOErrCount  
 C     msgBuf - Error message buffer  
64        CHARACTER*(MAX_LEN_FNAM) suff        CHARACTER*(MAX_LEN_FNAM) suff
65        INTEGER beginIOErrCount  c     CHARACTER*(MAX_LEN_MBUF) msgBuf
       INTEGER endIOErrCount  
       CHARACTER*(MAX_LEN_MBUF) msgBuf  
66    
67  c     == end of interface ==  c     == end of interface ==
68  CEOP  CEOP
69    
70        call TIMER_START('I/O (WRITE)        [EXF_AD_DUMP]', myThid )        CALL TIMER_START('I/O (WRITE)        [EXF_AD_DUMP]', myThid )
71    
72        IF (        IF (
73       &  DIFFERENT_MULTIPLE(adjDumpFreq,mytime,deltaTClock)       &  DIFFERENT_MULTIPLE(adjDumpFreq,myTime,deltaTClock)
74       & ) THEN       & ) THEN
75    
        _BARRIER  
        _BEGIN_MASTER( myThid )  
   
76  C--     Set suffix for this set of data files.  C--     Set suffix for this set of data files.
77          WRITE(suff,'(I10.10)') myIter          WRITE(suff,'(I10.10)') myIter
78          writeBinaryPrec = writeStatePrec          writeBinaryPrec = writeStatePrec
79    
80  C--     Read IO error counter          CALL WRITE_REC_3D_RL(
81          beginIOErrCount = IO_ERRCOUNT(myThid)       &       'ADJhflux.'//suff, writeBinaryPrec, 1,
82         &        adhflux, 1, myIter, myThid )
83            CALL WRITE_REC_3D_RL(
84          CALL MDSWRITEFIELD(       &       'ADJsflux.'//suff, writeBinaryPrec, 1,
85       &       'ADJhflux.'//suff, writeBinaryPrec, globalFiles, 'RL',       &        adsflux, 1, myIter, myThid )
86       &       1,  adhflux, 1, myIter, myThid )          CALL WRITE_REC_3D_RL(
87          CALL MDSWRITEFIELD(       &       'ADJustress.'//suff, writeBinaryPrec, 1,
88       &       'ADJsflux.'//suff, writeBinaryPrec, globalFiles, 'RL',       &        adustress, 1, myIter, myThid )
89       &       1,  adsflux, 1, myIter, myThid )          CALL WRITE_REC_3D_RL(
90          CALL MDSWRITEFIELD(       &       'ADJvstress.'//suff, writeBinaryPrec, 1,
91       &       'ADJustress.'//suff, writeBinaryPrec, globalFiles, 'RL',       &        advstress, 1, myIter, myThid )
      &       1,  adustress, 1, myIter, myThid )  
         CALL MDSWRITEFIELD(  
      &       'ADJvstress.'//suff, writeBinaryPrec, globalFiles, 'RL',  
      &       1,  advstress, 1, myIter, myThid )  
92    
93  # ifdef ALLOW_ATM_TEMP  # ifdef ALLOW_ATM_TEMP
94          CALL MDSWRITEFIELD(          CALL WRITE_REC_3D_RL(
95       &       'ADJatemp.'//suff, writeBinaryPrec, globalFiles, 'RL',       &       'ADJatemp.'//suff, writeBinaryPrec, 1,
96       &       1,  adatemp, 1, myIter, myThid )       &        adatemp, 1, myIter, myThid )
97          CALL MDSWRITEFIELD(          CALL WRITE_REC_3D_RL(
98       &       'ADJaqh.'//suff, writeBinaryPrec, globalFiles, 'RL',       &       'ADJaqh.'//suff, writeBinaryPrec, 1,
99       &       1,  adaqh, 1, myIter, myThid )       &        adaqh, 1, myIter, myThid )
100          CALL MDSWRITEFIELD(          CALL WRITE_REC_3D_RL(
101       &       'ADJlwflux.'//suff, writeBinaryPrec, globalFiles, 'RL',       &       'ADJlwflux.'//suff, writeBinaryPrec, 1,
102       &       1,  adlwflux, 1, myIter, myThid )       &        adlwflux, 1, myIter, myThid )
103          CALL MDSWRITEFIELD(          CALL WRITE_REC_3D_RL(
104       &       'ADJprecip.'//suff, writeBinaryPrec, globalFiles, 'RL',       &       'ADJprecip.'//suff, writeBinaryPrec, 1,
105       &       1,  adprecip, 1, myIter, myThid )       &        adprecip, 1, myIter, myThid )
106  # endif  # endif
107  # ifdef ALLOW_ATM_WIND  # ifdef ALLOW_ATM_WIND
108          CALL MDSWRITEFIELD(          CALL WRITE_REC_3D_RL(
109       &       'ADJuwind.'//suff, writeBinaryPrec, globalFiles, 'RL',       &       'ADJuwind.'//suff, writeBinaryPrec, 1,
110       &       1,  aduwind, 1, myIter, myThid )       &        aduwind, 1, myIter, myThid )
111          CALL MDSWRITEFIELD(          CALL WRITE_REC_3D_RL(
112       &       'ADJvwind.'//suff, writeBinaryPrec, globalFiles, 'RL',       &       'ADJvwind.'//suff, writeBinaryPrec, 1,
113       &       1,  advwind, 1, myIter, myThid )       &        advwind, 1, myIter, myThid )
114  # endif  # endif
115  # ifdef ALLOW_DOWNWARD_RADIATION  # ifdef ALLOW_DOWNWARD_RADIATION
116          CALL MDSWRITEFIELD(          CALL WRITE_REC_3D_RL(
117       &       'ADJswdown.'//suff, writeBinaryPrec, globalFiles, 'RL',       &       'ADJswdown.'//suff, writeBinaryPrec, 1,
118       &       1,  adswdown, 1, myIter, myThid )       &        adswdown, 1, myIter, myThid )
119          CALL MDSWRITEFIELD(          CALL WRITE_REC_3D_RL(
120       &       'ADJlwdown.'//suff, writeBinaryPrec, globalFiles, 'RL',       &       'ADJlwdown.'//suff, writeBinaryPrec, 1,
121       &       1,  adlwdown, 1, myIter, myThid )       &        adlwdown, 1, myIter, myThid )
122  # endif  # endif
123  # ifdef ATMOSPHERIC_LOADING  # ifdef ATMOSPHERIC_LOADING
124  cph        CALL MDSWRITEFIELD(  cph        CALL WRITE_REC_3D_RL(
125  cph     &       'ADJapressure.'//suff, writeBinaryPrec, globalFiles, 'RL',  cph     &       'ADJapressure.'//suff, writeBinaryPrec, 1,
126  cph     &       1,  adapressure, 1, myIter, myThid )  cph     &        adapressure, 1, myIter, myThid )
127  # endif  # endif
128  # if defined(ALLOW_ATM_TEMP) || defined(SHORTWAVE_HEATING)  # if defined(ALLOW_ATM_TEMP) || defined(SHORTWAVE_HEATING)
129  cph        CALL MDSWRITEFIELD(  cph        CALL WRITE_REC_3D_RL(
130  cph     &       'ADJswflux.'//suff, writeBinaryPrec, globalFiles, 'RL',  cph     &       'ADJswflux.'//suff, writeBinaryPrec, 1,
131  cph     &       1,  adswflux, 1, myIter, myThid )  cph     &        adswflux, 1, myIter, myThid )
132  # endif  # endif
133  # if defined(ALLOW_ATM_TEMP) || defined(EXF_READ_EVAP)  # if defined(ALLOW_ATM_TEMP) || defined(EXF_READ_EVAP)
134  cph        CALL MDSWRITEFIELD(  cph        CALL WRITE_REC_3D_RL(
135  cph     &       'ADJevap.'//suff, writeBinaryPrec, globalFiles, 'RL',  cph     &       'ADJevap.'//suff, writeBinaryPrec, 1,
136  cph     &       1,  adevap, 1, myIter, myThid )  cph     &        adevap, 1, myIter, myThid )
137  # endif  # endif
138    
        _END_MASTER( myThid )  
        _BARRIER  
   
139        ENDIF        ENDIF
140    
141        call TIMER_STOP( 'I/O (WRITE)        [EXF_AD_DUMP]', myThid )        CALL TIMER_STOP( 'I/O (WRITE)        [EXF_AD_DUMP]', myThid )
142    
143  #endif /* ALLOW_AUTODIFF_MONITOR */  #endif /* ALLOW_AUTODIFF_MONITOR */
144  #endif /* ALLOW_ADJOINT_RUN */  #endif /* ALLOW_ADJOINT_RUN */
145    
146        end        RETURN
147          END
   
   
   
   
   
   
   
   

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

  ViewVC Help
Powered by ViewVC 1.1.22