IED에서는 딱히 에러는 없고 행렬값이 너무 크다? 이런 값만 보여주는데<br>최종적으로 컴파일에서는 에러가 뜨는데 대체 어디를 잘못한걸까요??<br><br> program mxmnd<br> real odata(nmax), maxdata(nmax), mindata(nmax), h(nmax),<br> + sum, h1, h2, h3, h4<br> integer nmax, max, index(nmax), imx, t<br> parameter (max=70000)<br><br> open(11, file='eta.txt')<br> open(22, file='solve.txt')<br><br> do i=1,max<br> odata(i)=0<br> enddo<br><br>%eta 데이터가 65000개 정도 되는데 그걸 읽어서 odata에 저장하고 데이터수를 nmax에 저장<br> <br> do i=1,max<br> read(11,*) odata(i)<br> <br> if(odata(i).NE.0) then<br> nmax=i<br> endif<br> <br> enddo<br><br>%odata가 0보다 크거나 작으면 그 데이터 위치를 index에 저장하고 index수를 imx에 저장<br><br> imx=0<br><br> do i=1,nmax<br> <br> if(odata(i).LT.0 .and. odata(i+1).GT.0) then<br> index(i)=i<br> imx=imx+1<br> endif<br> <br> enddo<br><br>%index 사이 데이터 중 최대 최소 값을 읽어서 차를 h에 저장<br><br> do i=1,imx<br> <br> do n=index(i),index(i+1)-1,1<br> k=odata(n)<br> k2=odata(n+1)<br> <br> if(k.GT.k2) then<br> maxdata(i)=k<br> mindata(i)=k2<br> else <br> maxdata(i)=k2<br> mindata(i)=k<br> endif<br> <br> enddo <br> <br> h(i)=maxdata(i)-mindata(i)<br> <br> enddo <br> <br>%h값을 내림차순 정렬<br><br> do i=2,imx<br> temp=h(i)<br><br> do n=i-1,1,-1<br> if(h(n).le.temp) then<br> h(n+1)=h(n)<br> h(n)=temp<br> endif<br> <br> enddo<br> <br> enddo<br> <br>% 유의파고, 1/10파고, 평균파고, 최대파고 계산<br><br> t=int(imx/3)<br> sum=0<br> <br> do i=1,t<br> sum=sum+h(i)<br> enddo<br> <br> h1=sum/t<br><br> t=int(imx/10)<br> sum=0<br> <br> do i=1,t<br> sum=sum+h(i)<br> enddo<br> <br> h2=sum/t<br><br> sum=0<br> <br> do i=1,imx<br> sum=sum+h(i)<br> enddo<br> <br> h3=sum/imx<br> <br> do i=1,imx<br> if(h(i).GT.h(i+1)) then<br> h4=h(i)<br> elseif(h(i).le.h(i+1)) then<br> h4=h(i+1)<br> endif<br> enddo <br><br>% 출력<br><br> write(22,*) h1, h2, h3, h4<br> <br> Stop<br> End
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.