write(150,888)a(Tatom),xc(Tatom),
& yc(Tatom),zc(Tatom), & fx(Tatom),occupation(Tatom), & fft(Tatom),atomname(Tatom), & charge(Tatom)
****************************************************************** * add C2 atom on the chosen C1 atom
******************************************************************
lbond=1.50
xtemp=xc(Tatom) ytemp=yc(Tatom) ztemp=zc(Tatom) Temp_SN=Tatom
call addatom(xtemp,ytemp,ztemp,lbond,Tatom,Temp_SN,
close(150)
& xfinal,yfinal,zfinal) * * * * * * * * * * *
a(Tatom)='C'//'NC_S'//'NC_CC' xc(Tatom)=xfinal yc(Tatom)=yfinal zc(Tatom)=zfinal fx(Tatom)='XXXX' occupation(Tatom)=1 fft(Tatom)='C_3' charge(Tatom)=7.000 a(Tatom)='C'
if(NC_C.eq.0)NC_CC='' if(NC_C.eq.1)NC_CC='A' if(NC_C.eq.2)NC_CC='B' if(NC_C.eq.3)NC_CC='C' if(NC_C.eq.4)NC_CC='D' if(NC_C.eq.5)NC_CC='E' if(NC_C.eq.6)NC_CC='F' NCT=NCT+1 NC_C=INT(NCT/99) NC_S=NCT-99*NC_C natom_add=natom_add+1
Tatom=natom0+natom_add
atomname(Tatom)='C'
open(160,file='amino.car',access='append') write(160,888)a(Tatom),xc(Tatom),
& yc(Tatom),zc(Tatom), & fx(Tatom),occupation(Tatom), & fft(Tatom),atomname(Tatom), & charge(Tatom)
****************************************************************** * add C3 atom on the chosen C2 atom
******************************************************************
lbond=1.50
xtemp=xc(Tatom) ytemp=yc(Tatom) ztemp=zc(Tatom) Temp_SN=Tatom
call addatom(xtemp,ytemp,ztemp,lbond,Tatom,Temp_SN,
close(160)
& xfinal,yfinal,zfinal) * * * * * * * * * * *
a(Tatom)='C'//'NC_S'//'NC_CC' xc(Tatom)=xfinal yc(Tatom)=yfinal zc(Tatom)=zfinal fx(Tatom)='XXXX' occupation(Tatom)=1 fft(Tatom)='C_3' a(Tatom)='C'
if(NC_C.eq.0)NC_CC='' if(NC_C.eq.1)NC_CC='A' if(NC_C.eq.2)NC_CC='B' if(NC_C.eq.3)NC_CC='C' if(NC_C.eq.4)NC_CC='D' if(NC_C.eq.5)NC_CC='E' if(NC_C.eq.6)NC_CC='F' NCT=NCT+1 NC_C=INT(NCT/99) NC_S=NCT-99*NC_C natom_add=natom_add+1
Tatom=natom0+natom_add
atomname(Tatom)='C'
open(170,file='amino.car',access='append') write(170,888)a(Tatom),xc(Tatom), charge(Tatom)=8.000
& yc(Tatom),zc(Tatom), & fx(Tatom),occupation(Tatom), & fft(Tatom),atomname(Tatom), & charge(Tatom)
****************************************************************** * add N atom on the chosen C3 atom
******************************************************************
lbond=1.53
xtemp=xc(Tatom) ytemp=yc(Tatom) ztemp=zc(Tatom) Temp_SN=Tatom
call addatom(xtemp,ytemp,ztemp,lbond,Tatom,Temp_SN,
close(170)
& xfinal,yfinal,zfinal) * * * * * * * * * * *
a(Tatom)='N'//'NN_S'//'NN_CC' xc(Tatom)=xfinal yc(Tatom)=yfinal zc(Tatom)=zfinal a(Tatom)='N'
if(NN_C.eq.0)NN_CC='' if(NN_C.eq.1)NN_CC='A' if(NN_C.eq.2)NN_CC='B' if(NN_C.eq.3)NN_CC='C' if(NN_C.eq.4)NN_CC='D' if(NN_C.eq.5)NN_CC='E' if(NN_C.eq.6)NN_CC='F' NNT=NNT+1 NN_C=INT(NNT/99) NN_S=NNT-99*NN_C natom_add=natom_add+1
Tatom=natom0+natom_add
fx(Tatom)='XXXX' occupation(Tatom)=1 fft(Tatom)='N_3' charge(Tatom)=9.000
open(180,file='amino.car',access='append') write(180,888)a(Tatom),xc(Tatom),
atomname(Tatom)='N'
& yc(Tatom),zc(Tatom), & fx(Tatom),occupation(Tatom), & fft(Tatom),atomname(Tatom), & charge(Tatom)
45 continue
**************************************************** * rewrite the atom serial.
**************************************************** open(46,file='Satom.car',status='old')
do 47 i=natom0+1,Tatom read(46,1888)a(i) close(180)
47 continue close(46) 1888 format(A5) * *
*120 continue *110 continue *100 continue
endif
*************************************************** * write the output file
***************************************************
open(190,file='output-final.car',access='append') do 200 i=1,Tatom
write(190,888)a(i),xc(i),yc(i),zc(i),fx(i),occupation(i),fft(i),
& atomname(i),charge(i) 200 continue close(190)
888 format(A5,3X,F12.9,2X,F13.9,3X,F12.9,1X,A4,1X,I1,6X,A5,3X,A2,F7.3)
**************************************************** ****************************************************
*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
* To make a list of hydroxy oxygen.
*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
subroutine HO_list(Ohydroxy,Ohydroxy_SN,kjishu)
integer nho,natom,natom0
parameter (natom=15000,natom0=9992,nho=2319) integer kjishu,Ohydroxy_SN(nho) double precision Ohydroxy(nho,4)
end
******************************************************************* * declare the global varialbe
*******************************************************************
kjishu=0 do 50 i=1,natom0
if (charge(i).eq.1.0) then kjishu=kjishu+1 Ohydroxy_SN(kjishu)=i Ohydroxy(kjishu,2)=xc(i) Ohydroxy(kjishu,3)=yc(i) Ohydroxy(kjishu,4)=zc(i) endif
real charge(natom)
double precision xc(natom),yc(natom),zc(natom) common charge common xc,yc,zc
Ohydroxy(kjishu,1)=kjishu
50 continue
****************************************************************** * write out the hydroxy oxygen list