디시인사이드 갤러리

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

갤러리 본문 영역

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

아리가또탈레(114.111) 2009.12.22 17:16:14
조회 88 추천 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/14 - -
AD 디지털 액세서리 기간한정 세일! 운영자 25/07/11 - -
공지 프로그래밍 갤러리 이용 안내 [88] 운영자 20.09.28 45448 65
2871526 7시에 나머지 일을 좀 체크해야긋다 ㅆㅇㅆ(124.216) 03:18 1 0
2871524 본인도 그 맹렬한 피드백 받아보셨다 [4] 헬마스터갤로그로 이동합니다. 02:13 20 0
2871522 냥덩이 유동 또 몇시간 지난 내 글에 댓글다노 ㅋㅋ ㅆㅇㅆ(124.216) 01:33 9 0
2871521 오늘 14일 데스크탑 조립. 여전히 화면 반 안보임. 넥도리아(175.196) 01:15 9 0
2871520 출근이라니 말도 안돼 [3] 아스카영원히사랑해갤로그로 이동합니다. 01:03 28 1
2871519 너네 챗지피티 한테 '폭력적 피드백' 요청해봤냐??? [3] ㅇㅇ(211.186) 00:52 51 0
2871518 %d 이거 뭔가요 [5] roh재명(125.140) 00:45 39 0
2871516 의인이 되고 싶었다. 같은 한국사람인데 같은 한 느끼는데 넥도리아(175.196) 00:35 21 0
2871515 c와 c++의 차이점 - static_cast [3] ㅇㅇ(118.235) 00:28 66 1
2871514 이런 대가족 시스템이 그립지않냐? [9] 헬마스터갤로그로 이동합니다. 00:12 57 0
2871513 뉴프로는 반성하라 [2] 개멍청한유라갤로그로 이동합니다. 00:10 22 0
2871512 월요일이다 개멍청한유라갤로그로 이동합니다. 00:06 14 0
2871511 어차피 미쳐야 하는 세상이라면 [2] 아스카영원히사랑해갤로그로 이동합니다. 07.13 36 0
2871509 신약개발 ai 모델 훈련해 보는중 [3] 익명의따당이갤로그로 이동합니다. 07.13 58 0
2871507 납골공원좀 다녀와야겠구나 [7] 헬마스터갤로그로 이동합니다. 07.13 57 0
2871506 도로롱은 귀여운데 트릭컬은 뭔가 억지 귀여움이라 거부감듬 [1] ♥지나가던길냥덩♥갤로그로 이동합니다. 07.13 27 0
2871505 오신당.. 오신당.. [1] ♥지나가던길냥덩♥갤로그로 이동합니다. 07.13 15 0
2871504 함부로 목 스트레칭하지마라 애들아 [1] 루도그담당(58.239) 07.13 31 0
2871503 애널 날씨 괜찮앗당 [1] ♥지나가던길냥덩♥갤로그로 이동합니다. 07.13 22 0
2871502 요즘 디씨에서 꼴보기 싫은거 ㅇㅅㅇ [2] 류류(118.235) 07.13 38 0
2871499 다중냥덩이론⭐+ [1] ♥지나가던길냥덩♥갤로그로 이동합니다. 07.13 20 0
2871497 불법하다 ㅈ된썰 풀어도됨? [1] 프갤러(106.101) 07.13 29 0
2871495 흙수전데 국비들으려면 알바 못함? [2] 프갤러(172.58) 07.13 44 0
2871494 자기 자신의 몸에 민감해야함 [1] ♥지나가던길냥덩♥갤로그로 이동합니다. 07.13 25 0
2871492 AI로 다하는 개발자봄. [1] 프갤러(125.129) 07.13 54 0
2871490 ㅇㅅㅇ [1] ♥지나가던길냥덩♥갤로그로 이동합니다. 07.13 21 0
2871488 ❤✨☀⭐⚡☘♥+나님 시작합니당♥+☘⚡⭐☀✨❤ ♥지나가던길냥덩♥갤로그로 이동합니다. 07.13 19 0
2871486 웃흥~ [1] ♥지나가던길냥덩♥갤로그로 이동합니다. 07.13 16 0
2871485 2찢명 좌파집단의 처참한 인재풀 외교포기선언? ♥지나가던길냥덩♥갤로그로 이동합니다. 07.13 17 0
2871481 나님은 달리구 싶당⭐+ ♥지나가던길냥덩♥갤로그로 이동합니다. 07.13 15 0
2871479 정처기 실기 6일의 기적 가능할까여 [1] 프갤러(118.235) 07.13 27 0
2871478 나님 정말로 궁금한점.. 고민.. [1] ♥지나가던길냥덩♥갤로그로 이동합니다. 07.13 17 0
2871476 지나고 보니 나름 알차게 했군 [1] ♥로스트미디어냥덩이♥갤로그로 이동합니다. 07.13 22 0
2871474 나이먹으니까 프갤에 안오게되는데 함와봤음 [7] 프갤러(121.139) 07.13 77 3
2871473 코와이네~ [1] ♥로스트미디어냥덩이♥갤로그로 이동합니다. 07.13 17 0
2871471 "6·3 대선 조작" 워싱턴중앙일보 1면에 중앙일보 "법적 대응" 발명도둑잡기(118.216) 07.13 18 0
2871470 나님 누엇어양❤+ ♥로스트미디어냥덩이♥갤로그로 이동합니다. 07.13 18 0
2871468 음기 충전 발명도둑잡기(118.216) 07.13 22 0
2871467 0ㅅ0 ♥로스트미디어냥덩이♥갤로그로 이동합니다. 07.13 15 0
2871466 친미친일 내란 극우정당 국민의힘 해산 관련 발명도둑잡기(118.216) 07.13 13 0
2871465 형님들 자바 배우려는데 기초는 자바의 신만 보고 해도 [3] ㅇㅇ(106.101) 07.13 39 0
2871464 윤석열, 스스로 ‘왕’이라 착각한 머슴의 몰락 발명도둑잡기(118.216) 07.13 18 0
2871463 오랜만에 짜투리 시간 남는데 블로그에 쓸 글 주제 생각해봐야지 [1] ㅆㅇㅆ(124.216) 07.13 40 0
2871462 커널 객체 직접 수정함 [2] 류도그담당(58.239) 07.13 82 0
2871461 장마 발명도둑잡기(118.216) 07.13 17 0
2871460 이제 끝난건가? ♥로스트미디어냥덩이♥갤로그로 이동합니다. 07.13 32 0
2871459 맨날 나 따라다니던 유동 냥덩이 이새끼 맞았던게 [2] ㅆㅇㅆ(124.216) 07.13 42 0
2871458 냥덩이 올렸던 가짜뉴스 근황 [1] 발명도둑잡기(118.216) 07.13 36 0
2871457 아줌마 패션 취급 당한다는 의상 발명도둑잡기(118.216) 07.13 30 0
뉴스 '전국노래자랑', 7/13(일) 충남 홍성군 편! 신흥 트롯황태자 김용빈 출격! 디시트렌드 07.11
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2