디시인사이드 갤러리

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

갤러리 본문 영역

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

아리가또탈레(114.111) 2009.12.22 17:16:14
조회 87 추천 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
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 끝까지 다 본 걸 후회하게 만든 용두사미 드라마는? 운영자 25/07/07 - -
공지 프로그래밍 갤러리 이용 안내 [88] 운영자 20.09.28 45355 65
2870895 오늘의 발명 실마리: 레트로 게임기용 gmenu2x DOS용으로 포팅 [1] 발명도둑잡기(118.216) 00:28 7 0
2870894 리눅스를 윈도우95 처럼 꾸미 발명도둑잡기(118.216) 07.10 17 0
2870893 요즘 어셈다루다가 [2] 루도그담당(211.235) 07.10 36 0
2870892 술먹으면 보지 냄새 풍기면서 앵기는년들 왤케 많냐 hrin(118.235) 07.10 22 0
2870891 네이버 오픈소스 가이드 [1] 발명도둑잡기(118.216) 07.10 29 0
2870890 직장 동료들 너무 무능하다.. [2] ㅇㅇ(121.162) 07.10 38 0
2870889 리버싱 접기로 함 [5] 루도그담당(58.239) 07.10 35 0
2870888 오늘도 책 한권 끝냈군. 내 조테로 문서 풍성해짐 ㅆㅇㅆ(124.216) 07.10 16 0
2870887 매일매일이 한번이라도 실패하면 적자라서 힘들다 [1] ㅆㅇㅆ(124.216) 07.10 25 0
2870886 아일릿 신보 들어본 결과 발명도둑잡기(118.216) 07.10 13 0
2870885 아스카야 프롬프트 엔지니어링 문서 추천해줌 [2] ㅆㅇㅆ(124.216) 07.10 26 2
2870884 [IT산업] Compile 될 수 있는 AI 와 AI 의 신뢰도.. [2] +abcd3421갤로그로 이동합니다. 07.10 22 0
2870883 디씨인싸이드 에러 발명도둑잡기(118.216) 07.10 12 0
2870882 3617번이라고한다 헬마스터갤로그로 이동합니다. 07.10 12 0
2870881 켄트백 그래도 페북 7년있었잖아. ㅆㅇㅆ(124.216) 07.10 15 0
2870880 나님 유튜브 시청하며 ai 공부중 [9] 아스카영원히사랑해갤로그로 이동합니다. 07.10 37 0
2870879 근데 지피티 쓰면 코드 못쓰게 되는게 당연한 수순임. 이건 어쩔수가 없어 [7] ㅆㅇㅆ(124.216) 07.10 64 0
2870878 ❤✨☀⭐⚡☘♥+나님 시작합니당♥+☘⚡⭐☀✨❤ [2] ♥냥덩이♥갤로그로 이동합니다. 07.10 18 0
2870877 아 이제 지피티 없이 개발 못하겠네.. [2] ㅇㅇ(175.197) 07.10 28 0
2870876 마갤은 취향 안맞아서 정갤에서 정신병 뽐내는게 좋아 [2] ㅆㅇㅆ(124.216) 07.10 18 0
2870875 다 깃허브갤로 이사갔네 [2] 프갤러(106.101) 07.10 35 0
2870874 2주동안 하던 문명 한판 끝냈습니다 [4] 아스카영원히사랑해갤로그로 이동합니다. 07.10 24 0
2870873 근데 보통 Cpp17 핵심 컨셉이 스트럭쳐 바인딩이라 [2] ㅆㅇㅆ(124.216) 07.10 26 0
2870871 근데 대부분 11기준 서술이라 11기준이면 여전히 유효하긴함 [3] ㅆㅇㅆ(124.216) 07.10 34 0
2870870 c++책 다 버렸음 [2] ㅇㅇ(122.36) 07.10 53 0
2870868 sism도 자유롭게 휴가를 쓰고싶어요 [5] 개멍청한유라갤로그로 이동합니다. 07.10 33 0
2870866 로그는 누가만들었을까 [4] 개멍청한유라갤로그로 이동합니다. 07.10 51 0
2870864 내부고발자를 조심해야하는 이유.... ㅇㅇㅇㅇ(125.7) 07.10 18 0
2870863 애널 하루도 2재명 만큼 대한민국이 망해가는구낭.. ♥냥덩이♥갤로그로 이동합니다. 07.10 22 0
2870862 ❤✨☀⭐⚡☘♥+나님 시작합니당♥+☘⚡⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 07.10 19 0
2870861 나님 다른 프밍갤 갈만한곳 ㅊㅊ 받음 [2] ♥냥덩이♥갤로그로 이동합니다. 07.10 42 0
2870860 163 [2] ♥냥덩이♥갤로그로 이동합니다. 07.10 22 0
2870858 개인정보처리방침 만드는거 빡세네 ㅎㅎ 루비갤로그로 이동합니다. 07.10 21 0
2870856 ㅆㅇㅆ 그록4써봄? [1] ㅇㅇ(211.38) 07.10 32 0
2870855 나님 기도합니당❤+ [1] ♥냥덩이♥갤로그로 이동합니다. 07.10 23 0
2870854 코린이 지도편달 부탁드립다 프갤러(211.36) 07.10 14 0
2870853 그렇다고 민주당 지지하는것도 아님 ㅇㅅㅇ [1] 류류(125.244) 07.10 24 1
2870852 예전에야 나도 보수지지했는데 ㅇㅅㅇ 류류(125.244) 07.10 16 0
2870851 정치병자들은 하나같이 야옹이 좋아하네 류류(125.244) 07.10 13 0
2870850 민주당 계열 정신병자는 야옹아저씨고 류류(125.244) 07.10 14 0
2870849 윤석열 무기징역 당했음 좋겠다 ㅇㅅㅇ 류류(125.244) 07.10 14 0
2870848 나님 탈갤합니당⭐+ [1] ♥냥덩이♥갤로그로 이동합니다. 07.10 22 0
2870847 뚱뚱한데 친절한녀 귀엽지않냐? [6] 헬마스터갤로그로 이동합니다. 07.10 46 0
2870846 냥덩이를 정신병자 스토커 멍유한테서 구해줄 영웅은 없는걸깡..? [3] ♥냥덩이♥갤로그로 이동합니다. 07.10 42 0
2870845 한국인이라는 사실 자체가 언제나 부끄럽고 수치스럽다. 나는 사람이고 싶다 [2] ㅆㅇㅆ(124.216) 07.10 45 0
2870844 LTV보다는 Y1 수익에 집중하는 태도 그게 바로 한국인. [1] ㅆㅇㅆ(124.216) 07.10 33 0
2870843 헉..! [1] ♥냥덩이♥갤로그로 이동합니다. 07.10 20 0
2870842 ❤✨☀⭐나님 시작합니당⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 07.10 12 0
2870841 트럼프의 좌파 카르텔 대청소 리재명 때문에 한국사람들만 피해본다 ♥냥덩이♥갤로그로 이동합니다. 07.10 26 0
뉴스 크레이즈엔젤, 직접 밝힌 데뷔 소감 "꿈에 그리던 일 설레, 좋은 모습 보여드릴 것" [일문일답] 디시트렌드 07.10
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2