program main
implicit none
type mrchead
integer nx ! /* # of columns ( fastest changing in the map */
integer ny ! /* # of rows */
integer nz ! /* # of sections (slowest changing in the map */
integer mode ! /* data type
! 0 = image data in bytes
! 1 = image data in short integer
! 2 = image data in floats
! 3 = complex data in complex short integers
! 4 = complex data in complex reals */
integer nxstart !/* number of first column in map (default = 0) */
integer nystaproc3d !/* number of first row in map (default = 0) */
integer nzstart !/* number of first ssection in map (default = 0) */
integer mx !/* number of intervals along X */
integer my !/* number of intervals along Y */
integer mz !/* number of intervals along Z */
real a !/* cell dimensions in X (angstrom) proc3d rec-ort-8.5-12.mrc core.mrc apix=2.152 mask=122 */
real b !/* cell dimensions in Y (angstrom) */
real c !/* cell dimensions in Z (angstrom) */
real alpha !/* cell angles between Y and Z */
real beta !/* cell angles between X and Z */
real gamma !/* cell angles between X and Y */
integer mapc !/* number of axis corresponding to columns (X) */
integer mapr !/* number of axis corresponding to rows (Y) */
integer maps !/* number of axis corresponding to sections (Z) */
real amin ! /* minimum density value */
real amax !/* maximum density value */
real amean ! /* mean density value */
integer ispg !/* space group number (0 for images) */
integer nsymbt ! /* # of bytes for symmetry operators */
integer extra(25) !/* user defined storage space */
real xorigin !/* X phase origin */
real yorigin !/* Y phase origin */
real zorigin !/* z phase origin */
character map(4)
character machinestamp(4)
real arms
integer nlabl !/* # of labels being used in the MRC header */
character label(10,80) !/* actual text labels
end type
type(mrchead):: mrc
integer hx,ky,lz,iargc,n,i
real r,phi,r0,r10,x,y,r1,AVG,point,FFTsize
real,allocatable:: density3d(:,:,:)
character(len=54) :: par(2)
! n=iargc()
! if (n.lt.1) then
! call help
! goto 999
! end if
! do i=1,n
! call getarg(i,par(i))
! end do
!
open(10,file='C:\Users\Administrator\Desktop\test\J723-core-1.mrc',form='unformatted',access='stream',status='old')
open(11,file='C:\Users\Administrator\Desktop\test\J727.mrc',form='unformatted',access='stream')
read(10) mrc
FFTsize=mrc%nx
allocate(density3d(-FFTsize/2:FFTsize/2-1,-FFTsize/2:FFTsize/2-1,-FFTsize/2:FFTsize/2-1))
read(10) density3d
close(10)
! r0=140
! r10=75
!
! AVG=0.0
! point=0.0
! do lz=-216,215
! do ky=-216,215
! !y=ky
! do hx=-216,215
! !x=hx
! r=sqrt(float(hx**2+ky**2+lz**2))
! r1=sqrt(float(ky**2+hx**2))
! if ((r.le.r0).or.(r1.ge.r10)) cycle
! if(R.gt.185) cycle
! AVg=AVG+ density3d(hx,ky,lz)
! point=point+1.0
!
! end do
! end do
! end do
!
! AVG=AVG/point
do lz=-FFTsize/2,FFTsize/2-1
do ky=-FFTsize/2,FFTsize/2-1
do hx=-FFTsize/2,FFTsize/2-1
!
! r=sqrt(float(hx**2+ky**2+lz**2))
! if(r.le.49)then
! density3d(hx,ky,lz)=1.0
! endif
! r1=sqrt(float(ky**2+hx**2))
! if ((r.le.r0).and.(r.ge.r10))then !.and.(lz.le.r0)
! phi=atan2(y,x)*180.0/3.1415926
! if((phi.ge.25.0).and.(phi.le.125.0)) then
!!
!! density3d(lz,ky,hx)=.0
!!! else if(R.gt.185 .or. r1.gt. 185) then
! density3d(lz,ky,hx)=0.0
! end if
! end if
!
! write(11) mrc
! write(11) density3d
! close(11)
! end
if(density3d(hx,ky,lz).eq. 0.000)then
density3d(hx,ky,lz)=0.000
else
density3d(hx,ky,lz)=1.0
endif
end do
end do
end do
print*,'write 3d map'
write(11) mrc
write(11) density3d
close(11)
deallocate(density3d)
return
999 end
subroutine help
implicit none
print*,'please input model3d maskmodel'
end
! open(10,file='D:\T7TUTEN\class2\rec-mrcs-core2-pt2-5.mrc',form='unformatted',access='stream',status='old')
! open(11,file='D:\T7TUTEN\class2\core-model.mrc',form='unformatted',access='stream')
! read(10) mrc
! FFTsize=mrc%nx
! allocate(density3d(-FFTsize/2:FFTsize/2-1,-FFTsize/2:FFTsize/2-1,-FFTsize/2:FFTsize/2-1))
! read(10) density3d
! close(10)
!
! do lz=-FFTsize/2,FFTsize/2-1
!
! do ky=-FFTsize/2,FFTsize/2-1
!
! do hx=-FFTsize/2,FFTsize/2-1
!
! r=sqrt(float(hx**2+ky**2))
! if(r.gt. 80.0)then
! density3d(hx,ky,lz)=0.0
! endif
!
! end do
! end do
! end do
! print*,'write 3d map'
! write(11) mrc
! write(11) density3d
! close(11)
! deallocate(density3d)
!999 end
!
!subroutine help
! implicit none
! print*,'please input model3d maskmodel'
!end