首页 文章
  • 0 votes
     answers
     views

    Fortran代码仅为某些文件提供输出

    我有4个.mtx文件,我正在读取值 . 其中两个在没有问题的情况下读取时运行良好,并将正确的输出生成到.DAT文件中 . 但是,最后2个是非常大的文件;看起来代码正确地从文件中读取并运行,但是从这些中读取时没有输出也没有错误...甚至代码计时器都没有打印时间 . 任何帮助深表感谢!这是代码: program proj2matrixC40 implicit none integer,paramet...
  • 0 votes
     answers
     views

    如何使用Fortran 90将单维数组的数据写入文件的下一列?

    基本上,我有许多单维数组,我需要写入同一个文件,但我需要将每个数组放在一个单独的列中,按照指定的顺序依次排列 . 我会使用“do”循环,但是一些数组可能比另一个更多 . 我可以在write语句中使用哪种格式从下一列开始而不是在前一列之后继续?
  • 1 votes
     answers
     views

    传递一个fortran派生类型,它包含不同编译器之间的可分配数组(PGI和Intel)

    我们有一个项目可以发展Nvidia GPU和Intel Xeon Phi . 主机代码和GPU代码用Fortran编写,由pgfortran编译 . 为了将我们的一些工作卸载到Phi,我们必须创建一个由ifort编译的共享库(静态链接不能工作),并从代码的pgfortran部分调用共享子例程 . 通过这样做,我们可以将代码的pgfortran部分中的数组卸载到可以与Xeon Phi通信的intel...
  • 0 votes
     answers
     views

    在Intel Xeon Phi卸载指令中使用带“into”的指针

    根据“Intel Xeon Phi Coprocessor高性能编程”一书,我们可以将数据从一个变量移动到另一个变量 . 我试着按照这个例子,我发现它有效: 码: program example real , target :: a(5),b(10) a(1)=1 a(2)=2 a(3)=3 a(4)=4 a(5)=5 print *,'*************************' ...
  • 1 votes
     answers
     views

    如何在fortran中将输出写入字符串?

    我需要将一个格式化的输出写入字符串 DTSTR . 它用于铺设fortran而不是gfortran INTEGER*2 MON,DAY,YEAR,HR,MINUTE,SEC,HUND CHARACTER DY*2 CHARACTER DTSTR*24 COMMON /RD/ DTSTR ... ... WRITE(DTSTR,10)MON...
  • 0 votes
     answers
     views

    如何使用Fortran API将字符串数组写入HDF5数据集?

    使用fortran语言定义字符串数组: character(len = 20), dimension(5) :: strings = (/"hello", "world", "Hello", "HDF5", "fortran"/) 现在我想使用HDF5 API参考文档所示的 h5ltmake_da...
  • 1 votes
     answers
     views

    在程序运行期间从FORTRAN中写入的文件中检索数据

    我试图将一系列时间值(实际值)写入FORTRAN的dat文件中 . 这是MPI代码的一部分,代码运行了很长时间 . 所以我想在每个时间步骤提取数据并将其打印到文件中,并在程序执行期间随时读取文件 . 目前,我面临的问题是,在程序结束之前,时间值不会写入文件 . 我在do循环之前放置了open语句,在do循环结束之后放置了close语句 . 我的代码部分看起来像: open(unit=57,file...
  • 0 votes
     answers
     views

    Fortran,数组改变了他们的 Value 观

    我有一个非常奇怪的问题,似乎我的某些实际情况正在发生变化 . 我有一个模块: c\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ module Koordinaten implicit none save real(kind=8),allocatable,dimension(:) ...
  • 1 votes
     answers
     views

    Gfortran复杂的实际到真正的虚拟参数

    我试图使用fftpack与gfortran,但我得到的错误,我认为与虚拟参数被声明为真实时传递复杂数组的一些例程有关 . 我在intel fortran页面上阅读了一条评论,可以禁用“ check routine interface ” . 有谁知道gfortran是否有类似的选择? 我想不必编辑fftpack ...(我想这是因为内存中的复杂由两个实数表示,数组参数作为引用传递但如果我错了请纠正...
  • -1 votes
     answers
     views

    Fortran代码给出错误[关闭]

    我从一本书中学习了这个Fortran程序,该书基本上运行良好,以适应某些数据的测试并提供输出 . 代码及其实际结果/输出如下: real*4 x(50),xc(50,20),omega(50) integer ir(50) real*8 xx c This code tests goodness of fit. n=47 c The method of Bak, Nielsen, and Mads...
  • 2 votes
     answers
     views

    Fortran模块和全局变量

    我正在尝试创建一个可以在主程序和所有子程序中全局访问的数据结构 . 数据结构是通过读取一些.dat文件构建的 . 这种全局可访问性似乎适用于模块 . 到目前为止,我的模块解决方案包括:1)全局定义数据类型; 2)在模块中包含(包含)一堆子程序以打开/读取.dat文件; 3)从.dat文件构造数据类型 . 理想情况下,我想在模块中构建此数据结构ONCE,然后可以全局访问此单个数据结构 . 每次调用模...
  • 1 votes
     answers
     views

    Fortran运行时错误:文件结束

    我试图理解READ语句在Fortran中是如何工作的 . 为此,我编写了以下简单程序: program main integer a,b,c open(unit=10,file='test.txt',status='old') read(10,*)a,b,c print*,a,b,c close(10) end program main 我在终端上运行它(使用Mac):gfortran Ma...
  • 0 votes
     answers
     views

    读取文本文件中的数据后FORTRAN“随机”分段错误

    在过去的几天里,我在FORTRAN代码中遇到了一个非常奇怪的问题,它代表了一个化学网络求解器 . 我有一个文本文件,其中包含以下结构作为我的模型输入的一部分 ! Chemistry Scheme from Lellouch et al. (2012) ! Modified 13-06-2016. For more info see "Introduccion de quimica en...
  • 1 votes
     answers
     views

    NetCDF:开始计数超出维度限制

    我在Fortran中编写了一个代码,用于读取具有4维数据[时间,级别,经度,纬度]的NetCDF文件 . 但是,我的代码会产生错误 NetCDF: Start+count exceeds dimension bound 在我正在使用的任何4-bit NetCDF文件上 . 例如,http://people.sc.fsu.edu/~jburkardt/f_src/netcdf/pres_temp_...
  • 2 votes
     answers
     views

    如何求解线性矩阵方程:AX-XA = B有效?

    最近我一直在努力使用Fortran解决一些数学问题 . 在我看来,线性矩阵方程: AX-XA=B 其中A和B是已知的n * n矩阵,X是需要求解的 . 我知道这看起来像一个典型的Lyapunov方程 . 但是,为了解决这个方程空间友好,可以使用迭代方法得到Kronecker乘积时X的数值结果: A*I-I*A(T) 是非单数的(T表示转置) . 不幸的是,这不是我的情况 . 我的问题中的Kro...
  • 2 votes
     answers
     views

    c-fortran互操作性 - 带指针的派生类型

    我有很长的fortran代码,必须从python中使用 . 我决定做Fortran-> C-> Python接口 . 我遇到了一个问题:我在包含的Fortran模块中派生了类型 double precision, allocatable 输入成员 . 当我尝试用ifort编译时,我得到了(与gfortran类似): Each component of a derived type w...
  • 2 votes
     answers
     views

    将复杂数组的实部传递给fortran中的子例程

    是否有可能将复杂数组的实部传递给Fortran中的子程序而不将实部存储在另一个数组中并传递给它?例如代替 Z = complex array; X = real(Z) call foo(X) 请执行下列操作 Z = complex array call foo(real(Z)) 这给了我一个编译错误!我正在使用intel编译器ifort .
  • 1 votes
     answers
     views

    可分配的用户派生类型

    我有一个关于Fortran的问题和正确分配可分配用户派生类型 . 这是我的代码: module polynom_mod implicit none type monomial integer,dimension(2) :: exponent end type type polynom real, allocatable, dimension(:) :: coeff type(...
  • 5 votes
     answers
     views

    在任何现有的OpenACC编译器中是否支持包含可分配数组的派生类型?

    是否有任何OpenAcc编译器支持从GPU中复制包含可分配数组的派生类型及其在加速代码中的使用? OpenACC规范(v2.0)声明这是可能的,但我无法在任何地方找到它在编译器中实现 . PGI编译器支持派生类型,但似乎不包含可分配数组(见this page on the PGI forum) . 虽然这可能已经发生了变化,但它似乎并没有在任何地方公开(好) .
  • 1 votes
     answers
     views

    可分配数组作为派生类型的一部分

    使用英特尔Visual Fortran XE 2013(启用2003语法)和Visual Studio 2012 我有一个派生类型,可分配数组作为组件 . 当我尝试分配数组或将可分配数组设置为等于数组时,它似乎不起作用 . 没有错误,但似乎没有值 . 下面是一个应该说明问题的例子 . Type myType integer :: var1, var2 real*8,dimensio...
  • 1 votes
     answers
     views

    Fortran:包含派生类型数组的派生类型的Allocatable数组

    我目前正在开发一个大型的Fortran程序,我有一个离散的数字网格,其中包含一系列我在网格范围内跟踪的粒子 . 为此,我定义了以下三种派生类型: type :: particle real(pr), dimension(3) :: r = 0.0_pr ! position real(pr), dimension(3) :: p = 0.0_pr ! momentum end ty...
  • 2 votes
     answers
     views

    Fortran中可分配的继承派生类型数组

    我正在尝试创建一组全局可用的可分配数组,这些数组包含与单个对象共享继承的一组派生类型 . Fortran似乎并没有让这很容易 . 以下是我到目前为止的情况 . 首先是带有可分配数组的派生类型和模块 . Module Environment use Entity_M type(Entity_C), dimenion(:), allocatable :: objects End Mo...
  • 3 votes
     answers
     views

    用户定义类型的Fortran可分配阵列成员

    在以下简单程序中,我在派生类型的可分配数组成员处遇到分段错误 . 此分段故障仅在一台计算机上发生(在openSUSE上使用英特尔Fortran 14.0.3),但在我尝试的其他计算机上(在Ubuntu上使用英特尔Fortran 14.0.2)则不会发生 . 此外,如果我更改程序中的一个整数参数,程序将正常结束 . 有人可以重现这个问题吗?谁能告诉我代码有什么问题? 以下是三个源代码文件 . mai...
  • 2 votes
     answers
     views

    传递用户定义的数据类型可分配数组

    我可以使用可分配数组作为其数据类型来定义用户定义的数据类型 . 当我们仍处于相同的子例程时,分配工作完美 . 但我不知道如何将这种类型的用户定义数据类型作为子例程参数传递 . 英特尔编译器显示错误 # 6530 : "Error 1 error #6530: The array spec for this component must be of explicit shape a...
  • 2 votes
     answers
     views

    Coarray派生类型的可分配字符组件的可分配向量

    请考虑以下代码,该代码尝试创建包含可变长度可分配字符类型数组的coarray派生类型 . program testCoarrayJaggedArray implicit none integer :: i type :: CharVec_type character(:), allocatable :: reco...
  • 11 votes
     answers
     views

    使用gdb和gfortran进行调试 - FPE

    我正在调试我添加的更大的数字程序 . 它是用fortran90编写的,用gfortran编译(最新版本适用于Mac),我正在使用gdb进行调试(同样是Mac的最新版本) . 我的添加有一个错误,我试图找到它,这是明确的,因为运行该程序不会产生预期的结果 . 当我在gdb中运行它时,我在结尾处得到以下输出: Note: The following floating-point exceptions ...
  • 1 votes
     answers
     views

    如何在fortran的make文件中使用if语句编译代码?

    我使用fortran代码编写我的代码 . 我在循环中使用子程序 . 并且子程序的名称对于我的各种运行是不同的(我已经编写了所有子程序) . 因此,每当我想为不同的情况运行我的代码时,我必须相应地更改子程序的名称 . 我不想一次又一次地修改我的代码 . 我想要两个写一个全局代码 . 我可以在我的代码中使用所有子例程和“If语句” . 在这种情况下,我不必每次都修改我的代码 . 但是通过这种方式,每个...
  • 1 votes
     answers
     views

    具有16字节整数索引的ARPACK特征值

    我的代码可以很好地计算我的测试用例中的特征值为ARPACK无耻地取自here并适应快速的4x4矩阵 . (为简洁起见,我在示例代码中删除了顶部的注释) . 好的,我的问题 . 我有非常大的矩阵,或者至少,我会为我的实际问题 . 但是,当我使整数类型为16时,ARPACK会出错 . 有没有一种简单的方法来转换ARPACK函数以允许我的16字节索引的东西?或者,是否可以改变它使库允许的方式?我用gf...
  • 5 votes
     answers
     views

    ARPACK线程安全吗?

    从用C编写的程序中同时使用不同线程的ARPACK本征解析器是否安全?或者,如果ARPACK本身不是线程安全的,那么是否存在与API兼容的线程安全实现?一个快速的谷歌搜索没有发现它是第一个需要一个线程安全的稀疏eigensolver非常令人惊讶 . 我对Fortran不太熟悉,所以我使用 f2c 将ARPACK源代码翻译成C,似乎有很多静态变量 . 基本上,转换例程中的所有局部变量似乎都是静态的,这...
  • 2 votes
     answers
     views

    在ARPACK中将值分配给数组ipntr

    我试图弄清楚如何将值分配给名为ipntr的数组,该数组存储指针,在ARPACK中 . 我对fortran相对较新,我无法弄清楚这个数组的值是如何初始设置的 . 我正在看的代码是一个不对称的驱动程序示例dndrv1.f与ARPACK一起分发,我不理解的部分如下 program dndrv1 integer maxn, maxnev, maxncv, ldv ...

热门问题