
C ++********************************************************************
C                                                                      *
C MRDOC                                                                   *
C                                                                      *
C **********************************************************************
C=*                                                                    *
C=* This file is part of:   SPIDER - Modular Image Processing System.  *
C=* SPIDER System Authors:  Joachim Frank & ArDean Leith               *
C=* Copyright 1985-2010  Health Research Inc.,                         *
C=* Riverview Center, 150 Broadway, Suite 560, Menands, NY 12204.      *
C=* Email: spider@wadsworth.org                                        *
C=*                                                                    *
C=* SPIDER 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=* SPIDER 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=* You should have received a copy of the GNU General Public License  *
C=* along with this program. If not, see <http://www.gnu.org/licenses> *
C=*                                                                    *
C **********************************************************************
C                                                                      *
C  MRDOC(SCALE,SHIFT,ANGLE,NUMBER,P3D,NTVW,NTPT)                                                                     *
C                                                                      *
C  PURPOSE:  RECORDS THE ROTATIONS, SCALE, AND SHIFTS OF THE IMAGES                                                          *
C                                                                      *
C  PARAMETERS:                                                         *
C                                                                      *
C23456789012345678901234567890123456789012345678901234567890123456789012
C***********************************************************************

      SUBROUTINE MRDOC(SCALE,SHIFT,ANGLE,NUMBER,P3D,NTVW,NTPT)

      INCLUDE 'CMBLOCK.INC'
      INCLUDE 'CMLIMIT.INC'

      PARAMETER (LV=300)
      PARAMETER (LS=256)

      CHARACTER(LEN=MAXNAM) :: SERNAME,CORDOC,ZDOC
      CHARACTER(LEN=1)      :: NULL

      DIMENSION         SCALE(LV),SHIFT(2,LV),ANGLE(3,LV)
      DIMENSION         P3D(3,LS)
      DIMENSION         BUFLOC(7)
      DIMENSION         NUMBER(LV)

      DATA PI/3.141592654/,NCOR/12/,NXYZ/13/

	NULL = CHAR(0)

	CALL FILERD(CORDOC,NAC,NULL,
     &      'ENTER CORRECTIONS OUTPUT DOC.',IRTFLG)
	IF (IRTFLG.NE.0) RETURN

	NLIST = 6

	DO  IVIEW=1,NTVW
	  BUFLOC(1) = NUMBER(IVIEW)
	  BUFLOC(2) = SCALE(IVIEW)
	  BUFLOC(3) = ANGLE(2,IVIEW)*180/PI
	  BUFLOC(4) = ANGLE(1,IVIEW)*180/PI
	  BUFLOC(5) = SHIFT(1,IVIEW)
	  BUFLOC(6) = SHIFT(2,IVIEW)
	  NRUN      = IVIEW-1
	  CALL SAVDN1(NCOR,CORDOC,BUFLOC,NLIST,NRUN,0)
	ENDDO

        CORDOC = 
     &  'VIEW   SCALE       THETA      PSI         XSHIFT       YSHIFT'
        CALL LUNDOCPUTCOM(NCOR,CORDOC,IRTFLG)

        CORDOC = 'FOR IMAGE SERIES: ' // SERNAME(1:NAC)
        CALL LUNDOCPUTCOM(NCOR,CORDOC,IRTFLG)

	CLOSE(NCOR)

	CALL  FILERD(ZDOC,NA,NULL,'ENTER 3-D COORDS OUTPUT DOC.',IRTFLG)
	IF (IRTFLG .NE. 0) RETURN

	NLIST = 4

	DO IPOINT=1,NTPT
           BUFLOC(1) = IPOINT
           BUFLOC(2) = P3D(1,IPOINT)
           BUFLOC(3) = P3D(2,IPOINT)
           BUFLOC(4) = P3D(3,IPOINT)
	   NRUN      = IPOINT-1
           CALL SAVDN1(NXYZ,ZDOC,BUFLOC,NLIST,NRUN,0)
	ENDDO

        CALL LUNDOCPUTCOM(NXYZ,
     &     'POINT    XCOOR       YCOOR       ZCOOR',IRTFLG)

        CALL LUNDOCPUTCOM(NXYZ,CORDOC,IRTFLG)

	CLOSE(NXYZ)

	END

