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