/[MITgcm]/MITgcm/pkg/offline/offline_check.F
ViewVC logotype

Contents of /MITgcm/pkg/offline/offline_check.F

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


Revision 1.1 - (show annotations) (download)
Sun Jul 7 22:25:13 2013 UTC (10 years, 9 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint64y, checkpoint64x, checkpoint64z, checkpoint64o, checkpoint64q, checkpoint64p, checkpoint64s, checkpoint64r, checkpoint64u, checkpoint64t, checkpoint64w, checkpoint64v, checkpoint64n, checkpoint65j, checkpoint65k, checkpoint65h, checkpoint65i, checkpoint65l, checkpoint65m, checkpoint65b, checkpoint65c, checkpoint65a, checkpoint65f, checkpoint65g, checkpoint65d, checkpoint65e, checkpoint64k, checkpoint65, checkpoint64m, checkpoint64l
- add S/R OFFLINE_CHECK to print offline parameter summary
  and stop if loading a file that is not used;

1 C $Header: /u/gcmpack/MITgcm/pkg/mypackage/mypackage_check.F,v 1.6 2012/04/03 00:20:14 jmc Exp $
2 C $Name: $
3
4 #include "OFFLINE_OPTIONS.h"
5 #ifdef ALLOW_DIC
6 #include "DIC_OPTIONS.h"
7 #endif
8 #ifdef ALLOW_DARWIN
9 #include "DARWIN_OPTIONS.h"
10 #endif
11
12 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
13 CBOP 0
14 C !ROUTINE: OFFLINE_CHECK
15
16 C !INTERFACE:
17 SUBROUTINE OFFLINE_CHECK( myThid )
18
19 C !DESCRIPTION:
20 C Check dependances with other packages
21
22 C !USES:
23 IMPLICIT NONE
24 #include "SIZE.h"
25 #include "EEPARAMS.h"
26 #include "PARAMS.h"
27 #include "OFFLINE.h"
28 #include "OFFLINE_SWITCH.h"
29
30 C !INPUT PARAMETERS:
31 C myThid :: my Thread Id number
32 INTEGER myThid
33 CEOP
34
35 #ifdef ALLOW_OFFLINE
36 C !LOCAL VARIABLES:
37 C msgBuf :: Informational/error message buffer
38 CHARACTER*(MAX_LEN_MBUF) msgBuf
39 INTEGER errCount
40
41 _BEGIN_MASTER(myThid)
42
43 WRITE(msgBuf,'(A)') 'OFFLINE_CHECK: #define OFFLINE'
44 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
45 & SQUEEZE_RIGHT, myThid )
46
47 C-- Print out some kee parameters :
48 CALL WRITE_0D_L( offlineLoadGMRedi, INDEX_NONE,
49 & 'offlineLoadGMRedi=', ' /* load (not compute) GMRedi tensor */')
50 CALL WRITE_0D_L( offlineLoadKPP, INDEX_NONE,
51 & 'offlineLoadKPP=', ' /* load (not compute) KPP mixing coeff */')
52 CALL WRITE_0D_L( offlineLoadConvec, INDEX_NONE,
53 & 'offlineLoadConvec=', ' /* load (not compute) Convect Mix */')
54 CALL WRITE_0D_I( offlineIter0, INDEX_NONE,
55 & 'offlineIter0 =', ' /* initial offline field timestep */')
56 CALL WRITE_0D_I( offlineOffsetIter, INDEX_NONE,
57 & 'offlineOffsetIter=', ' /* iteration number offset */')
58 CALL WRITE_0D_I( offlineLoadPrec, INDEX_NONE,
59 & 'offlineLoadPrec =',
60 & ' /* precision (32,64) of offline files */')
61 CALL WRITE_0D_RL( deltaToffline, INDEX_NONE,
62 & 'deltaToffline =', ' /* time-step to load offline files */')
63 CALL WRITE_0D_RL( offlineForcingPeriod, INDEX_NONE,
64 & 'offlineForcingPeriod=',
65 & ' /* time interval between reccords [s] */')
66 CALL WRITE_0D_RL( offlineForcingCycle, INDEX_NONE,
67 & 'offlineForcingCycle =', ' /* length of 1 cycle [s] */')
68 CALL WRITE_0D_C( UvelFile, -1, INDEX_NONE, 'UvelFile =',
69 & ' /* file name of loaded uVel field */')
70
71 C-- Check parameters:
72 errCount = 0
73
74 C- Put stops here if some flags are wrongly chosen.
75
76 C- better not to modify temperature that was loaded from file:
77 C => disable allowFreezing
78 IF ( allowFreezing ) THEN
79 WRITE(msgBuf,'(A)') 'allowFreezing=T not allowed if useOffLine'
80 CALL PRINT_ERROR( msgBuf, myThid )
81 errCount = errCount + 1
82 ENDIF
83
84 C- stop if files are specified but not used.
85 IF ( HFluxFile.NE.' ' ) THEN
86 WRITE(msgBuf,'(A)') 'HFluxFile is set but not used'
87 CALL PRINT_ERROR( msgBuf, myThid )
88 errCount = errCount + 1
89 ENDIF
90 #ifndef ALLOW_OLD_VIRTUALFLUX
91 IF ( SFluxFile.NE.' ' ) THEN
92 WRITE(msgBuf,'(A)') 'SFluxFile is set but not used'
93 CALL PRINT_ERROR( msgBuf, myThid )
94 errCount = errCount + 1
95 ENDIF
96 #endif /* ndef ALLOW_OLD_VIRTUALFLUX */
97 IF ( IceFile.NE.' ' ) THEN
98 WRITE(msgBuf,'(A)') 'IceFile is set but not used'
99 CALL PRINT_ERROR( msgBuf, myThid )
100 errCount = errCount + 1
101 ENDIF
102 IF ( offlineLoadGMRedi .AND. .NOT.useGMRedi ) THEN
103 WRITE(msgBuf,'(A)') 'some GMxxFile are set but not used'
104 CALL PRINT_ERROR( msgBuf, myThid )
105 errCount = errCount + 1
106 ENDIF
107 IF ( offlineLoadKPP .AND. .NOT.useKPP ) THEN
108 WRITE(msgBuf,'(A)') 'some KPP_xxxxxFile are set but not used'
109 CALL PRINT_ERROR( msgBuf, myThid )
110 errCount = errCount + 1
111 ENDIF
112 IF ( offlineLoadConvec .AND. ivdc_kappa.EQ.0. ) THEN
113 WRITE(msgBuf,'(A)') 'ConvFile is set but not used'
114 CALL PRINT_ERROR( msgBuf, myThid )
115 errCount = errCount + 1
116 ENDIF
117
118 IF ( errCount.GE.1 ) THEN
119 WRITE(msgBuf,'(A,I3,A)')
120 & 'OFFLINE_CHECK: detected', errCount,' fatal error(s)'
121 CALL PRINT_ERROR( msgBuf, myThid )
122 CALL ALL_PROC_DIE( 0 )
123 STOP 'ABNORMAL END: S/R OFFLINE_CHECK'
124 ENDIF
125
126 WRITE(msgBuf,'(A)') 'OFFLINE_CHECK: done'
127 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
128 & SQUEEZE_RIGHT, myThid )
129
130 _END_MASTER(myThid)
131
132 #endif /* ALLOW_OFFLINE */
133
134 RETURN
135 END

  ViewVC Help
Powered by ViewVC 1.1.22