我有一个必须运行的Fortran代码,但遗憾的是我没有使用Fortran的任何经验。我尝试使用不同的Fortran版本运行代码,但没有任何作用。
以下是代码的链接:http://cpc.cs.qub.ac.uk/summaries/adpw。
如果有人能告诉我应该使用哪个Fortran版本,那就太棒了。
以下是详细信息:
当我尝试使用gfortran时:
gfortran numcbas.f < numcbas_c.data
Segmentation fault: 11
当我使用g77运行时:
g77 numcbas.f < numcbas_c.data
ld: warning: -macosx_version_min not specified, assuming 10.10
ld: warning: PIE disabled. Absolute addressing (perhaps -mdynamic-no-pic) not allowed in code signed PIE, but used in __start from /usr/lib/crt1.o.
To fix this warning, don't compile with -mdynamic-no-pic or link with -Wl,-no_pie
这是代码的开头:
program NUMCBAS
IMPLICIT DOUBLE PRECISION (A-H,O-Z)
MAIN DRIVING ROUTINE
CHARACTER*120 TITLE
DIMENSION IBUG(3),HRXS(10),IRXS(10)
COMMON /BASCON/ HRX(10),IRX(10),NIX,IRA
DATA TITLE /' '/
DATA HRXS/1.D-02,2.D-02,2.605D-02,7*0.D0/
DATA IRXS/30,120,500,7*0/,IBUG/3*0/
INTEGER :: NFTA=6,LUNUMB=13, LVAL=0
DOUBLE PRECISION :: BTOL=0.2D0, TINY=1.D-11
DOUBLE PRECISION :: ECMAX=10.D0, RLIM=10.D0, CHARGE=0.D0
NAMELIST /INPUT/ TITLE,LUNUMB,NIX,IRX,HRX,lval,IBUG,BTOL,
* TINY,ECMAX,RLIM,CHARGE
WRITE (6,1000)
和输入文件:
&INPUT
TITLE='IONIC TARGET',
lval=0, ECMAX = 5.00D0,
RLIM = 12.0D0, CHARGE=1.0D0,/
答案 0 :(得分:0)
在我看来,你完全误解了编译和运行的过程。
这些行是可疑的:
gfortran numcbas.f < numcbas_c.data
g77 numcbas.f < numcbas_c.data
没有理由将数据文件重定向到编译器命令。编译器首先必须创建一个可执行程序,然后您可以使用您的数据运行该程序。通常,会创建一个文件./a.out
,然后运行它
./a.out < some_data_to_stdin
非常奇怪的是,在没有任何其他错误消息的情况下运行gfortran会出现Segmentation故障。您确定上面显示的命令正是您正在运行的命令吗?