디시인사이드 갤러리

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

갤러리 본문 영역

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

아리가또탈레(114.111) 2009.12.22 17:16:14
조회 86 추천 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 45272 65
2870535 ㅆㅇㅆ가 반드시 봐야할 글이네 [1] 부드러운곰탱이갤로그로 이동합니다. 09:21 8 0
2870534 SI개발자의 기준아 뭐임? [1] ㅇㅇ(117.111) 09:20 7 0
2870533 와.. 이재명 이 범죄자새끼 때문에 나라 박살나네.. ♥냥덩이♥갤로그로 이동합니다. 09:17 9 0
2870531 ❤✨☀⭐나님 시작합니당⭐☀✨❤ [1] ♥냥덩이♥갤로그로 이동합니다. 08:41 10 0
2870530 자본주의 치킨. 열몇개 업체가 밀실 단합해서 닭 한마리 3만원 처받음 프갤러(223.55) 08:16 16 0
2870529 자본주의 치새. 임플란트 해먹으려고 멀쩡한 생니 다 처갈아버림 [1] 프갤러(223.55) 08:13 15 0
2870528 오늘 아침 ㅇㅅㅇ [3] 헤르 미온느갤로그로 이동합니다. 08:11 23 0
2870527 공산주의가 옳은 이유 프갤러(223.55) 08:11 22 0
2870525 약 10년전 국비충이었는데 현재 세후 월 500받고 다닌다 [2] 프갤러(39.115) 07:15 62 0
2870524 태연 ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 06:48 21 0
2870523 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 06:46 18 0
2870519 흔한 일본의 폐급직원 [2] 프로외노자갤로그로 이동합니다. 03:02 44 0
2870517 gpt이 십련들 [2] 프갤러(122.36) 02:50 39 0
2870510 소련 사회주의의 실패적 원인은 외부 자본주의와 결탁하면서 실패함 [1] ㅆㅇㅆ(124.216) 00:27 44 0
2870509 “독재정권 한강 개발로 해운대 700배 백사장 사라져” 발명도둑잡기(118.216) 00:26 20 0
2870508 “2600만 마리 떼죽음… 역대 최악 지난해 재현되면 우짤꼬?” 발명도둑잡기(118.216) 00:24 28 0
2870507 가끔 뭔 공산주의 같은 마인드를 한놈들이 보여. 노동의 가치창출 말이야 [1] ㅆㅇㅆ(124.216) 00:23 36 0
2870506 [스트레이트] "검찰 역사 최악의 치욕" [1] 발명도둑잡기(118.216) 00:22 45 0
2870505 "'팔레스타인 집단 학살' 가담해 한국기업 이익 창출했다" 발명도둑잡기(118.216) 00:20 20 0
2870504 gpt는 답 아니면서 답인 것처럼 말하는 거 많은데 [7] 아스카영원히사랑해갤로그로 이동합니다. 00:19 59 0
2870503 개발자는 자기의지 가지고 성장 안됨 [3] 프갤러(1.245) 00:17 67 0
2870502 취직을 했는데 안간거지 취직을 못한게 아닌데 이 차이 구분을 못하노 ㅆㅇㅆ(124.216) 00:11 36 0
2870501 “어? 예쁜 조개다” 덥석 잡았다가 죽을 뻔했습니다…정체 알고 보니 발명도둑잡기(118.216) 00:11 22 0
2870500 곽원태 천안시 서북구청장, 중국 여행 중 갑작스러운 별세 발명도둑잡기(118.216) 00:09 26 0
2870499 개발자는 주변환경이 정말 중요한듯 [2] 프갤러(1.245) 00:08 59 0
2870497 게임업계의 창과 방패 (크랙방지 vs 크래커) [1] 발명도둑잡기(118.216) 00:01 22 0
2870496 커서 살까말까 고민되네 [3] 프갤러(211.46) 07.07 54 0
2870495 고춧가루 ㅇㅇ(117.111) 07.07 22 0
2870494 갠적으로 코딩 실력보다 단체에서는 조직 요구사항을 빠르게 [2] ㅆㅇㅆ(124.216) 07.07 57 1
2870493 개발 고수, 중수, 초보 [2] ㅇㅇ(125.179) 07.07 65 0
2870492 프갤 오는 시니어들은 전부 자기는 잘하는데 승진하는 애들은 ㅆㅇㅆ(124.216) 07.07 28 0
2870491 신입에게 조언. 배워야 공부해야 할 것. 퇴사 사유. [4] 프갤러(59.16) 07.07 72 0
2870490 서유리 님 께서 사회인 코스프레 하지말라고 발언을 말하셨는데, 넥도리아(121.139) 07.07 48 0
2870489 깃도 공부할 거 많네 [6] 아스카영원히사랑해갤로그로 이동합니다. 07.07 92 0
2870487 잼민이 성능 미쳣네 ㄹㅇ 프갤러(61.75) 07.07 28 0
2870485 자동화 관련 질문 (http호출) [2] ㅇㅇ(114.206) 07.07 46 0
2870484 디시에 악플유저들은 새싹 원종이임 [3] 조루디(118.235) 07.07 29 0
2870483 맥미니 m4 32 512 개발하기 충분? [4] 조루디(118.235) 07.07 39 0
2870482 알고리즘 자료구조 이런거 누가 만들었냐 [1] 뒷통수한방(1.213) 07.07 39 0
2870480 Blockudoku 알고리즘 대결 만들었어 한번만해죠 프갤러(118.235) 07.07 28 0
2870479 자사 서비스 있는 스타트업 어떰? 프갤러(1.233) 07.07 28 0
2870477 재야학계 책보고 아저씨, 제가 역사는 모르지만 [1] 넥도리아(175.196) 07.07 19 0
2870474 근데 슼유동아 궁금한게 한 8개월 넘게 따라다녔는데 안 지겹냐 [3] ㅆㅇㅆ(124.216) 07.07 46 0
2870472 현실부정하다 아카이브 보여주면 빤스런 하는건 똑같노 ㅇㅇ(211.235) 07.07 49 5
2870470 또또 아카이브 내 글 따가며 도배하는 모습이 똑같노 ㅋㅋㅋ ㅆㅇㅆ(124.216) 07.07 33 0
2870469 아니 근데 신기하지 않냐 저 슼유동 VPN까지 써가며 날 증오하는데 [1] ㅆㅇㅆ(124.216) 07.07 28 0
2870467 프갤에서 념글구걸하고 개추주작하고 [6] ㅇㅇ(211.235) 07.07 52 4
2870466 류도그담당=114.202=59.14=ㅆㅇㅆ [1] ㅇㅇ(45.84) 07.07 59 5
2870464 슼 유동 점마 대단한게 49.165행님한테도 개좆털리고 [3] ㅆㅇㅆ(124.216) 07.07 37 0
뉴스 '굿보이' 김소현, 일과 사랑 앞에 주저함 없는 ‘직진형’ 캐릭터! 극의 활력 디시트렌드 07.07
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2