/[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.3 - (show annotations) (download)
Tue Sep 23 06:33:45 2003 UTC (20 years, 7 months ago) by dimitri
Branch: MAIN
CVS Tags: checkpoint51f_post, checkpoint51j_post, checkpoint51h_pre, branchpoint-genmake2, checkpoint51i_pre, checkpoint51g_post
Branch point for: branch-genmake2
Changes since 1.2: +6 -3 lines
o Mods and bug fixes to pkg/cal and pkg/exf needed for computation
  of tracer Green's fucntions for ocean inversion project.

1 C $Header: /usr/local/gcmpack/MITgcm/pkg/cal/cal_convdate.F,v 1.2 2003/09/23 04:34:24 dimitri Exp $
2
3 #include "CAL_CPPOPTIONS.h"
4
5 subroutine cal_ConvDate(
6 I date,
7 O yy, mm, dd, ss,
8 O lp, wd,
9 I mythid
10 & )
11
12 c ==================================================================
13 c SUBROUTINE cal_ConvDate
14 c ==================================================================
15 c
16 c o Decompose the first part of a date array.
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 21-Sep-2003: fixed check_sign logic to work with
31 c negative intervals (menemenlis@jpl.nasa.gov)
32 c
33 c ==================================================================
34 c SUBROUTINE cal_ConvDate
35 c ==================================================================
36
37 implicit none
38
39 c == global variables ==
40
41 #include "cal.h"
42
43 c == routine arguments ==
44
45 integer date(4)
46 integer mythid
47
48 c == local variables ==
49
50 integer yy
51 integer mm
52 integer dd
53 integer ss
54 integer lp
55 integer wd
56 integer fac
57 integer date_1
58 integer date_2
59 integer ierr
60 integer check_sign
61
62 c == end of interface ==
63
64 fac = 1
65
66 c Check the sign of the date.
67
68 check_sign = 1
69 if ( ( (date(1).lt.0) .and. date(2).gt.0 ) .or.
70 & ( (date(1).gt.0) .and. date(2).lt.0 ) )
71 & check_sign = -1
72
73 if ( check_sign .ge. 0 ) then
74 if (date(1) .eq. 0) then
75 date_1 = date(1)
76 if (date(2) .lt. 0) then
77 date_2 = -date(2)
78 fac = -1
79 else
80 date_2 = date(2)
81 fac = 1
82 endif
83 else if (date(1) .lt. 0) then
84 date_1 = -date(1)
85 date_2 = -date(2)
86 fac = -1
87 else
88 date_1 = date(1)
89 date_2 = date(2)
90 fac = 1
91 endif
92 else
93
94 ierr = 901
95 call cal_PrintError( ierr, mythid )
96 stop ' stopped in cal_ConvDate.'
97
98 endif
99
100 c Decompose the entries.
101 if (date(4) .ne. -1) then
102 yy = date_1/10000
103 mm = mod(date_1/100,100)
104 dd = mod(date_1,100)
105 else
106 yy = 0
107 mm = 0
108 dd = date_1
109 endif
110 ss = mod(date_2,100) +
111 & mod(date_2/100,100)*secondsperminute +
112 & date_2/10000*secondsperhour
113
114 c Include the sign.
115 yy = fac*yy
116 mm = fac*mm
117 dd = fac*dd
118 ss = fac*ss
119
120 lp = date(3)
121 wd = date(4)
122
123 return
124 end
125

  ViewVC Help
Powered by ViewVC 1.1.22