|
各位,我现在遇到一个问题,我的主程序是for格式的(不是我写的),但是现在需要增加一个功能,我是用自由格式的f90写的:
[Fortran] 纯文本查看 复制代码 subroutine read_force_field()
use flexible
implicit none
integer*4, parameter :: ff_torsion = 10000, max_atom_type = 100, max_ligand = 500
integer :: num_link(max_ligand), link(max_ligand, 10)
integer :: i, j, k, ios, nflag, multiplicity, num, num_atom, num_bond, id2
integer :: id(4), tot_multiplicity( ff_torsion, ff_torsion ), atom_id(max_ligand)
integer :: ligand_id(max_ligand)
real*8 :: force_constant, phase, periodicity
real*8 :: x0, y0, z0
real*8 :: tot_force_constant(ff_torsion, ff_torsion), tot_phase(ff_torsion, ff_torsion )
real*8 :: tot_periodicity(ff_torsion, ff_torsion)
real*8 :: coordinate(3, max_ligand), charge(max_ligand)
character*100 :: line, file_force_field, flig
character*10 :: atom_type(max_ligand), atom(4), typ, sybyl_type
logical :: qqr
然后报错内容就是:
kreadff.f90(11): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: ( * ) , . % + - [ : . ** / // .LT. < .LE. <= .EQ. == .NE. ...
integer :: id(4), tot_multiplicity( ff_torsion, ff_torsion ), atom_id(max_ligand)
-------------------------------------------------------------------------------------------------^
kreadff.f90(41): error #6404: This name does not have a type, and must have an explicit type. [TOT_PHASE]
tot_phase = -1.0
----------^
kreadff.f90(106): error #6410: This name has not been declared as an array or a function. [TOT_PHASE]
tot_phase(i, j) = phase
------------------^
kreadff.f90(126): error #6404: This name does not have a type, and must have an explicit type. [NUM_ATOM]
num_atom = 0
----------^
kreadff.f90(127): error #6404: This name does not have a type, and must have an explicit type. [NUM_BOND]
num_bond = 0
----------^
kreadff.f90(190): error #6404: This name does not have a type, and must have an explicit type. [ATOM_ID]
atom_id = 0
----------^
kreadff.f90(194): error #6404: This name does not have a type, and must have an explicit type. [SYBYL_TYPE]
sybyl_type = atom_type(i)
--------------^
kreadff.f90(194): error #6303: The assignment operation or the binary expression operation is invalid for the data types of the two operands. [ATOM_TYPE]
sybyl_type = atom_type(i)
---------------------------^
kreadff.f90(207): error #6404: This name does not have a type, and must have an explicit type. [ID2]
id2 = 1
------------------------------^
kreadff.f90(217): error #6410: This name has not been declared as an array or a function. [ATOM_ID]
atom_id(i) = id2
----------------------^
kreadff.f90(224): error #6410: This name has not been declared as an array or a function. [ATOM_ID]
atom_id(i) = 5
------------------^
kreadff.f90(7): error #6279: A specification expression object must be a dummy argument, a COMMON block object, or an object accessible through host or use association [MAX_LIGAND]
integer :: num_link(max_ligand), link(max_ligand, 10)
------------------------------------^
kreadff.f90(11): error #6279: A specification expression object must be a dummy argument, a COMMON block object, or an object accessible through host or use association [FF_TORSI]
integer :: id(4), tot_multiplicity( ff_torsion, ff_torsion ), atom_id(max_ligand)
----------------------------------------------------------------^
kreadff.f90(7): error #6404: This name does not have a type, and must have an explicit type. [MAX_LIGAND]
integer :: num_link(max_ligand), link(max_ligand, 10)
------------------------------------^
kreadff.f90(11): error #6404: This name does not have a type, and must have an explicit type. [FF_TORSI]
integer :: id(4), tot_multiplicity( ff_torsion, ff_torsion ), atom_id(max_ligand)
----------------------------------------------------------------^
compilation aborted for CovaDock.for (code 1)
有没有大神教教怎么办,谢谢各位了!
|
|