/[MITgcm]/MITgcm/pkg/cal/cal_printerror.F
ViewVC logotype

Annotation of /MITgcm/pkg/cal/cal_printerror.F

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


Revision 1.4 - (hide annotations) (download)
Mon Apr 19 23:25:15 2004 UTC (20 years, 1 month ago) by mlosch
Branch: MAIN
CVS Tags: checkpoint57m_post, checkpoint57g_pre, checkpoint57s_post, checkpoint58b_post, checkpoint57b_post, checkpoint57g_post, checkpoint56b_post, checkpoint57y_post, checkpoint54d_post, checkpoint54e_post, checkpoint57r_post, checkpoint57d_post, checkpoint57i_post, checkpoint58, checkpoint55, checkpoint54, checkpoint57, checkpoint56, checkpoint53, checkpoint58f_post, checkpoint57n_post, checkpoint58d_post, checkpoint58a_post, checkpoint57z_post, checkpoint54f_post, checkpoint55i_post, checkpoint58m_post, checkpoint57l_post, checkpoint57t_post, checkpoint55c_post, checkpoint57v_post, checkpoint57f_post, checkpoint53d_post, checkpoint57a_post, checkpoint57h_pre, checkpoint54b_post, checkpoint57h_post, checkpoint57y_pre, checkpoint55g_post, checkpoint58o_post, checkpoint57c_post, checkpoint58p_post, checkpoint58q_post, checkpoint55d_post, checkpoint58e_post, checkpoint54a_pre, checkpoint53c_post, checkpoint55d_pre, checkpoint57c_pre, checkpoint55j_post, checkpoint54a_post, checkpoint55h_post, checkpoint58n_post, checkpoint57e_post, checkpoint55b_post, checkpoint53a_post, checkpoint55f_post, checkpoint53g_post, checkpoint57p_post, checkpint57u_post, checkpoint57q_post, eckpoint57e_pre, checkpoint58k_post, checkpoint56a_post, checkpoint58l_post, checkpoint53f_post, checkpoint57h_done, checkpoint57j_post, checkpoint57f_pre, checkpoint58g_post, checkpoint52n_post, checkpoint53b_pre, checkpoint58h_post, checkpoint56c_post, checkpoint58j_post, checkpoint57a_pre, checkpoint55a_post, checkpoint57o_post, checkpoint57k_post, checkpoint53b_post, checkpoint57w_post, checkpoint58i_post, checkpoint57x_post, checkpoint58c_post, checkpoint53d_pre, checkpoint55e_post, checkpoint54c_post
Changes since 1.3: +3 -3 lines
o small fixes in the cal-package:
  - set reference date to first of January for the 'model'-calendar
  - failing of cal_CheckDate in cal_FullDate now actually results in a
    warning

