Aiuto per programmi in fortran 6.0

Nana_85
ciao a tutti, vorrei il vostro aiuto su un paio di programmi che ho scritto in fortran 6.0.
ne ho fatti 2, riportanti 2 leggi della fisica:

1) dilatazione lineare dei solidi: Lf=Li+Li*a*(tf-ti)
dove Lf= lungh. finale,
Li= lungh. iniziale,
a= coeffic. dilataz. termica lineare
tf-ti= temperatura finale-temperatura iniziale

2)Legge di Stevino: p=p0+d*g*h
dove p= pressione del fluido
p0= pressione atm sul liv. del mare
d= densità del fluido
g= accelerazione di gravità
h= profondità

i programi che ho compilato sono:

1)
program dilataz lineare solidi
c------questo programma calcola l'allungamento di materiali a seguito di 
c----*una variazione di temperatura--------------------------------------
        
      implicit double precision (a-h,o-z)

c---------PARAMETRI PER IL CALCOLO---------------------------------------
      character *9 materiali(8)

c------------materiali---------------------------------------------------
	data materiali /'Al','Diam','Fe','Pb','Cu','Vetro','Zn','Acciaio'/

c----------coefficienti di dilatazione termica lineare--------------------

	data a,b,c,d,e,f,g,h / 23.d-6, 1.d-6, 12.d-6, 29.d-6, 17.d-6, 9.d-6,
     *30.d-6, 2.d-6/!coeffic. dilataz. lineare, K^-1
      
c----------lunghezza iniziale---------------------------------------------

	data li/1.d0/!lunghezza iniziale, m
	
c----------valori della temperatura---------------------------------------
	 
	data ti/20.d0/ !temperatura iniziale,K
	data tf/50.d0/ !temperatura finale, K

      open (23,file='dilataz.dat')
      
	ind=0
	ti=20.d0 !K
	tf=50.d0 !K
	dt=tf-ti  !K

	do 50, dt=ti,tf,(tf-ti)/1.d0
	  
	
50    lf=li+li*a*dt
	lf=li+li*b*dt
	lf=li+li*c*dt
	lf=li+li*d*dt
	lf=li+li*e*dt
	lf=li+li*f*dt
	lf=li+li*g*dt
	lf=li+li*h*dt

	if (lf.gt.li.and.ind.eq.0) goto 87
	print*, 'La dilatazione del materiale è circa=','lf-li'!m

	stop
	
      
      write (23,*) real(dt) , real(li) !risultato in m
	goto 87
	 
87    continue

      stop

	end


___________________________________________________________________________________
allora clicco:
compile e build che non mi danno errori nè warning.
quando clicco su execute program il risultato è: La dilatazione del materiale è circa Lf-Li.
premere un tasto e chiude

visto che nel programma ho messo i dati relativi a diversi materiali, con annesse temperature e lunghezze iniziali, mi aspettavo una tabella che li riportasse... non so se mi spiego!
vorrei che il programma una volta eseguito mi faccia vedere i valori di dilatazione termica lineare per ognuno dei materiali.

_______________________________________________

2)

program legge di stevino

c     questo programma calcola la pressione nell'acqua a diverse profondità

      implicit double precision (a-h,o-z)

c-----parametri per gravità------------------------------------------------
      data g/9.8/!accelerazione di gravità, ms^-2
c-----parametri per la densità del fluido----------------------------------
      data d/1000/!densità dell'acqua, kgm^-3
c-----parametri per la pressione atmosferica sul livello del mare----------
      data p0/1.01d5/!pressione atmosferica, Pa

      open(23,file="stev.dat")
      
      ind=0
	h1=0.d0   !m
	h2=3.5d3    !m

50    n=n+1
      
      do 87 h=h1,h2,(h2-h1)/100.d0

	p=p0+d*g*h

      if (h.lt.0) then
	print*, 'la profondità deve essere positiva'
	endif
      
	if (h.gt.0) then
	print*, 'la pressione è =', p0+d*g*h, 'Pa'
	print*,'il numero di volte che il ciclo è eseguito è', n
      
      stop
	endif
	    
      write(23,*) real(h/1.d3), real(p)  !risultato in Pa

87    continue
      goto 50

      stop
	end


______________________________________________________________

diciamo che il caso è lo stesso di quello detto prima cioè
compile e build senza errori, ma in execute program esce solo un valore di p.
vorrei invece ottenere anche qui una tabella con i valori di p alle diverse profondità h che vanno da 0 m a 3500m sotto il liv del mare.

questo è quanto, spero ci sia qualcuno che mi possa aiutare perchè è importante e urgentissimo perchè a breve avrò un esame.
vi ringrazio in anticipo :D

Risposte
Nana_85
up

apatriarca
Ma che cos'è fortran 6.0? So cos'è fortran, ma le versioni sono numerati con degli anni (come fortran 77 o 90). Immagino sia quindi un programma, ma senza sapere la ditta che lo sviluppa non ho idea di che programmi si tratti.

Usa inoltre il tag code per rendere più leggibile il tuo codice.

Per quanto riguarda il tuo primo problema, dovresti memorizzare i coefficienti in un qualche vettore e poi fare un ciclo in cui calcoli i valori per un particolare materiale e lo stampi.

Nana_85
salve, non ho più bisogno di aiuto, ho risolto con questi problemi!
grazie lo stesso :-)

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.