드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
제가 짠 포트란 코드인데 대체 어디서 에러가 나는 걸까요?
게시물ID : programmer_16696짧은주소 복사하기
작성자 : 밝은달사랑★
추천 : 0
조회수 : 552회
댓글수 : 1개
등록시간 : 2016/04/14 04:59:18
IED에서는 딱히 에러는 없고 행렬값이 너무 크다? 이런 값만 보여주는데
최종적으로 컴파일에서는 에러가 뜨는데 대체 어디를 잘못한걸까요??
program mxmnd
real odata(nmax), maxdata(nmax), mindata(nmax), h(nmax),
+ sum, h1, h2, h3, h4
integer nmax, max, index(nmax), imx, t
parameter (max=70000)
open(11, file='eta.txt')
open(22, file='solve.txt')
do i=1,max
odata(i)=0
enddo
%eta 데이터가 65000개 정도 되는데 그걸 읽어서 odata에 저장하고 데이터수를 nmax에 저장
do i=1,max
read(11,*) odata(i)
if(odata(i).NE.0) then
nmax=i
endif
enddo
%odata가 0보다 크거나 작으면 그 데이터 위치를 index에 저장하고 index수를 imx에 저장
imx=0
do i=1,nmax
if(odata(i).LT.0 .and. odata(i+1).GT.0) then
index(i)=i
imx=imx+1
endif
enddo
%index 사이 데이터 중 최대 최소 값을 읽어서 차를 h에 저장
do i=1,imx
do n=index(i),index(i+1)-1,1
k=odata(n)
k2=odata(n+1)
if(k.GT.k2) then
maxdata(i)=k
mindata(i)=k2
else
maxdata(i)=k2
mindata(i)=k
endif
enddo
h(i)=maxdata(i)-mindata(i)
enddo
%h값을 내림차순 정렬
do i=2,imx
temp=h(i)
do n=i-1,1,-1
if(h(n).le.temp) then
h(n+1)=h(n)
h(n)=temp
endif
enddo
enddo
% 유의파고, 1/10파고, 평균파고, 최대파고 계산
t=int(imx/3)
sum=0
do i=1,t
sum=sum+h(i)
enddo
h1=sum/t
t=int(imx/10)
sum=0
do i=1,t
sum=sum+h(i)
enddo
h2=sum/t
sum=0
do i=1,imx
sum=sum+h(i)
enddo
h3=sum/imx
do i=1,imx
if(h(i).GT.h(i+1)) then
h4=h(i)
elseif(h(i).le.h(i+1)) then
h4=h(i+1)
endif
enddo
% 출력
write(22,*) h1, h2, h3, h4
Stop
End
댓글 분란 또는 분쟁 때문에
전체 댓글이 블라인드 처리되었습니다.
새로운 댓글이 없습니다.