TypechoJoeTheme

MetMan's Blog

网站页面
搜索到 23 篇与 的结果 ———
2025-03-22

Fortran数组转置

Fortran数组转置
数组转置(transpose)是一个常见的操作。二维数组转置Fortran标准有一个内置函数transpose可以对Rank-2数组进行转置操作。program main implicit none integer :: a(3,4) = reshape([1,2,3,4,5,6,7,8,9,10,11,12], [3,4]) integer,allocatable :: b(:,:) b = transpose(a) print*, 'shape(b) = ', shape(b) print*, 'b = ', b end program更高维数组转置但对于高维数组,如何转置?显式循环使用显式嵌套循环进行数组转置,下面使用do concurrent结构对一个4维数组转职。dims = shape(x) allocate(res(dims(4), dims(3), dims(2), dims(1))) do concurrent(i = 1:dims(1), j = 1:dims(2), k = 1:dims(3), l = 1:dims(4)) ...
2025年03月22日
28 阅读
0 评论
2025-03-22

Fortran Associate结构学习

Fortran Associate结构学习
只要代码写得多,总能Get新知识。Fortran 2003标准中associate结构应该不常用,但associate结构用好可以简化复杂语句,增加代码的可读性。可以将associate关联名字看成是要指向的表达式或者变量的别名(引用),供后续代码使用。语法[name:] ASSOCIATE (assoc-entity[, assoc-entity]...)    block END ASSOCIATE [name]其中name是可选的,associate结构名称,如果指定,后面的end assoicate也必须加上相同的名称。assoc-entity语法为assoicate-name => selector,其中selector是一个表达式或者变量,而associate-name是关联selector的别名。block是零条或者多条Fortran语句/结构。示例:program associateTest implicit none integer :: a=1,b=1 associate( x => a*b ) ! 表达式的引用 ...
2025年03月22日
26 阅读
0 评论
2025-03-22

Intel oneAPI安装依赖环境

Intel oneAPI安装依赖环境
以前安装Intel oneAPI套件时没有注意过软件包依赖软硬件环境,因为基本上都安装成功了。最近在一台比较旧的CentOS 7服务器上安装最新的Intel oneAPI 2024.2失败才注意到这个问题。所以建议在安装oneAPI前查看其依赖环境是否满足,可以通过搜索查找官网信息,比如搜索关键词"intel oneapi 2024.2 system requirements"。官网链接: https://www.intel.com/content/www/us/en/developer/articles/system-requirements/intel-oneapi-base-toolkit-system-requirements.html网页截图如下:关键信息:操作系统OS: 支持红帽Linux 8.x/9.x,但没有支持Centos 7.x。Linux开发者工具:包括gcc,g++以及glibc库等。而glibc库版本通常和操作系统版本相关。HPC Toolkit系统基本要求与对应版本的Base Toolkit相同。可以看出,Intel oneAPI 2024.2不再支持...
2025年03月22日
16 阅读
0 评论
2024-12-12

收藏一份Intel ifort软件包

收藏一份Intel ifort软件包
根据Intel编译器团队公告,最近发布的Intel oneAPI 2024.2.0中包含的ifort 2021.13.0版本将是ifort最后一个公开版本。预计2024年最后一个季度发布的oneAPI 2025.0不再包含ifort编译器。最后的ifort版本在处理器支持方面只部分支持到Sapphire Rapids。在Sapphire Rapids之后的处理器、新Fortran语言标准功能将只会在ifx中支持实现。Intel oenAPI网址: https://www.intel.com/content/www/us/en/developer/tools/oneapi/overview.html对于HPC用户,一般只需要下载安装oneAPI Base Toolkit和HPC Toolkit即可。所以现在可以到官网下载一份Intel oneAPI 2024.2.0软件包珍藏,然后拥抱ifx吧!!!参考资料https://community.intel.com/t5/Blogs/Tech-Innovation/Tools/A-Historic-Moment-for-The-Inte...
2024年12月12日
205 阅读
0 评论
2024-12-03

Fortran内置函数Transfer

