- #1
debbieanne
- 12
- 1
I've inherited the code below. It's giving an infinite loop but I can't find what's causing it. This is code originally on OpenVMS written now for AIX. Can you help?
Code:
SUBROUTINE MREAD3(N_VESSEL,N_TRIP,N_ICNAF,N_SPECIES,N_DELSTR,
+ N_SETDEL,N_SELSTR,VESSELS_TO_BE_SELECTED,
+ TRIPS_TO_BE_SELECTED,ICNAF_TO_BE_SELECTED,
+ SPECIES_TO_BE_SELECTED,STRATUM_TO_BE_DELETED,
+ SETS_TO_BE_DELETED,STRATUM_TO_BE_SELECTED,
+ IRECS,IER,IAREA,N_SEX,N_MALE_LFS,N_FEMALE_LFS,
+ N_UNSEXED_LFS)
INTEGER N_VESSEL,N_TRIP,N_ICNAF,N_SPECIES,N_DELSTR,N_SETDEL(20)
INTEGER N_SELSTR,IRECS,IER,IAREA,N_SEX,N_MALE_LFS,N_FEMALE_LFS
INTEGER N_UNSEXED_LFS
CHARACTER*97 INSDE INTEGER VESSELS_TO_BE_SELECTED(20)
INTEGER TRIPS_TO_BE_SELECTED(2,20)
CHARACTER*2 ICNAF_TO_BE_SELECTED(20)
INTEGER STRATUM_TO_BE_DELETED(20)
INTEGER SETS_TO_BE_DELETED(100,20)
INTEGER STRATUM_TO_BE_SELECTED(100)
INTEGER SPECIES_TO_BE_SELECTED(2)
INTEGER STRATUM_IN_USE(100),ISTRATUM
REAL LFS_TEMP(100,3)
REAL PROP
INTEGER SPECIES_CHK, STAT, ii
CHARACTER*3 STRING2
INTEGER CARD_TYPE
INTEGER VESSEL
INTEGER TRIP_NO
INTEGER SET_NO
INTEGER YEAR
INTEGER MONTH
INTEGER DAY
INTEGER SET_TYPE
INTEGER STRATUM
CHARACTER*2 DIVISION
CHARACTER*3 UNIT_AREA
INTEGER LIGHT_CONDITION
INTEGER WIND_DIRECTION
INTEGER WIND_FORCE
INTEGER SEA
INTEGER BOTTOM_TYPE
INTEGER TIME
INTEGER DURATION
INTEGER DISTANCE
INTEGER OPERATION
INTEGER DEPTH_MEAN
INTEGER DEPTH_MIN
INTEGER DEPTH_MAX
INTEGER DEPTH_BOTTOM
INTEGER TEMPERATURE_SURFACE
INTEGER TEMPERATURE_FISHED
INTEGER LATITUDE_DEG
INTEGER LATITUDE_MIN
INTEGER LONGITUDE_DEG
INTEGER LONGITUDE_MIN
INTEGER POSITION_METHOD
INTEGER GEAR
INTEGER SPECIES_CODE
INTEGER SPECIES_NUMBER
INTEGER LF_VESSEL
INTEGER LF_TRIP_NO
INTEGER LF_STRATUM
INTEGER LF_SET
INTEGER LF_DAY
INTEGER LF_MONTH
INTEGER LF_YEAR
CHARACTER*2 LF_ICNAF
INTEGER LF_TYPE
INTEGER LF_SPECIES
INTEGER LF_NUMBER
INTEGER LF_RATIO
INTEGER LF_SEX
CHARACTER*1 LF_GEAR
INTEGER LF_DAY_NITE
CHARACTER*1 LF_FILL01
INTEGER LF_GROUPING
INTEGER LF_START
INTEGER LFS(100)
CHARACTER*6 SET_OUT_FILL01
INTEGER SET_OUT_SET_NO
CHARACTER*6 SET_OUT_FILL02
INTEGER SET_OUT_SET_TYPE
INTEGER SET_OUT_STRATUM
CHARACTER*19 SET_OUT_FILL03
REAL SET_OUT_DISTANCE
CHARACTER*1 SET_OUT_FILL04
INTEGER SET_OUT_DEPTH
CHARACTER*784 SET_OUT_FILL05 CHARACTER*5 LF_OUT_FILL01
INTEGER LF_OUT_STRATUM
INTEGER LF_OUT_SET
CHARACTER*9 LF_OUT_FILL02
INTEGER LF_OUT_SPECIES
CHARACTER*7 LF_OUT_FILL03
INTEGER LF_OUT_SEX
REAL LFS_OUT(100)
CHARACTER*80 TEMP_RECORD_TEXT
CHARACTER*80 TITLE1_TEXT01 CHARACTER*20 TITLE2_TEXT01
INTEGER TITLE2_TRIPNO(6)
CHARACTER*3 TITLE2_TEXT02(6)
INTEGER TITLE2_YEAR(6)
CHARACTER*2 TITLE2_TEXT03(6) CHARACTER*80 TITLE2_ALTERNATE_TEXT01 CHARACTER*20 TITLE3_TEXT01
INTEGER TITLE3_VESSEL(6)
CHARACTER*8 TITLE3_TEXT02(6)
CHARACTER*80 TITLE3_ALTERNATE_TEXT01 CHARACTER*80 TITLE4_TEXT01
INTEGER ISTNO
CHARACTER*77 STRATUM_AREAS_FILL01
CHARACTER*5 PRINT_LINE1_TEXT01
INTEGER PRINT_LINE1_SET
CHARACTER*7 PRINT_LINE1_TEXT02
INTEGER PRINT_LINE1_TRIP
CHARACTER*5 PRINT_LINE1_TEXT03
INTEGER PRINT_LINE1_YEAR
CHARACTER*9 PRINT_LINE1_TEXT04
INTEGER PRINT_LINE1_VESSEL
CHARACTER*93 PRINT_LINE1_TEXT05 CHARACTER*5 PRINT_LINE2_TEXT01
INTEGER PRINT_LINE2_SET
CHARACTER*7 PRINT_LINE2_TEXT02
INTEGER PRINT_LINE2_TRIP
CHARACTER*5 PRINT_LINE2_TEXT03
INTEGER PRINT_LINE2_YEAR
CHARACTER*9 PRINT_LINE2_TEXT04
INTEGER PRINT_LINE2_VESSEL
CHARACTER*93 PRINT_LINE2_TEXT05 CHARACTER*133 PRINT_LINE4_TEXT01 CHARACTER*14 PRINT_LINE5_TEXT01
INTEGER PRINT_LINE5_STRATUM
CHARACTER*115 PRINT_LINE5_TEXT02 CHARACTER*32 PRINT_LINE6_TEXT01
INTEGER PRINT_LINE6_SET
CHARACTER*7 PRINT_LINE6_TEXT03
INTEGER PRINT_LINE6_TRIP
CHARACTER*5 PRINT_LINE6_TEXT04
INTEGER PRINT_LINE6_YEAR
CHARACTER*7 PRINT_LINE6_TEXT05
INTEGER PRINT_LINE6_VESSEL
CHARACTER*16 PRINT_LINE6_TEXT06
INTEGER PRINT_LINE6_STRATUM
CHARACTER*48 PRINT_LINE6_TEXT07
SET_OUT_STRATUM = 0
SET_OUT_DEPTH = 0
SET_OUT_FILL01 = ' '
SET_OUT_FILL02 = ' '
SET_OUT_FILL03 = ' '
SET_OUT_FILL04 = ' '
SET_OUT_FILL05 = ' ' LF_OUT_FILL01 = ' '
LF_OUT_FILL02 = ' '
LF_OUT_FILL03 = ' '
TITLE2_TEXT01='ANALYSIS FOR TRIP'
TITLE2_ALTERNATE_TEXT01='ANALYSIS FOR TRIP (SEE ABOVE FOR '//
+ 'COMPLETE LIST)'
TITLE3_TEXT01=' VESSEL' TITLE3_ALTERNATE_TEXT01=' VESSEL (SEE ABOVE FOR '//
+ 'COMPLETE LIST)'
TITLE4_TEXT01=' ICNAF'
PRINT_LINE1_TEXT01='SET #'
PRINT_LINE1_TEXT02=' TRIP #'
PRINT_LINE1_TEXT04=' VESSEL #'
PRINT_LINE1_TEXT05=' WAS UNSUCCESSFUL AND HAS BEEN DROPPED.'
PRINT_LINE2_TEXT01='SET #'
PRINT_LINE2_TEXT02=' TRIP #'
PRINT_LINE2_TEXT03=' YEAR'
PRINT_LINE2_TEXT04=' VESSEL #'
PRINT_LINE2_TEXT05=' HAS ZERO/BLANK DISTANCE TOWED'
PRINT_LINE4_TEXT01='MORE THAN 100 STRATUM IN THIS SELECION.'//
+ 'DIMENSIONS OF PROGRAM MUST BE CHANGED.'
PRINT_LINE5_TEXT01='STRATUM NUMBER'
PRINT_LINE5_TEXT02=' FOUND ON SET-CATCH FILE FOR THIS'//
+ ' SELECTION HAS NO MATCH ON THE STRATUM AREAS FILE.'
PRINT_LINE6_TEXT01='INVALID STRATUM NUMBER FOR SET #'
PRINT_LINE6_TEXT03='TRIP #'
PRINT_LINE6_TEXT04=' YEAR'
PRINT_LINE6_TEXT05=' VESSEL'
PRINT_LINE6_TEXT06=' . NUMBER CODED='
PRINT_LINE6_TEXT07=' '
GOTO 331
OPEN(20,FILE="TEMP1")
OPEN(6,FILE="PRINTER")
PRINT *, "OPEN(20,FILE=TEMP1 LINE 332)"301 DO I=1, 1
PRINT *, "DO LINE 336"
IF (IER.EQ.0) THEN
PRINT *, "IF (IER.EQ.0) THEN LINE 338)"
OPEN(17,FILE="STAREA")
OPEN(2,FILE="TEMP3")
DO J=1, ISTRATUM
PRINT *, "DO LINE 345"
311 READ(17,314,END=321) ISTNO,STRATUM_AREAS_FILL01
314 FORMAT(I3,A77)
write(6,*) ISTNO,STRATUM_AREAS_FILL01,STRATUM_IN_USE(J)
IF (ISTNO.NE.STRATUM_IN_USE(J)) GOTO 311
WRITE(2,314) ISTNO,STRATUM_AREAS_FILL01
END DO
END IF
REWIND(17)
CLOSE(17)
REWIND(2)
CLOSE(2)
REWIND(19)
CLOSE(19)
REWIND(20)
CLOSE(20)
REWIND(1)
CLOSE(1)
REWIND(4)
CLOSE(4)
REWIND(16)
CLOSE(16)
RETURN
PRINT *, "END DO LINE 377"
END DO
PRINT *, "DO LINE 381"
321 PRINT_LINE5_STRATUM=STRATUM_IN_USE(J)
WRITE(6,325) PRINT_LINE5_TEXT_01, PRINT_LINE5_STRATUM,
+ PRINT_LINE5_TEXT02
325 FORMAT('0',A14,I4,A83,32X)
IER=1
REWIND(17)
CLOSE(17)
REWIND(2)
CLOSE(2)
REWIND(19)
CLOSE(19)
REWIND(20)
CLOSE(20)
REWIND(1)
CLOSE(1)
REWIND(4)
CLOSE(4)
REWIND(16)
CLOSE(16)
REWIND(15)
CLOSE(15)
RETURN
331 DO I=1, 6
PRINT *, "DO LINE 418"
TITLE2_TEXT02(I)=' 19'
TITLE2_TEXT03(I)=' '
TITLE3_TEXT02(I)=' '
PRINT *, "END DO LINE 419"
END DO
MAX_STRATUM=100
ISTRATUM=0
STRATUM_IN_USE=9999
IRECS=0
N_MALE_LFS=0
N_FEMALE_LFS=0
N_UNSEXED_LFS=0
IER=0
OPERATION=0
DISTANCE=0
READ(20,335,END=341) TITLE1_TEXT01
335 FORMAT(A80)
WRITE(6,335)TITLE1_TEXT01
WRITE(1,335) TITLE1_TEXT01
IF (N_TRIP.GT.6) THEN
WRITE(1,336) TITLE2_ALTERNATE_TEXT01
WRITE(6,336) TITLE2_ALTERNATE_TEXT01
336 FORMAT(A49,31X)
ELSE
DO I=1, 6
PRINT *, "DO LINE 462"
TITLE2_TRIPNO(I)=0
TITLE2_TEXT02(I)=' '
TITLE2_YEAR(I)=0
TITLE2_TEXT03(I)=' '
PRINT *, "END DO LINE 463"
END DO
DO I=1, N_TRIP
PRINT *, "DO LINE 470"
TITLE2_TRIPNO(I)=TRIPS_TO_BE_SELECTED(2,I)
TITLE2_TEXT02(I)=' 19'
TITLE2_YEAR(I)=TRIPS_TO_BE_SELECTED(1,I)
PRINT *, "END DO LINE 469"
END DO
WRITE(1,337) TITLE2_TEXT01,(TITLE2_TRIPNO(I),TITLE2_TEXT02(I),
+ TITLE2_YEAR(I),TITLE2_TEXT03(I), I=1,6)
337 FORMAT(A20,6(I3,A3,I2,A2))
WRITE(6,337) TITLE2_TEXT01,(TITLE2_TRIPNO(I),TITLE2_TEXT02(I),
+ TITLE2_YEAR(I),TITLE2_TEXT03(I), I=1,6)
END IF
IF (N_VESSEL.GT.6) THEN
TITLE3_ALTERNATE_TEXT01(14:19)='VESSEL'
WRITE(1,338) TITLE3_ALTERNATE_TEXT01
WRITE(6,338) TITLE3_ALTERNATE_TEXT01
338 FORMAT(A49,31(' '))
ELSE
DO I=1, 6
PRINT *, "DO LINE 492"
TITLE3_VESSEL(I)=0
TITLE3_TEXT02(I)=' '
PRINT *, "END DO LINE 489"
END DO
DO I=1, N_VESSEL
PRINT *, "DO LINE 498"
TITLE3_VESSEL(I)=VESSELS_TO_BE_SELECTED(I)
write(6,*) "VESS BE SEL=",VESSELS_TO_BE_SELECTED(I)
PRINT *, "END DO LINE 494"
END DO
WRITE(1,305) TITLE3_TEXT01,(TITLE3_VESSEL(I),TITLE3_TEXT02(I),
+ I=1,6)
305 FORMAT(A20,6(I2,8(' ')))
WRITE(6,305) TITLE3_TEXT01,(TITLE3_VESSEL(I),TITLE3_TEXT02(I),
+ I=1,6)
END IF
IF (N_ICNAF.GT.17) THEN
TITLE3_ALTERNATE_TEXT01(14:19)='ICNAF '
WRITE(1,307) TITLE3_ALTERNATE_TEXT01
307 FORMAT(A80)
ELSE
TITLE4_TEXT01=' ICNAF'
DO I=1, N_ICNAF
PRINT *, "DO LINE 519"
TITLE4_TEXT01(18+(3*I):20+(3*I))=ICNAF_TO_BE_SELECTED(I)
write(6,*) "ICNAF TO BE SEL=",ICNAF_TO_BE_SELECTED(I)
PRINT *, "END DO LINE 516"
END DO
IF (N_ICNAF.GT.1)
+ TITLE4_TEXT01(23+(N_ICNAF*3):31+(N_ICNAF*3))='COMBINED'
WRITE(1,307) TITLE4_TEXT01
WRITE(6,307) TITLE4_TEXT01
END IF
DO
PRINT *, "DO LINE 535"
READ(20,339,END=341,IOSTAT=STAT) TEMP_RECORD_TEXT
WRITE(6,339) TEMP_RECORD_TEXT
339 FORMAT(A80)
IF (STAT.NE.0) EXIT
WRITE(1,339) TEMP_RECORD_TEXT
PRINT *, "END DO LINE 534"
END DO
341 OPEN(16,FILE="LENFQ")
OPEN(15,FILE="LENFQ2")
C DO WHILE ('1'B)
PRINT *, "BEFORE DO LINE 548"
DO
PRINT *, "DO LINE 548"
351 READ(16,355,END=391,IOSTAT=STAT) LF_VESSEL,LF_TRIP_NO,
+ LF_STRATUM,LF_SET,LF_DAY,LF_MONTH,LF_YEAR,LF_ICNAF,
+ LF_TYPE,LF_SPECIES,LF_NUMBER,LF_RATIO1,LF_SEX,LF_GEAR,
+ LF_DAY_NITE,LF_FILL01,LF_GROUPING,LF_START,
+ (LFS(ii),ii=1,100),LF_RATIO
355 FORMAT(I2,I3,I3,I3,I2,I2,I2,A2,I1,I4,I4,I2,I1,A1,I1,A1,I1,I3,
+ 100(I3),I5)
WRITE(6,355) LF_VESSEL,LF_TRIP_NO,
+ LF_STRATUM,LF_SET,LF_DAY,LF_MONTH,LF_YEAR,LF_ICNAF,
+ LF_TYPE,LF_SPECIES,LF_NUMBER,LF_RATIO1,LF_SEX,LF_GEAR,
+ LF_DAY_NITE,LF_FILL01,LF_GROUPING,LF_START,
+ (LFS(ii),ii=1,100),LF_RATIO
write(6,*) "LF_SEX=",LF_SEX
IF (STAT.NE.0) EXIT WRITE (STRING2,'(I3)') LF_STRATUM
ICHK = 0
DO I = 1, 3
PRINT *, "DO LINE 586"
K = ICHAR(STRING2(I:1))
IF ((K.LT.48).OR.(K.GT.57)) THEN
ICHK = 1
END IF
IF (ICHK.GT.0) GOTO 351
END DO IF (LF_STRATUM.EQ.0) GOTO 351
IF (N_VESSEL.GT.1) THEN
DO I=1, N_VESSEL
PRINT *, "DO LINE 597"
IF ((LF_VESSEL.EQ.VESSELS_TO_BE_SELECTED(I)) .AND.
+ (LF_YEAR.EQ.TRIPS_TO_BE_SELECTED(1,I)) .AND.
+ (LF_TRIP_NO.EQ.TRIPS_TO_BE_SELECTED(2,I))) THEN
IF (N_SETDEL(I).NE.0) THEN
N1=N_SETDEL(I)
DO J=1, N1
PRINT *, "DO LINE 604"
IF (LF_SET.EQ.SETS_TO_BE_DELETED(J,I)) GOTO 351
END DO
END IF
GOTO 361
END IF
END DO
GOTO 351
END IF
IF (LF_VESSEL.NE.VESSELS_TO_BE_SELECTED(1)) GOTO 351
DO I=1, N_TRIP
PRINT *, "DO LINE 615"
IF ((LF_YEAR.EQ.TRIPS_TO_BE_SELECTED(1,I)) .AND.
+ (LF_TRIP_NO.EQ.TRIPS_TO_BE_SELECTED(2,I))) THEN
IF (N_SETDEL(I).NE.0) THEN
N1=N_SETDEL(I)
DO J=1, N1
PRINT *, "DO LINE 621"
IF (LF_SET.EQ.SETS_TO_BE_DELETED(J,I)) GOTO 351
END DO
END IF
GOTO 361
END IF
END DO
GOTO 351
361 DO I=1, N_ICNAF
PRINT *, "DO LINE 631"
IF (LF_ICNAF.EQ.ICNAF_TO_BE_SELECTED(I)) GOTO 371
END DO
GOTO 351
371 IF (N_DELSTR.NE.0) THEN
DO I=1, N_DELSTR
PRINT *, "DO LINE 638"
IF (LF_STRATUM.EQ.STRATUM_TO_BE_DELETED(I)) GOTO 351
END DO
END IF
IF (N_SELSTR.NE.0) THEN
DO I=1, N_SELSTR
PRINT *, "DO LINE 644"
IF (LF_STRATUM.EQ.STRATUM_TO_BE_SELECTED(I)) GOTO 381
END DO
GOTO 351
END IF381 WRITE(15,385) LF_VESSEL,LF_TRIP_NO,LF_STRATUM,LF_SET,LF_DAY,
+ LF_MONTH,LF_YEAR,LF_ICNAF,LF_TYPE,LF_SPECIES,
+ LF_NUMBER,LF_RATIO,LF_SEX,LF_GEAR,LF_DAY_NITE,
+ LF_FILL01,LF_GROUPING,LF_START,(LFS(ii),ii=1,100)
385 FORMAT(I2,I3,I3,I3,I2,I2,I2,A2,I1,I4,I4,I2,I1,A1,I1,A1,I1,
+ I3,100(I3))
write(6,*)"LF_SEX 2=",LF_SEX
GOTO 351
END DO391 REWIND(15)
CLOSE(15)
OPEN(19,FILE="SETCAT",BLANK="NULL")
OPEN(4,FILE="TEMP5")
DO
PRINT *, "DO LINE 685"
392 READ(19,390,END=301,IOSTAT=STAT) CARD_TYPE,VESSEL,TRIP_NO,
+ SET_NO,YEAR,MONTH,DAY,SET_TYPE,STRATUM,DIVISION,UNIT_AREA,
+ LIGHT_CONDITION,WIND_DIRECTION,WIND_FORCE,SEA,BOTTOM_TYPE,
+ TIME,DURATION,DISTANCE,OPERATION,DEPTH_MEAN,DEPTH_MIN,
+ DEPTH_MAX,DEPTH_BOTTOM,TEMPERATURE_SURFACE,
+ TEMPERATURE_FISHED,LATITUDE_DEG,LATITUDE_MIN,LONGITUDE_DEG,
+ LONGITUDE_MIN,POSITION_METHOD,GEAR,SPECIES_CODE,
+ SPECIES_NUMBER,SPECIES_WT
WRITE(6,390) CARD_TYPE,VESSEL,TRIP_NO,
+ SET_NO,YEAR,MONTH,DAY,SET_TYPE,STRATUM,DIVISION,UNIT_AREA,
+ LIGHT_CONDITION,WIND_DIRECTION,WIND_FORCE,SEA,BOTTOM_TYPE,
+ TIME,DURATION,DISTANCE,OPERATION,DEPTH_MEAN,DEPTH_MIN,
+ DEPTH_MAX,DEPTH_BOTTOM,TEMPERATURE_SURFACE,
+ TEMPERATURE_FISHED,LATITUDE_DEG,LATITUDE_MIN,LONGITUDE_DEG,
+ LONGITUDE_MIN,POSITION_METHOD,GEAR,SPECIES_CODE,
+ SPECIES_NUMBER,SPECIES_WT
389 FORMAT(I1,I2,I3,I3,I2,I2,I2,I2,I3,A2,A3,I3,I1,I1,I1,I1,I4,I3,
+ F4.1,I1,I4,I4,I4,I4,F4.1,F4.1,I2,F4.1,I2,F4.1,I1,I4,I4,I6,F8.2)
390 FORMAT(I1,I2,I3,I3,I2,I2,I2,I2,I3,A2,A3,I3,I1,I1,I1,I1,I4,I3,
+ I3,I1,I4,I4,I4,I4,I3,I3,I2,I3,I2,I3,I1,I4,I4,I6,I7)
IF (SET_TYPE.NE.1) GOTO 392
IF (CARD_TYPE.EQ.5) THEN
WRITE (STRING2,'(I3)') STRATUM
ICHK = 0
DO I = 1, 3
PRINT *, "DO LINE 776"
K = ICHAR(STRING2(I:1))
IF ((K.LT.48).OR.(K.GT.57)) THEN
ICHK = 1
END IF
write(6,*)"ICHK=",ICHK
IF (ICHK.GT.0) GOTO 392
END DO
WRITE(6,*) "****** ",STAT,SET_TYPE,CARD_TYPE,ICHK,STRATUM IF (STRATUM.EQ.0) GOTO 392
IF (N_VESSEL.GT.1) THEN
write(6,*)"N_VESSEL GT1",N_VESSEL
DO I=1, N_VESSEL
PRINT *, "DO LINE 793"
write(6,*) I," ",VESSEL," ",VESSELS_TO_BE_SELECTED(I)
write(6,*) " ",YEAR," ",TRIPS_TO_BE_SELECTED(1,I)
write(6,*) " ",TRIP_NO," ",TRIPS_TO_BE_SELECTED(2,I)
IF ((VESSEL.EQ.VESSELS_TO_BE_SELECTED(I)) .AND.
+ (YEAR.EQ.TRIPS_TO_BE_SELECTED(1,I)) .AND.
+ (TRIP_NO.EQ.TRIPS_TO_BE_SELECTED(2,I))) THEN
write(6,*) "N_SETDEL=",(N_SETDEL(ii),ii=1,20)
IF (N_SETDEL(I).NE.0) THEN
N1=N_SETDEL(I)
DO J=1, N1
PRINT *, "DO LINE 804"
write(6,*) "SET_NO=",J,I,SET_NO,SETS_TO_BE_DELETED(J,I)
IF (SET_NO.EQ.SETS_TO_BE_DELETED(J,I)) GOTO 392
END DO
END IF
GOTO 393
END IF
END DO
GOTO 392
END IF
IF (VESSEL.NE.VESSELS_TO_BE_SELECTED(1)) GOTO 392
DO I=1, N_TRIP
PRINT *, "DO LINE 816"
IF ((YEAR.EQ.TRIPS_TO_BE_SELECTED(1,I)) .AND.
+ (TRIP_NO.EQ.TRIPS_TO_BE_SELECTED(2,I))) THEN
IF (N_SETDEL(I).NE.0) THEN
N1=N_SETDEL(I)
DO J=1, N1
PRINT *, "DO LINE 822"
IF (SET_NO.EQ.SETS_TO_BE_DELETED(J,I)) GOTO 392
END DO
END IF
GOTO 393
END IF
END DO
GOTO 392
393 DO I=1, N_ICNAF
PRINT *, "DO LINE 832"
write(6,*)"DIV=",I,DIVISION,ICNAF_TO_BE_SELECTED(I)
IF (DIVISION.EQ.ICNAF_TO_BE_SELECTED(I)) GOTO 394
END DO
GOTO 392
394 write(6,*)"N_DELSTR=",N_DELSTR
IF (N_DELSTR.NE.0) THEN
DO I=1, N_DELSTR
PRINT *, "DO LINE 541"
write(6,*)"STRATUM=",I,STRATUM,STRATUM_TO_BE_DELETED(I)
IF (STRATUM.EQ.STRATUM_TO_BE_DELETED(I)) GOTO 392
END DO
END IF write(6,*)"N_SELSTR=",N_SELSTR
IF (N_SELSTR.NE.0) THEN
DO I=1, N_SELSTR
PRINT *, "DO LINE 849"
write(6,*)"STBSEL=",I,STRATUM,STRATUM_TO_BE_SELECTED(I)
IF (STRATUM.EQ.STRATUM_TO_BE_SELECTED(I)) GOTO 395
END DO
GOTO 392
END IF395 write(6,*)"OPERATION,DIST=",OPERATION,DISTANCE
IF (OPERATION.GT.2) THEN
PRINT_LINE1_SET=SET_NO
PRINT_LINE1_TRIP=TRIP_NO
PRINT_LINE1_YEAR=YEAR
PRINT_LINE1_VESSEL=VESSEL
WRITE(6,345) PRINT_LINE1_TEXT01,PRINT_LINE1_SET,
+ PRINT_LINE1_TEXT02,PRINT_LINE1_TRIP,
+ PRINT_LINE1_TEXT03,PRINT_LINE1_YEAR,
+ PRINT_LINE1_TEXT04,PRINT_LINE1_VESSEL,
+ PRINT_LINE1_TEXT05
345 FORMAT(A5,I4,A7,I4,A5,I3,A9,I3,A39,54(' '))
GOTO 392
END IF
IF (DISTANCE.EQ.0) THEN
PRINT_LINE2_SET=SET_NO
PRINT_LINE2_TRIP=TRIP_NO
PRINT_LINE2_YEAR=YEAR
PRINT_LINE2_VESSEL=VESSEL
WRITE(6,346) PRINT_LINE2_TEXT01,PRINT_LINE2_SET,
+ PRINT_LINE2_TEXT02,PRINT_LINE2_TRIP,
+ PRINT_LINE2_TEXT03,PRINT_LINE2_YEAR,
+ PRINT_LINE2_TEXT04,PRINT_LINE2_VESSEL,
+ PRINT_LINE2_TEXT05
346 FORMAT(A5,I4,A7,I4,A5,I3,A9,I3,A30,63(' '))
GOTO 392
END IF
write(6,*)"IAREA,STRATUM=",IAREA,STRATUM
IF (IAREA.EQ.0) THEN
IF ((STRATUM.GE.201 .AND. STRATUM.LE.236) .OR.
+ (STRATUM.GE.301 .AND. STRATUM.LE.392) .OR.
+ (STRATUM.GE.401 .AND. STRATUM.LE.408) .OR.
+ (STRATUM.GE.501 .AND. STRATUM.LE.519) .OR.
+ (STRATUM.GE.620 .AND. STRATUM.LE.649) .OR.
+ (STRATUM.GE.705 .AND. STRATUM.LE.736) .OR.
+ (STRATUM.GE.801 .AND. STRATUM.LE.834)) GOTO 396
PRINT_LINE6_SET=SET_NO
PRINT_LINE6_TRIP=TRIP_NO
PRINT_LINE6_YEAR=YEAR
PRINT_LINE6_VESSEL=VESSEL
PRINT_LINE6_STRATUM=STRATUM
WRITE(6,347) PRINT_LINE6_TEXT01,PRINT_LINE6_SET,
+ PRINT_LINE6_TEXT03,PRINT_LINE6_TRIP,
+ PRINT_LINE6_TEXT04,PRINT_LINE6_YEAR,
+ PRINT_LINE6_TEXT05,PRINT_LINE6_VESSEL,
+ PRINT_LINE6_TEXT06,PRINT_LINE6_STRATUM,
+ PRINT_LINE6_TEXT07
347 FORMAT(A32,I4,A7,I4,A5,I3,A7,I3,A16,I4,48(' '))
IER=1
GOTO 392
END IF
396 DO J=1, MAX_STRATUM
write(6,*)"MAX_STRAT=",J,MAX_STRATUM,STRATUM,STRATUM_IN_USE(J)
IF (STRATUM.EQ.STRATUM_IN_USE(J)) THEN
GOTO 397
END IF
END DO
ISTRATUM=ISTRATUM+1
write(6,*)"MAX_STRAT=",MAX_STRATUM,STRATUM,STRATUM_IN_USE(1)
write(6,*)"IST,MAX_STRAT=",MAX_STRATUM,ISTRATUM,STRATUM_IN_USE(1)
IF (ISTRATUM.GT.MAX_STRATUM) THEN
WRITE(6,348) PRINT_LINE4_TEXT01
348 FORMAT(A79,54X)
IER=1
GOTO 392
END IF
DO J=1, MAX_STRATUM
PRINT *, "DO LINE 934"
IF (STRATUM.LT.STRATUM_IN_USE(J)) THEN
J1=J+1
DO K=MAX_STRATUM, J1, -1
PRINT *, "DO LINE 938"
STRATUM_IN_USE(K)=STRATUM_IN_USE(K-1)
END DO
STRATUM_IN_USE(J)=STRATUM
write(6,*)"348 LOOP ",J,STRATUM,STRATUM_IN_USE(J)
GOTO 397
END IF
END DO
397 SET_OUT_SET_NO=SET_NO
SET_OUT_SET_TYPE=SET_TYPE
SET_OUT_STRATUM=STRATUM
SET_OUT_DISTANCE=DISTANCE
SET_OUT_DEPTH=DEPTH_MEAN
WRITE(4,387) SET_OUT_FILL01,SET_OUT_SET_NO,SET_OUT_FILL02,
+ SET_OUT_SET_TYPE,SET_OUT_STRATUM,SET_OUT_FILL03,
+ SET_OUT_DISTANCE,SET_OUT_FILL04,SET_OUT_DEPTH,
+ SET_OUT_FILL05
387 FORMAT(A6,I3,A6,I2,I3,A19,F4.1,A1,I4,A784)
IRECS=IRECS+1
OPEN(15,FILE="LENFQ2")
LF_OUT_STRATUM=STRATUM
LF_OUT_SET=SET_NO
do ii=1,100
PRINT *, "DO LINE 978"
LFS_TEMP(ii,1)=0.0
LFS_TEMP(ii,2)=0.0
LFS_TEMP(ii,3)=0.0
end do
DO IPASS=1, N_SPECIES
PRINT *, "DO LINE 984"
SPECIES_CHK=SPECIES_TO_BE_SELECTED(IPASS)
LF_OUT_SPECIES=SPECIES_CHK
DO
PRINT *, "DO LINE 990"
398 READ(15,400,END=399,IOSTAT=STAT) LF_VESSEL,LF_TRIP_NO,
+ LF_STRATUM,LF_SET,LF_DAY,LF_MONTH,LF_YEAR,LF_ICNAF,
+ LF_TYPE,LF_SPECIES,LF_NUMBER,LF_RATIO1,LF_SEX,LF_GEAR,
+ LF_DAY_NITE,LF_FILL01,LF_GROUPING,LF_START,
+ (LFS(ii),ii=1,100),LF_RATIO
400 FORMAT(I2,I3,I3,I3,I2,I2,I2,A2,I1,I4,I4,I2,I1,I1,I1,A1,
+ I1,I3,100(I3),I5)
write(6,'(A14,I1,A1,I5)')"LF_SEX STAT 3=",LF_SEX," ",STAT write(6,*)"LF_SPECIES,SPECIES_CHK=",LF_SPECIES,SPECIES_CHK
IF (LF_SPECIES.NE.SPECIES_CHK) GOTO 398
write(6,*)"LF_VESSEL,VESSEL=",LF_VESSEL,VESSEL
IF (LF_VESSEL.NE.VESSEL) GOTO 398
write(6,*)"LF_YEAR,YEAR=",LF_YEAR,YEAR IF (LF_YEAR.NE.YEAR) GOTO 398
write(6,*)"LF_TRIP_NO,TRIP_NO=",LF_TRIP_NO,TRIP_NO IF (LF_TRIP_NO.NE.TRIP_NO) GOTO 398
write(6,*)"LF_SET,SET_NO=",LF_SET,SET_NO IF (LF_SET.NE.SET_NO) GOTO 398
write(6,*)"LF_STRATUM,STRATUM=",LF_STRATUM,STRATUM IF (LF_STRATUM.NE.STRATUM) GOTO 398
write(6,*) "LF_RATIO=",LF_RATIO IF (LF_RATIO.EQ.0) THEN
PROP=1.0
ELSE
PROP=100.0/LF_RATIO
END IF
write(6,*) "LF_SEX 4=",LF_SEX,PROP
IF (LF_SEX.EQ.1) THEN
DO I=1, 100
PRINT *, "DO LINE 1023"
LFS_TEMP(I,1)=LFS_TEMP(I,1)+LFS(I)*PROP
write(6,*)"LF_S1X,I,TEMP,LFS=",LF_SEX,I,
+ LFS_TEMP(I,1),LFS(I)
END DO
GOTO 398
END IF
IF (LF_SEX.EQ.5) THEN
DO I=1, 100
PRINT *, "DO LINE 1032"
LFS_TEMP(I,2)=LFS_TEMP(I,2)+LFS(I)*PROP
write(6,*)"LF_S2X,I,TEMP,LFS=",LF_SEX,I,
+ LFS_TEMP(I,2),LFS(I)
END DO
GOTO 398
END IF
DO I=1, 100
PRINT *, "DO LINE 1040"
LFS_TEMP(I,3)=LFS_TEMP(I,3)+LFS(I)*PROP
write(6,*)"LF_S3X,I,TEMP,LFS=",LF_SEX,I,
+ LFS_TEMP(I,3),LFS(I)
END DO
GOTO 398
END DO
399 write(6,*)"N_SEX=",N_SEX
IF ((N_SEX.EQ.1) .OR. (N_SEX.EQ.3) .OR. (N_SEX.EQ.4)) THEN
LF_OUT_SEX=1
ICHK2=0
DO I=1, 100
PRINT *, "DO LINE 1052"
LFS_OUT(I)=LFS_TEMP(I,1)+0.005
write(6,*)"LFS_OUT&TEMP=",I,LFS_OUT(I),LFS_TEMP(I,1)
IF (LFS_TEMP(I,1).GT.0.0) ICHK2=1 END DO
write(6,*)"ICHK2=",ICHK2
WRITE(4,388) LF_OUT_STRATUM,LF_OUT_SET,
+ LF_OUT_SPECIES,
+ LF_OUT_SEX,(LFS_OUT(ii),ii=1,100)
388 FORMAT(1X,I3,I3,9X,I3,7X,I1,100(F8.2))
IF (ICHK2.GT.0) N_MALE_LFS=N_MALE_LFS+1
END IF
IF ((N_SEX.EQ.2) .OR. (N_SEX.EQ.3) .OR. (N_SEX.EQ.4)) THEN
LF_OUT_SEX=5
ICHK2=0
DO I=1, 100
PRINT *, "DO LINE 1070"
LFS_OUT(I)=LFS_TEMP(I,2)+0.005
IF (LFS_TEMP(I,2).GT.0.0) ICHK2=1
END DO
WRITE(4,388) LF_OUT_STRATUM,LF_OUT_SET,
+ LF_OUT_SPECIES,
+ LF_OUT_SEX,(LFS_OUT(ii),ii=1,100)
IF (ICHK2.GT.0) N_FEMALE_LFS=N_FEMALE_LFS+1
END IF
IF (N_SEX.EQ.4) THEN
LF_OUT_SEX=0
ICHK2=0
DO I=1, 100
PRINT *, "DO LINE 1084"
LFS_OUT(I)=LFS_TEMP(I,3)+0.005
IF (LFS_TEMP(I,3).GT.0.0) ICHK2=1
END DO
C WRITE FILE(TEMP5) FROM(LF_OUT_RECORD)
WRITE(4,388) LF_OUT_FILL01,LF_OUT_STRATUM,LF_OUT_SET,
+ LF_OUT_FILL02,LF_OUT_SPECIES,LF_OUT_FILL03,
+ LF_OUT_SEX,(LFS_OUT(ii),ii=1,100)
IF (ICHK2.GT.0) N_UNSEXED_LFS=N_UNSEXED_LFS+1
END IF
IF (N_SEX.EQ.5) THEN
LF_OUT_SEX=0
ICHK2=0
DO I=1, 100
PRINT *, "DO LINE 1098"
LFS_OUT(I) = LFS_TEMP(I,1) + LFS_TEMP(I,2)
+ + LFS_TEMP(I,3) + 0.005
IF ((LFS_TEMP(I,1).GT.0.0) .OR. (LFS_TEMP(I,2).GT.0.0)
+ .OR. (LFS_TEMP(I,3).GT.0.0)) ICHK2=1
END DOC WRITE FILE(TEMP5) FROM(LF_OUT_RECORD)
WRITE(4,388) LF_OUT_FILL01,LF_OUT_STRATUM,LF_OUT_SET,
+ LF_OUT_FILL02,LF_OUT_SPECIES,LF_OUT_FILL03,
+ LF_OUT_SEX,(LFS_OUT(ii),ii=1,100)
IF (ICHK2.GT.0) N_UNSEXED_LFS=N_UNSEXED_LFS+1
END IFC CLOSE FILE(LENFQ2) ENV(REWIND_ON_CLOSE)
REWIND(15)
CLOSE(15)
END DO
END IF
END DO
C
END SUBROUTINE MREAD3
Last edited by a moderator: