2017-04-05 4 views
0

alle. Ich schreibe ein relativ einfaches Programm, das durch eine Liste von Daten iteriert und die Spitzenwerte für ein Schulprojekt zurückgibt.Keine Konsolenausgabe auf Eclipse mit Fortran

Hier ist der Code so weit:

program Fortran_Project_1 
    implicit none 
    integer::cnt,cnt1, i 
    integer:: peaks=5 
    real, dimension(360):: time,impulse 
    real, allocatable :: impulselist(:) 
    integer, dimension(360)::interval 
    character(len=150)::clean,header 
    clean='C:\Users\User\Desktop\Fortran_Project_1\ir_clean.txt' 
    print *, clean 

    open (unit=1,file=clean) 

    do cnt1=1,4 
     read (1,*) header 
    end do 

    do cnt=1,443 
     read(1,*) interval(cnt),time(cnt),impulse(cnt) 
    end do 
    print *, 'Choose amount of peaks to find' 
    read *, peaks 
    deallocate (impulselist) 
    allocate (impulselist(peaks)) 
    do i = 1, cnt 
     if (impulse(i)>impulse(i+1) .and. impulse(i)>impulse(i-1)) then 
       peaks = peaks - 1 
       impulselist(peaks) = impulse(i) 
     end if 
     if (peaks < 1) then 
      exit 
     end if 
    end do 
    close (1) 
    print *, impulselist 
end program Fortran_Project_1 

Anyways, wenn dieser ausgeführt wird und die Eingabe der Menge der Spitzen der Benutzer, die Konsole ist völlig leer finden möchte. Es druckt die saubere Variable und die Abfrage, aber das ist alles. Was soll ich machen?

Danke

EDIT: Konsolenausgabe:

C: \ Benutzer \ Benutzer \ Desktop \ Fortran_Project_1 \ ir_clean.txt
Menge von Spitzen wählen

[Eingabe]

zu finden
+0

Eine Kopie der genauen Ausgabe als Illustration Ihrer Beschreibung helfen würde. –

+0

Sicher Sache! Aktualisiert. – CaptainSirsir

+0

Kompilieren mit Grenzen Überprüfung kann auch einige Probleme (z. B. Intervall hat eine Größe von 360 und ist gefüllt, bis nicht vorhanden, Element 443). – albert

Antwort

0

Ich habe es herausgefunden. Es gab ein Problem mit den Listenabmessungen. Hier ist der aktualisierte Code, der perfekt funktioniert.

Programm Fortran_Project_1 impliziten keine integer :: cnt, CNT1, i, COUNT1 Peaks real, Dimension (1000) :: Zeit, Impuls real, allocatable :: impulselist (:), timelist (:) Ganzzahl, Dimension (1000) :: Intervall Zeichen (len = 150) :: sauber, Kopfzeile clean = 'C: \ Benutzer \ Buraaq Alrawi \ Desktop \ Fortran_Project_1 \ ir_clean.txt' drucken *, sauber drucken *, 'Wählen Menge der Peaks zu finden' lesen *, Peaks zuweisen (impulselist (Peaks)) zuweisen (Zeitleiste (Peaks))

open (unit=1,file=clean,action='read') 

do cnt1=1,4 
    read (1,*) header 
end do 

do cnt=1,501 
    read(1,*) interval(cnt),time(cnt),impulse(cnt) 
end do 

count1=1 
do i = 1, cnt 
    if (impulse(i)>impulse(i+1) .and. impulse(i)>impulse(i-1)) then 
      impulselist(count1) = impulse(i) 
      timelist(count1) = time(i) 
      count1 = count1 + 1 
    end if 
    if (count1 > peaks) then 
     exit 
    end if 
end do 
close (1) 
100 format(A28,X,1000F10.2) 
200 format(A28,X,1000F10.4) 
300 format(A23,F10.2,F10.4) 
write (*,100) 'The peak times are(seconds):', timelist 
write (*,200) 'The peak impulse values are:', impulselist 
write (*,300) 'The settled values are:',time(501),impulse(501) 

Ende Programm Fortran_Project_1

Vielen Dank aller

+0

Also was ist mit der Deallocate ??? –

0

Es ist seltsam, dass Sie sagen, dass nichts passiert. Sie sollten eine Fehlermeldung erhalten.

Array impulselist ist nicht zugeordnet und Sie rufen deallocate(impulselist). Das ist nicht erlaubt und sollte vom Compiler diagnostiziert werden und es sollte sich beschweren, wenn der Code läuft.

+0

Oh okay. Wie gehe ich daran, das zu beheben? Bei der Beseitigung von deallocate(impulselist) sagt mir, dass das Array bereits zugewiesen ist. – CaptainSirsir

+0

Zeigen Sie uns die ** genaue ** Fehlermeldung und Code. Es gibt keine Möglichkeit, es in dem Code, den Sie anzeigen, in dieser Zeile zuzuordnen. –

+0

Ich habe den genauen Fehler und Code angezeigt. Das sind alle Informationen, die ich habe. Ich habe es auf einem anderen Computer ausgeführt und stieß auf das gleiche Problem. – CaptainSirsir

Verwandte Themen