C++********************************************************************* C C PUTPT1.F NEW SEP 98 ARDEAN LEITH C RDPRAF REMOVED DEC 05 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 PUTPT1(LUN,NSAM,NROW,NSLICE) C C PURPOSE: SUPERPOSE PIXELS, ONTO AN IMAGE, C PIXEL LOCATIONS READ FROM TERMINAL C C PARAMETERS: LUN LOGICAL UNIT NUMBER OF I/O FILE C NSAM,NROW,NSLICE DIMENSIONS OF INPUT FILE C C--********************************************************************* SUBROUTINE PUTPT1(LUN,NSAM,NROW,NSLICE) INCLUDE 'CMBLOCK.INC' INCLUDE 'CMLIMIT.INC' PARAMETER (MAXNUM = 400) COMMON IXCOOR(MAXNUM),IYCOOR(MAXNUM),IZCOOR(MAXNUM), & FHEIGHT(MAXNUM) COMMON /IOBUF/BUF(NBUFSIZ) CHARACTER NULL DIMENSION FLIST(4) LOGICAL KEEPGO NULL = CHAR(0) K = 0 KEEPGO = .TRUE. DO WHILE (KEEPGO) IF (IFORM .EQ. 3) THEN C VOLUME FLIST(4) = 1.0 CALL RDPRA('X, Y, Z, & INTENSITY', & 4,0,.FALSE.,FLIST,NVAL,IRTFLG) NVAL = 4 ELSE C 2-D IMAGE NVAL = 3 FLIST(3) = 1.0 CALL RDPRM3S(FLIST(1),FLIST(2),FLIST(3),NOT_USED, & 'X, Y, & INTENSITY',IRTFLG) IF (IRTFLG .NE. 0) RETURN ENDIF IF (IRTFLG .NE. 0) RETURN K = K + 1 IXCOOR(K) = FLIST(1) IYCOOR(K) = FLIST(2) IZCOOR(K) = FLIST(3) FHEIGHT(K) = FLIST(NVAL) IF (NSLICE .EQ. 1) IZCOOR(K) = 1 C IS THIS END OF INPUT? IF (IXCOOR(K) .LE. 0 .OR. IYCOOR(K) .LE. 0) THEN KEEPGO = .FALSE. KGOT = K - 1 ELSEIF (K .GE. MAXNUM) THEN C ARRAY OVERFLOW WILL OCCUR NEXT INPUT KEEPGO = .FALSE. WRITE(NOUT,*) '*** INPUT HALTED TO AVOID BUFFER OVERFLOW' ENDIF ENDDO C ALL COORDINATES HAVE BEEN INPUT NUMSET = 0 DO I=1,KGOT IXCOR = IXCOOR(I) IYCOR = IYCOOR(I) IZCOR = IZCOOR(I) HEIGHT = FHEIGHT(I) IF ((IXCOR .GT. NSAM .OR. IXCOR .LE. 0) .OR. & (IYCOR .GT. NROW .OR. IYCOR .LE. 0) .OR. & (IZCOR .GT. NSLICE .OR. IZCOR .LE. 0)) THEN WRITE(NOUT,721) IXCOR,IYCOR,IZCOR 721 FORMAT(' *** LOCATION: (',I5,',',I5,',',I5, & ') OUTSIDE IMAGE, CONTINUING') ELSE C THIS COORDINATE IS OK, PUT IT IN FILE IREC = (IZCOR -1) * NROW + IYCOR CALL REDLIN(LUN,BUF,NSAM,IREC) BUF(IXCOR) = HEIGHT CALL WRTLIN(LUN,BUF,NSAM,IREC) NUMSET = NUMSET + 1 ENDIF ENDDO 9300 WRITE(NOUT,90) NUMSET 90 FORMAT(' NUMBER OF LOCATIONS SET: ',I4/) IF (NUMSET .GT. 0) THEN C SET FMIN, FMAX AS UNDETERMINED CALL SETPRM(LUN,NSAM,NROW,0.0,0.0,0.0,'U') ENDIF CLOSE(LUN) RETURN END