TypechoJoeTheme

MetMan's Blog

网站页面
搜索到 11 篇与 的结果 ———
2024-07-31

Fortran BLOCK结构

Fortran BLOCK结构
Fortran 2008标准提出了BLOCK语法结构,其作用是创建一个独立的命名空间,在里面可以定义一个可以包含声明的可执行代码块。BLOCK语法如下:[block_name:] BLOCK ! declartion ! executable statements END BLOCK [block_name]其中block_name可选,对block结构起一个名字可以让代码更加清晰。BLOCK结构中声明对象包括变量、type定义、外部过程等,这些声明的对象作用域(生命周期)只限于该BLCOK结构,不会影响到BLOCK外的变量,这意味着你可以在BLOCK内声明一个与外部相同的变量名,在BLOCK内声明的变量如与外部变量名相同,外部变量会暂时被”抑制“。program main implicit none integer :: x = 10 block integer :: x x = 4 print*, "Inside a block, x=",x end block print*, "Out...
2024年07月31日
90 阅读
0 评论
2023-11-11

MPI版本混用问题诊断

MPI版本混用问题诊断
MPI作为消息通信工业标准,在高性能计算中被广泛使用。MPI标准定义了库函数语法、语义,开发商根据标准开发实现具体的MPI软件版本,比如常见的MPICH、OpenMPI、Intel MPI、MVAPICH等。为了满足不同的需求,HPC计算平台一般会安装多个MPI实现版本,如果用户开发环境设置混乱,可能会导致MPI版本混用情况,从而引发意想不到的错误,包括编译时和运行时错误。比如笔者遇到如下情况:依赖库使用一种MPI实现编译,模式使用另一种MPI实现编译链接,在运行时出现很奇怪的错误,这种错误有时候不容易联想到是MPI混用导致的。下面总结MPI混用引起的编译时和运行时错误。代码示例示例项目有两个源代码文件:sum.f90和main.f90,其中主程序main(main.f90)依赖模块mod_sum(sum.f90)。!sum.f90 module mod_sum use mpi implicit none contains subroutine sum_global() implicit none integer :: id,total,ierr ...
2023年11月11日
365 阅读
0 评论
2023-10-27

Segmentation Faults错误排查解决思路

Segmentation Faults错误排查解决思路
前言Segmentation Faults可能是每一个programmer都回避不了的错误,国内甚至还有一个以它命名的网站(思否,segmentfault.com)。在诊断、解决这个常见程序错误时,我们可以借助编译器提供的功能快速定位。本文译自Intel® Developer Zone上文章Determining Root Cause of Segmentation Faults SIGSEGV or SIGBUS errors文中主要介绍通过Intel Fortran编译器提供的功能诊断解决Fortran程序段错误。问题当我运行由Intel Fortran编译器编译的代码时,在Linux平台得到SISGEGV错误提示(或Mac OS X平台SIGBUS)。这份代码在<XX编译器/平台>上运行多年没出问题。这是Intel编译器一个bug吗?运行环境:linux 或 Mac OS X根本原因:有许多可能原因。段错误(segmentation fault)(Mac OS X下是bus error)是一个有多种原因的通用错误。下面我们描述可能的原因并给出建议以避免段错误。可...
2023年10月27日
282 阅读
0 评论

互动读者

标签云

最新回复

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