10/05/21 02:53:31
>>118
よく解らんが、不等間隔のデータを読み込んで、等間隔のデータに補間して出力したいのかな。
> do while ((X(K-1)-XX)*(X(K)-XX) > 0.0d0)
この条件式の書き方は昔風で今は流行らない。素直にIF文にした方がいい。
こんな感じの事をしたいのかもしれない。
PROGRAM unko
PARAMETER (MP = 600)
DIMENSION x(0:MP), y(0:MP)
READ(10,*) X(0),Y(0)
DO N = 1, 999999
DO I = 1,MP
READ(10,*,err=99) X(I),Y(I)
END DO
CALL SUB1(X,Y,G,H,MP)
K = 1
DO I = 0, INT( X(MP - 1) - X(0) )
XX = X(0) + REAL(I)
IF ( ( X(K-1) < XX ) .AND. ( XX <= X(K) ) ) THEN
YY = SUB2(G,H,X,Y,XX,K,MP)
WRITE(20,'(2F15.7)') XX,YY
ELSE
K = K + 1
END IF
END DO
X(0) = X(MP)
Y(0) = Y(MP)
END DO
99 CONTINUE
STOP
END