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

Contents of /MITgcm/pkg/cal/cal_checkdate.F

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


Revision 1.1 - (show annotations) (download)
Mon May 14 22:07:26 2001 UTC (23 years ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint46n_post, checkpoint47e_post, checkpoint44e_post, checkpoint46l_post, checkpoint46g_pre, checkpoint47c_post, release1_p13_pre, checkpoint50c_post, checkpoint46f_post, checkpoint48e_post, checkpoint50c_pre, checkpoint44f_post, checkpoint46b_post, checkpoint43a-release1mods, ecco_c50_e32, ecco_c50_e33, ecco_c50_e30, ecco_c50_e31, release1_p13, checkpoint40pre3, checkpoint40pre1, checkpoint40pre7, checkpoint40pre6, checkpoint48i_post, checkpoint40pre9, checkpoint40pre8, checkpoint46l_pre, chkpt44d_post, checkpoint51, checkpoint50, release1_p8, release1_p9, checkpoint50d_post, release1_p1, release1_p2, release1_p3, release1_p4, release1_p5, release1_p6, release1_p7, checkpoint50b_pre, checkpoint44e_pre, release1_b1, ecco_c51_e34d, ecco_c51_e34e, ecco_c51_e34f, ecco_c51_e34g, ecco_c51_e34a, ecco_c51_e34b, ecco_c51_e34c, checkpoint48b_post, checkpoint43, checkpoint51d_post, checkpoint48c_pre, checkpoint47d_pre, release1_chkpt44d_post, checkpoint47a_post, checkpoint48d_pre, checkpoint47i_post, checkpoint47d_post, icebear5, icebear4, icebear3, icebear2, checkpoint46d_pre, checkpoint40pre2, checkpoint48d_post, release1-branch_tutorials, checkpoint48f_post, checkpoint45d_post, checkpoint46j_pre, chkpt44a_post, checkpoint44h_pre, checkpoint48h_post, checkpoint40pre4, ecco_c50_e29, checkpoint51b_pre, checkpoint46a_post, checkpoint47g_post, checkpoint46j_post, checkpoint46k_post, ecco_c50_e28, chkpt44c_pre, checkpoint48a_post, checkpoint45a_post, checkpoint50f_post, checkpoint50a_post, checkpoint50f_pre, ecco_c44_e19, ecco_c44_e18, ecco_c44_e17, ecco_c44_e16, release1_p12, release1_p10, release1_p11, release1_p16, release1_p17, release1_p14, release1_p15, checkpoint47j_post, ecco_c50_e33a, branch-exfmods-tag, checkpoint44g_post, checkpoint46e_pre, checkpoint48c_post, checkpoint45b_post, checkpoint46b_pre, release1-branch-end, release1_final_v1, checkpoint51b_post, checkpoint51c_post, checkpoint46c_pre, checkpoint46, checkpoint47b_post, checkpoint44b_post, ecco_c51_e34, checkpoint46h_pre, checkpoint46m_post, checkpoint46a_pre, checkpoint50g_post, checkpoint45c_post, ecco_ice2, ecco_ice1, checkpoint44h_post, checkpoint46g_post, release1_p12_pre, checkpoint39, ecco_c44_e22, checkpoint50h_post, checkpoint50e_pre, checkpoint50i_post, ecco_c44_e25, checkpoint40pre5, checkpoint47f_post, checkpoint50e_post, chkpt44a_pre, checkpoint46i_post, ecco_c44_e23, ecco_c44_e20, ecco_c44_e21, ecco_c44_e26, ecco_c44_e27, ecco_c44_e24, checkpoint46c_post, ecco-branch-mod1, ecco-branch-mod2, ecco-branch-mod3, ecco-branch-mod4, ecco-branch-mod5, checkpoint50d_pre, checkpoint46e_post, release1_beta1, checkpoint51e_post, checkpoint44b_pre, checkpoint42, checkpoint40, checkpoint41, checkpoint47, checkpoint44, checkpoint45, checkpoint48, checkpoint49, checkpoint46h_post, checkpoint51f_pre, chkpt44c_post, checkpoint48g_post, checkpoint47h_post, checkpoint44f_pre, checkpoint46d_post, checkpoint50b_post, release1-branch_branchpoint, checkpoint51a_post
Branch point for: c24_e25_ice, branch-exfmods-curt, release1_final, release1-branch, release1, ecco-branch, release1_50yr, icebear, release1_coupled
Added calendar package.
Not currently supported by mitgcm, i.e. disabled by default.

1 C $Header: /u/gcmpack/development/heimbach/ecco_env/pkg/cal/cal_checkdate.F,v 1.5 2001/02/02 16:57:22 heimbach Exp $
2
3 #include "CAL_CPPOPTIONS.h"
4
5 subroutine cal_CheckDate(
6 I date,
7 O valid,
8 O calerr,
9 I mythid
10 & )
11
12 c ==================================================================
13 c SUBROUTINE cal_CheckDate
14 c ==================================================================
15 c
16 c o Check whether the array date conforms with the required format.
17 c
18 c started: Christian Eckert eckert@mit.edu 30-Jun-1999
19 c
20 c changed: Christian Eckert eckert@mit.edu 29-Dec-1999
21 c
22 c - restructured the original version in order to have a
23 c better interface to the MITgcmUV.
24 c
25 c Christian Eckert eckert@mit.edu 03-Feb-2000
26 c
27 c - Introduced new routine and function names, cal_<NAME>,
28 c for verion 0.1.3.
29 c
30 c ==================================================================
31 c SUBROUTINE cal_CheckDate
32 c ==================================================================
33
34 implicit none
35
36 c == global variables ==
37
38 #include "cal.h"
39
40 c == routine arguments ==
41
42 integer date(4)
43 logical valid
44 integer calerr
45 integer mythid
46
47 c == local variables ==
48
49 integer yy,mm,dd
50 integer nsecs
51 integer lp,wd
52 integer hhmmss
53 integer yymmdd
54 integer fac
55 integer check_sign_1
56 integer check_sign_2
57
58 c == end of interface ==
59
60 valid = .true.
61 hhmmss = 0
62 calerr = 0
63 fac = 1
64
65 if (date(4) .le. 0) then
66 if (date(4) .ne. -1) then
67 calerr = 1801
68 else
69 if (date(3) .ne. 0) then
70 calerr = 1802
71 else
72 check_sign_1 = sign(1,date(1))
73 check_sign_2 = sign(1,date(2))
74 if (check_sign_1*check_sign_2 .lt. 0) then
75 calerr = 1803
76 else
77 call cal_ConvDate(date,yy,mm,dd,nsecs,lp,wd,mythid)
78 if (nsecs .lt. 0) fac = -1
79 hhmmss = fac*nsecs/secondsperminute
80 hhmmss = hhmmss/minutesperhour*10000 +
81 & mod(hhmmss,minutesperhour)*100 +
82 & mod(fac*nsecs,secondsperminute)
83 hhmmss = fac*hhmmss
84 if (date(2) .ne. hhmmss) then
85 calerr = 1804
86 endif
87 endif
88 endif
89 endif
90 else
91 if (date(4) .gt. 8) then
92 calerr = 1805
93 else
94 if ((date(3) .ne. 1) .and.
95 & (date(3) .ne. 2)) then
96 calerr = 1806
97 else
98 check_sign_1 = sign(1,date(1))
99 check_sign_2 = sign(1,date(2))
100 if (check_sign_1*check_sign_2 .lt. 0) then
101 calerr = 1803
102 else
103 call cal_ConvDate( date,yy,mm,dd,nsecs,lp,wd,mythid )
104 if (date(1) .lt. refdate(1)) then
105 calerr = 1807
106 else
107 hhmmss = nsecs/secondsperminute
108 hhmmss = hhmmss/minutesperhour*10000 +
109 & mod(hhmmss,minutesperhour)*100 +
110 & mod(nsecs,secondsperminute)
111 endif
112 if (date(2) .ne. hhmmss) then
113 calerr = 1804
114 endif
115 yymmdd = yy*10000 + mm*100 + dd
116 if (date(1) .ne. yymmdd) then
117 calerr = 1808
118 endif
119 endif
120 endif
121 endif
122 endif
123
124 if (calerr .ne. 0) valid = .not. valid
125
126 return
127 end
128

  ViewVC Help
Powered by ViewVC 1.1.22