Fortran 90
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.
"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
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.
Mi indichi per favore l'ambiente giusto? mi scuso ma non scrivo mai nel forum.
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.
"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.
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.
"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
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.
Va bene ora?
No che non andava bene, non lo vedevi??
Per questa volta te l'ho sistemato io, ma è l'ultima volta.
Per questa volta te l'ho sistemato io, ma è l'ultima volta.
Ti ringrazio. Gentilissimo. Purtroppo non capivo perché non ho mai scritto nei forum. Attendo risp per cortesi.
"pietrozebrone":
Attendo risp per cortesi.
Io non conosco Fortran. Buona fortuna!
Ah ok ok, va bene, grazie lo stesso.