12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- SUBROUTINE INPUTDATA(FILENAME,NOBS,TES,EMPL,EMPG,PROD,
- & REGIONAME,DEBUG,METHOD,DELTA,LABELS,CODES,SORT)
- IMPLICIT NONE
- INTEGER NOBS,DEBUG
- CHARACTER*25 FILENAME
- CHARACTER*20 REGIONAME
- CHARACTER*40 LABELS(NOBS)
- CHARACTER*5 CODES(NOBS)
- CHARACTER*5 METHOD
- CHARACTER*6 SORT
- REAL*8 TES(NOBS,NOBS),EMPL(NOBS),EMPG(NOBS),PROD(NOBS)
- REAL*8 DELTA
- REAL*8 EMPLTOT,EMPGTOT
- CHARACTER*40 LINE
- CHARACTER*10 FMT
- INTEGER N,I,J
- C LECTURE DES DONNÉES
- OPEN(UNIT=1,FILE=FILENAME)
- 1 READ(1,*) LINE
- N=SCAN(LINE,':',.FALSE.)
- IF(N.EQ.0) GOTO 1
- LINE=LINE(1:N-1)
- IF(LINE.EQ.'NOBS') THEN
- READ(1,*) NOBS
- ELSEIF(LINE.EQ.'TES') THEN
- READ(1,*) ((TES(I,J),J=1,NOBS),I=1,NOBS)
- ELSEIF(LINE.EQ.'EMP') THEN
- DO I=1,NOBS
- READ(1,*) CODES(I),EMPL(I),EMPG(I),PROD(I)
- ENDDO
- ELSEIF(LINE.EQ.'EMP-PROP') THEN
- READ(1,*) EMPLTOT,EMPGTOT
- DO I=1,NOBS
- READ(1,*) CODES(I),EMPL(I),EMPG(I),PROD(I)
- EMPL(I)=EMPLTOT*EMPL(I)/100.D0
- EMPG(I)=EMPGTOT*EMPG(I)/100.D0
- ENDDO
- ELSEIF(LINE.EQ.'DELTA') THEN
- READ(1,*) DELTA
- ELSEIF(LINE.EQ.'LABELS') THEN
- DO I=1,NOBS
- READ(1,'(A40)') LABELS(I)
- ENDDO
- ELSEIF(LINE.EQ.'METHOD') THEN
- READ(1,*) METHOD
- ELSEIF(LINE.EQ.'SORTING')THEN
- READ(1,*) SORT
- ELSEIF(LINE.EQ.'NAME') THEN
- READ(1,*) REGIONAME
- ELSEIF(LINE.EQ.'DEBUG')THEN
- READ(1,*) DEBUG
- ELSEIF(LINE.EQ.'END') THEN
- GOTO 100
- ENDIF
- GOTO 1
- 100 CONTINUE
- CLOSE(1)
- IF(DEBUG.EQ.1) THEN
- WRITE(FMT,'("("I0,"F12.3)")') NOBS
- PRINT*,'NOBS=',NOBS
- PRINT*,'CODES: ',(CODES(I),I=1,NOBS)
- PRINT*, 'EMPL'
- WRITE(6,FMT),(EMPL(I),I=1,NOBS)
- PRINT*,'EMPG'
- WRITE(6,FMT),(EMPG(I),I=1,NOBS)
- WRITE(FMT,'("("I0,"F9.3)")') NOBS
- PRINT*,'TES'
- DO I=1,NOBS
- WRITE(*,FMT),(TES(I,J),J=1,NOBS)
- ENDDO
- PRINT*,'PROD'
- WRITE(6,FMT),(PROD(I),I=1,NOBS)
- ENDIF
- RETURN
- ENDSUBROUTINE
|