File indexing completed on 2024-05-11 05:10:13 UTC
view on githubraw file Latest commit 41c4545f on 2024-05-10 15:00:41 UTC
50f1081522 Jean*0001 #include "AUTODIFF_OPTIONS.h"
57c22ecc45 Jean*0002 #include "AD_CONFIG.h"
620589f74d Patr*0003
0004
0005
0006
0007 SUBROUTINE AUTODIFF_CHECK( myThid )
0008
0009
0010
0011
0012 IMPLICIT NONE
0013 #include "SIZE.h"
0014 #include "GRID.h"
0015 #include "EEPARAMS.h"
0016 #include "PARAMS.h"
a5ec81ed49 Timo*0017 #ifdef ALLOW_AUTODIFF_TAMC
0018 # include "tamc.h"
0019 #endif
0020 #ifdef ALLOW_DIAGNOSTICS
41c4545f8f Jean*0021 # include "DIAGNOSTICS_P2SHARE.h"
620589f74d Patr*0022 #endif
0023
0024
0025
0026 INTEGER myThid
49339e03c7 Patr*0027
0028 CHARACTER*(MAX_LEN_MBUF) msgBuf
620589f74d Patr*0029
0030
41c4545f8f Jean*0031
0032
a5ec81ed49 Timo*0033 #ifdef ALLOW_AUTODIFF_TAMC
620589f74d Patr*0034
e1de04fee5 Patr*0035 #ifdef ALLOW_TAMC_CHECKPOINTING
0036 # if (defined (AUTODIFF_2_LEVEL_CHECKPOINT))
a5ec81ed49 Timo*0037 IF (nchklev_1*nchklev_2 .lt. nTimeSteps) THEN
3196a0e207 Jean*0038 WRITE(msgBuf,'(A)')
ccb200eb52 Patr*0039 & 'THE_MAIN_LOOP: TAMC checkpointing parameters'
0040 CALL PRINT_ERROR( msgBuf , myThid )
3196a0e207 Jean*0041 WRITE(msgBuf,'(A,I10)')
1470a4ad8f Patr*0042 & 'nchklev_1*nchklev_2 = ',
620589f74d Patr*0043 & nchklev_1*nchklev_2
ccb200eb52 Patr*0044 CALL PRINT_ERROR( msgBuf , myThid )
3196a0e207 Jean*0045 WRITE(msgBuf,'(A,I10)')
1470a4ad8f Patr*0046 & 'are not consistent with nTimeSteps = ',
620589f74d Patr*0047 & nTimeSteps
ccb200eb52 Patr*0048 CALL PRINT_ERROR( msgBuf , myThid )
0049 STOP 'ABNORMAL END: S/R AUTODIFF_CHECK'
a5ec81ed49 Timo*0050 ENDIF
e1de04fee5 Patr*0051 # elif (defined (AUTODIFF_4_LEVEL_CHECKPOINT))
a5ec81ed49 Timo*0052 IF (nchklev_1*nchklev_2*nchklev_3*nchklev_4 .lt. nTimeSteps) THEN
3196a0e207 Jean*0053 WRITE(msgBuf,'(A)')
ccb200eb52 Patr*0054 & 'THE_MAIN_LOOP: TAMC checkpointing parameters'
0055 CALL PRINT_ERROR( msgBuf , myThid )
3196a0e207 Jean*0056 WRITE(msgBuf,'(A,I10)')
1470a4ad8f Patr*0057 & 'nchklev_1*nchklev_2*nchklev_3*nchklev_4 = ',
0785f33837 Patr*0058 & nchklev_1*nchklev_2*nchklev_3*nchklev_4
ccb200eb52 Patr*0059 CALL PRINT_ERROR( msgBuf , myThid )
3196a0e207 Jean*0060 WRITE(msgBuf,'(A,I10)')
1470a4ad8f Patr*0061 & 'are not consistent with nTimeSteps = ',
0785f33837 Patr*0062 & nTimeSteps
ccb200eb52 Patr*0063 CALL PRINT_ERROR( msgBuf , myThid )
0064 STOP 'ABNORMAL END: S/R AUTODIFF_CHECK'
a5ec81ed49 Timo*0065 ENDIF
e1de04fee5 Patr*0066 # else
620589f74d Patr*0067
0068
a5ec81ed49 Timo*0069 IF (nchklev_1*nchklev_2*nchklev_3 .lt. nTimeSteps) THEN
3196a0e207 Jean*0070 WRITE(msgBuf,'(A)')
ccb200eb52 Patr*0071 & 'THE_MAIN_LOOP: TAMC checkpointing parameters'
0072 CALL PRINT_ERROR( msgBuf , myThid )
3196a0e207 Jean*0073 WRITE(msgBuf,'(A,I10)')
1470a4ad8f Patr*0074 & 'nchklev_1*nchklev_2*nchklev_3 = ',
620589f74d Patr*0075 & nchklev_1*nchklev_2*nchklev_3
ccb200eb52 Patr*0076 CALL PRINT_ERROR( msgBuf , myThid )
3196a0e207 Jean*0077 WRITE(msgBuf,'(A,I10)')
1470a4ad8f Patr*0078 & 'are not consistent with nTimeSteps = ',
620589f74d Patr*0079 & nTimeSteps
ccb200eb52 Patr*0080 CALL PRINT_ERROR( msgBuf , myThid )
0081 STOP 'ABNORMAL END: S/R AUTODIFF_CHECK'
a5ec81ed49 Timo*0082 ENDIF
e1de04fee5 Patr*0083 # endif
0084 #else /* undef ALLOW_TAMC_CHECKPOINTING */
a5ec81ed49 Timo*0085 IF (nchklev_1 .lt. nTimeSteps) THEN
3196a0e207 Jean*0086 WRITE(msgBuf,'(A)')
e1de04fee5 Patr*0087 & 'THE_MAIN_LOOP: TAMC checkpointing parameters'
0088 CALL PRINT_ERROR( msgBuf , myThid )
3196a0e207 Jean*0089 WRITE(msgBuf,'(A,I10)')
e1de04fee5 Patr*0090 & 'nchklev_1 = ', nchklev_1
0091 CALL PRINT_ERROR( msgBuf , myThid )
3196a0e207 Jean*0092 WRITE(msgBuf,'(A,I10)')
e1de04fee5 Patr*0093 & 'are not consistent with nTimeSteps = ', nTimeSteps
0094 CALL PRINT_ERROR( msgBuf , myThid )
0095 STOP 'ABNORMAL END: S/R AUTODIFF_CHECK'
a5ec81ed49 Timo*0096 ENDIF
e1de04fee5 Patr*0097 #endif /* ALLOW_TAMC_CHECKPOINTING */
620589f74d Patr*0098
a5ec81ed49 Timo*0099
0100
0101
0102
0103
0104
0105
0106
0107
0108
0109 #endif /* ALLOW_AUTODIFF_TAMC */
0110
68ccb53055 Patr*0111 #ifndef ALLOW_AUTODIFF_MONITOR
0112 IF ( adjDumpFreq .NE. 0. ) THEN
3196a0e207 Jean*0113 WRITE(msgBuf,'(A)')
ccb200eb52 Patr*0114 & 'adjDumpFreq <> 0, but undef ALLOW_AUTODIFF_MONITOR'
0115 CALL PRINT_ERROR( msgBuf , myThid )
0116 STOP 'ABNORMAL END: S/R AUTODIFF_CHECK'
68ccb53055 Patr*0117 ENDIF
0118 IF ( adjMonitorFreq .NE. 0. ) THEN
3196a0e207 Jean*0119 WRITE(msgBuf,'(A)')
ccb200eb52 Patr*0120 & 'adjMonitorFreq <> 0, but undef ALLOW_AUTODIFF_MONITOR'
0121 CALL PRINT_ERROR( msgBuf , myThid )
0122 STOP 'ABNORMAL END: S/R AUTODIFF_CHECK'
68ccb53055 Patr*0123 ENDIF
a5ec81ed49 Timo*0124 # ifdef ALLOW_DIAGNOSTICS
0125 IF ( useDiag4AdjOutp ) THEN
0126 WRITE(msgBuf,'(A)')
0127 & 'using Adj-Diagnostics, but undef ALLOW_AUTODIFF_MONITOR'
0128 CALL PRINT_ERROR( msgBuf , myThid )
0129 STOP 'ABNORMAL END: S/R AUTODIFF_CHECK'
0130 ENDIF
0131 # endif /* ALLOW_DIAGNOSTICS */
0132 #endif /* ndef ALLOW_AUTODIFF_MONITOR */
620589f74d Patr*0133
3196a0e207 Jean*0134 #ifdef ALLOW_OPENAD
19e85cfa3f Patr*0135 # if (defined (ALLOW_ECCO) || defined (ALLOW_PROFILES))
3196a0e207 Jean*0136 WRITE(msgBuf,'(2A)')
19e85cfa3f Patr*0137 & 'AUTODIFF_CHECK: pkg ECCO or PROFILES not yet implemented ',
0138 & ' for ALLOW_AUTODIFF_OPENAD'
0139 CALL PRINT_ERROR( msgBuf , myThid )
0140 STOP 'ABNORMAL END: S/R AUTODIFF_CHECK'
0141 # endif
3196a0e207 Jean*0142 #endif /* ALLOW_OPENAD */
19e85cfa3f Patr*0143
620589f74d Patr*0144
0145
0146 RETURN
0147 END