2017-01-07 12 views
0

GFortranでプログラムをコンパイルするときに問題が発生しました。配列内に独自の型を保存する

まず、私のコードは次のようになります。これらが含まれてい

Type :: zeit 
    INTEGER :: Stunde, Minute 
    real :: Sekunde 
END Type 

TYPE :: ergebnis 
    CHARACTER(LEN=30):: Nachname, Vorname 
    TYPE(Zeit)::Laufzeit 
END TYPE 

type(ergebnis), allocatable :: Liste(:) 

SUBROUTINE leseliste(k) 
    type(ergebnis) :: Liste 
    integer :: i, k 
    character(len=30) :: vorN, nachN 
    integer :: stun, minu 
    real :: seku 


    do i=1, k 
     WRITE (*, *) "Laeufername und Zeit:" 
     Read (*, *) vorN, nachN, stun, minu, seku 
     Liste(i:1) = ergebnis(vorN, nachN, zeit(stu, minu, seku)) 
    enddo 
END SUBROUTINE 

私はその後、読み取り変数と私のリストを割り当て、leseliste-サブルーチンを呼び出します。誰が私を助けることができる

Aufgabe14.f95:33:3: 

Liste(i:1) = Laeufer(vorN, nachN, Ergebnislaeufer(stu, minu, seku)) 
1 
Error: Unclassifiable statement at (1) 
Aufgabe14.f95:41:5: 

USE Zeitmodul 
1 
Fatal Error: Can't open module file ‘zeitmodul.mod’ for reading at (1): Datei oder Verzeichnis nicht gefunden 
compilation terminated. 

誰でも、次の理由

しかしのgfortranはコンパイルされませんか? ありがとうございます!

+1

あなた 'LISTE(I:1 ')' liste'が配列でありません '。あなたは何をしようとしていますか? – francescalus

+0

@HighPerformanceMark名前を変更しました。それを訂正しましたが、それと同じ結果です... –

+0

@francescalusしかし、それは 'type(ergebnis)、allocatable :: Liste(:)'のためではありませんか? –

答えて

0

あなたのコードでは、まず、あなたが一つのオブジェクト

type(ergebnis) :: Liste 

を作成し、次にあなたが配列

Liste(i:1) = ergebnis(vorN, nachN, zeit(stu, minu, seku)) 

がLISTE arrray

type(ergebnis), allocatable :: Liste(:) 
作るようにそれを使用したい、めちゃめちゃ少しあります

を割り当てて割り当てます。

allocate(Liste(1:10), stat=status) 

、あなたがLISTEを必要としないとき、割り当てを解除することを忘れないでくださいもう

deallocate(Liste, stat=status) 
関連する問題