Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 使用Fortran从NetCDF文件读取日期_Date_Datetime_Calendar_Fortran_Netcdf - Fatal编程技术网

Date 使用Fortran从NetCDF文件读取日期

Date 使用Fortran从NetCDF文件读取日期,date,datetime,calendar,fortran,netcdf,Date,Datetime,Calendar,Fortran,Netcdf,我必须使用Fortran进行一些计算,使用NetCDF文件中的数据。而且,根据用户的选择,我只需要从每年中选择一个或几个月 NetCDF文件中的日期有时编码为“XXXX-XX-XX后的月份”,有时编码为“XXXX-XX-XX后的天数”,有时编码为“XXXX-XX-XX后的小时数”,等等 此外,这些必须被解释为属于某种类型的日历,可以是公历、儒略历、前公历、360天等 经过多次搜索,我有一个解决这个问题的计划,但我想先问问专家 我的计划如下: 使用将NetCDF文件中包含的日期信息转换为儒略/公历

我必须使用Fortran进行一些计算,使用NetCDF文件中的数据。而且,根据用户的选择,我只需要从每年中选择一个或几个月

NetCDF文件中的日期有时编码为“XXXX-XX-XX后的月份”,有时编码为“XXXX-XX-XX后的天数”,有时编码为“XXXX-XX-XX后的小时数”,等等

此外,这些必须被解释为属于某种类型的日历,可以是公历、儒略历、前公历、360天等

经过多次搜索,我有一个解决这个问题的计划,但我想先问问专家

我的计划如下:

  • 使用将NetCDF文件中包含的日期信息转换为儒略/公历日期。为此,我必须:

    • 将UDUNITS的C代码绑定到Fortran
  • 将获取的日期转换为所需的日历。为此,我认为我必须使用日历包。哪一个是好的选择


  • 你同意吗?

    我想我已经找到了一个好的解决方案:由Max Plank Institute开发,并在GNU通用公共许可证版本2下发布

    它定义了以下类型的日历:日历标准、日历序言、日历360天、日历365天和日历366天


    这似乎是一段经过验证的代码,因为cdo使用它,cdo是一种广泛使用的管理netcdf文件的工具。

    您的链接已断开。如果你不想准确地处理1580年之前的日期,那你可以自己做。不,我不同意。真的,真正的问题是什么?你可以看看SO Fortran的一位专家所做的。他们似乎更新了udunits的版本。我已经更新了链接,所以它现在可以工作了。我觉得你建议的库是用来对时间和日期进行操作的,而不是将它们从一个日历转换到另一个日历。这是必需的,因为netcdf文件中的日期存储在许多不同的日历类型中。例如,您可能会遇到我在问题中列出的问题。如果您找到一个netcdf文件,该文件具有360天日历,日期定义为“自2000年12月29日起的天数”,则每个时间步都分配了一个整数。第一个可以是:0,1,2,3。。必须解释为2000-12-29,2000-12-30,2001-01-01,2001-01-02,…,但在公历中,它必须解释为2000-12-29,2000-12-30,2000-12-31,2001-01-01,…。问题是:如果我开发一个有用的库来管理基于这些库的netcdf文件,我在哪里可以把代码发布给那些觉得有用的人呢?哪里都有很多网站