C
C     *******************************************************
C     **                                                   **
C     **           被保険者推計をインプット                **
C     **                                                   **
C     *******************************************************
C
C
      SUBROUTINE      WAKU
C
C
      IMPLICIT INTEGER (A-Z)
      INCLUDE 'seps.inc'
C
      REAL*8 DUM
C
      CALL SUBC3(POP,STTY,ENDY,STTY,ENDY,0,2,0,2,0,115,0,115)
      CALL SUBC3(L,STTY,ENDY,STTY,ENDY,0,3,0,3,0,115,0,115)
      CALL SUBC3(LPT,STTY,ENDY,STTY,ENDY,0,3,0,3,0,115,0,115)
      CALL SUBC3(LPT1,STTY,ENDY,STTY,ENDY,0,3,0,3,0,115,0,115)
      CALL SUBC3(LPT2,STTY,ENDY,STTY,ENDY,0,3,0,3,0,115,0,115)
      CALL SUBC3(LPT2I,STTY,ENDY,STTY,ENDY,0,3,0,3,0,115,0,115)
      CALL SUBC3(LPT2P,STTY,ENDY,STTY,ENDY,0,3,0,3,0,115,0,115)
C
C
      WRITE(6,*) '外枠ファイル読み込み開始'
C
C
      U2=72
      READ(U2,*)
      READ(U2,*)
      DO 1100 S=0,2
        DO 1200 K=WKKS,WKKE
          IF(K.LT.STTY .OR. K.GT.ENDY) THEN
            READ(U2,*)
            GOTO 1200
          END IF
          READ(U2,*) DUM,SS,KK,DUM,(POP(KK-2000,SS,X),X=15,100)
          IF(K.NE.KK-2000 .OR. S.NE.SS) THEN
            WRITE(6,*) '外枠データの読ませ方が違います,POP ',KK,SS
            STOP
          END IF
 1200   CONTINUE
 1100 CONTINUE
C
C
      U2=70
      READ(U2,*)
      READ(U2,*)
      DO 1300 S=0,2
        DO 1400 K=WKKS,WKKE
          IF(K.LT.STTY .OR. K.GT.ENDY) THEN
            READ(U2,*)
            GOTO 1400
          END IF
          READ(U2,*) DUM,SS,KK,DUM,(L(KK-2000,SS,X),X=15,100)
          IF(K.NE.KK-2000 .OR. S.NE.SS) THEN
            WRITE(6,*) '外枠データの読ませ方が違います,L ',KK,SS
            STOP
          END IF
 1400   CONTINUE
 1300 CONTINUE
C
C
      IF(PSEID.EQ.0) THEN
        U2=71
        READ(U2,*)
        READ(U2,*)
        DO 1500 S=0,1
          DO 1600 K=WKKS,WKKE
            IF(K.LT.STTY .OR. K.GT.ENDY) THEN
              READ(U2,*)
              GOTO 1600
            END IF
            IF(S.NE.1) THEN
              READ(U2,*)
            ELSE
              READ(U2,*) DUM,SS,KK,DUM,(L(KK-2000,SS+2,X),X=15,100)
              IF(K.NE.KK-2000 .OR. S.NE.SS) THEN
                WRITE(6,*) '外枠データの読ませ方が違います,L',KK,SS+2
                STOP
              END IF
            END IF
 1600     CONTINUE
 1500   CONTINUE
C
      END IF
C
C
      IF(PSEID.EQ.0) THEN
        U2=75
        READ(U2,*)
        READ(U2,*)
        DO 2100 S=0,2
          DO 2200 K=WKKS,WKKE
            IF(K.LT.STTY .OR. K.GT.ENDY) THEN
              READ(U2,*)
              GOTO 2200
            END IF
            READ(U2,*) DUM,SS,KK,DUM,(LPT(KK-2000,SS,X),X=15,100)
            IF(K.NE.KK-2000 .OR. S.NE.SS) THEN
              WRITE(6,*) '外枠データの読ませ方が違います,LPT ',KK,SS
              STOP
            END IF
            IF(K.GT.STTY) THEN
              IF(LPT(K-1,S,15).EQ.0.0D0 .AND. LPT(K,S,15).GT.0.0D0) THEN
                IF(K.NE.PARTYR1 .AND. K.NE.PARTYR2) THEN
                  WRITE(6,*) 'パート導入年エラー,LPT',S,K
                  STOP
                END IF
              END IF
            END IF
 2200     CONTINUE
 2100   CONTINUE
