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

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

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


Revision 1.1 - (hide 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 heimbach 1.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