Aiuto per programmi in fortran 6.0
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)
___________________________________________________________________________________
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)
______________________________________________________________
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
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
Risposte
up
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.
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.
salve, non ho più bisogno di aiuto, ho risolto con questi problemi!
grazie lo stesso
grazie lo stesso