source: issm/oecreview/Archive/23390-24306/ISSM-24067-24068.diff

Last change on this file was 24307, checked in by Mathieu Morlighem, 5 years ago

NEW: adding Archive/23390-24306

File size: 1.9 KB
RevLine 
[24307]1Index: ../trunk-jpl/src/m/contrib/morlighem/ismip6/date2decyear.m
2===================================================================
3--- ../trunk-jpl/src/m/contrib/morlighem/ismip6/date2decyear.m (nonexistent)
4+++ ../trunk-jpl/src/m/contrib/morlighem/ismip6/date2decyear.m (revision 24068)
5@@ -0,0 +1,30 @@
6+function decyear = date2decyear(datein)
7+%DATE2DECYEAR - convert date to decimal year (for ISSM)
8+%
9+% input argument must be a serial date (see datenum)
10+%
11+% Usage:
12+% year = date2decyear(datein)
13+%
14+% Example:
15+% year = date2decyear(datenum('19-May-2000'))
16+
17+
18+%Make table from date coming in
19+timevec = datevec(datein);
20+
21+%Set everything in the date vector to 0 except for the year
22+%to compute the date for the beginninf of the year
23+timevec(:,2:end) = 0;
24+dateYearBegin = datenum(timevec);
25+
26+%Compute date of end of year
27+timevec2 = timevec;
28+timevec2(:,1) = timevec2(:,1) + 1;
29+dateYearEnd = datenum(timevec2);
30+
31+%Calculate the day of the year
32+doy = datein - dateYearBegin;
33+
34+%Finally, we can create the decimal year time
35+decyear = timevec(:,1) + (doy - 1) ./ (dateYearEnd - dateYearBegin);
36Index: ../trunk-jpl/src/m/contrib/morlighem/ismip6/decyear2date.m
37===================================================================
38--- ../trunk-jpl/src/m/contrib/morlighem/ismip6/decyear2date.m (nonexistent)
39+++ ../trunk-jpl/src/m/contrib/morlighem/ismip6/decyear2date.m (revision 24068)
40@@ -0,0 +1,23 @@
41+function dateout = decyear2date(decyear)
42+%DECYEAR2DATE - converts decimal year to serial date
43+%
44+% Usage:
45+% dateout = decyear2date(decyear)
46+%
47+% Example:
48+% dateout = decyear2date(2011.001)
49+
50+
51+%Get year
52+year = floor(decyear);
53+fraction = mod(decyear,1);
54+
55+%Get date of beginning and end of year
56+date0 = datenum(num2str(year),'yyyy');
57+date1 = datenum(num2str(year+1),'yyyy');
58+
59+%Compute number of days in year
60+numdays = date1 - date0;
61+
62+%Compute date
63+dateout= date0 + fraction * numdays;
Note: See TracBrowser for help on using the repository browser.