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

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

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


Revision 1.3.2.2 - (hide annotations) (download)
Tue Oct 7 20:46:37 2003 UTC (21 years, 9 months ago) by adcroft
Branch: branch-genmake2
Changes since 1.3.2.1: +2 -1 lines
Missing $Name

1 adcroft 1.3.2.2 C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/pkg/cal/cal_convdate.F,v 1.3.2.2 2003/10/07 20:46:37 adcroft Exp $
2     C $Name: $
3 heimbach 1.1
4 adcroft 1.3.2.1 #include "CAL_OPTIONS.h"
5 heimbach 1.1
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 dimitri 1.2 c 21-Sep-2003: fixed check_sign logic to work with
32     c negative intervals (menemenlis@jpl.nasa.gov)
33     c
34 heimbach 1.1 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 dimitri 1.3 integer check_sign
62 heimbach 1.1
63     c == end of interface ==
64    
65     fac = 1
66    
67     c Check the sign of the date.
68    
69 dimitri 1.3 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 heimbach 1.1
74 dimitri 1.2 if ( check_sign .ge. 0 ) then
75 heimbach 1.1 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