C
C
        U2=76
        READ(U2,*)
        READ(U2,*)
        DO 2300 S=0,2
          DO 2400 K=WKKS,WKKE
            IF(K.LT.STTY .OR. K.GT.ENDY) THEN
              READ(U2,*)
              GOTO 2400
            END IF
            READ(U2,*) DUM,SS,KK,DUM,(LPT1(KK-2000,SS,X),X=15,100)
            IF(K.NE.KK-2000 .OR. S.NE.SS) THEN
              WRITE(6,*) '外枠データの読ませ方が違います,LPT1',KK,SS
              STOP
            END IF
            IF(K.GT.STTY) THEN
              IF(LPT1(K-1,S,15).EQ.0.0D0.AND.LPT1(K,S,15).GT.0.0D0)THEN
                IF(K.NE.PARTYR1-1 .AND. K.NE.PARTYR2-1) THEN
                  WRITE(6,*) 'パート導入年エラー',S,K
                  STOP
                END IF
              END IF
            END IF
 2400     CONTINUE
 2300   CONTINUE
C
C
        U2=77
        READ(U2,*)
        READ(U2,*)
        DO 2500 S=0,2
          DO 2600 K=WKKS,WKKE
            IF(K.LT.STTY .OR. K.GT.ENDY) THEN
              READ(U2,*)
              GOTO 2600
            END IF
            READ(U2,*) DUM,SS,KK,DUM,(LPT2(KK-2000,SS,X),X=15,100)
            IF(K.NE.KK-2000 .OR. S.NE.SS) THEN
              WRITE(6,*) '外枠データの読ませ方が違います,LPT2',KK,SS
              STOP
            END IF
            IF(K.GT.STTY) THEN
              IF(LPT2(K-1,S,15).EQ.0.0D0.AND.LPT2(K,S,15).GT.0.0D0)THEN
                IF(K.NE.PARTYR1-1 .AND. K.NE.PARTYR2-1) THEN
                  WRITE(6,*) 'パート導入年エラー',S,K
                  STOP
                END IF
              END IF
            END IF
 2600     CONTINUE
 2500   CONTINUE
C
C
        IF(FLG_PART.GE.3) THEN
          U2=78
          READ(U2,*)
          READ(U2,*)
          DO 2700 S=0,2
          DO 2800 K=WKKS,WKKE
            IF(K.LT.STTY .OR. K.GT.ENDY) THEN
              READ(U2,*)
              GOTO 2800
            END IF
            READ(U2,*) DUM,SS,KK,DUM,(LPT2I(KK-2000,SS,X),X=15,100)
            IF(K.NE.KK-2000 .OR. S.NE.SS) THEN
              WRITE(6,*) '外枠データの読ませ方が違います,LPT2I',KK,SS
              STOP
            END IF
            IF(K.GT.STTY) THEN
              IF(LPT2I(K-1,S,15).EQ.0.0D0 .AND.
     &           LPT2I(K,S,15).GT.0.0D0        ) THEN
                IF(K.NE.PARTYR1-1 .AND. K.NE.PARTYR2-1) THEN
                  WRITE(6,*) 'パート導入年エラー',S,K
                  STOP
                END IF
              END IF
            END IF
 2800     CONTINUE
 2700     CONTINUE
C
          U2=79
          READ(U2,*)
          READ(U2,*)
          DO 2900 S=0,2
          DO 3000 K=WKKS,WKKE
            IF(K.LT.STTY .OR. K.GT.ENDY) THEN
              READ(U2,*)
              GOTO 3000
            END IF
            READ(U2,*) DUM,SS,KK,DUM,(LPT2P(KK-2000,SS,X),X=15,100)
            IF(K.NE.KK-2000 .OR. S.NE.SS) THEN
              WRITE(6,*) '外枠データの読ませ方が違います,LPT2P',KK,SS
              STOP
            END IF
            IF(K.GT.STTY) THEN
              IF(LPT2P(K-1,S,15).EQ.0.0D0 .AND. 
     &           LPT2P(K,S,15).GT.0.0D0        ) THEN
                IF(K.NE.PARTYR1-1 .AND. K.NE.PARTYR2-1) THEN
                  WRITE(6,*) 'パート導入年エラー',S,K
                  STOP
                END IF
              END IF
            END IF
 3000     CONTINUE
 2900     CONTINUE
C
C
          DO 4000 X=15,100
          DO 4010 S=0,2
          DO 4020 K=PARTYR2-1,KE
            DUM=ABS(LPT2(K,S,X)-LPT2I(K,S,X)-LPT2P(K,S,X))
            IF(DUM.GT.(2.0D0+1.0D-6)) THEN
              WRITE(6,*) 'パートの２段階の内訳エラー',
     &                   K, S, X, LPT2(K,S,X),LPT2I(K,S,X),LPT2P(K,S,X)
              STOP
            END IF
 4020     CONTINUE
 4010     CONTINUE
 4000     CONTINUE
        END IF
C
      END IF
C
C
      RETURN
C
      END
C