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

Diff of /MITgcm/pkg/autodiff/g_dummy_in_stepping.F

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

revision 1.15 by jmc, Fri Jul 6 23:10:28 2012 UTC revision 1.16 by jmc, Wed Aug 29 13:12:22 2012 UTC
# Line 7  C $Name$ Line 7  C $Name$
7  CBOP  CBOP
8  C     !ROUTINE: g_dummy_in_stepping  C     !ROUTINE: g_dummy_in_stepping
9  C     !INTERFACE:  C     !INTERFACE:
10        subroutine g_dummy_in_stepping( mytime, myiter, myThid )        subroutine g_dummy_in_stepping( myTime, myIter, myThid )
11    
12  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
13  C     *==========================================================*  C     *==========================================================*
# Line 34  C     == Global variables === Line 34  C     == Global variables ===
34  # include "g_common.h"  # include "g_common.h"
35  #endif  #endif
36    
       LOGICAL  DIFFERENT_MULTIPLE  
       EXTERNAL DIFFERENT_MULTIPLE  
       INTEGER  IO_ERRCOUNT  
       EXTERNAL IO_ERRCOUNT  
   
37  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
38  C     == Routine arguments ==  C     == Routine arguments ==
39  C     myIter - iteration counter for this thread  C     myIter :: iteration counter for this thread
40  C     myTime - time counter for this thread  C     myTime :: time counter for this thread
41  C     myThid - Thread number for this instance of the routine.  C     myThid :: Thread number for this instance of the routine.
42        integer myThid        INTEGER myThid
43        integer myiter        INTEGER myIter
44        _RL     mytime        _RL     myTime
45    
46  #ifdef ALLOW_TANGENTLINEAR_RUN  #ifdef ALLOW_TANGENTLINEAR_RUN
47  #ifdef ALLOW_AUTODIFF_MONITOR  #ifdef ALLOW_AUTODIFF_MONITOR
48    
49    C     !FUNCTIONS:
50          LOGICAL  DIFFERENT_MULTIPLE
51          EXTERNAL DIFFERENT_MULTIPLE
52          INTEGER  IO_ERRCOUNT
53          EXTERNAL IO_ERRCOUNT
54    
55  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
56  c     == local variables ==  c     == local variables ==
57  C     suff - Hold suffix part of a filename  C     suff   :: Hold suffix part of a filename
58  C     beginIOErrCount - Begin and end IO error counts  C     msgBuf :: Error message buffer
 C     endIOErrCount  
 C     msgBuf - Error message buffer  
59        CHARACTER*(MAX_LEN_FNAM) suff        CHARACTER*(MAX_LEN_FNAM) suff
60        INTEGER beginIOErrCount        INTEGER beginIOErrCount
61        INTEGER endIOErrCount        INTEGER endIOErrCount
62        CHARACTER*(MAX_LEN_MBUF) msgBuf        CHARACTER*(MAX_LEN_MBUF) msgBuf
   
 c     == end of interface ==  
63  CEOP  CEOP
64    
       call TIMER_START('I/O (WRITE)        [ADJOINT LOOP]', myThid )  
   
65        IF (        IF (
66       &  DIFFERENT_MULTIPLE(adjDumpFreq,mytime,deltaTClock)       &  DIFFERENT_MULTIPLE(adjDumpFreq,myTime,deltaTClock)
67       & ) THEN       &   ) THEN
68    
69           write(*,*) 'myIter= ',myiter          CALL TIMER_START('I/O (WRITE)        [ADJOINT LOOP]', myThid )
70    c       write(*,*) 'myIter= ',myIter
        _BARRIER  
        _BEGIN_MASTER( myThid )  
