【发布时间】:2015-04-16 00:57:02
【问题描述】:
我得到了错误
“Fortran 期望 (1) 处的表达式中有右括号”
在子例程中指定声明类型的组件时。 (1) 出现在子例程中来自 a、b、c 的赋值中的第二个 % 下方。我究竟做错了什么?提前致谢。
program prototipo
implicit none
!DECLARACIÓN DE TIPOS
type triangulo
integer :: vertices(3) !VECTOR DE VÉRTICES DE CADA TRIÁNGULO EN NUBE DE VÉRTICES
real (kind = 8) :: X(3) !VECTOR DE COORDENADAS X DE LOS TRES VÉRTICES DEL TRIÁNGULO
real (kind = 8) :: Y(3) !VECTOR DE COORDENADAS Y DE LOS TRES VÉRTICES DEL TRIÁNGULO
real (kind = 8) :: area_triang !ÁREA DEL TRIÁNGULO
end type triangulo
!irrelevant code removed
contains
subroutine Area (V)
implicit none
type(triangulo), intent(inout) :: V !VECTOR DE TRIÁNGULOS
integer :: i !ÍNDICE
real (kind = 8) :: a, b, c !LONGITUDES DEL LADO DE CADA TRIANGULO
real (kind = 8) :: t !TÉRMINO PARA CALCULAR LA ALTURA
real (kind = 8) :: h !ALTURA
do i = 1, 8042
a = sqrt(((V(i)%X(2) - V(i)%X(1))**2) + ((V(i)%Y(2) - V(i)%Y(1))**2))
b = sqrt(((V(i)%X(3) - V(i)%X(1))**2) + ((V(i)%Y(3) - V(i)%Y(1))**2))
c = sqrt(((V(i)%X(3) - V(i)%X(2))**2) + ((V(i)%Y(3) - V(i)%Y(2))**2))
t = (sqrt((a + b - c)*(a - b + c)*(-a + b + c)*(a + b + c))) / 2.D0
h = t / b
V(i)%area_triang = (b*h) / 2.D0
end do
end subroutine Area
end program
【问题讨论】:
-
我忘了提,但是括号被选中并且没问题。这是关于其他事情的错误,因此我无法发现。我是 Fortran 新手,所以这可能是新手的错误。
标签: fortran subroutine triangulation derived-types