1 mlosch 1.4 C $Header: /u/gcmpack/MITgcm/pkg/cal/cal_printerror.F,v 1.3 2004/03/04 19:34:21 heimbach Exp $
2 edhill 1.2 C $Name: $
3 heimbach 1.1
4 edhill 1.2 #include "CAL_OPTIONS.h"
5 heimbach 1.1
6     subroutine cal_PrintError(
7     I calerr,
8     I mythid
9     & )
10    
11     c ==================================================================
12     c SUBROUTINE cal_PrintError
13     c ==================================================================
14     c
15 heimbach 1.3 c Purpose: Use the MITgcmuvs print routines to document errors that
16 heimbach 1.1 c occured during the execution of the calendar tool.
17     c
18     c o Calling this routine allows to print out an error message for
19     c several errors that might occur.
20     c
21     c The error codes for the calendar tool are specified by a four
22     c digit integer:
23     c RRCC
24     c
25     c The RR digits identify the routine that detected the error.
26     c The CC digits identify the specific error in the routine that
27     c detected the error.
28     c
29     c RR translates to routines in the following way:
30     c
31     c cal_Init 0
32     c cal_Set 1
33     c cal_GetDate 2
34     c cal_FullDate 3
35     c cal_IsLeap 4
36     c cal_TimePassed 5
37     c cal_AddTime 6
38     c cal_TimeInterval 7
39     c cal_SubDates 8
40     c cal_ConvDate 9
41     c cal_ToSeconds 10
42     c cal_StepsPerDay 11
43     c cal_DaysPerMonth 12
44     c cal_MonthsPerYear 13
45     c cal_IntYears 14
46     c cal_IntMonths 15
47     c cal_IntDays 16
48     c cal_nStepDay 17
49     c cal_CheckDate 18
50     c cal_PrintError 19
51     c cal_PrintDate 20
52     c cal_NumInts 25
53     c
54     c
55     c started: Christian Eckert eckert@mit.edu 30-Jun-1999
56     c
57     c changed: Christian Eckert eckert@mit.edu 29-Dec-1999
58     c
59     c Christian Eckert eckert@mit.edu 10-Jan-2000
60     c
61     c - Corrected the print statement for error code 104.
62     c It contained more than 72 characters in one line.
63     c
64     c Christian Eckert eckert@mit.edu 03-Feb-2000
65     c
66     c - Introduced new routine and function names, cal_<NAME>,
67     c for verion 0.1.3.
68     c
69     c Christian Eckert eckert@mit.edu 24-Feb-2000
70     c
71     c - Included cal_NumInts error code.
72     c
73     c ==================================================================
74     c SUBROUTINE cal_PrintError
75     c ==================================================================
76    
77     implicit none
78    
79     c == global variables ==
80    
81     #include "EEPARAMS.h"
82    
83     c == routine arguments ==
84    
85     c mythid - thread number for this instance of the routine.
86     c calerr - error code
87    
88     integer mythid
89     integer calerr
90    
91     c == local variables ==
92    
93     integer nroutine
94     integer nerrcode
95     logical missingerrcode
96    
97     c == end of interface ==
98    
99     nerrcode = mod(calerr,100)
100     nroutine = (calerr - nerrcode)/100
101     missingerrcode = .false.
102    
103     if (nroutine .eq. 0) then
104     c Error in cal_Init
105    
106     if (nerrcode .eq. 1) then
107     print*,
108     & ' cal_Init: Unable to open calendar parameter file'
109     print*,
110     & ' file "data.calendar".'
111     endif
112    
113     else if (nroutine .eq. 1) then
114     c Error in cal_Set
115    
116     if (nerrcode .eq. 1) then
117     print*,
118     & ' cal_Set: No appropriate calendar has been specified.'
119     else if (nerrcode .eq. 2) then
120     print*,
121     & ' cal_Set: The time step specified is not valid.'
122     else if (nerrcode .eq. 3) then
123     print*,
124     & ' cal_Set: The time step is less than a second.'
125     else if (nerrcode .eq. 4) then
126     print*,
127     & ' cal_Set: The time step contains fractions of a',
128     & ' second.'
129     else if (nerrcode .eq. 5) then
130     print*,
131     & ' cal_Set: Less than one time step per calendar day.'
132     else if (nerrcode .eq. 6) then
133     print*,
134     & ' cal_Set: The specifications are incomplete. Please'
135     print*,
136     & ' refer to the documentation.'
137     else if (nerrcode .eq. 7) then
138     print*,
139     & ' cal_Set: The final date of integration is before its'
140     print*,
141     & ' start date.'
142     else if (nerrcode .eq. 10) then
143     print*,
144     & ' cal_Set: The Julian Calendar is not implemented yet.'
145     else if (nerrcode .eq. 11) then
146     print*,
147     & ' cal_Set: The No Calendar case is not implemented yet.'
148     else if ( nerrcode .eq. 12) then
149     print*,
150     & ' cal_Set: modelstart .ne. startTime ... please check.'
151     else if ( nerrcode .eq. 13 ) then
152     print*,
153     & ' cal_Set: modelend .ne. endTime ... please check.'
154     else if ( nerrcode .eq. 14 ) then
155     print*,
156     & ' cal_Set: modelstep .ne. deltaTclock ... please check.'
157     else if ( nerrcode .eq. 15 ) then
158     print*,
159     & ' cal_Set: modeliter0 .ne. nIter0 ... please check.'
160     else if ( nerrcode .eq. 16 ) then
161     print*,
162     & ' cal_Set: modeliterend .ne. nEndIter ... please check.'
163     else if ( nerrcode .eq. 17 ) then
164     print*,
165     & ' cal_Set: modelintsteps .ne. nTimeSteps',
166     & ' ... please check.'
167     else
168     missingerrcode = .true.
169     endif
170    
171     else if (nroutine .eq. 2) then
172     c Error in cal_GetDate
173    
174     missingerrcode = .true.
175    
176     else if (nroutine .eq. 3) then
177     c Error in cal_FullDate
178    
179     missingerrcode = .true.
180    
181     else if (nroutine .eq. 4) then
182     c Error in cal_IsLeap
183    
184     missingerrcode = .true.
185    
186     else if (nroutine .eq. 5) then
187     c Error in cal_TimePassed
188    
189     if (nerrcode .eq. 1) then
190     print*,
191     & ' cal_TimePassed: calendar and timeinterval cannot',
192     & ' be compared.'
193     else
194     missingerrcode = .true.
195     endif
196    
197     else if (nroutine .eq. 6) then
198     c Error in cal_AddTime
199    
200     if (nerrcode .eq. 1) then
201     print*,
202     & ' cal_AddTime: not a valid time interval.'
203     else
204     missingerrcode = .true.
205     endif
206    
207     else if (nroutine .eq. 7) then
208     c Error in cal_TimeInterval
209    
210     if (nerrcode .eq. 1) then
211     print*,
212     & ' cal_TimeInterval: not a valid time unit.'
213     else
214     missingerrcode = .true.
215     endif
216    
217     else if (nroutine .eq. 8) then
218     c Error in cal_SubDates
219    
220     if (nerrcode .eq. 1) then
221     print*,
222     & ' cal_SubDates: Not a valid combination of calendar dates'
223     print*,
224     & ' or time intervals.'
225     else
226     missingerrcode = .true.
227     endif
228    
229     else if (nroutine .eq. 9) then
230     c Error in cal_ConvDate
231    
232     if (nerrcode .eq. 1) then
233     print*,
234     & ' cal_ConvDate: date specification has mixed signs.'
235     else
236     missingerrcode = .true.
237     endif
238    
239     else if (nroutine .eq. 10) then
240     c Error in cal_ToSeconds
241    
242     if (nerrcode .eq. 1) then
243     print*,
244     & ' cal_ToSeconds: input not a time interval array.'
245     else
246     missingerrcode = .true.
247     endif
248    
249     else if (nroutine .eq. 11) then
250     c Error in cal_StepsPerDay
251    
252     if (nerrcode .eq. 1) then
253     print*,
254     & ' cal_StepsPerDay: nothing else to do.'
255     else
256     missingerrcode = .true.
257     endif
258    
259     else if (nroutine .eq. 12) then
260     c Error in cal_DaysPerMonth
261    
262     if (nerrcode .eq. 1) then
263     print*,
264     & ' cal_DaysPerMonth: current year after final year.'
265     else
266     missingerrcode = .true.
267     endif
268    
269     else if (nroutine .eq. 13) then
270     c Error in cal_MonthsPerYear
271    
272     missingerrcode = .true.
273    
274     else if (nroutine .eq. 14) then
275     c Error in cal_IntYears
276    
277     missingerrcode = .true.
278    
279     else if (nroutine .eq. 15) then
280     c Error in cal_IntMonths
281    
282     missingerrcode = .true.
283    
284     else if (nroutine .eq. 16) then
285     c Error in cal_IntDays
286    
287     missingerrcode = .true.
288    
289     else if (nroutine .eq. 17) then
290     c Error in cal_nStepDay
291    
292     missingerrcode = .true.
293    
294     else if (nroutine .eq. 18) then
295     c Error in cal_CheckDate
296    
297     if (nerrcode .eq. 0) then
298     print*,
299     & ' cal_CheckDate: A valid date specification!'
300     print*,
301     & ' --> This only means that the format is ok!'
302     else if (nerrcode .eq. 1) then
303     print*,
304     & ' cal_CheckDate: Last component of array not valid!'
305     else if (nerrcode .eq. 2) then
306     print*,
307     & ' cal_CheckDate: Third component of interval array',
308     & ' not zero!'
309     else if (nerrcode .eq. 3) then
310     print*,
311     & ' cal_CheckDate: Signs of first two components unequal!'
312     else if (nerrcode .eq. 4) then
313     print*,
314     & ' cal_CheckDate: Second component not in hhmmss format!'
315     else if (nerrcode .eq. 5) then
316     print*,
317     & ' cal_CheckDate: Weekday indentifier not correct!'
318     else if (nerrcode .eq. 6) then
319     print*,
320     & ' cal_CheckDate: Leap year identifier not correct!'
321     else if (nerrcode .eq. 7) then
322     print*,
323 mlosch 1.4 & ' cal_CheckDate: Calendar date before predefined reference'
324     & //' date!'
325 heimbach 1.1 else if (nerrcode .eq. 8) then
326     print*,
327     & ' cal_CheckDate: First component not in yymmdd format!'
328     else
329     missingerrcode = .true.
330     endif
331    
332     else if (nroutine .eq. 19) then
333     c Error in cal_PrintError
334    
335     missingerrcode = .true.
336    
337     else if (nroutine .eq. 20) then
338     c Error in cal_PrintDate
339    
340     if (nerrcode .eq. 1) then
341     print*,
342     & ' cal_PrintDate: date not a legal calendar array.'
343     else
344     missingerrcode = .true.
345     endif
346    
347     else if (nroutine .eq. 21) then
348     c Error in cal_PrintError
349    
350     missingerrcode = .true.
351    
352     else if (nroutine .eq. 25) then
353     c Error in cal_NumInts
354    
355     if (nerrcode .eq. 1) then
356     print*,
357     & ' cal_NumInts: Expected a time interval as third argument.'
358     else
359     missingerrcode = .true.
360     endif
361    
362     else
363     missingerrcode = .true.
364     endif
365    
366     if (missingerrcode) then
367     print*,' cal_PrintError: routine called by an undefined'
368     print*,' error code.'
369     print*,' cal_PrintError: error code = ',calerr
370     stop ' stopped in cal_PrintError.'
371     endif
372    
373     return
374     end
375    

  ViewVC Help
Powered by ViewVC 1.1.22