디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

포트란 할 줄 아는 횽들 있어?

아리가또탈레(114.111) 2009.12.22 17:16:14
조회 81 추천 0 댓글 1

원래 내가 C,Java 프로그래머인데, 그냥 포트란 좀 잡아봤어...  그래서 포트란을 C처럼 짜버렸네... ㅡ,.ㅡ;
복잡해서 계가정렬부분을 함수로 묶으려고 하는데, 포트란에서 함수로 묶는건 어떻게 쓰는거야?


       PROGRAM Series

IMPLICIT NONE
INTEGER, PARAMETER :: array_Length = 245448, IETD = 3
INTEGER :: i, k, sums, j, set, element
REAL :: average, allTherain, inten
INTEGER, DIMENSION(array_Length/2) :: end_Flag, end_FlagNoRain
REAL, DIMENSION(array_Length) :: dateSeries, count, total, totalNoRain
REAL, DIMENSION(array_Length/2, array_length) :: event, eventNoRain
! dateSeries = (/ 0,5,0,0,0,4,3,0,0,0, 0,1,2,5,0,0,0,5,2,0, 3,2,0,0,1,0,0,0,0,0, 0,0,0,0,0,0,0,2,4,5, 0,0,0,0,0,0,0,0,0,0, 0,0,4,5,9,6,0,0,0,0 /)
sums = 0
count = 0

!파일입출력부
OPEN (UNIT=12, FILE="busan.txt")
DO i=1,array_Length,1
 READ(12,*) dateSeries(i)
END DO
CLOSE(12)

OPEN (UNIT=13, FILE="output.txt")
OPEN (UNIT=14, FILE="output_data.txt")
OPEN (UNIT=15, FILE="NoRain.txt")


!IETD에 따라서 COUNT변수에 표시---------
DO i = 1,(array_Length-(IETD-1)),1 
 DO k = i,(i+IETD-1),1
  sums = sums + dateSeries(k)
 END DO
  IF(sums /= 0) THEN
  count(i) = 1
  sums=0  
  END IF

END DO
sums = 0


DO k = array_Length-(IETD-1), array_Length, 1
 DO i = k, array_Length, 1
  sums = sums + dateSeries(i);
 END DO
  IF(sums /= 0) THEN
  count(k) = 1
  sums = 0
  END IF
END DO
sums = 0

DO k = array_Length,IETD,-1
 DO i=k,k-(IETD-1),-1
  sums = sums + dateSeries(i)
 END DO
  IF(sums == 0) THEN
  DO j=k,k-(IETD-1),-1  
  count(j) = 0
  END DO
  ELSE
  sums = 0
  END IF
END DO
sums = 0
 
DO k=IETD,0,-1
 DO i=k,0,-1
  sums = sums + dateSeries(i);
 END DO  
  IF(sums == 0) THEN
  count(k) = 0
  ELSE
  sums = 0
  END IF
END DO
sums = 0
!IETD에 따라서 COUNT변수에 표시---------