71    
72  C--     Set suffix for this set of data files.  C--     Set suffix for this set of data files.
73          WRITE(suff,'(I10.10)') myIter          WRITE(suff,'(I10.10)') myIter
74          writeBinaryPrec = writeStatePrec  C ==>> Resetting run-time parameter writeBinaryPrec in the middle of a run
75    C ==>>  is very very very nasty !!!
76    c       writeBinaryPrec = writeStatePrec
77    C <<==  If you really want to mess-up with this at your own risk,
78    C <<==  uncomment the line above
79    
80  C--     Read IO error counter  C--     Read IO error counter
81          beginIOErrCount = IO_ERRCOUNT(myThid)          beginIOErrCount = IO_ERRCOUNT(myThid)
82    
83          CALL WRITE_FLD_XY_RL ( 'G_Jtaux.',suff, g_fu, myIter, myThid)          CALL WRITE_FLD_XY_RL ( 'G_Jtaux.',suff, g_fu, myIter, myThid )
84          CALL WRITE_FLD_XY_RL ( 'G_Jtauy.',suff, g_fv, myIter, myThid)          CALL WRITE_FLD_XY_RL ( 'G_Jtauy.',suff, g_fv, myIter, myThid )
85          CALL WRITE_FLD_XY_RL ( 'G_Jqnet.',suff, g_qnet, myIter, myThid)          CALL WRITE_FLD_XY_RL ( 'G_Jqnet.',suff, g_qnet, myIter,myThid )
86          CALL WRITE_FLD_XY_RL ( 'G_Jempr.',suff, g_empmr, myIter, myThid)          CALL WRITE_FLD_XY_RL ( 'G_Jempr.',suff, g_empmr,myIter,myThid )
87  c  c
88          CALL WRITE_FLD_XYZ_RL(          CALL WRITE_FLD_XYZ_RL(
89       &       'G_Jtheta.',suff, g_theta, myIter, myThid)       &       'G_Jtheta.',suff, g_theta, myIter, myThid )
90          CALL WRITE_FLD_XYZ_RL(          CALL WRITE_FLD_XYZ_RL(
91       &       'G_Jsalt.',suff, g_salt, myIter, myThid)       &       'G_Jsalt.',suff, g_salt, myIter, myThid )
92          CALL WRITE_FLD_XYZ_RL(          CALL WRITE_FLD_XYZ_RL(
93       &       'G_Juvel.',suff, g_uvel, myIter, myThid)       &       'G_Juvel.',suff, g_uvel, myIter, myThid )
94          CALL WRITE_FLD_XYZ_RL(          CALL WRITE_FLD_XYZ_RL(
95       &       'G_Jvvel.',suff, g_vvel, myIter, myThid)       &       'G_Jvvel.',suff, g_vvel, myIter, myThid )
96          CALL WRITE_FLD_XYZ_RL(          CALL WRITE_FLD_XYZ_RL(
97       &       'G_Jwvel.',suff, g_wvel, myIter, myThid)       &       'G_Jwvel.',suff, g_wvel, myIter, myThid )
98          CALL WRITE_FLD_XY_RL(          CALL WRITE_FLD_XY_RL(
99       &       'G_Jetan.',suff, g_etan, myIter, myThid)       &       'G_Jetan.',suff, g_etan, myIter, myThid )
100    
101  #ifdef ALLOW_DIFFKR_CONTROL  #ifdef ALLOW_DIFFKR_CONTROL
102          CALL WRITE_FLD_XYZ_RL ( 'G_Jdiffkr.',suff, g_diffkr,          CALL WRITE_FLD_XYZ_RL ( 'G_Jdiffkr.',suff, g_diffkr,
103       &       myIter, myThid)       &       myIter, myThid )
104  #endif  #endif
105  #ifdef ALLOW_KAPGM_CONTROL  #ifdef ALLOW_KAPGM_CONTROL
106          CALL WRITE_FLD_XYZ_RL ( 'G_Jkapgm.',suff, g_kapgm,          CALL WRITE_FLD_XYZ_RL ( 'G_Jkapgm.',suff, g_kapgm,
107       &       myIter, myThid)       &       myIter, myThid )
108  #endif  #endif
109  #ifdef ALLOW_KAPREDI_CONTROL  #ifdef ALLOW_KAPREDI_CONTROL
110          CALL WRITE_FLD_XYZ_RL ( 'G_Jkapredi.',suff, g_kapredi,          CALL WRITE_FLD_XYZ_RL ( 'G_Jkapredi.',suff, g_kapredi,
111       &       myIter, myThid)       &       myIter, myThid )
112  #endif  #endif
113    
114  cph        CALL WRITE_FLD_XY_RL( 'G_J_sst.',suff, g_sst, myIter, myThid)  cph        CALL WRITE_FLD_XY_RL( 'G_J_sst.',suff, g_sst, myIter, myThid )
115  cph        CALL WRITE_FLD_XY_RL( 'G_J_sss.',suff, g_sss, myIter, myThid)  cph        CALL WRITE_FLD_XY_RL( 'G_J_sss.',suff, g_sss, myIter, myThid )
116    
117  #ifdef ALLOW_AUTODIFF_MONITOR_PHIHYD  #ifdef ALLOW_AUTODIFF_MONITOR_PHIHYD
118          CALL WRITE_FLD_XYZ_RL(          CALL WRITE_FLD_XYZ_RL(
119       &       'G_Jphihyd.',suff, g_totphihyd, myIter, myThid)       &       'G_Jphihyd.',suff, g_totphihyd, myIter, myThid )
120  #endif  #endif
121    
122  C--     Reread IO error counter  C--     Reread IO error counter
# Line 128  C--     Reread IO error counter Line 125  C--     Reread IO error counter
125  C--     Check for IO errors  C--     Check for IO errors
126          IF ( endIOErrCount .NE. beginIOErrCount ) THEN          IF ( endIOErrCount .NE. beginIOErrCount ) THEN
127           WRITE(msgBuf,'(A)')  'S/R WRITE_STATE'           WRITE(msgBuf,'(A)')  'S/R WRITE_STATE'
128           CALL PRINT_ERROR( msgBuf, 1 )           CALL PRINT_ERROR( msgBuf, myThid )
129           WRITE(msgBuf,'(A)')  'Error writing out model state'           WRITE(msgBuf,'(A)')  'Error writing out model state'
130           CALL PRINT_ERROR( msgBuf, 1 )           CALL PRINT_ERROR( msgBuf, myThid )
131           WRITE(msgBuf,'(A,I10)') 'Timestep ',myIter           WRITE(msgBuf,'(A,I10)') 'Timestep ',myIter
132           CALL PRINT_ERROR( msgBuf, 1 )           CALL PRINT_ERROR( msgBuf, myThid )
133          ELSE          ELSE
134           WRITE(msgBuf,'(A,I10)')           WRITE(msgBuf,'(A,I10)')
135       &    '// Model state written, timestep', myIter       &    '// Model state written, timestep', myIter
136           CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,           CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
137       &    SQUEEZE_RIGHT, 1 )       &                       SQUEEZE_RIGHT, myThid )
138           WRITE(msgBuf,'(A)')  ' '           WRITE(msgBuf,'(A)')  ' '
139           CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,           CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
140       &    SQUEEZE_RIGHT, 1 )       &                       SQUEEZE_RIGHT, myThid )
141          ENDIF          ENDIF
142    
143         _END_MASTER( myThid )          CALL TIMER_STOP( 'I/O (WRITE)        [ADJOINT LOOP]', myThid )
        _BARRIER  
144    
145        ENDIF        ENDIF
146    
       call TIMER_STOP( 'I/O (WRITE)        [ADJOINT LOOP]', myThid )  
   
147  #endif /* ALLOW_AUTODIFF_MONITOR */  #endif /* ALLOW_AUTODIFF_MONITOR */
148  #endif /* ALLOW_TANGENTLINEAR_RUN */  #endif /* ALLOW_TANGENTLINEAR_RUN */
149    
150        end        RETURN
151          END
   
   
   
   
   
   
   
   

Legend:
Removed from v.1.15  
changed lines
  Added in v.1.16

  ViewVC Help
Powered by ViewVC 1.1.22