C*********************************************************************** C PROGRAM TRANSECT -- THIS PROGRAM HAS BEEN DESIGNED AS A GENERAL C ANALYSIS PACKAGE FOR ESTIMATION OF DENSITY FROM LINE TRANSECT C DATA. GENERAL INFORMATION AND REFERENCES DESCRIBING THE PROGRAM C ARE GIVEN THROUGH FORMAT STATEMENTS DURING PROGRAM EXECUTION. C C C THE INPUT FOR THE PROGRAM CONSISTS OF A CONTROL CARD SET AND C A DATA SET WHICH CAN BE ON THE SAME OR DIFFERENT FILES.THE PROGRAM C IS DESIGNED TO HANDLE A SERIES OF CONTROL CARD AND DATA SETS FOR C EACH PROGRAM EXECUTION.THESE SERIES ARE SEPARATED WITH A FLAG CARD C WHICH HAS 'END.' IN THE FIRST FOUR COLUMNS OF THE RECORD(CARD). C AN INDIVIDUAL DATA SET CAN BE COMPOSED OF ANY NUMBER OF REP- C LICATIONS (I.E., DISTINCT TRANSECT LINES). THE PROGRAM CAN BE C MADE TO ANALYZE ALL OF THE REPLICATIONS TOGETHER(POOL) OR EACH C OF THE REPLICATIONS SEPARATELY(.NOT. POOL). IF THE DATA ARE C POOLED THEN THE NUMBER OF REPLICATIONS(IREP) IS 1. IF THE DATA C ARE NOT POOLED THEN THE NUMBER OF REPLICATIONS(IREP) IS EQUAL C TO THE NUMBER OF REPLICATIONS(LINES) WHICH HAVE A NON-ZERO SAMPLE C SIZE( REPLICATIONS WITH A SAMPLE SIZE OF ZERO ARE INDICATED C IN THE CONTROL CARDS). C IF THE CONTROL CARD SETS AND THE DATA SETS ARE ON THE SAME C FILE THEN THE FORM OF THE INPUT FILE IS AS FOLLOWS: C C CONTROL CARD SET 1 C DATA SET 1 C LINE 1 C LINE 2 C . C . C . C LINE IREP C END. C CONTROL CARD SET 2 C DATA SET 2 C LINE 1 C LINE 2 C . C . C . C LINE IREP C END. C . C . C . C - END OF FILE - C C IF THE CONTROL CARD SETS AND DATA SETS ARE ON SEPARATE FILES C THEN THE FORM OF THE INPUT FILES ARE AS FOLLOWS: C C CONTROL CARD FILE C ----------------- C CONTROL CARD SET 1 C END. C CONTROL CARD SET 2 C END. C . C . C . C - END OF FILE - C C DATA FILE C --------- C DATA SET 1 C LINE 1 C LINE 2 C . C . C . C LINE IREP C END. C DATA SET 2 C LINE 1 C LINE 2 C . C . C . C END. C . C . C . C - END OF FILE - C C C IN THE PROGRAM THE VARIABLE IC IS USED AS A FLAG TO INDICATE C THE END OF DATA SETS AND THE END OF THE DATA FILE. THE VARIABLE C II IS USED AS A COUNTER FOR REPLICATIONS WITHIN A DATA SET. C THE GENERAL FLOW OF THE PROGRAM IS:1)PROCESS THE CONTROL CARDS C IN CNTRL, 2)READ IN THE DATA AND DO DESCRIPTIVE OUTPUT IN GRPD OR C UNGRPD, 3)PERFORM PERPENDICULAR DISTANCE ESTIMATION (PEREST) AND/ C OR SIGHTING DISTANCE-ANGLE ESTIMATION (SIGEST), 4) CALL SUMARY C TO SUMMARIZE THE RESULTS IF THERE IS MORE THAN ONE ESTIMATOR AND C TO STORE THE ESTIMATES, 5) CHECK IF ALL OF THE REPLICATIONS HAVE C BEEN PROCESSED - A)IF THEY HAVE AND THE END OF THE DATA WAS REACH- C ED (IC=-1 OR -2) THEN CALL SUMARY IF SEPARATE ESTIMATES OF DENSITY C WERE MADE FOR EACH REPLICATE. THEN EITHER PROCESS MORE CONTROL C CARDS(IC=-2) OR STOP(IC=-1), B) IF THEY HAVE BUT THE END OF THE C DATA WAS NOT REACHED(IC=0) THEN TRY TO SKIP THE DATA SET AND C CONTINUE(THIS MEANS MORE REPLICATES WERE GIVEN THAN INDICATED BY C CONTROL CARDS),C)IF THEY HAVE NOT AND IC=0 THEN INCREASE THE COUN- C TER II BY 1 AND GO BACK TO STEP 2 TO PROCESS MORE REPLICATIONS,OR C D) IF THEY HAVE NOT AND IC=-1, WRITE OUT AN ERROR MESSAGE AND STOP C OR IF IC=-2 WRITE OUT AN ERROR MESSAGE AND CONTINUE AT STEP 1(THIS C MEANS THAT TOO FEW REPLICATIONS WERE FOUND THAN WERE INDICATED BY C THE CONTROL CARDS). C C THE FOLLOWING IS A LIST OF THE COMMON STATEMENTS USED THROUGH- C OUT THE PROGRAM. NUMBERS 20-27 ARE ONLY FOR TEMPORARY STORAGE AND C NOT OF MAJOR CONCERN. C C 1) ALPHA C 2) DESOPT C 3) DPAR C 4) ESTM C 5) FILE C 6) IND C 7) INTEG C 8) INTER C 9) LINE C 10) MEASUR C 11) NUM C 12) OLD C 13) OPTION C 14) PART C 15) PDOPT C 16) SPLOT C 17) SOLN C 18) STATS C 19) STORE C 20) TS C 21) KEEP C 22) HOLD C 23) TEMP C 24) LPASS C 25) SUMST C 26) TSINTG C 27) ERROR C C THE FOLLOWING IS A LIST OF THE VARIABLES IN THE FIRST 19 COM- C MON STATEMENTS IN ALPHABETICAL ORDER. A DEFINITION IS GIVEN FOR C THE VARIABLE AND THE NUMBER OF THE ASSOCIATED COMMON STATEMENT IS C IN PARANTHESIS. C C A(I) (3) - I=1,NPAR; THE ARRAY OF ESTIMATED COEFFICIENTS FOR THE C PARTICULAR ESTIMATOR BEING EXAMINED. IT IS ALSO RE- C FERENCED AS PAR(I), I=1, NPAR. C C CCUT(I,J) (8) - I=1,NCUT, J=1,NKC (I); CONTAINS THE CUT POINTS C FOR THE NCUT SET OF CUT POINTS. C C CDFPLT (2) - LOGICAL VARIBLE THAT INDICATES CDF PLOTS OF THE DATA C SHOULD BE OUTPUT (IF TRUE). C C CELL (I) (14) - I=1, KCUT; THE AREA UNDER THE CURVE F(X) FOR C CUT(I-1).LE.X.LE.CUT(I) . C C CNT (11) - THE NUMBER OF OBSERVATIONS OF PERPENDICULAR DISTANCE C AFTER TRUNCATION. C C CONV (11) - AN ARRAY CONTAINING THE CONVERSION FACTORS FOR DIS- C TANCE, LENGTH, AND AREA. C C CORMAT (I,J) (18) - I=1,5, J=1,5, - AN ARRAY WHICH CONTAINS THE C CORRELATIONS (LOWER DIAGONAL) OF THE 5 POSSIBLE MEAS- C UREMENTS AND THEIR SIGNIFICANCE LEVEL(UPPER DIAGONAL) C C CUT (I) (8) - I=1, KCUT; A SET OF CUT POINTS FOR PERPENDICULAR C DISTANCE. C C CUTP (13) - LOGICAL VARIABLE THAT INDICATES THE USER WILL DEFINE C CUT POINTS FOR THE HISTOGRAMS OF PERPENDICULAR DIS- C TANCES. (IF TRUE) C C D (I) (19) - I=1, NPD+NSD; STORES DENSITY ESTIMATES FOR BOTH PER- C PENDICULAR DISTANCE ESTIMATORS AND SIGHTING DISTANCE- C ANGLE ESTIMATORS FOR A PARTICULAR REPLICATION FOR C SUMMARIZATION. C C DATA (I,J) (10) - I=1,N, J=1,5; THIS ARRAY CONTAINS THE RAW DATA. C IN ORDER, IT CONTAINS PERPENDICULAR DISTANCES (J=1), C SIGHTING DISTANCES (J=2), MEASURED SIGHTING ANGLE (J= C 3), COMPUTED SIGHTING ANGLE (J=4) AND THE SINE OF THE C SIGHTING ANGLE (J=5). OFTEN THIS ARRAY WILL BE SPEC- C IFIED BY PD(OR X), SD, MESANG, COMANG, SINA. C C DEF (13) - LOGICAL VARIABLE THAT INDICATES THE USER HAS CHOSEN C THE DEFAULT MODE (IF TRUE). C C DESC (13) - LOGICAL VARIABLE THAT INDICATES DESCRIPTIVE OUTPUT C SHOULD BE GIVEN (IF TRUE). C C DL (I) (19) - I=1, NPD+NSD; STORES THE LOWER CONFIDENCE LIMITS OF C THE DENSITY ESTIMATES FOR SUMMARIZATION. C C DU (I) (19) - I=1, NPD+NSD -;STORES THE UPPER CONFIDENCE LIMITS OF C THE DENSITY ESTIMATES FOR SUMMARIZATION. C C FMAX (17) - THE MAXIMUM VALUE OF F(X) FOR 0.LE. X .LE.W. C C FMIN (17) - THE MINIMUM VALUE OF F(X) (USUALLY SET TO ZERO C EXCEPT FOR THE FOURIER SERIES WHICH CAN GO NEGATIVE). C C FREQ (I) (8) - I=1, KCUT; THE FREQUENCIES CORRESPONDING TO THE IN- C TERVALS IN CUT. C C FZ (17) - AN ARRAY OF FUNCTIONAL EVALUATIONS OF F(X) FOR PLOT- C TING. C C FZERO (17) - THE POINT ESTIMATE OF F(0) - THE PDF OF PERPENDICULAR C DISTANCES EVALUATED AT THE ORIGIN - REFERENCED SOME- C TIMES AS F0. C C G (I) (12) - I=1, NPAR; THE VALUES OF THE LOG-LIKELIHOOD EQUATIONS C FOR THE NPAR PARAMETERS AT THEIR CURRENT VALUES. C C GRP (13) - LOGICAL VARIABLE THAT INDICATES THE DATA ARE GROUPED C (IF TRUE). C C HEAD (1) - CONTAINS THE LABEL FOR THE SUBSET OF THE DATA. C C HELP (13) - LOGICAL VARIABLE THAT INDICATES NARRATIVE MATERIAL C SHOULD BE OUTPUT (IF TRUE). C C HIST (2) - LOGICAL VARIABLE THAT INDICATES HISTOGRAMS OF THE DATA C SHOULD BE OUTPUT (IF TRUE). C C IC (6) - A FLAG CARD IF IC=0 THEN MORE REPLICATIONS ARE STILL C TO BE PROCESSED, IF IC=-2 THEN AN END. CARD WAS PRO- C CESSED SO ANOTHER CONTROL CARD SET IS PROCESSED, AND C IF IC=-1 THEN THE END OF THE DATA FILE WAS ENCOUNTER- C ED. C C IDF (11) - THE NUMBER OF DEGREES OF FREEDOM FOR THE T-DISTRIBU- C TION; IT IS EQUAL TO THE NUMBER OF REPLICATE LINES -1 C C II (6) - A COUNTER FOR THE REPLICATION WHICH IS CURRENTLY C BEING PROCESSED. C C IMAT (I,J) (12) - I=1, NPAR, J=1, NPAR; A STORAGE SPACE FOR THE C VARIANCE-COVARIANCE MATRIX. C C IPAGE (1) - THE PAGE NUMBER FOR THE OUTPUT. C C IREP (6) - THE NUMBER OF REPLICATIONS IN THE DATA. IF POOL IS C TRUE THEN IREP=1 AFTER A VARIANCE OF N IS CALCULATED. C IF POOL IS FALSE THEN IREP IS THE NUMBER OF REPLICA- C TIONS WITH A NON-ZERO SAMPLE SIZE. C C KCUT (8) - THE NUMBER OF INTERVALS FOR A PARTICULAR SET OF CUT C POINTS FOR PERPENDICULAR DISTANCE. C C LABEL (1) - AN ARRAY CONTAINING THE GENERAL LABEL. C C LIST (2) - LOGICAL VARIABLE THAT INDICATES A DATA LISTING AND C SUMMARY STATISTICS SHOULD BE OUTPUT (IF TRUE). C C LOGL (I) (19) - I=1, NPD; STORES THE LOG-LIKELIHOOD VALUES OF THE C PERPENDICULAR DISTANCE ESTIMATES FOR SUMMARIZATION. C C N (11)- THE TOTAL SAMPLE SIZE OF OBSERVATIONS. C C NCUT (8) - THE NUMBER OF CUT POINT SETS FOR THE HISTOGRAMS OF C PERPENDICULAR DISTANCE; IF THE PROGRAM SPECIFIES THE C CUT POINTS FOR UNGROUPED DATA THEN NCUT=3; FOR GROUP- C ED DATA NCUT=1. C C NK (I) (8) - I=1, NCUT; CONTAINS THE SAME AS NKC EXCEPT THE UN- C MODIFIED NUMBERS ARE STORED HERE. C C NKC (I) (8) - I=1, NCUT; CONTAINS THE NUMBER OF CUT POINTS (KCUT) C FOR EACH CUT POINT SET. THIS NUMBER IS MODIFIED IF C SOME OF THE CUT POINTS EXCEED THE WIDTH. C C NPAR (3) - THE NUMBER OF PARAMETERS USED IN THE MODEL. C C NPD (4) - THE NUMBER OF PERPENDICULAR DISTANCE ESTIMATORS TO BE C COMPUTED. C C NPSET (I) (15) - I=1, NPD+NSD; CONTAINS THE NUMBER OF PARAMETERS C TO BE USED IN AN ESTIMATOR AS SPECIFIED BY THE C USER. IF STARTING VALUES HAVE BEEN GIVEN BY THE USER C THEN IT CONTAINS THE NUMBER OF STARTING VALUES. IT C IS ALSO USED TO STORE THE FINAL NUMBER OF PARAMETERS C USED IN THE MODEL AS DETERMINED BY THE PROGRAM IF C THEY WERE NOT SPECIFIED BY THE USER. C C NSD (4) - THE NUMBER OF SIGHTING DISTANCE ESTIMATORS TO BE COM- C PUTED. C C OLDG (I) (12) - I=1, NPAR; THE VALUES OF THE LOG-LIKELIHOOD EQUA- C TIONS FOR THE NPAR PARAMETERS AT THEIR OLD VALUES C FROM THE PREVIOUS STEP. C C OLDPAR (I) (12) - I=1, NPAR; THE VALUES OF THE PARAMETER ESTIMATES C AT THE PREVIOUS STEP. C C OLDXLL (12) - THE LOG-LIKELIHOOD VALUE AT THE PREVIOUS PARAMETER C ESTIMATES. C C PB (I,J) (19) - I=1, NCUT, J=1, NPD; STORES THE CHI-SQUARE PROBA- C BILITIES OF THE GOODNESS OF FIT OF THE PERPENDICULAR C DISTANCE ESTIMATORS TO THE VARIOUS CUT POINT SETS. C C PCELL (I,J) (14) - I-1, KCUT, J=1, NPAR; THE VALUE OF THE PARTIALS C OF F(X) FOR CUT(I-1).LE. X .LE. CUT(I), FOR THE JTH C PARAMETER C C PDEST (I)(4) - I=1, NPD;THE INDICES FOR THE PERPENDICULAR DISTANCE C ESTIMATORS. C C PEST (13) - LOGICAL VARIABLE THAT INDICATES PERPENDICULAR DIS- C TANCE ESTIMATION SHOULD BE PERFORMED (IF TRUE). C C PLOTS (2) - LOGICAL VARIABLE THAT INDICATES CROSS PLOTS OF THE C DATA SHOULD BE OUTPUT (IF TRUE). C C PLT (I,J) (16) - I=1, 51, J=1, 103; AN ARRAY WHICH IS USED FOR C PLOTTING CROSSPLOTS, CDF PLOTS, AND PLOTS OF HISTO- C GRAMS OF PERPENDICULAR DISTANCE OVERLAID WITH THE ES- C TIMATED FUNCTION. C C POOL (13) - LOGICAL VARIABLE THAT INDICATES THE DATA SHOULD BE C POOLED FOR ONE DENSITY ESTIMATE (IF TRUE). C C PRF0A (7) - F0R THE PARAMETRIC PERPENDICULAR DISTANCE MODELS THIS C VARIABLE CONTAINS THE VALUE OF THE PARTIAL OF F(0) C WITH RESPECT TO THE FIRST PARAMETER. C C PRF0B (7) - SAME AS PRF0A EXCEPT FOR THE SECOND PARAMETER. C C PSTRT (I,J) (15) - I=1, NPD, J=1, NPSET(I); CONTAINS THE STARTING C VALUES FOR THE PERPENDICULAR DISTANCE ESTIMATORS C WHICH HAVE BEEN SPECIFIED BY THE USER. C C RF0 (7) - F0R THE PARAMETRIC PERPENDICULAR DISTANCE MODELS THIS C VARIABLE CONTAINS THE VALUE OF THE NORMALIZING CON- C STANT. FZERO= 1./RF0. C C RFREQ (I,J)(8) - I=1,NCUT, J=1,NKC(I);CONTAINS THE FREQUENCIES FOR C THE NCUT SETS OF CUT POINTS. C C SDEST (I) (4) - I=1, NSD; THE INDICES FOR THE SIGHTING DISTANCE C ESTIMATORS. C C SEST (13) - LOGICAL VARIABLE THAT INDICATES SIGHTING DISTANCE - C ANGLE ESTIMATION SHOULD BE PERFORMED (IF TRUE). C C SET (15) - A LOGICAL VARIABLE THAT INDICATES THAT THE NUMBER OF C PARAMETERS WILL BE SET IN THE MODEL. THE LOGICAL C VARIABLE MSET HAS THE SAME RELATIONSHIP TO SET AS C MSTRT DOES TO STRT. C C SK (5) - A LOGICAL VARIABLE WHICH IF TRUE INDICATES THAT A SET C OF DATA AND CONTROL CARDS HAVE BEEN SUCCESSFULLY C SKIPPED IF AN ERROR IS ENCOUNTERED. C C SM (I) (18) - I=1, 10; AN ARRAY CONTAINING THE MEANS (I=1,5) AND C STANDARD ERRORS (I=6,10) OF THE 5 POSSIBLE MEASURE- C MENTS (PD,SD,MESANG,COMANG,SINA). C C STATUS (6) - CONTAINS AN INTEGER VALUE WHICH INDICATES THE TYPES C OF MEASUREMENTS RECORDED. C C STD (I) (19) - I=1, NPD+NSD; STORES THE STANDARD ERRORS OF THE C DENSITY ESTIMATES FOR SUMMARIZATION. C C STRT (15) - A LOGICAL VARIABLE THAT INDICATES THAT STARTING VALUES C ARE GIVEN ON THE ESTIMATOR CONTROL CARDS. THE C LOGICAL VARIABLE MSTRT SERVES THE SAME PURPOSE AS C STRT BUT IT IS SPECIFIC FOR THE ESTIMATOR BEING COM- C PUTED. NOT ALL ESTIMATORS NEED TO HAVE STARTING C VALUES. C C SYSIN (5) - THE DATA INPUT FILE NUMBER. C C SXL (9) - THE TOTAL LINE LENGTH FOR ALL RELICATE LINES. C C TRUNC (13) - LOGICAL VARIABLE THAT INDICATES THE DATA ARE TRUN- C CATED (IF TRUE). C C UL (1) - AN ARRAY CONTAINING THE LABELS FOR THE UNITS OF DIS- C TANCE,LENGTH, AND AREA MEASUREMENTS. C C VARA (I,J) (3) - I=1, NPAR, J=1, NPAR; THE ESTIMATED VARIANCE CO- C VARIANCE MATRIX OF THE ESTIMATED COEFFICIENTS (ALSO C REFERENCED AS VCMAT (I,J). C C VARF (17) - THE VARIANCE ESTIMATE OF F(0) SOMETIMES REFERENCED C AS VARF0. C C VARN (11) - THE SAMPLING VARIANCE OF THE NUMBER OF OBSERVATIONS- C AFTER TRUNCATION; IF WARN=TRUE THEN IT IS EQUAL TO C THE SAMPLE SIZE CNT; IF WARN IS FALSE IT CONTAINS A C VARIANCE ESTIMATE WEIGHTED BY LINE LENGTH FROM THE C NUMBER OF OBSERVATIONS FROM THE REPLICATE LINES. C C WARN (11) - A LOGICAL VARIABLE WHICH INDICATES THAT IT IS ASSUM- C ED THAT THE DISTRIBUTION OF THE SAMPLE SIZE IS C POISSON (IF TRUE). C C WIDTH (11) - THE WIDTH OF THE TRANSECT; IF TRUNC IS TRUE THEN THE C WIDTH HAS BEEN SPECIFIED BY THE USER; IF TRUNC IS C FALSE THEN THE WIDTH IS THE LARGEST PERPENDICULAR C DISTANCE FOR UNGROUPED DATA OR THE FINAL CUT POINT C IN GROUPED DATA. C C XL (I) (11) - I=1, IREP; AN ARRAY CONTAINING THE LINE LENGTHS FOR C THE VARIOUS REPLICATIONS. C C XLL (12) - THE LOG-LIKELIHOOD VALUE AT THE CURRENT PARAMETER C ESTIMATES. C C NOTES: C THERE ARE TWO DIMENSIONS WHICH MAY NEED TO BE ADJUSTED IN THE PRO- C GRAM DEPENDING ON THE PARTICULAR NEEDS OF THE USER. THESE TWO C DIMENSIONS ARE THE MAXIMUM NUMBER OF DATA POINTS AND THE MAXIMUM C NUMBER OF REPLICATE LINES. THEY ARE NOW SET IN PARMTR.INC, AND ARE C INCLUDED AS NECESSARY TO CHANGE THE PROGRAM. HENCE ONLY THE C PARAMETER STATEMENTS IN PARMTR.INC REQUIRE CHANGING. C C THE LOGICAL UNITS USED IN THE PROGRAM ARE: C 5 - DATA INPUT FILE(FOR CONTROL CARDS AND/OR DATA) C 6 - OUTPUT FILE C OTHER LOGICAL UNITS CAN BE SPECIFIED FOR THE INPUT FILE FOR THE C DATA BUT THE CONTROL CARDS MUST ALWAYS BE ON FILE 5. THE USER IS C RESPONSIBLE FOR SETTING UP THE NECESSARY FILE CONTROL CARDS FOR C THE PARTICULAR COMPUTER ON WHICH THE PROGRAM WILL BE RUN. C C THIS PROGRAM WAS WRITTEN BY JEFFREY L. LAAKE (INTER-AMERICAN C TROPICAL TUNA COMMISSION) AND KENNETH P. BURNHAM (U S FISH AND C WILDLIFE SERVICE) C C*********************************************************************** PROGRAM TRNSCT C*********************************************************************** C MAIN PROGRAM C C C SUBROUTINES CALLED: CNTRL,GRPD,UNGRPD,PEREST,SIGEST,SUMARY,SKIP, C HEADER C*********************************************************************** C DECLARATIONS C*********************************************************************** INCLUDE 'PARMTR.INC' CHARACTER*1 BLK(30), TITLE(30), BL, UL, LABEL, HEAD, KEY(4) CHARACTER*66 FILEIN,FILOUT,FILDOC CHARACTER*1 PLOT(51,68) CHARACTER*255 PATH(2) EQUIVALENCE (PLOT,PATH) INTEGER CNT, PDEST, SDEST, SYSIN, STATUS, FILPOS LOGICAL WARN, STRT, SET, SK, GRP, POOL, PEST, SEST, DESC, DEF, 1 CUTP, TRUNC LOGICAL LIST, HST, CDFPLT, PLOTS, HELP, ALLBLK, FEXIST REAL LOGL, XHOLD(3) C*********************************************************************** C COMMON STATEMENTS C*********************************************************************** COMMON /STORE/ D(13), DL(13), DU(13), STD(13), LOGL(10), PB(5,10) COMMON /IND/ IC, II, IREP, STATUS COMMON /HOLD/ XHOLD, ALLBLK COMMON /HOLDS/ TITLE, BLK COMMON /FILE/ SYSIN, SK, FILPOS COMMON /FILES/ FILEIN,FILOUT,FILDOC COMMON /PLOTS/ PLOT COMMON /NUM/ XL(MAXLIN), WIDTH, N, CNT, CONV(3), VARN, IDF, WARN COMMON /INTER/ KCUT, CUT(MAXCEL), FREQ(MAXCEL), NCUT, NKC(5), 1 NK(5), RFREQ(5,MAXCEL), CCUT(5,MAXCEL) COMMON /ESTM/ PDEST(10), SDEST(3), NSD, NPD COMMON /PDOPT/ STRT, SET, PSTRT(10,MAXPAR), NPSET(10) COMMON /OPTION/ GRP, POOL, PEST, SEST, DESC, DEF, CUTP, TRUNC, 1 HELP COMMON /DESOPT/ LIST, PLOTS, HST, CDFPLT COMMON /ALPHA/ LABEL(80), HEAD(30), UL(3,25) COMMON /PAGE/ IPAGE COMMON /LINE/ SXL COMMON /SOLN/ FZERO, VARF, FMAX, FMIN, FZ(100) COMMON /MEASUR/ DATA(MAXOBJ,5) DOUBLE PRECISION PAR, VCMAT, G, XLL COMMON /DPAR/ PAR(MAXPR2), VCMAT(MAXPAR,MAXPAR), G(MAXPAR), 1 XLL, NPAR, IINDEX INCLUDE 'SCREEN.INC' C*********************************************************************** C DATA STATEMENTS C*********************************************************************** DATA KEY /'E','N','D','.'/,BL/' '/ C C CHECK EXECUTION LINE FOR OPTIONS C CALL REGSVE CALL RDLINE(LINE,NCHAR) CALL CVTCAS(LINE) C C OPEN UP OUTPUT FILE, IF SPECIFIED, OTHERWISE DEFAULT TO SCREEN C I=INDEX(LINE,'O=')+INDEX(LINE,'L=') IF (I.GT.0) THEN FILOUT=LINE(I+2:NCHAR) I=INDEX(FILOUT,' ') FILOUT(I:)=' ' OPEN(UNIT=6,FILE=FILOUT,STATUS='UNKNOWN') ENDIF C C OPEN UP INPUT FILE IF SPECIFIED, OTHERWISE USE SCREEN INTERFACE C I=INDEX(LINE,'I=') IF (I.GT.0) THEN FILEIN=LINE(I+2:NCHAR) I=INDEX(FILEIN,' ') FILEIN(I:)=' ' INQUIRE(FILE=FILEIN,EXIST=FEXIST) IF (.NOT. FEXIST) THEN WRITE(0,*)' The file ',FILEIN(1:I),'does not exist.' WRITE(0,*)'Respecify the I=input_file parameter.' STOP 'Input file error' ENDIF ELSE CALL INTFAC(FILEIN) ENDIF OPEN(UNIT=5,FILE=FILEIN,STATUS='OLD') C*********************************************************************** C INITIALIZE VARIABLES - NP SHOULD BE SET TO THE DIMENSION OF VARA C AND HALF THE DIMENSION OF -A-. WRITE OUT INTRODUCTORY MATERIAL. C*********************************************************************** NP=MAXPAR DO 5 I=1,MAXOBJ DO 5 J=1,5 5 DATA(I,J)=0. IPAGE=0 DO 10 I=1,80 10 LABEL(I)=BL C C SEARCH THROUGH DOS PATH TO TRY AND FIND DOCUMENTATION FILES C CALL GTPATH(PATH(1),NCHAR) CALL PACKL(PATH(1),255,NCHAR) I=0 6 IF (PATH(1)(1:1).EQ.CHAR(0).OR.PATH(1)(1:1).EQ.' ') GO TO 3 I=I+1 IF (I.GT.8) GO TO 3 FILPOS=INDEX(PATH(1),';') IF (FILPOS.EQ.0) FILPOS=INDEX(PATH(1),CHAR(0)) IF (FILPOS.EQ.0) FILPOS=INDEX(PATH(1),' ') FILDOC=PATH(1)(1:FILPOS-1) PATH(2)=PATH(1)(FILPOS+1:) PATH(1)=PATH(2) FILPOS=INDEX(FILDOC,' ') IF (FILDOC(FILPOS-1:FILPOS-1).NE.'\') THEN FILDOC(FILPOS:FILPOS)='\' FILPOS=FILPOS+1 ENDIF FILDOC(FILPOS:)='INTRO.DOC' INQUIRE(FILE=FILDOC,EXIST=FEXIST) IF (FEXIST) GO TO 8 GO TO 6 C C HAVE NOT FOUND THE DOCUMENTATION FILES IN THE EXECUTION PATH, SO C NOW SEARCH THE CURRENT DIRECTORY ON EACH DISK DRIVE TO FIND THEM. C GET THE CURRENT DISK DRIVE NUMBER 3 CALL CURDSK(IDISK) C GET THE NUMBER OF DISK DRIVES IN THE SYSTEM CALL SELDSK(IDISK,NDISK) FILDOC='A:INTRO.DOC' FILPOS=3 DO 9 IDISK=NDISK,0,-1 FILDOC(1:1)=CHAR(65+IDISK) INQUIRE(FILE=FILDOC,EXIST=FEXIST) IF (FEXIST) GO TO 8 9 CONTINUE 4 WRITE(0,*) 'Cannot locate the TRANSECT documentation files.' WRITE(0,*) 'Place the TRANSECT executable disk in drive A:.' STOP 'Documentation file error' 7 WRITE(0,*) 'Cannot open file ',FILDOC STOP 'Documentation file error' 8 OPEN(UNIT=1,FILE=FILDOC,STATUS='OLD',ERR=7) CALL HEADER (1) WRITE (6,200) ' Program Introduction' DO 11 I=1,39 READ(UNIT=1,FMT='(A79)') LINE 11 WRITE(UNIT=6,FMT='(1X,A79)') LINE CALL HEADER (1) WRITE (6,200) ' Program Introduction Continued' DO 12 I=40,73 READ(UNIT=1,FMT='(A79)') LINE 12 WRITE(UNIT=6,FMT='(1X,A79)') LINE CALL HEADER (1) WRITE (6,200) ' Symbol Definitions' DO 13 I=74,125 READ(UNIT=1,FMT='(A79)') LINE 13 WRITE(UNIT=6,FMT='(1X,A79)') LINE CLOSE(UNIT=1) C*********************************************************************** C INITIALIZE VARIABLES FOR EACH SET OF CONTROL CARDS AND DATA SET C WHICH ARE PROCESSED. C*********************************************************************** 20 II=1 IC=0 DO 25 I=1,80 25 LABEL(I)=BL DO 30 I=1,10 LOGL(I)=0.0 DO 30 J=1,5 30 PB(J,I)=0.0 DO 40 I=1,10 NPSET(I)=0 DO 40 J=1,NP 40 PSTRT(I,J)=0.0 C*********************************************************************** C CALL THE ROUTINE TO PROCESS THE CONTROL CARDS. IF THERE WAS AN C ERROR IN THE PROCESSING AND A CONTROL CARD AND DATA SET WERE C SKIPPED SUCESSFULLY THEN PROCESS ANOTHER SET. IF THERE WAS C AN ERROR BUT NO MORE CONTROL CARDS WERE INCLUDED THEN THE PROGRAM C WILL STOP AND NOT RETURN TO THIS POINT. IF THERE ARE NO ERRORS C THEN SK WILL BE FALSE. C*********************************************************************** CALL CNTRL IF (SK) GO TO 20 C*********************************************************************** C CALL THE APPROPRIATE ROUTINE(GROUPED OR UNGROUPED) TO READ IN THE C DATA AND TO DO DESCRIPTIVE OUTPUT. C*********************************************************************** 50 IF (GRP) THEN CALL GRPD ELSE CALL UNGRPD ENDIF C*********************************************************************** C IF THERE WAS AN ERROR IN THESE ROUTINES AND A CONTROL CARD AND C DATA SET WERE SUCCESSFULLY SKIPPED THEN PROCESS A NEW SET. IF C THERE WERE NO ERRORS AND THE CONTROL CARDS AND THE DATA ARE ON C SEPARATE FILES AND THERE ARE MORE SETS TO FOLLOW THEN READ THE C END. FLAG CARD ON THE CONTROL CARD FILE SO IT IS NOT MISTAKEN C FOR A CONTROL CARD. C*********************************************************************** IF (SK) GO TO 20 IF ((SYSIN.NE.5).AND.(IC.EQ.-2)) READ (5,150) LAB C*********************************************************************** C CALL THE APPROPRIATE ESTIMATION ROUTINES AND THEN SUMMARIZE THE C RESULTS AND STORE THE DENSITY ESTIMATES. C*********************************************************************** IF ((.NOT.PEST).AND.(.NOT.SEST)) GO TO 70 IF (HELP) THEN CALL HEADER (1) WRITE (6,200) ' Density Estimation Narrative' FILDOC(FILPOS:)='NARRAT1.DOC' OPEN(UNIT=1,FILE=FILDOC,STATUS='OLD') DO 14 I=1,49 READ(UNIT=1,FMT='(A79)') LINE 14 WRITE(UNIT=6,FMT='(1X,A79)') LINE CLOSE(UNIT=1) ENDIF IF (PEST) THEN CALL PEREST ENDIF IF (SEST) THEN CALL SIGEST ENDIF CALL SUMARY (1) C*********************************************************************** C CONTROL COMES HERE IF THE PROPER NUMBER OF REPLICATIONS WERE C FOUND IN THE DATA AS INDICATED BY THE NUMBER OF LINE LENGTHS C WITH DATA. IF IC=0 THEN THE END OF THE DATA WAS NOT REACHED C AND AN ERROR MESSAGE IS GIVEN. C*********************************************************************** 70 IF (II.NE.IREP) GO TO 120 C*********************************************************************** C FOR GROUPED DATA IT IS NECESSARY HERE TO DETERMINE WHETHER ALL OF C THE DATA HAS BEEN READ AND WHETHER THERE ARE MORE DATA SETS TO C FOLLOW, I.E.,SPECIFY THE VALUE OF IC. THIS IS ONLY DONE IN THE C ROUTINE GRPD IF AN END OF FILE OR END. CARD IS REACHED BEFORE IT C IS EXPECTED. FOR UNGROUPED DATA THE VALUE OF IC IS DETERMINED C IN THE ROUTINE UNGRPD. C*********************************************************************** IF (.NOT.GRP) GO TO 100 READ (SYSIN,150,END=90) (HEAD(I),I=1,30) DO 80 I=1,4 IF (KEY(I).NE.HEAD(I)) GO TO 100 80 CONTINUE IC=-2 GO TO 110 90 IC=-1 GO TO 110 100 IF (IC.NE.0) GO TO 110 WRITE (6,170) CALL SKIP GO TO 20 C*********************************************************************** C IF THE NPOL OPTION WAS USED(.NOT.POOL=NO POOLING OF REPLICATES= C A SEPARATE ESTIMATE OF DENSITY FOR EACH REPLICATE) THEN CALL C SUMARY TO CALCULATE AN AVERAGE ESTIMATE OF DENSITY FROM THE C REPLICATE ESTIMATES AND ITS VARIANCE FOR EACH ESTIMATOR. C THEN BASED ON THE VALUE OF IC DECIDE WHETHER TO CONTINUE OR STOP. C*********************************************************************** 110 IF ((.NOT.POOL).AND.(PEST.OR.SEST)) THEN CALL SUMARY (2) ENDIF IF (IC.EQ.-2) GO TO 20 STOP C*********************************************************************** C CONTROL COMES HERE IF NOT ALL OF THE REPS WERE FOUND BUT AN C END OF FILE WAS REACHED C*********************************************************************** 120 IF (IC.NE.-1) GO TO 130 WRITE (6,180) STOP C*********************************************************************** C CONTROL COMES HERE IF NOT ALL OF THE REPS WERE FOUND BUT AN END. C CARD WAS REACHED. C*********************************************************************** 130 IF (IC.NE.-2) GO TO 140 WRITE (6,180) GO TO 20 C*********************************************************************** C CONTROL COMES HERE IF THERE ARE MORE REPS TO BE PROCESSED C*********************************************************************** 140 II=II+1 GO TO 50 C*********************************************************************** C FORMAT STATEMENTS C*********************************************************************** C 150 FORMAT (30A1) 170 FORMAT ('0*** TERMINAL ERROR - More replications have been', 1' given than were'/ 2 22X,'indicated by the line lengths and sample sizes.') 180 FORMAT ('0*** TERMINAL ERROR - Too few replications have been', 1' given in the'/ 22X, 2' data than were indicated by the line lengths and sample sizes.') 200 FORMAT (/10X,60('*')/10X,'*',58X,'*'/10X,'*',A,T70,'*' 1/10X,'*',58X,'*'/10X,60('*')/) 340 FORMAT (//,1H0) END