Fortran内置函数Transfer
Transfer是Fortran一个偏底层的内置函数,其功能类似C语言中Type Casting(类型转换)。// C type casting void *ptr = NULL; itn *p = (int *)ptr;Transfer类型转换与一般的数值类型转换(比如浮点数转换为整数)不同,其转换过程中保持底层二进制位表示不变。函数语法:RESULT = TRANSFER(SOURCE, MOLD[, SIZE])其中SOURCE是要转换变量,可以是任何类型的标量或者数组。MOLD是希望转换的类型,可以是任何类型的标量或者数组,一般会设置成RESULT变量。示例:program main implicit none integer :: a real :: b character :: c a = 48 b = transfer(a,b) c = transfer(a,c) print*, 'tranfer(1) into real is ',b print*, 'tranfer(1) into character is ',c e...
2024年12月03日
105 阅读
0 评论
2024-11-19

Intel ifort进入废弃状态

Intel ifort进入废弃状态
Only constant in life is change.原先预计Intel IFORT编译器被废弃至少得两三年时间,没想到在去年年底Intel发布了Intel Fortran Compiler Classic(ifort)的废弃通知。不过你不必担心ifort立刻不能使用了。按照Intel产品发布策略,“Deprecation”只是意味着功能不再更新,也不鼓励用户继续使用,并且在未来可能会被淘汰,但产品仍然可以使用一段时间。但Intel通知ifort会在2024年末被移除,即在Intel oneAPI 2025版本中会移除ifort编译器(2024版本ifort与ifx共存)。即如果需要使用Intel oneAPI新版本,还是建议尽快迁移到ifx。官方列举了从ifort升级到ifx编译器的好处包括:更快的编译时间对最新的及未来的Intel处理器的优化能在Intel GPUs加速代码因为基于LLVM编译框架,LLVM社区工具,比如Santizers能够帮助查找修正内存/线程问题Fortran 2023和OpenMP 5.2、6.0标准正在加入持续的支持建议笔者遇到过咨询GEO...
2024年11月19日
130 阅读
0 评论
2024-11-19

Fortran Array Constructor

Fortran Array Constructor
Fortran数组构造器(array constructor)语法可以用来创建和赋值一维(rank-one)数组和数组常量。使用(/ /)或者[ ]包括数组构造表达式。两种用法是等价的,但[ ]方式有点像Python列表语法(我更喜欢后者用法)。数组构建器语法形式包括以下四种:(/标量表达式/)标量表达式值对应新数组每个元素。integer :: a1(5) a1 = (/1,2,3,4,5/)(/数组表达式/)数组表达式每个元素值对应新数组的元素。integer :: a2(5) a2 = (/a1(1:5)-10/)(/隐式DO循环/)类似DO循环结构,生成数组元素列表。(联想Python的列表推导式 list comprehension)integer :: a3(5) a3 = (/(j, integer :: j=6, 10)/) ! 迭代变量j可以局地声明注意gfortran 13.2测试还未支持该语法。混合形式以上三种形式可以组合使用。integer :: a4(15) a4 = [-1,-2,a1,(i+7,i=1,5),0,1,2]下面看一个不断“增长”大小的...
2024年11月19日
95 阅读
0 评论
2024-11-03

如何查阅Fortran语言标准

如何查阅Fortran语言标准
如果你对Fortran的语法细节感兴趣,希望了解标准如何定义的,可以阅读官方Fortran标准说明文档。各大编译器厂商基本上按照Fortran标准实现自家的编译器,再加上一些各自的扩展功能。由于ISO组织拥有Fortran最终标准的版权,无法免费获取正式标准的电子文档,需要花钱购买它们的纸质或电子文档。但有一个网上公开合法获取Fortran标准说明文档途径是美国Fortran编程语言标准技术委员会(J3)提供的内部工作版本。Fortran标准由"Working Group 5 of Sub-Committee 22 of the Joint Technical Committee 1 of the International Organization for Standardization and the International Electrotechnical Commission (IEC)"(ISO/IEC JTC1/SC22/WG5)负责开发,这个小组简称为WG5。官方网站:https://wg5-fortran.org而前面提到的J3是ISO/IEC JTC1/SC...
2024年11月03日
145 阅读
0 评论

互动读者

标签云

最新回复

  1. tqymnonccc打酱油
    2024-09-27
  2. toibdpojay打酱油
    2024-09-22
  3. yvctxyevvw打酱油
    2024-09-22
  4. frezhwzwuq打酱油
    2024-09-22
登录
X
用户名
密码