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

Legend:
Removed from v.1.2.4.1  
changed lines
  Added in v.1.18

  ViewVC Help
Powered by ViewVC 1.1.22