ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
c                                                                     c
c 　　　　　  2000年1‐6月　aMeDAS十分間隔観測値  に対応              c
c         IR---降水量,IT----気温,ID---風向,IW---風速,IS---日照時間    c
c         ISN---積雪深,ISND----積雪深差,JHM----時間　　　　　　　　　 c
c         MMAX--24時間＊6（10分間隔），NMAX---該当する月のデータ地点数c
c         KMAX---該当する月の日数                                     c
c         ******10分観測値を時間平均値風速と時間雨量に変換*******     c
ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
               IMPLICIT REAL*4 (A-H,O-Z)
          PARAMETER(MMAX=144,NMAX=1220,KMAX=30,nbmax=1)
          DIMENSION IDAY(NMAX,KMAX),DLAT(NMAX),DLON(NMAX),
     +           JHM(MMAX),IR(NMAX,MMAX,KMAX),IT(NMAX,MMAX,KMAX),
     +           ID(NMAX,MMAX,KMAX),IW(NMAX,MMAX,KMAX),
     +           IS(NMAX,MMAX,KMAX),ILAT(NMAX),ILON(NMAX),
     +           IZX(NMAX),ISN(NMAX,MMAX,KMAX),ISND(NMAX,MMAX,KMAX),
     +           DATU(NMAX,24,kmax),DATV(NMAX,24,kmax),
     +           DATT(NMAX,24,kmax),DATR(NMAX,24,kmax),
     +           DATS(NMAX,24,kmax),DATSN(NMAX,24,kmax)
          CHARACTER fig*(*),FILEN*21,ISTA(NMAX)*5,num*2,nub*2
          CHARACTER FILEU*15,FILET*15,FILER*15,INUB(NMAX)
          PARAMETER(fig='0123456789')
          DIMENSION IBNK(NMAX)
c-------------------------------------------------------------
c parameter should be changed by users
c-------------------------------------------------------------
      IDYSTA=5
      IDYEND=6
      MHRSTA=21
      MHREND=21
      CLATSW=35.0
      CLONSW=134.0
      CLATNE=36.0
      CLONNE=135.0
c--------------------------------------------------------------
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
c   2000年4月の観測地点情報（地点番号，経度，緯度，標高）を読みとる    c
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
c
          OPEN(10,FILE='idx2000.04',STATUS='OLD')
          DO N=1,NMAX
           READ(10,100) ISTA(N),ILAT(N),ILON(N),IZX(N)
          ENDDO
 100      FORMAT(A5,32x,I5,I6,I4)

          CLOSE(10,STATUS='KEEP')

cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
c   2000年4月の地点nの　データを読みとる 　　　　　　　　　　    c
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
c
          DO N=1,NMAX
            FILEN='am100004/'//'AA4'//ista(n)//'.CSV'

            write(*,*) FILEN
            OPEN(10+N,FILE=FILEN,STATUS='OLD')
            DO K=1,KMAX
               READ(10+N,*) INUB(N),IN,IYEAR,IMON,IDAY(N,K)
C
               IF(IN.EQ.1) THEN
                 DO M=1,MMAX
                   READ(10+N,*) JHM(M),IR(N,M,K)
                 ENDDO
               ELSEIF(IN.EQ.3) THEN
                 DO M=1,MMAX
                   READ(10+N,*) JHM(M),IR(N,M,K),IT(N,M,K)
     +                                  ,ID(N,M,K),IW(N,M,K)
                 ENDDO
               ELSEIF(IN.EQ.4) THEN
                 DO M=1,MMAX
                   READ(10+N,*) JHM(M),IR(N,M,K),IT(N,M,K),ID(N,M,K)
     +                                  ,IW(N,M,K),IS(N,M,K)
                 ENDDO
               ELSEIF(IN.EQ.9) THEN
                 DO M=1,MMAX
                   READ(10+N,*) JHM(M),ISN(N,M,K),ISND(N,M,K)
                 ENDDO
               ENDIF
            ENDDO
            CLOSE(10+N)
          ENDDO
C--------------------------------------------------------------------
C--------------------------------------------------------------------
C Data Transformation ( virtual number to real physical dimension )
C       and error checking 
C--------------------------------------------------------------------
C--------------------------------------------------------------------
        DO N=1,NMAX
