1 |
C $Header: /u/gcmpack/MITgcm/pkg/autodiff/autodiff_check.F,v 1.6 2007/08/16 12:32:49 heimbach Exp $ |
2 |
C $Name: $ |
3 |
|
4 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
5 |
|
6 |
#include "AUTODIFF_OPTIONS.h" |
7 |
|
8 |
CBOP |
9 |
C !ROUTINE: AUTODIFF_CHECK |
10 |
C !INTERFACE: |
11 |
SUBROUTINE AUTODIFF_CHECK( myThid ) |
12 |
|
13 |
C !DESCRIPTION: \bv |
14 |
C \ev |
15 |
|
16 |
IMPLICIT NONE |
17 |
#include "SIZE.h" |
18 |
#include "GRID.h" |
19 |
#include "EEPARAMS.h" |
20 |
#include "PARAMS.h" |
21 |
#ifdef ALLOW_AUTODIFF |
22 |
#include "tamc.h" |
23 |
#endif |
24 |
|
25 |
C !INPUT/OUTPUT PARAMETERS: |
26 |
C myThid - Number of this instances |
27 |
INTEGER myThid |
28 |
CEOP |
29 |
|
30 |
#ifdef ALLOW_AUTODIFF_TAMC |
31 |
|
32 |
#if (defined (AUTODIFF_2_LEVEL_CHECKPOINT)) |
33 |
if (nchklev_1*nchklev_2 .lt. nTimeSteps) then |
34 |
print*, ' the_main_loop: TAMC checkpointing parameters' |
35 |
print*, ' nchklev_1*nchklev_2 = ', |
36 |
& nchklev_1*nchklev_2 |
37 |
print*, ' are not consistent with nTimeSteps = ', |
38 |
& nTimeSteps |
39 |
stop ' ... stopped in autodiff_check' |
40 |
endif |
41 |
#elif (defined (AUTODIFF_4_LEVEL_CHECKPOINT)) |
42 |
if (nchklev_1*nchklev_2*nchklev_3*nchklev_4 .lt. nTimeSteps) then |
43 |
print*, ' the_main_loop: TAMC checkpointing parameters' |
44 |
print*, ' nchklev_1*nchklev_2*nchklev_3*nchklev_4 = ', |
45 |
& nchklev_1*nchklev_2*nchklev_3*nchklev_4 |
46 |
print*, ' are not consistent with nTimeSteps = ', |
47 |
& nTimeSteps |
48 |
stop ' ... stopped in autodiff_check' |
49 |
endif |
50 |
#else |
51 |
c-- Check the choice of the checkpointing parameters in relation |
52 |
c-- to nTimeSteps: (nchklev_1*nchklev_2*nchklev_3 .ge. nTimeSteps) |
53 |
if (nchklev_1*nchklev_2*nchklev_3 .lt. nTimeSteps) then |
54 |
print*, ' the_main_loop: TAMC checkpointing parameters' |
55 |
print*, ' nchklev_1*nchklev_2*nchklev_3 = ', |
56 |
& nchklev_1*nchklev_2*nchklev_3 |
57 |
print*, ' are not consistent with nTimeSteps = ', |
58 |
& nTimeSteps |
59 |
stop ' ... stopped in autodiff_check' |
60 |
endif |
61 |
#endif |
62 |
|
63 |
#ifndef ALLOW_AUTODIFF_MONITOR |
64 |
IF ( adjDumpFreq .NE. 0. ) THEN |
65 |
STOP 'adjDumpFreq <> 0, but undef ALLOW_AUTODIFF_MONITOR' |
66 |
ENDIF |
67 |
IF ( adjMonitorFreq .NE. 0. ) THEN |
68 |
STOP 'adjMonitorFreq <> 0, but undef ALLOW_AUTODIFF_MONITOR' |
69 |
ENDIF |
70 |
#endif |
71 |
|
72 |
#ifdef ALLOW_GRDCHK |
73 |
IF ( useSingleCpuIO .AND. useGrdchk ) THEN |
74 |
STOP 'Need to have useSingleCpuIO=.FALSE. with useGrdchk' |
75 |
ENDIF |
76 |
#endif |
77 |
|
78 |
#endif |
79 |
|
80 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
81 |
|
82 |
RETURN |
83 |
END |