THE ACCOMPANYING LISTINGS CONSTITUTE THE FILE FROM THE END OF THE PROGRAMMING SEASON 1974-1975 AT THE INSTITUTO NACIONAL DE ENERGIA NUCLEAR (INEN) IN MEXICO. IS A COLLECTION OF SUBROUTINES FOR THE CALCOMP PLOTTER, CONSISTING FOR THE MOST PART OF CONTOUR PROGRAMS AND HIDDEN LINE SUBROUTINES. BY NOW MOST OF THEM HAVE HAD TWO OR THREE YEARS OF CONTINUOUS USAGE IN THE INEN, AS WELL AS HAVING BEEN USED IN A NUMBER OF OTHER COMPUTER CENTERS BOTH WITHIN MEXICO AND ABROAD. NEVERTHELESS, A SUFFICIENT NUMBER OF CHANGES, BOTH MAJOR AND MINOR, HAVE BEEN MADE TO THEM TO APPEAR TO WARRANT A NEW EDITION OF THIS DESCRIPTIVE MANUAL. THE PROGRAMMING LANGUAGE USED IS DEC'S VERSION OF ANSA STANDARD FORTRAN WHICH THEY CALL F40; IT IS DISTINCT FROM A NEWER VERSION WHICH THEY HAVE INTRODUCED CALLED F10, WHICH IS NOT USED IN THE FILE. THE PROGRAMS ARE DESIGNED TO OPERATE THE CALCOMP MODEL 565 DRUM PLOTTER, AND PRESUPPOSE THE LIB40 PLOTTER SUBROUTINES, AS WELL AS ITS NORMALLY PRESENT ARITHMETIC AND MATHEMATICAL FUNCTION SUBROUTINES. OTHER MODELS OF CALCOMP PLOTTERS, OR OTHER BRANDS CAN PROBABLY BE ACCOMODATED WITHOUT DIFFICULTY, BUT THE ENTIRE FILE IS ORIENTED TOWARD A HORIZONTAL 8 1/2" X 11" PAGE FORMAT WHICH IS CONVENIENTLY REALIZED ON THE MODEL 565 PLOTTER. BY EXERCISING THE UTMOST RESTRAINT IN USING VIRTUALLY NONE OF THE SPECIALIZED FEATURES OF FORTRAN, IT IS HOPED THAT THE PROGRAMS CAN BE TRANSCRIBED TO OTHER MAKES OF COMPUTERS WITH A MINIMUM OF DIFFICULTY. SOME INCONVENIENCES ARE BOUND TO OCCUR, PARTICULARLY IN THE TRANSITION FROM A 36 BIT MACHINE TO A 32 BIT MACHINE, BUT I REGARD A 32 BIT MACHINE AS BEING TOO CRAMPED FOR SCIENTIFIC USAGE, AND MAKE NO FURTHER APOLOGY. THIS YEAR'S INNOVATIONS INCLUDE THE FOLLOWING: 1) PLTSV, VISSS, AND RELATED ROUTINES WHICH WERE INCLUDED IN THE SEPARATE FILE HAVE BEEN INTEGRATED INTO AFTER SOME SLIGHT ADJUSTMENTS. NOT ALL THE SUBROUTINES IN HAVE BEEN TAKEN OVER; AND OF THOSE WHICH HAVE BEEN, THERE STILL REMAIN SOME IRREGULARITIES IN MATCHING DIFFERENT FRONTIERS IN THE DRAWINGS. SOME FURTHER WORK ON THESE SUBROUTINES MUST BE EXPECTED. 2) THE CONTOUR PROGRAMS WERE MODIFIED; SUPPLANTING THE FORMER STATISTICAL SEARCH IS ONE WHICH IS NOW EXHAUSTIVE, ALTHOUGH STILL BASED ON TRIANGULAR REGIONS. THE TIME TO CALCULATE THE CONTOURS HAS INCREASED, IN SOME CASES EVEN DOUBLED, BUT THE PLOTTER TIME HAS DIMINISHED. MOST IMPORTANT, THE USER SATISFACTION HAS INCREASED VASTLY. AS AN ADDITIONAL BENEFIT, IT BECOMES POSSIBLE TO SUPPRESS CERTAIN REGIONS, EITHER BECAUSE THEY ARE UNINTERESTING, OR TO MAKE ROOM FOR LETTERING. 3) ORTHOGRAPHIC RELIEF, A NEW MAPMAKING TECHNIQUE WHICH KICHIRO TANAKA INTRODUCED IN THE EARLY THIRTIES, WAS INCORPORATED IN THE CONTOUR PROGRAMS. THE INTELLIGIBILITY OF THE CONTOUR PLOTS OF SOME SURFACES CAN BE ENHANCED BY USING ORTHOGRAPHIC RELIEF, WHICH CAN ALSO BE EMPLOYED AS A SECOND COLOR IN CONJUNCTION WITH A NORMAL CONTOUR PLOT. 4) THE PROGRAMS PLTEV AND PLTPV, BOTH OF WHICH SOMETIMES MADE VERTICAL ARCS APPEAR, CAME INTO CONFLICT WITH VISLI, WHICH DELIBERATELY AVOIDS CHECKING FOR A ZERO DENOMINATOR IN THE INTEREST OF SPEED. TO PRECLUDE THE BADLY DRAWN VERTICAL SEGMENTS WHICH RESULTED, THE QUADRANTS WERE CLOSED SLIGHTLY. THIS IS ONE ADJUSTMENT WHICH CAUSES PARTICULAR GRIEVANCE ON 32 BIT MACHINES. IT IS STILL NOT WELL RESOLVED IN VISSS. 5) THERE IS STILL SOME HUMAN ENGINEERING INVOLVED IN SELECTING CALLING SEQUENCES FOR THE SUBROUTINES WHICH ARE EXPOSED TO THE GENERAL PUBLIC. EVEN THOUGH IT IS CONSIDERED IMPORTANT NOT TO ALTER THE CALLING SEQUENCES OF THESE SUBROUTINES, TWO CHANGES HAVE BEEN MADE. THE MAXIMUM DIMENSION WHICH USED TO APPEAR WAS NEVER USED. IT WAS SPECIFIED THINKING THAT PARTIAL ARRAYS WOULD BE FREQUENTLY GRAPHED, BUT IN PRACTICE WE HAVE ALWAYS USED THE FULLEST CAPACITY OF OUR ARRAYS, SO AS TO GET THE BEST RESOLUTION FROM THE LIMITED MEMORY AVAILABLE. THE SECOND CHANGE INVOLVES THE CONSISTENT INCORPORATION OF A PEN MOVEMENT SUBROUTINE AS AN EXTERNAL ARGUMENT IN THESE SUBROUTINES. THE VARIETY OF SCALES, ORIENTATIONS, AND PLACEMENTS WITHIN A PAGE HAS BEEN SO GREAT THAT SOME SUCH FLEXIBILITY IS DEMANDED. PLACING A PEN MOVEMENT ARGUMENT IN THE CONTOURING PROGRAMS IMMEDIATELY EXTENDS CONTOURING TO EVERY KIND OF COORDINATE SYSTEM FOR WHICH A CONVERSION PROGRAM IS PRESENT. 6) AS A RESULT OF THE GENERAL USAGE OF PEN MOVEMENT SUBROUTINES AND THE REQUIREMENTS FOR INTERCHANGEABILITY OF MANY DIFFERENT COORDINATE SYSTEMS AMONG THE DIFFERENT CONTOURING OR VIEWING ROUTINES, IT HAS BEEN NECESSARY TO STANDARDIZE THE ADMISSIBLE RANGES OF COORDINATES. RATHER THAN USING AN ORDINARY LETTER SIZED PAGE AS A STANDARD, THE UNIT SQUARE (0.0 .LE. X,Y .LE. 1.0) HAS TAKEN OVER. 7) SOME ADDITIONAL DOCUMENTATION OF THE FILE IS AVAILABLE IN THE FORM OF A HELP FILE, . 8) THERE HAS BEEN ONE MINOR MODIFICATION TO VISBO WHICH IS GOING TO HAVE A CONSIDERABLE IMPACT ON THE USAGE OF THE HIDDEN LINE PROGRAMS. BY ADDING A VISIBILITY PREDICATE TO THE COORDINATES OF A LINE WHICH IS JUST ABOUT TO BE DRAWN, THE LINE CAN BE INCORPORATED INTO THE EMERGING HORIZON WITHOUT LOWERING THE PEN. ALTHOUGH THIS OPTION IS USEFUL FOR LEAVING A PART OF THE SURFACE IN BLANK, IT CAN ALSO BE USED TO BLANK OUT THE PART OF THE SURFACE WHICH IS NOT OF A GIVEN COLOR. BY REPEATING FOR SEVERAL COLORS, A COLORED SURFACE IS EVENTUALLY BUILT UP; ONE WHICH IS LIKELY TO BE MUCH MORE INFORMATIVE THAN A MONOCHROMATIC SURFACE. SOME ACROBATICS ARE NEEDED TO USE MULTIPLE COLORS ON THE MODEL 565 PLOTTER UNDER THE PDP-10'S PLOTTER SPOOLER, BUT THE RESULTS ARE WELL WORTH THE EFFORT. 9) AS A CONSEQUENCE OF WANTING TO MAKE POLYCHROMATIC SURFACES AVAILABLE WITH A MINIMUM OF PREOCCUPATION BY THE USER, SOME SPECIAL SEQUENCING AND CALLING PROGRAMS HAVE BEEN PREPARED, USING THE MNEMONIC PVI (POSITIVE VISIBLE). SINCE AN ATTEMPT HAS BEEN MADE TO KEEP THE WHOLE SURFACE BEING DRAWN IN ONE SINGLE ARRAY IN THE MEMORY, AND SINCE THIS ARRAY SHOULD BE AS LARGE AS POSSIBLE, SAY 100X100, THERE IS NO ROOM FOR A SEPARATE ARRAY TO INDICATE VISIBILITY OVER THE WHOLE SURFACE. LIKEWISE I DID NOT WANT TO GO INTO BIT ARRAYS. FINALLY IT SEEMED THAT THE BEST WAY TO CODE THE VISIBILITY WAS TO ASSUME THAT THE FUNCTION TO BE GRAPHED WAS ALWAYS POSITIVE. BY GRAPHING THE ABSOLUTE VALUE OF THE ENTRIES OF A FUNCTION ARRAY, AND USING THEIR SIGN TO INDICATE WHETHER THEY REPRESENT VISIBLE POINTS, ALL THE INFORMATION CAN STILL BE CONTAINED IN ONE SINGLE ARRAY. 10) A NEW VIEW, THE INCLINED VIEW, HAS BEEN INCLUDED, INSPIRED PARTLY BY PLTSV, PARTLY BY ALGORITHM 483: "MASKED THREE-DIMENSIONAL PLOT PROGRAM WITH ROTATIONS" BY STEVEN L. WATKINS. HIS ALGORITHM APPEARED IN THE SEPTEMBER 1974 ISSUE OF THE COMMUNICATIONS OF THE ASSOCIATION FOR COMPUTING MACHINERY. THE COST OF USING A PROGRAM ALWAYS INTERESTS THE USER, AND IS COMPOUNDED FROM THE SPACE OCCUPIED BY THE PROGRAM AND ITS RUNNING TIME. MOST OF THE DEMONSTRATION PROGRAMS AND THE BULK OF MY OWN WORK EMPLOY ARRAYS OF SIZE 100 X 100, APPROXIMATELY. THIS IMMEDIATELY TAKES UP 10K OF MEMORY, SINCE THE ARRAYS ARE NOT SEGMENTED. HOWEVER DOUBLE SURFACE PROGRAMS, OR THOSE USING COMPLEX VARIABLES, ARE LIMITED TO 70 X 70 IF THEY ARE TO OCCUPY THE SAME SPACE. EITHER THE HIDDEN LINE PROGRAMS OR THE CONTOURING PROGRAMS LOADED SEPARATELY REQUIRE BETWEEN 10K TO 14K FOR THE PROGRAM ITSELF. UNTIL RECENTLY WE HAVE BEEN LIMITED TO A MAXIMUM MEMORY SIZE OF 28K FOR THE USER, SO THAT BOTH TYPES OF PROGRAM COULD NOT BE LOADED SIMULTANEOUSLY. EXCLUSIVE OF THE TIME REQUIRED TO CALCULATE THE FUNCTION TO BE DISPLAYED, THE RUNNING TIME FOR ARRAYS OF THIS SIZE IS SOME MINUTES - FROM THREE TO FIVE. THIS TIME WILL BE MULTIPLIED, EITHER BY THE NUMBER OF PASSES IN PROGRAMS SUCH AS PLTSV, OR BY THE INCREASED SIZE OF THE ARRAY, IF IT IS ENLARGED. THUS IF VISDO IS USED ON A FULL ARRAY OR IF PLTSV IS USED WITH EVERY DEGREE TO GET A FINER REPRESENTATION OF THE SPHERICAL SURFACE, THE RUNNING TIME WILL RISE. REPEATING LAST YEAR'S CUSTOM, A NUMBER OF DEMONSTRATION PROGRAMS ARE INCLUDED. THEIR PURPOSE IS TWOFOLD; TO VERIFY THAT THE PROGRAMS WORK AS ADVERTISED, AND TO INDICATE TO THE PROGRAMMER HOW HE SHOULD GO ABOUT CALLING THE GENERAL PURPOSE SUBROUTINES. EVEN THOUGH ALMOST ALL OF THE SUBROUTINES REPORTED HERE HAVE NOW WORKED FOR SEVERAL YEARS, WHOLESALE CHANGES HAVE BEEN MADE AND ARE SUSCEPTIBLE TO ERROR. YET, TIME AND COST MITIGATE AGAINST REPEATING EVERY SINGLE PROGRAM IN A TEST SITUATION. SO; THERE IS A CHOICE BETWEEN DELAYING PUBLICATION WHILE UNDERGOING FURTHER TESTING, OR RISKING UNDETECTED OVERSIGHTS. I HOPE THAT INCLUDING TESTED DEMONSTRATIONS OF THE NEW PROGRAMS AND OF THE MORE INTERESTING OF THE NEWEST TECHNIQUES WILL GIVE THE PROGRAMS A SUFFICIENT WORKOUT. AS ALWAYS THE USER IS ADMONISHED TO CHECK THROUGH A PROGRAM HE PLANS TO USE, AND TO TEST IT FOR HIMSELF BEFORE ACCEPTING ITS RESULTS IN A ROUTINE WAY. HAROLD V. MC INTOSH SALAZAR, 24 MAY 1975