1 van 1

Output uit subroutine in fortran

Geplaatst: ma 05 okt 2009, 17:09
door Merien
Hoe kan ik de variabele 'B' uit mijn subroutine laten komen. Het allocaten wil niet lukken. Ideetjes zijn een beetje op.

De personen na mij die moeten namelijk gebruik maken van de 4D matrix 'B' die uit mijn subroutine zou moeten komen, maar tijdens het compilen blijft ie maar om de input 'B' vragen... :eusa_whistle:

Hieronder één van mijn probeerseltjes. Ik hoop dat het idee duidelijk is.

Code: Selecteer alles

program wrapper

implicit none

double precision :: h, current, B_p, H_p

integer :: num_wires, B_path, L_path, H_path

real :: start, finish

double precision, allocatable, dimension (:,:,:,:) :: B

write(*,*) '- h -  voer de stapgrootte in mm in: '

read(*,*) h

write(*,*) '- num_wires -  voer het aantal draden in: '

read(*,*) num_wires

write(*,*) '- I -  voer de stroomsterkte door de spoel in (in ampère): '

read(*,*) current

write(*,*) '- B_p -  voer de breedte van het pad in (in meter): '

read(*,*) B_p

write(*,*) '- H_p -  voer de hoogte van het pad in (in meter): '

read(*,*) H_p

B_path = B_p/(h/1000)+1

L_path = 1.2/(h/1000)+1

H_path = H_p/(h/1000)+1

allocate( B(L_path, B_path, H_path, 3) )

B = 0.0

 call cpu_time(start)

 call Calc_B (h, num_wires, current, B_p, H_p, B) 

 

 call cpu_time(finish)

 write(*,*) 'REKENTIJD: ', finish - start, ' seconden'

end program wrapper

subroutine Calc_B (h, num_wires, current, B_p, H_p, B)

blablabla...

Re: Output uit subroutine in fortran

Geplaatst: wo 07 okt 2009, 10:38
door Merien
Hehehe...en toen bleek de compiler niet correct geìnstalleerd... :eusa_whistle:

Alles werkt ](*,)