C--------------------------------
C--------------------------------
C Window set up for data detection 
C   
C   please input the lat-lon value
C   at SW and NE edge of window
C--------------------------------
C--------------------------------
        ALAT=ILAT(N)/1000
        ALON=ILON(N)/1000
        CLAT=AINT(ALAT)+MOD(ILAT(N),1000)/600.
        CLON=AINT(ALON)+MOD(ILON(N),1000)/600.
         IBNK(N) = 0
        IF(CLAT.GE.CLATSW.AND.CLAT.LE.CLATNE.AND.CLON.GE.CLONSW
     +                    .AND.CLON.LE.CLONNE) THEN
         IBNK(N) = 1
         DLAT(N)=CLAT
         DLON(N)=CLON
C--------------------------------
         DO K=IDYSTA,IDYEND      !  day loop 
C--------------------------------
           DO M=1,24             ! time loop
C--------------------------------
             ITOLU=0
             itold=0
             ITOLT=0
             ITOLR=0
             ITOLUU=0
             itoldu=0
             ITOLTT=0
             ITOLRR=0
C--------------------------------
             DO NN=1,6           ! 10min loop
C--------------------------------
                NST=(M-1)*6+NN   ! NST 1 to 144 
C U
                if(iw(n,NST,k).eq.99) then
                  ITOLUU=ITOLUU+1
                else
                   ITOLU=ITOLU+IW(N,NST,K)
                endif
C Udir
                if(id(n,NST,k).eq.99) then
                  ITOLDU=ITOLDU+1
                else
                   ITOLD=ITOLD+ID(N,NST,K)
                endif
C Temp
                IF(IT(N,NST,K).EQ.999) THEN
                  ITOLTT=ITOLTT+1
                ELSE
                  ITOLT=ITOLT+IT(N,NST,K)
                ENDIF
C Rain
                IF(IR(N,NST,K).EQ.999) THEN
                  ITOLRR=ITOLRR+1
                ELSE
                  ITOLR=ITOLR+IR(N,NST,K)
                ENDIF
             ENDDO
C -------------------------------- 10 min loop
C U
             if(itoluu.ne.6) then
                DATU(N,M,K)=ITOLU/(6.-ITOLUU)
             else
                datu(n,m,k)=999.
             endif
c Udir
             if(itoldu.ne.6) then
                DATV(N,M,K)=180+22.5*ITOLD/(6.-ITOLDU)
                if(DATV(N,M,K).ge.360.) DATV(N,M,K)=DATV(N,M,K)-360
             else
                datv(n,m,k)=999.
             endif
c Temp            
             if(itoltt.ne.6) then
                DATT(N,M,K)=ITOLT*0.1/(6.-ITOLTT)
             else
                datt(n,m,k)=999.
             endif
c Rain
             if(itolrr.ne.6) then
                DATR(N,M,K)=ITOLR*0.1
             else
               datr(n,m,k)=999.
             endif
           ENDDO
         ENDDO
         ENDIF
      ENDDO

C----------------------------------------------------------------------
C----------------------------------------------------------------------
C Data-output 
C----------------------------------------------------------------------
C----------------------------------------------------------------------
C
          OPEN(30,FILE='AMEDAS-1',STATUS='UNKNOWN')
C
             DO N =1,NMAX
      IF (IBNK(N).EQ.1) THEN
      WRITE(30,710) ISTA(N),DLON(N),DLAT(N)
              DO K=IDYSTA,IDYEND
                   MM1 = 1
                   MM2 = 24
                   IF (K.EQ.IDYSTA) MM1 = MHRSTA
                   IF (K.EQ.IDYEND) MM2 = MHREND
              DO M =MM1,MM2
      WRITE(30,711) DATU(N,M,K),DATV(N,M,K)
     &             ,DATT(N,M,K),DATR(N,M,K)
              ENDDO
              ENDDO
                        ENDIF
             ENDDO
 710   FORMAT(I5,2F12.4)
 711   FORMAT(4E14.6)
       CLOSE(30)
C------
       END
