我正在尝试将一段代码从Fortran 77移植到Fortran 90,并且我有一个关于在Fortran 77的争论中捕获级别错配的问题。
这是Fortran 90中的代码
program test
use my_module
real ml_time
call gettimes(cdfid,ml_time,ml_ntimes)
在调用子例程中,这是定义传递变量的方式。
module my_module
use netcdf
subroutine gettimes(cdfid,times,ntimes)
real times(*)
call check(nf90_in
在Fortran2003程序中,我希望创建一个派生类型,其中包含一个具有asynchronous属性的可分配数组:
module async_in_type
type async_array
integer, dimension(:), allocatable, asynchronous :: a
end type async_array
end module async_in_type
当我试图用GCC编译上面的代码时,我会收到以下错误消息:
$ gfortran -c -Wall -Wextra async_in_type.F90
GNU Fortran (GCC) 4.1
在Fortran中故意导致段错误的代码示例是什么?我在msys中尝试了以下命令,但得到的结果是一个警告,并且对baddata数组的恶意访问只打印了0。
我需要它来学习,但也需要它作为编写代码的测试用例,以便在调用外部Fortran函数时能够很好地处理这种情况
program segfault
implicit none
real, dimension(10) :: baddata
integer i
do i=1,10
baddata(i) = 1.0
end do
print *, baddata(1)
print *, baddata(1024
在bash中,我可以编写一个简单的脚本,如下所示;在使用环境变量"fileplace“定义文件路径时,读取文件夹中的文件内容。
#!/bin/bash
fileplace="/home/vijay/data1/process-folder1/"
cat $file/file1.dat
我想在FORTRAN90中通过使用变量定义路径来实现与上面相同的功能。我之所以这样做,是因为我的文件夹位置路径很长,并且我想避免在FORTRAN90中对长行使用&和+符号。
为了测试,我尝试编写了简单的FORTRAN90代码,如下所示。
program test_read
im
我试图将我们的项目从autotools移植到CMake,但遇到了fortran编译器设置的问题。该项目由C++、Fortran和Fortran90代码片段组成。在autoconf/automake项目中,我们简单地定义了FC和F77以及相应的标志,比如FCFLAGS和FFLAGS。但在CMake中,它的工作方式似乎有点不同。
到目前为止,我所做的:
project (blah-proj CXX Fortran)
... in ibm case ....
set (CMAKE_Fortran_FLAGS "-qfullpath -qinitauto -qnolm -qinit=f90pt
我已经设法用f2py手动包装了一组Fortran90源代码。为此,我生成了签名文件,如中所述:,我可以获得一个.so,我可以从一些Python接口文件中调用它。
现在,我想从它创建一个包,它将自动构建Fortran扩展。包含Fortran源代码和签名文件的文件夹中唯一添加的内容现在是一个包含以下内容的setup.py文件:
from numpy.distutils.core import setup, Extension
from numpy.distutils.misc_util import Configuration
DISTNAME = 'greengard'
de
我试图使用Visual代码来开发Fortran程序。但是,虽然我可以成功地构建和运行它们,但是如果我能够为MPI (以及其他外部模块)使用intellisense/autocompletion特性,这将对我很有帮助。我把/usr/lib/openmpi/ (其中包含mpi_f08.mod)作为fortran.includePaths的一部分放在settings.json中。但是,当我use mpi_f08时,我会从VS代码Module "mpi_f08" not found in project获得问题消息。下面是一个最小的CMake构建示例:
! hello.f90
prog
我已经下载了Fortran90/95自适应网格精化库(),现在我正在尝试编译它附带的示例程序。在此过程中,我将Makefile修改为使用gfortran而不是英特尔Fortran编译器。
在库代码中,有一个模块包含以下代码片段:
module physicaldata
! Many many lines of variable definitions here
!....
Public :: nfluxvar
Integer,Save :: nfluxvar
! Many many lines of variable definitions her
/home/disk/p/atms380/xx/October-Runs/timeManMod/SourceMods/time_manager.F90(664):
error #6404: This name does not have a type, and must have an explicit
type. [FLOOR]
tmd = day_earth/PLANET_DAY_RATIO - floor(day_earth/PLANET_DAY_RATIO)
我正在使用ifort编译器运行Fortran 90。据我所知,floor是Fortran 90中引入的一个函数
Using
我想在集群上运行Fortran代码。这是为了运行一个测试用例,其中提供了测试用例所需的所有文件。
我已经上传了集群目录中的所有文件。在这些文件中,有一个"build“文件(其内容如下),该文件似乎使用Intel编译器使用特定标志编译了我想要的代码。我不知道它是什么文件类型(pop把它看作是一个音频文件,这不是很有用),我也不知道用什么bash命令来编译Fortran代码。
我尝试过build myfortrancode.f90和make build,但是我获得了command not found用于构建,而nothing to be done用于使用make (我想这是有意义的,因为没
我是Fortran代码的初学者。我安装了gfortran从自制到我的苹果硅mac。当我键入which fortran时,终端中显示的路径是/opt/homebrew/bin/gfortran。
我尝试使用bash在桌面(.f90文件)上运行一个“hello”fortran文件。我在终端中输入了以下命令。gfortran prog01_01.f90。但不起作用。错误是:ld: library not found for -lm和collect2: error: ld returned 1 exit status。我不知道如何处理这个问题。
有人能帮我把这个弄出来吗?
我是VS code的新手,而且我在调试fortran代码方面遇到了困难,因为断点从来不起作用,并且被跳过,就好像它们不存在一样。
我用同样的问题做了一个测试程序:
program test
implicit none
real :: x
x = 10.0
print*, x
end program test
如果我在print语句中放置断点,调试器就不会停止。
在运行过程中,断点变成灰色,我收到以下消息
Module containing this breakpoint has not yet loaded or the breakpoint address could not be o
我在我的c++和Fortran项目中使用CMake。我使用英特尔Fortran编译器和VS2017。每次我尝试在CMake-gui中配置项目时,我都会得到这样的错误:
The Fortran compiler identification is unknown
CMake Error at Lib/Fast_Table/CMakeLists.txt:2 (project):
No CMAKE_Fortran_COMPILER could be found.
我在互联网上到处寻找解决方案,但我似乎找不到任何解决我的问题的方案。所有的路径看起来都是正确的,并且与相同项目的其他同行相匹配。
以下
我正在尝试实现NetCDF-4文件的并行读写。 为此,我安装了netcdf-fortran和mpi。我还安装了pnetcdf (我不知道是否需要它)。所有的安装都是通过包管理器完成的(我使用的是Debian 10)。 当我尝试正常读取(没有并行化) NetCDF文件时,一切都进行得很顺利。但是,当我尝试使用mpi时,我收到以下消息:"NetCDF: Parallel operation on file opened for non-parallel access“我尝试运行以下示例(因为我的程序可能是错误的)。https://github.com/Unidata/netcdf-for