Fortran 90

pietrozebrone
Salve ragazzi, ho un problema con questo codice:
"subroutine sep_2 (as,ActiveSum,sum,sepi,ns,hb,w,sep2)
integer::ns
logical,dimension(ns)::ActiveSum
real*8,dimension(ns)::as,hb,w,sepi,sep2,sum
sum=0.0
do i=1,ns
if (ActiveSum(i) .and. as(i)==0.0) then
sepi=abs(hb(i)-w(i))
sum=sum+sepi
end if
end do
sep2=sum/ns
return
end subroutine sep_2 "

mi risulta errore #6404

Grazie a tutti.

Risposte
Raptorista1
Ciao, potresti scegliere un titolo più descrittivo del contenuto e mettere il codice nell'apposito ambiente? Questo sarà di aiuto a chi vorrà risponderti, in accordo col regolamento.

pietrozebrone
Mi indichi per favore l'ambiente giusto? mi scuso ma non scrivo mai nel forum.

Raptorista1
Certo! Nella pagina di risposta ci sono vari pulsanti sopra la zona del testo. Uno di questi è [inline]Code[/inline] e inserisce un ambiente [inline][code][/code][/inline] in cui mettere il codice.

pietrozebrone
"subroutine sep_2 (as,ActiveSum,sum,sep,ns,hb,w,sep2)
integer::ns
logical,dimension(ns)::ActiveSum
real*8,allocatable,dimension(:)::hb,w,as,sep,sep2
real*8::sum
sum=0.0
do i=1,ns
if (ActiveSum(i) .and. as(i)==0.0) then
sep(i)=abs(hb(i)-w(i))
sum=sum+sep(i)
end if
end do
sep2=sum/ns
return
end subroutine sep_2

In main ho inserito questa
"!--------CALCOLO SEP2
call sep_2(as,ActiveSum,sum,sep,ns,hb,w,sep2)"
N.B. la subroutine "main" sarebbe la principale che richiama tutte le subroutine collegate

e in storeresults (subroutine che genera i risultati) questa
" open (unit,file = trim(pathOutAct)//'\sep2.txt')
do i=1,ns
write(unit,*) sep(i)
end do
close(unit)"

Compilo il programma e va tutto liscio, quando lancio il debug mi da errore o meglio interruzione.

Raptorista1
"Raptorista":
Certo! Nella pagina di risposta ci sono vari pulsanti sopra la zona del testo. Uno di questi è [inline]Code[/inline] e inserisce un ambiente [inline][code][/code][/inline] in cui mettere il codice.

Quale parte di questo messaggio non ti è chiara? XD

pietrozebrone
subroutine sep_2 (as,ActiveSum,sum,sep,ns,hb,w,sep2)
integer::ns
logical,dimension(ns)::ActiveSum
real*8,allocatable,dimension(:)::hb,w,as,sep,sep2
real*8::sum
sum=0.0
do i=1,ns
if (ActiveSum(i) .and. as(i)==0.0) then
sep(i)=abs(hb(i)-w(i))
sum=sum+sep(i)
end if
end do
sep2=sum/ns
return
end subroutine sep_2 


In [inline]main[/inline] ho inserito questa
!--------CALCOLO SEP2
call sep_2(as,ActiveSum,sum,sep,ns,hb,w,sep2)

N.B. la subroutine [inline]main[/inline] sarebbe la principale che richiama tutte le subroutine collegate

e in [inline]storeresults[/inline] (subroutine che genera i risultati) questa
open (unit,file = trim(pathOutAct)//'\sep2.txt')
do i=1,ns
write(unit,*) sep(i)
end do
close(unit)


Compilo il programma e va tutto liscio, quando lancio il debug mi da errore o meglio interruzione.

pietrozebrone
Va bene ora?

Raptorista1
No che non andava bene, non lo vedevi??
Per questa volta te l'ho sistemato io, ma è l'ultima volta.

pietrozebrone
Ti ringrazio. Gentilissimo. Purtroppo non capivo perché non ho mai scritto nei forum. Attendo risp per cortesi.

Raptorista1
"pietrozebrone":
Attendo risp per cortesi.

Io non conosco Fortran. Buona fortuna!

pietrozebrone
Ah ok ok, va bene, grazie lo stesso.

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