PRINT *, "IETD는", IETD
WRITE (13, \'("IETD는",I6)\') IETD
!PRINT *, "DATE"
!PRINT \'(1X, 15F5.2)\', (dateSeries(i), i=1, array_Length)

!PRINT *, "COUNT"
!PRINT \'(1X, 15F5.2)\', (count(i), i=1, array_Length)

 

set = 1
element =1
 DO i=1, array_Length-1,1
  IF(count(i)==0 .AND. count(i+1)==1) THEN
  element = 1
  event(set,element) = dateSeries(i)
  END IF
  
  IF(count(i)==1 .AND. count(i+1)==0) THEN
  end_Flag(set)=element
  event(set,element) = dateSeries(i)
  set = set + 1
  END IF
  
  IF(count(i)==1 .AND. count(i+1)==1) THEN
  event(set,element) = dateSeries(i)
  element = element + 1
  END IF

 END DO

 total = 0
 DO i=1,set-1,1
  !PRINT \'(1X, I6, "번 event 입니다.")\', i
  WRITE (13,\'(1x,I6, "번 event 입니다.")\' ) i
  DO j=0,end_Flag(i),1   
   total(i) = total(i) + event(i,j)
  END DO
  !PRINT \'(1X, "지속시간은 ",I4 ,"시간 ,","총합은", F10.2, "입니다.")\', end_Flag(i), total(i)
  WRITE (13,\'(1x,"지속시간은 ",I4 ,"시간 ,","총합은", F10.2, "입니다.")\') end_Flag(i), total(i)
 END DO

 PRINT \'(1x, "총이벤트 갯수 :", I5)\' , set-1
 WRITE (13,\'(1x, "총이벤트 갯수 :", I5)\')  set-1
  allTherain = 0
 DO i=1,array_Length,1
  allTherain = allTherain + dateSeries(i)
 END DO
  PRINT \'(1x, "총 강우량 : ", F10.2, ", 평균강우량 : ", F10.2)\',  allTherain, allTherain/(set-1)
     WRITE (13,\'(1x, "총 강우량 : ", F10.2, ", 평균강우량 : ", F10.2)\') allTherain, allTherain/(set-1)
 inten = 0
 DO i=1,set-1,1
  WRITE (14,\'(F10.2, I4, F10.2)\') total(i), end_Flag(i), (total(i) / end_Flag(i))
  inten = inten + (total(i) / end_Flag(i))
  !PRINT \'(F10.2)\', total(i)
  !PRINT \'(F10.2)\', inten
 END DO
  PRINT \'(1x, "평균강우강도 : ", F10.2)\', inten / (set-1)
  WRITE (13,\'(1x, "평균강우강도 : ", F10.2)\') inten / (set-1) 
  CLOSE (13)
  CLOsE (14)

!무강우지속시간(이벤트별0의갯수=(count(i)==0)), 무강우갯수(이벤트갯수),무강우평균(총0갯수/이벤트갯수)----------------
set = 1
element =1
eventNoRain = 0
 DO i=1, array_Length-1,1
  IF(count(i)==1 .AND. count(i+1)==0) THEN
  element = 1
  eventNoRain(set,element) = dateSeries(i)
  END IF
  
  IF(count(i)==0 .AND. count(i+1)==1) THEN
  end_FlagNoRain(set)=element
  eventNoRain(set,element) = dateSeries(i)
  set = set + 1
  END IF
  
  IF(count(i)==0 .AND. count(i+1)==0) THEN
  eventNoRain(set,element) = dateSeries(i)
  element = element + 1
  END IF
 END DO
 
 
 totalNoRain = 0
  DO i=1,set-1,1
   !WRITE (15,\'(1x,I6, "번 무강우 event 입니다.")\' ) i
   DO j=1,end_FlagNoRain(i),1   
    totalNoRain(i) = totalNoRain(i) + eventNoRain(i,j)
   END DO
    print \'(1x,"무강우 지속시간은 ",I4 ,"시간 ,","총합은", F10.2, "입니다.")\', end_FlagNoRain(i), totalNoRain(i)
  END DO
 CLOSE(15)

 

END PROGRAM Series

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 외모와 달리 술 일절 못 마셔 가장 의외인 스타는? 운영자 24/07/01 - -
164356 마우스 투표 [8] 123(119.198) 09.12.28 169 0
164355 비너스 프로젝트 이것 이해가 되지 않는게 몇가지가 있는데 [4] ㅎ3(112.222) 09.12.28 286 0
164354 요고 좀 짱인 덧 [4] ㅇㅇㅃ갤로그로 이동합니다. 09.12.28 151 0
164352 집밖에 눈이 왔던데, 차에 누가 낙서를 했더라 [3] Vita500갤로그로 이동합니다. 09.12.28 151 0
164351 횽들 힌트좀.... [4] snob(210.94) 09.12.28 93 0
164350 근데 문제가 [5] ∫호떡·dx갤로그로 이동합니다. 09.12.28 131 0
164349 횽들 한줄만 봐주셈(C#) [5] 할론갤로그로 이동합니다. 09.12.28 104 0
164348 C++ MFC에서 CEdit 이거 텍스트 상자 맞냐? [3] ∫호떡·dx갤로그로 이동합니다. 09.12.28 168 0
164347 아침부터 열 받는 일이 생겼어 [1] nRST갤로그로 이동합니다. 09.12.28 94 0
164346 안드로이드 후로그래머 VS CMOS칩 FAE [5] snob(210.94) 09.12.28 134 0
164345 늅늅...오늘 면접보러가는데 복장 모 입고 가나요? [11] JoJo(222.111) 09.12.28 214 0
164343 연말 시상식 G7 의 위용.tp [3] 숙신갤로그로 이동합니다. 09.12.28 179 0
164342 몽뇽이 동사했다. [3] Pupustory갤로그로 이동합니다. 09.12.28 162 0
164341 출근한지 30분.. [3] 출입증갤로그로 이동합니다. 09.12.28 96 0
164340 오토방구를 팔아버릴까... [7] 아주아슬갤로그로 이동합니다. 09.12.28 130 0
164339 어제 집에가는대.. [4] rntjr갤로그로 이동합니다. 09.12.28 131 0
164338 공간코딩언어 chiken.zip [3] 암교환식갤로그로 이동합니다. 09.12.28 143 0
164337 힘든 하루였따. [2] Gromit갤로그로 이동합니다. 09.12.28 95 0
164336 근데 c언어만 할 줄 알아도 먹고사나요? [4] 읭읭(124.153) 09.12.28 199 0
164335 웹프로그래밍 책 추천해주세요 [3] 읭읭(124.153) 09.12.28 172 0
164334 방금 사무실 출근했는데... [4] 물속의다이아갤로그로 이동합니다. 09.12.28 95 0
164331 아이폰 wi-fi 이제 잘 된다능 [1] 오사카(221.153) 09.12.28 82 0
164330 형들 C간단한거 해결이 안되는데 좀 봐주세여 [10] 카카(218.147) 09.12.28 108 0
164328 너님들 아이폰에서 무선랜 안 되서 고생하는 살람 혹시 없냐? [6] 오사카(220.88) 09.12.28 264 0
164325 횽들은 영어 되게 잘하나봐? [3] 우동국물갤로그로 이동합니다. 09.12.28 157 0
164323 C언어_프로그래밍을_마스터하는법.jpg [1] ㅇㅇ(119.202) 09.12.28 152 0
164320 읭여들을 위한 복근운동 [4] 유리한갤로그로 이동합니다. 09.12.28 127 0
164319 프갤횽들 잘하면 동갤에 모나미 인증이 올라올지도 몰라 [2] 맑탉앉앍꿇헒갤로그로 이동합니다. 09.12.28 143 0
164318 안녕하세요 방학동안 사람의수준보다 높은 인공지능을 개발하고싶습니다 [2] 나천재(211.179) 09.12.28 118 0
164316 c#에서 win32api [8] 수학의정석(115.21) 09.12.28 171 0
164313 ㅁㄴㄻㄹ횽은 봅니다 [2] Vita500갤로그로 이동합니다. 09.12.28 51 0
164312 케케켁켁횽은 봅니다 Vita500갤로그로 이동합니다. 09.12.28 24 0
164311 Only횽은 봅니다. 메신저가 전화를 대체할거라는 의미 [3] Vita500갤로그로 이동합니다. 09.12.28 64 0
164307 원전 드립 [2] 이모군(121.124) 09.12.27 65 0
164306 윈도우7으로 [3] 이;름(165.132) 09.12.27 179 0
164305 우아 원전 수출 대단하네 [3] algo갤로그로 이동합니다. 09.12.27 112 0
164304 모니터를 많이 보면 뇌에 안좋다는 이 기사... [6] dd(114.200) 09.12.27 206 0
164303 좆뉴비 질문 [8] 조혁준갤로그로 이동합니다. 09.12.27 94 0
164302 바니걸(?)...(Bunny Girl) [12] 좇문가갤로그로 이동합니다. 09.12.27 178 0
164301 방학을 알차게 보내고픈 횽들 [2] algo갤로그로 이동합니다. 09.12.27 125 0
164299 정말 많은 고민을 했다능 [7] algo갤로그로 이동합니다. 09.12.27 184 0
164298 한심하네..ㅉㅉ [9] 게쉙기가(112.146) 09.12.27 174 0
164297 완전 70년대구나 ... [2] ㅁㄴㄻㄹ갤로그로 이동합니다. 09.12.27 151 0
164294 고수 횽들 이클립스 에러 좀 알려줘 그렇게(218.101) 09.12.27 70 0
164293 opencv에대해 아는 사람 답변좀.. [4] ㄴㅂ(125.183) 09.12.27 135 0
164291 문맥[]="바닥"은 봅니다. [2] 물속의다이아갤로그로 이동합니다. 09.12.27 154 0
164290 해킹을 배우고싶은 컴맹입니다 [6] ㅇㅇ(121.139) 09.12.27 223 0
164288 임의의 win32api 메세지를 보낼 수 있나여? [1] 수학의정석(115.21) 09.12.27 72 0
164286 뉴비의 '뉴비를 위한' 책 고르는 방법 소개 [4] 물속의다이아갤로그로 이동합니다. 09.12.27 243 0
164285 뉴비의 '뉴비를 위한' C 춪천 도서 [4] algo갤로그로 이동합니다. 09.12.27 228 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2