2023-10-21 NetCDF错误处理辅助程序 NetCDF错误处理辅助程序 使用NetCDF API时一定要加上函数返回码检查机制,这会给你节省很多调试时间因为NetCDF库设计为每一个API函数返回一个整数值用于表明函数执行状态(成功或者失败,失败的原因有多种可能,其错误码也不同),但程序不会因为函数执行未成功便终止程序,而是会继续执行下去,但通过API函数获取的信息是错误的。下面以读一个NetCDF文件获取其维数信息为例说明。有一个文件名为tos_O1_2001-2002.nc文件,元数据如下:dimensions: lon = 180 ; lat = 170 ; time = UNLIMITED ; // (24 currently) bnds = 2 ; variables: double lon(lon) ; lon:standard_name = "longitude" ; ...假如不小心敲错了文件名,如以下代码所示,同时调用netcdf api也没有检查函数返回值,你会发现程序会正常运行结束,输出lon/la... 2023年10月21日 242 阅读 0 评论
2023-10-21 scp connection closed错误解决记录 scp connection closed错误解决记录 使用scp传输数据到一台服务器,遇到以下错误:subsystem request failed on channel 0 scp: Connection closed加上-v选项输出详细信息debug1: Sending subsystem: sftp debug1: client_global_hostkeys_private_confirm: server used untrusted RSA signature algorithm ssh-rsa for key 0, disregarding debug1: update_known_hosts: known hosts file /home/user/.ssh/known_hosts2 does not exist subsystem request failed on channel 0 scp: Connection closed说明是sftp subsystem有问题,猜测是关闭了SFTP subsystem功能。解决方法:加上-O选项。scp -O test.f90 test@host:~/-O选项介绍-O ... 2023年10月21日 463 阅读 0 评论
2023-10-21 ECMWF进入集合预报时代 ECMWF进入集合预报时代 NWP领域最近有两件很重要的事,一件是发表在Nature上的华为盘古大模型研究成果《Accurate medium-range global weather forecasting with 3D neural networks》,另一件事是ECMWF在6月27日将IFS升级到版本48r1,将集合预报系统分辨率升级到全球9公里,与确定性模式分辨率一致。这两件事分别代表了新兴的人工智能方法和传统数值模式对中期全球天气预报的最新研究进展。 本文主要关注ECMWF IFS升级,以及计算相关内容。IFS升级内容IFS这次升级是将中期集合预报(ENS)的水平分辨率从原先18公里升级到9公里,使得集合预报成员的分辨率与高分辨率预报(HRES)分辨率一致。垂直分辨率仍保持137层不变。集合预报成员数保持51个不变。另外一个主要升级是延伸期集合预报(ENS extended)配置。过去是作为中期预报的扩展,每周启动两次,每次预报15天。升级后变成完全独立系统,每天00UTC运行一次,使用101个成员预报46天。但其分辨率仍保持不变:水平36公里、垂直137层。升级后,48r1 将提供两组后报(h... 2023年10月21日 252 阅读 0 评论
2023-10-21 Fortran代码格式化工具fprettify Fortran代码格式化工具fprettify 作为程序员,可能读代码的时间要比写代码的时间还要长。在你不得不阅读那些“没有缩进、嵌套分支代码太长不能确定对应的代码段等”糟心代码时,可能一款格式化工具能够帮助你抚平暴怒的心情。fprettify就是一款针对Fortran项目代码的自动化格式工具。项目地址:https://github.com/pseewald/fprettify安装fpretty是基于Python开发的脚本工具,依赖Python3 (最新版本不再支持Python 2.7)。使用pip或者conda安装即可。$ pip install --upgrade fprettify #or $ conda install -c conda-forge fprettify使用查看fprettify选项说明$ fprettify -h常用选项-i INDENT, --indent INDENT相对缩进宽度,默认是3个空格-l LINE_LENGTH, --line-length LINE_LENGTH每行最多列数(默认132列)-w {0,1,2,3,4}, --whitespace {0,1,2,3,4}控制插入白空格... 2023年10月21日 490 阅读 0 评论
2023-10-21 Intel Fortran编译器的发展 Intel Fortran编译器的发展 作为商业Fortran编译器代表,Intel Fortran编译器在语言标准兼容性、性能方面非常出色,是很多NWP模式主要编译工具。Intel C/Fortran编译器之前是包含在Parallel Studio中,它是商业收费软件。但自2020年12月开始Intel oneAPI品牌取代Parallel Studio,并采用免费使用策略。现在Intel oneAPI套件中包含两套Fortran编译器:Intel Fortran Compiler Classic (ifort)Intel Fortran Compiler (ifx)其中ifort只用于CPU端,而ifx用于面向未来XPU(CPU/GPU等)异构计算。两套编译器使用相同的编译前端(Intel Fortran Frontend, FFE)。ifort 特点:Intel Fortran parser/analyzer + Intel optimizer/code generationF2018标准完全支持,只用于CPU端,性能优ifx特点:Intel Fortran parser/analyzer + LLVM opti... 2023年10月21日 206 阅读 0 评论
2023-10-21 forrtl error 78 forrtl error 78 问题描述模式使用128个进程运行很快报错退出,测试其它进程配置也会得到相同的错误,多次运行出现相同的错误,排除了机器原因。调试平台和配置平台环境Intel CPU, 32 cores/node, 192GB内存Linux /Intel Fortran Compiler 2018/Intel MPI试验配置模式网格:NX=3301, NY=3301, NZ=70程序使用MPI并行,针对Y方向进行一维并行剖分,主要变量数据结构var(nx,nz,nb) ,其中nb=NY/nprocs。排查经过定位报错源代码由于代码没有加调试选项编译,不能看到最后报错的调用栈对应的源代码信息。使用intel fortran编译器选项-g -traceback重新编译代码运行,得到报错源码信息。如上图所示,程序在调用cmpclddrv子程序(cmpclddrv.f第一行)时报错。从出错调用栈信息可以看出出错点在进入cmpclddrv程序时,还未执行该子程序内执行语句。排查数组越界问题当时考虑程序在传参时出现问题,比如数组越界。因此,加上数组越界编译选项-check bounds重新编译、运行,发现不是数... 2023年10月21日 209 阅读 0 评论
2023-10-21 NetCDF数据格式介绍 NetCDF数据格式介绍 netCDF经过多年的发展,支持多种数据格式,其格式发展如下图所示。Classic format: CDF-1、CDF-2、CDF-5netCDF-4 format: 底层二进制格式是HDF5 (需要HDF5 ≥ 1.8.0)netCDF格式安装要求netCDF-4支持netCDF库构建时配置参数加上--enable-netcdf-4netCDF-4 parallel I/O为了netCDF-4库支持并行I/O,依赖库HDF5必须使用--enable-parallel选择配置,使用MPI编译器编译。netCDF编译使用与HDF5相同的MPI编译器。Classic netCDF parallel I/O使用PnetCDF库并行读写classic格式,包括CDF-1,CDF-2,CDF-5。netCDF-4版本如使用PnetCDF支持并行I/O,需配置--enable-pnetcdf选项。创建指定netCDF格式方法使用库API n*_create()创建netCDF文件,通过指定参数cmod设置。nc_create() (C接口)nf_create() (fortran 77接口... 2023年10月21日 231 阅读 0 评论
2023-10-21 模式后处理系统UPP介绍 模式后处理系统UPP介绍 Unified Post Processor (UPP)是美国业务数值模式使用的统一后处理系统,负责将模式输出数据转换生成业务数据产品。项目主页UPP Github主页UPP最新用户文档最新版本:v11.0.0 (截止:20230102)UPP支持模式按照文档说明,UPP基本上支持美国所有的业务模式,包括全球、区域模式。Global Forecast System (GFS)GFS Ensemble Forecast System (GEFS)North American Mesoscale (NAM)Rapid Refresh (RAP)High Resolution Rapid Refresh (HRRR)Short Range Ensemble Forecast (SREF)Hurricane WRF (HWRF)Unified Forecasting System (UFS),包括RRFS、HAFS、MRW、SRWUPP功能读取模式输出数据根据模式提供的气象场计算诊断量垂直插值功能(比如模式面插值到等压面)输出grib2格式的业务数据产品注:水平插值功能由外部程序wgri... 2023年10月21日 375 阅读 0 评论