ccunbendk
THE PROGRAM UNBENDS THE CRYSTAL USING OUTPUT FROM THE CROSS-CORRELATION PEAK SEARCH PROGRAM, CCORSERCH OR ITS LATER VARIANTS PROFSERCH AND QUADSERCH(0, 1, and 2)
C PROGRAM CCUNBENDK *********************************************************** C C Remember to change version number in first write statement. C Original pre-history versions called CCUNBEND and CCUNBENDA. C C VX 1.0 RH 21.6.84 CCUNBENDB - This went through a variety of C changes before version numbers were started. C VX 2.0 JMB 20.3.86 Debug part dealing with last strip. C VX 2.1 JMB 16.6.87 Rectangular images C VX 2.2 RH 12.9.87 Extra guide points > 2*IKNOTS per axis. C VX 2.3 RH 04.1.88 Extra guide points > 3*IKNOTS per axis. C VX 2.4 RH 29.2.88 NDATA=50000 C VX 2.5 RH 07.4.88 ISIZEX=7500 C VX 3.0 RH 20.8.88 Efficient guide points & non-spline option. C renamed CCUNBENDC, old programs retained. C VX 3.1 RH 13.11.88 Optimised ISIZEX=6000,ISTEPMAX=60,IDEEP=160 C VX 3.2 RH 18.12.89 Minor changes, mainly cosmetic. C VX 3.3 RH 16.5.90 IMAXCOR limit on X removed. C VX 3.4 RH 30.5.90 Fudge on XAPPLY check. C VX 3.5 RH 15.6.90 REAL*8 for SUMOUT C VX 4.0 RH 03.1.92 Convert for UNIX on Alliant C VX 4.1 RH 23.8.93 insert check for DMIN,DMAX,DMEAN sensible. C VX 4.2 RH 07.9.94 increased NDIMX,NDIMY for smoother unbending C VX 4.3 RH 09.9.94 improved efficiency for FILLEMPTIES C VX 4.4 RH 13.9.94 taperedge option for single molecule work C renames CCUNBENDD, extra input parameters C VX 4.5 RH 27.1.95 change plot scale-factor, debug fillempties C VX 4.6 RH 29.4.95 add date to plots C VX 4.7 RH 25.7.95 ENCODE debug for Alpha C VX 4.8 RH 9.10.95 increase dimensions to 8000 C VX 4.9 RH 23.3.96 optional O/P unbend correction table CCUNBENDE C VX 5.0 RH 22.4.96 add initialization and reorder IF statement C VX 5.1 RH 11.3.98 change distortion plot to 10x error C VX 6.0 RH 23.8.00 convert to plot2000 direct postscript output C " TSH 13.6.01 P2K_FONT needed string terminator C C MODIFIED 16.6.87 TO BE CORRECT FOR RECTANGULAR IMAGES UP TO SIZE C 7200 X 9600 C MODIFIED 14.12.85 TO GREATLY INCREASE THE NUMBER OF KNOTS ALLOWED IN C ONLY IN THE DIRECTION PERPENDICULAR TO THE TILT AXIS. C WORKS IN CONJUNCTION WITH CCORSERCH OR PROFSERCH. C THE PROGRAM UNBENDS THE CRYSTAL USING OUTPUT C FROM THE CROSS-CORRELATION PEAK SEARCH PROGRAM, CCORSERCH OR C ITS LATER VARIANTS PROFSERCH AND QUADSERCH(0, 1, and 2) C C CONTROL DATA :- C CARD 1 : FILE NAME OF INPUT IMAGE FILE.(ONLY HEADER READ IF IOUT=0). C CARD 2 : ITYPE,IOUT,IMAXCOR,ISTEP,LTAPER,RTAPER,LTABOUT C CARD 3 : IKNOTX,IKNOTY,EPS,FACTOR,TLTAXIS C CARD 4 : PLOT TITLE FOR DISTORTION CORRECTION DISPLAY. C and if IOUT = 1, C CARD 5 : FULL FILE NAME FOR OUTPUT OF CORRECTED IMAGE. C CARD 6 : TITLE TO BE ADDED TO CORRECTED IMAGE TITLE RECORD. C C INPUT FILES: C CCORDATA - FILE OF PARAMETERS CONTAINING DETAILS OF C THE CCORSERCH RUN AND C - RAW LIST OF CORRELATION PEAK POSITION AND HEIGHTS C PRODUCED BY CCORSERCH. C PIX(NAME) - ORIGINAL DENSITOMETER RAW IMAGE FILE. C C OUTPUT FILES: C PIXOUT(NAME1) - THE UNBENT IMAGE FILE, FULLY CORRECTED FOR C THE SMOOTHED DISTORTION CORRECTIONS. C TABLEOUT - The unbending table as used inside the program - may C be useful for creation of fixed distortion table, C for example, to correct fibre optic distortion in C in another program, e.g. pickprofa.for C OPTIONS ARE: C INTERPOLATION OF IMAGE DISTORTION TO PRODUCE C ITYPE = 0 ----- USES CORRELATION PEAKS EXACTLY WITHOUT SMOOTHING. C = 1 ----- SAME USING BICUBIC SPLINE FITTING (NAGLIB). C C IOUT = 0 ----- NO OUTPUT, DIAGNOSTICS ONLY. C = 1 ----- CORRECTED IMAGE OUTPUT USING THE SMOOTHED PARAMETERS C AS ABOVE. C ISTEP --------- SIZE OF GRID ON WHICH THE INTERPOLATED VECTORS ARE C CALCULATED. C IMAXCOR ------- SIZE OF THE MAXIMUM ALLOWED CORRECTION, TO ENABLE THE C SIZE OF EACH STRIP READ INTO CORE TO BE CALCULATED - C (ISTEP + 2*IMAXCOR). C CORRECTIONS LARGER THAN IMAXCOR ARE REDUCED. C A FURTHER LIMIT THAT IMAXCOR IS NOT GREATER THAN C ISTEP WAS INTRODUCED IN Nov-88 TO KEEP THE PROGRAM C SIMPLE. BIGGER VALUES WILL NEED A MAJOR REWRITE. C LTAPER -------- T or F (logical*1) for application of a taperedge C RTAPER -------- Radius to be used from centre of ISTEP boxes. C LTABOUT ------- T or F (logical*1) for output of unbending table C IKNOTX -------- NUMBER OF KNOTS TO BE DISTRIBUTED ACROSS IMAGE IN C BICUBIC SPLINE MODE OF SMOOTHING -- IKNOTX DESCRIBES C DISTORTIONS PARALLEL TO THE TILTAXIS. C IKNOTY -------- NUMBER OF KNOTS -- IKNOTY DESCRIBES DISTORTIONS C PERPENDICULAR TO THE TILTAXIS -- THIS WILL NEED TO C BE SEVERAL TIMES HIGHER IF THE IMAGE IS OF A HIGHLY C TILTED SPECIMEN. C EPS ----------- THRESHOLD FOR DETERMINATION OF RANK OF BICUBIC C SPLINE FITTING MATRIX. TRY 0.00001 --- OTHERWISE C SEE WRITE-UP FOR NAGLIB E02DAF SUBROUTINE. C THRESH -------- THRESHOLD OF CROSS-CORRELATION PEAK HEIGHT, C CALCULATED AS; C DENMAX (READ FROM CCORDATA) * FACTOR (READ FROM UNIT 5), C , BELOW WHICH THE PEAK IS NOT USED. C TLTAXIS ------- DIRECTION OF TILTAXIS RELATIVE TO NORMAL X-Y AXES OF C IMAGE. C C******************************************************************************* C C DIMENSION STATEMENTS INCLUDE THE FOLLOWING PARAMETERS :- C NDATA - MAXIMUM NUMBER OF CORRELATION PEAKS ABOVE THRESH. C NDIMX - MAXIMUM NUMBER OF BLOCKS IN WHICH DISTORTION CORRECTION C IS CALCULATED. (NUMBER OF BLOCKS = NXYZ(1)/ISTEP), C BOTH NXYZ(1) AND ISTEP ARE INPUT PARAMETERS. C NDIMY - NXYZ(2)/ISTEP C NMAXKN - MAXIMUM NUMBER OF KNOTS - USABLE NUMBER (IKNOTS)=(NMAXKN-8). C NCMAX - (NMAXKN+4)**2 SOMETHING TO DO WITH THE KNOT SUBROUTINE. C NPOINT - NDATA+(NMAXKN+1)**2 DITTO. C NPOINT ALSO - MCALC+(NMAXKN+1)**2; MCALC=NDIMX*NDIMY; MCALC SHOULD NOT C BE LARGER THAN NDATA; VALUE CAN BE ADJUSTED WITH ISTEP C ISIZEX - MAXIMUM IMAGE SIZE IN X-DIMENSION C IDEEP - IMAGE IS READ IN AND CORRECTED IN SLICES OF DEPTH UP TO IDEEP. C SMALLER IDEEP RESULTS IN MORE I/O, LARGER IN MORE PAGE FAULTS. C - IDEEP MUST BE (2*IMAXCOR + ISTEP); BOTH ON DATA CARD 2 C NWSPCE - WORKSPACE FOR KNOT SUBROUTINE -- SEE NAGLIB WRITE-UP. C MUST BE .GT. 4+3*(NMAXKN+4)+2*NCMAX*(6+3*(NMAXKN+4)) C -- i.e. increases proportional to NMAXKN**3 !! C ISTEPMAX - MAXIMUM VALUE OF ISTEP ABLE TO BE USED - CONTROLS DIMENSION C OF PICOUT. C