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

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

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


Revision 1.1.18.1 - (show annotations) (download)
Thu Aug 25 16:06:07 2005 UTC (19 years, 10 months ago) by dimitri
Branch: release1_50yr
Changes since 1.1: +12 -7 lines
updating pkg/exf and pkg/cal in release1_50yr
to correspond with those in checkpoint51n_branch

1 C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/pkg/cal/cal_convdate.F,v 1.1.18.1 2005/08/25 16:06:07 dimitri Exp $
2 C $Name: $
3
4 #include "CAL_OPTIONS.h"
5
6 subroutine cal_ConvDate(
7 I date,
8 O yy, mm, dd, ss,
9 O lp, wd,
10 I mythid
11 & )
12
13 c ==================================================================
14 c SUBROUTINE cal_ConvDate
15 c ==================================================================
16 c
17 c o Decompose the first part of a date array.
18 c
19 c started: Christian Eckert eckert@mit.edu 30-Jun-1999
20 c
21 c changed: Christian Eckert eckert@mit.edu 29-Dec-1999
22 c
23 c - restructured the original version in order to have a
24 c better interface to the MITgcmUV.
25 c
26 c Christian Eckert eckert@mit.edu 03-Feb-2000
27 c
28 c - Introduced new routine and function names, cal_<NAME>,
29 c for verion 0.1.3.
30 c
31 c 21-Sep-2003: fixed check_sign logic to work with
32 c negative intervals (menemenlis@jpl.nasa.gov)
33 c
34 c ==================================================================
35 c SUBROUTINE cal_ConvDate
36 c ==================================================================
37
38 implicit none
39
40 c == global variables ==
41
42 #include "cal.h"
43
44 c == routine arguments ==
45
46 integer date(4)
47 integer mythid
48
49 c == local variables ==
50
51 integer yy
52 integer mm
53 integer dd
54 integer ss
55 integer lp
56 integer wd
57 integer fac
58 integer date_1
59 integer date_2
60 integer ierr
61 integer check_sign
62
63 c == end of interface ==
64
65 fac = 1
66
67 c Check the sign of the date.
68
69 check_sign = 1
70 if ( ( (date(1).lt.0) .and. date(2).gt.0 ) .or.
71 & ( (date(1).gt.0) .and. date(2).lt.0 ) )
72 & check_sign = -1
73
74 if ( check_sign .ge. 0 ) then
75 if (date(1) .eq. 0) then
76 date_1 = date(1)
77 if (date(2) .lt. 0) then
78 date_2 = -date(2)
79 fac = -1
80 else
81 date_2 = date(2)
82 fac = 1
83 endif
84 else if (date(1) .lt. 0) then
85 date_1 = -date(1)
86 date_2 = -date(2)
87 fac = -1
88 else
89 date_1 = date(1)
90 date_2 = date(2)
91 fac = 1
92 endif
93 else
94
95 ierr = 901
96 call cal_PrintError( ierr, mythid )
97 stop ' stopped in cal_ConvDate.'
98
99 endif
100
101 c Decompose the entries.
102 if (date(4) .ne. -1) then
103 yy = date_1/10000
104 mm = mod(date_1/100,100)
105 dd = mod(date_1,100)
106 else
107 yy = 0
108 mm = 0
109 dd = date_1
110 endif
111 ss = mod(date_2,100) +
112 & mod(date_2/100,100)*secondsperminute +
113 & date_2/10000*secondsperhour
114
115 c Include the sign.
116 yy = fac*yy
117 mm = fac*mm
118 dd = fac*dd
119 ss = fac*ss
120
121 lp = date(3)
122 wd = date(4)
123
124 return
125 end
126

  ViewVC Help
Powered by ViewVC 1.1.22