File indexing completed on 2018-03-02 18:41:47 UTC
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
4e66ab0b67 Oliv*0001 #include "LONGSTEP_OPTIONS.h"
0002
0003
0004
0005
0006
0007
0008 SUBROUTINE LONGSTEP_CHECK_ITERS( myThid )
0009
0010
0011
0012
0013
0014
0015 IMPLICIT NONE
0016 #include "SIZE.h"
0017 #include "EEPARAMS.h"
0018 #include "LONGSTEP_PARAMS.h"
0019 #include "PARAMS.h"
0020
0021
0022 INTEGER myThid
0023
0024
0025 #ifdef ALLOW_LONGSTEP
0026
0027
0028
0029
0030 INTEGER extraIter
0031 CHARACTER*(MAX_LEN_MBUF) msgBuf
0032
0033 IF (MOD(nIter0, LS_nIter) .NE. 0) THEN
0034
0035
0036 WRITE(msgBuf,'(2A,2I10)')
0037 & ' LONGSTEP_CHECK_ITERS: nIter0 is not a multiple of',
0038 & ' LS_niter', nIter0, LS_niter
0039 CALL PRINT_ERROR( msgBuf, myThid )
0040 STOP 'ABNORMAL END: S/R LONGSTEP_CHECK_ITERS'
0041 ENDIF
0042
0043 IF (MOD(nEndIter, LS_nIter) .NE. 0) THEN
0044
0045
914c1bc31b Oliv*0046 WRITE(msgBuf,'(3A)') '**WARNING** ',
4e66ab0b67 Oliv*0047 & ' LONGSTEP_CHECK_ITERS: nEndIter is not a multiple of',
914c1bc31b Oliv*0048 & ' LS_niter:'
0049 CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
0050 & SQUEEZE_RIGHT , myThid)
0051 WRITE(msgBuf,'(2A,2I10)') '**WARNING** ',
0052 & ' LONGSTEP_CHECK_ITERS: ', nEndIter, LS_niter
0053 CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
0054 & SQUEEZE_RIGHT , myThid)
4e66ab0b67 Oliv*0055 extraIter = LS_nIter - MOD(nEndIter, LS_nIter)
0056 nEndIter = nEndIter + extraIter
0057 nTimeSteps = nEndIter - nIter0
b4566ab81c Jean*0058 endTime = baseTime + deltaTClock*DFLOAT(nEndIter)
914c1bc31b Oliv*0059 WRITE(msgBuf,'(2A)') '**WARNING** ',
4e66ab0b67 Oliv*0060 & ' LONGSTEP_CHECK_ITERS: adjusting to'
914c1bc31b Oliv*0061 CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
0062 & SQUEEZE_RIGHT , myThid)
0063 WRITE(msgBuf,'(2A,I10)') '**WARNING** ',
4e66ab0b67 Oliv*0064 & ' LONGSTEP_CHECK_ITERS: nEndIter =', nEndIter
914c1bc31b Oliv*0065 CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
0066 & SQUEEZE_RIGHT , myThid)
0067 WRITE(msgBuf,'(2A,I10)') '**WARNING** ',
4e66ab0b67 Oliv*0068 & ' LONGSTEP_CHECK_ITERS: nTimeSteps =', nTimeSteps
914c1bc31b Oliv*0069 CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
0070 & SQUEEZE_RIGHT , myThid)
0071 WRITE(msgBuf,'(2A,1PE23.15)') '**WARNING** ',
4e66ab0b67 Oliv*0072 & ' LONGSTEP_CHECK_ITERS: endTime =', endTime
914c1bc31b Oliv*0073 CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
0074 & SQUEEZE_RIGHT , myThid)
4e66ab0b67 Oliv*0075
0076 WRITE(msgBuf,'(2A)') 'S/R LONGSTEP_CHECK_ITERS: ',
0077 & ' adjusting endTime:'
0078 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0079 & SQUEEZE_RIGHT , 1)
0080 CALL WRITE_0D_RL( endTime, INDEX_NONE,'endTime =',
0081 &' /* Integration ending time ( s ). */')
0082 CALL WRITE_0D_I( nTimeSteps, INDEX_NONE,'nTimeSteps =',
0083 &' /* Number of timesteps */')
0084 ENDIF
0085
0086 #endif /* ALLOW_LONGSTEP */
0087
0088 RETURN
0089 END