C ********************************************************************** C C UTIL6.F AUTHOR: ArDean Leith C ADDED SURFFIT MAR 00 ARDEAN LEITH C 'LA' ADDED OCT 02 ARDEAN LEITH C C ********************************************************************** C=* FROM: SPIDER - MODULAR IMAGE PROCESSING SYSTEM. AUTHOR: J.FRANK * C=* Copyright (C) 1985-2005 Health Research Inc. * C=* * C=* HEALTH RESEARCH INCORPORATED (HRI), * C=* ONE UNIVERSITY PLACE, RENSSELAER, NY 12144-3455. * C=* * C=* Email: spider@wadsworth.org * C=* * C=* This program is free software; you can redistribute it and/or * C=* modify it under the terms of the GNU General Public License as * C=* published by the Free Software Foundation; either version 2 of the * C=* License, or (at your option) any later version. * C=* * C=* This program is distributed in the hope that it will be useful, * C=* but WITHOUT ANY WARRANTY; without even the implied warranty of * C=* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * C=* General Public License for more details. * C=* * C=* You should have received a copy of the GNU General Public License * C=* along with this program; if not, write to the * C=* Free Software Foundation, Inc., * C=* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * C=* * C ********************************************************************** C C UTIL6(MAXDIM) C C PURPOSE: HANDLES OPERATIONS FOR EXTRACT CLUSTERS (EC) AND IA C THEY DEAL WITH CLUSTER CONNECTIVITY VOLUMES. AND SO C WHICH ANALYZES SURFACE FITTING BETWEEN TWO VOLUMES. C C--********************************************************************* SUBROUTINE UTIL6(MAXDIM) INCLUDE 'CMBLOCK.INC' INCLUDE 'CMLIMIT.INC' CHARACTER(LEN=MAXNAM):: FILNAM CHARACTER(LEN=1) :: NULL LOGICAL :: BOTTEM COMMON /COMMUN1/LABELSTR,FILNAM C MAXIMUM NUMBER OF REGISTERS PER KEY IN 'UD IC' PARAMETER (MAXREG=7) C MAXIMUM NUMBER OF KEYS IN 'UD IC' PARAMETER (MAXKEY=4000) MAXIM1 = 0 MAXIM2 = 0 MAXIM3 = 0 LUN1 = 8 LUN2 = 12 LUN3 = 7 IF (FCHAR(1:2) .EQ. 'IA') THEN C SURFACE AREA FROM VOLUME ------------------------------- IA CALL SURFAREA(MAXDIM) ELSEIF (FCHAR(1:2) .EQ. 'EC') THEN IF (FCHAR(4:8) .EQ. 'CLOSE') THEN C EXTRACT CLUSTERS FROM VOLUME ---------------------- EC CLOSE CALL MAPDIST(.FALSE.,.TRUE.,IRTFLG) ELSEIF (FCHAR(4:5) .EQ. 'SE') THEN C EXTRACT CLUSTERS FROM VOLUME ------------------------- EC SE CALL MAPDOC(IRTFLG) ELSEIF (FCHAR(4:5) .EQ. 'ST') THEN C EXTRACT CLUSTERS FROM VOLUME ------------------------- EC ST CALL IMSTAT(IRTFLG) ELSEIF (FCHAR(4:5) .EQ. 'FI') THEN C EXTRACT CLUSTERS FROM VOLUME ------------------------- EC FI CALL MAPFILT(IRTFLG) ELSEIF (FCHAR(4:5) .EQ. 'CL') THEN C EXTRACT CLUSTERS FROM VOLUME ------------------------- EC CL MAXTAB = MAXREG * MAXKEY * 2 CALL CONINT(MAXDIM,MAXTAB) ENDIF ELSEIF (FCHAR(1:2) .EQ. 'FV') THEN C FIND THRESHOLD RESULTING IN A SPECIFIED VOLUME --------- FV CALL FV ELSEIF (FCHAR(1:2) .EQ. 'SO' .AND. FCHAR(4:4) .EQ. 'C') THEN C FIND SURFACE DIFFERENCE ------------------------------ SO C CALL SURFCOMP() ELSEIF (FCHAR(1:2) .EQ. 'SO') THEN C FIND SURFACE DIFFERENCE -------------------------------- SO CALL SURFFIT() ELSEIF (FCHAR(1:2) .EQ. 'LA') THEN C PAD SPIDER IMAGE WITH A LABEL -------------------------- LA C OPEN INPUT FILE AND FIND MIN & MAX CALL OPFILEC(0,.TRUE.,FILNAM,LUN1,'O',IFORM, & NSAM1,NROW1,NSLICE1, MAXIM1,'INPUT',.FALSE.,IRTFLG) IF (IRTFLG .NE. 0) GOTO 9000 IF (IMAMI.NE.1) & CALL NORM3(LUN1,NSAM1,NROW1,NSLICE1,FMAX,FMIN,AV) FMIN1 = FMIN FMAX1 = FMAX C OPEN AN OUTPUT FILE C NROWF IS DEPENDENT ON YOUR FONT IMAGE (KLUDGE) NROWF = 36 BOTTEM = (FCHAR(4:4) .NE. 'L') NROW2 = NROW1 IF (BOTTEM) NROW2 = NROW1 + NROWF CALL OPFILEC(0,.TRUE.,FILNAM,LUN3,'U',IFORM, & NSAM1,NROW2,NSLICE1,MAXIM3,'OUTPUT',.FALSE.,IRTFLG) IF (IRTFLG .NE. 0) GOTO 9000 CALL LABELSPI(LUN1,LUN2,LUN3,NSAM1,NROW1,NSLICE1, & FMIN1,FMAX1,BOTTEM) 9000 CLOSE(LUN1) CLOSE(LUN2) CLOSE(LUN3) ENDIF END