Index: ../trunk-jpl/src/m/contrib/morlighem/ismip6/date2decyear.m =================================================================== --- ../trunk-jpl/src/m/contrib/morlighem/ismip6/date2decyear.m (nonexistent) +++ ../trunk-jpl/src/m/contrib/morlighem/ismip6/date2decyear.m (revision 24068) @@ -0,0 +1,30 @@ +function decyear = date2decyear(datein) +%DATE2DECYEAR - convert date to decimal year (for ISSM) +% +% input argument must be a serial date (see datenum) +% +% Usage: +% year = date2decyear(datein) +% +% Example: +% year = date2decyear(datenum('19-May-2000')) + + +%Make table from date coming in +timevec = datevec(datein); + +%Set everything in the date vector to 0 except for the year +%to compute the date for the beginninf of the year +timevec(:,2:end) = 0; +dateYearBegin = datenum(timevec); + +%Compute date of end of year +timevec2 = timevec; +timevec2(:,1) = timevec2(:,1) + 1; +dateYearEnd = datenum(timevec2); + +%Calculate the day of the year +doy = datein - dateYearBegin; + +%Finally, we can create the decimal year time +decyear = timevec(:,1) + (doy - 1) ./ (dateYearEnd - dateYearBegin); Index: ../trunk-jpl/src/m/contrib/morlighem/ismip6/decyear2date.m =================================================================== --- ../trunk-jpl/src/m/contrib/morlighem/ismip6/decyear2date.m (nonexistent) +++ ../trunk-jpl/src/m/contrib/morlighem/ismip6/decyear2date.m (revision 24068) @@ -0,0 +1,23 @@ +function dateout = decyear2date(decyear) +%DECYEAR2DATE - converts decimal year to serial date +% +% Usage: +% dateout = decyear2date(decyear) +% +% Example: +% dateout = decyear2date(2011.001) + + +%Get year +year = floor(decyear); +fraction = mod(decyear,1); + +%Get date of beginning and end of year +date0 = datenum(num2str(year),'yyyy'); +date1 = datenum(num2str(year+1),'yyyy'); + +%Compute number of days in year +numdays = date1 - date0; + +%Compute date +dateout= date0 + fraction * numdays;