Fortran - ayuda

 
Vista:

ayuda

Publicado por gael (2 intervenciones) el 11/02/2012 20:18:01
Hola a todos...
estoy haciendo un programa en fortran y me marca muchos errores. No soy bueno programando por eso necesito de sus ayuda.. les envio el programa aquí para que lo chequen y me ayuden.
saludoss..


program gael

IMPLICIT NONE
integer i
c******************************************************************
c* calcula la presion and la densidad de energia
c*
c* En este caso tamremos gH=a,mH=b,gh=c,mh=d,gz=e,mz=f,mn=n
c*
c*
c******************************************************************
REAL a,b,c,d,e,f,n,x,w
REAL H,h,P,rho,Z
REAL u,v
real, parameter :: pi=3.14159
INTEGER k

* abrir un archivo para los resultados del calculo

open(20,file='neutralino.dat',status='unknown')

* Dar valores a las constantes
a = 0.3131
b = 753.36438
c = -0.02705
d = 118.760345
e = 0.00143
f = 91.187

pi = 3.14159265

n = 1016.79763

do i = 1, 1000000000

* Condiciones iniciales

k=1000

k = k + 1

end do

* calcular densidad y presion

function x(k,n)
real x,n
integer k
x = (k*Sqrt(1.0+(k**2/n**2))-n*ASINH(k/n)/2.0*n)

FUNCTION H(a,n,b,x,k)
REAL H,a,n,b,x
integer k
H = -((a*n**3)/(b**2*pi**2)) x

FUNCTION h(c,n,d,x,k)
REAL h,c,n,d,x
integer k
h= -((c*n**3)/(d**2*pi**2)) x

FUNCTION Z(e,f,k)
REAL Z,e,f
integer k
Z = (e/3.0*f**2*pi**2)k**3.

function u(k,n)
real u,n
integer k
u=(k*Sqrt(1.0+(k**2/n**2))*
(2.0*k**2+n**2)-n**3*ASINH(k/n)/8.0*n**3)

function v(k,n)
real v,k,n
v=(k*Sqrt(1.0+(k**2/n**2))*
(2.0*k**2-3*n**2)+3*n**3*ASINH(k/n)/8.0*n**3)

function w(f,Z)
real w,f,u,Z
w = (1/2)*f**2*Z**2

function rho(n,u,b,H,d,h,w)
real rho,n,u,b,H,d,h,w
integer k
rho=(n**4/pi**2)(u)+(1/2)*b**2*H**2+(1/2)*d**2*h**2 + w

function P(n,v,b,H,d,h,w)
real P,n,v,b,H,d,h,w
integer k
P=(n**4/3*pi**2)(v)-(1/2)*b**2*H**2-(1/2)*d**2*h**2+ w


write(20,*) k,H,h,Z,rho,P

end
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

ayuda

Publicado por theoretical (1 intervención) el 17/02/2012 14:41:52
Primero que todo no se qué tipo de compilador estas utilizando, FORTRAN77, FORTRAN90 o FORTRAN95, puesto que estas utilizando algunos atributos propios del Fortran 77, como lo es la manera de indicar los comentarios, así como atributos propios del Fortran 90/95,

Definitivamente tu programa contiene múltiples errores, y serios. Todas las funciones que usted presenta en su programa no presentan la instrucción de finalización, esto es, "end function". Por otro lado, en el cuerpo principal de su programa (antes de entrar al cuerpo de las funciones), no se presenta la invocación (llamada) de cada una de las funciones. El ciclo "do" que aparece antes de las funciones, no le veo ninguna funcionalidad!!!!!. Las constantes que aparecen allí también no le veo ninguna funcionalidad, no se para qué haces uso de la función intrínseca "open", si no la utilizas. Estoy convencido de que usted quiere que le resuelvan su tarea.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar