X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;ds=sidebyside;f=source%2Funres%2Fio.f90;h=ab5dc2aef24fbfaab3c9fc1151ac8a18f99c594c;hb=7077a079d2932fdbb6cb5c28bae95bad9ff9105c;hp=9388f1547145bc106c051e0963afa2e7f1c6bb62;hpb=bbbdc8e18680625d3004f414aec255e9ca7b7353;p=unres4.git diff --git a/source/unres/io.f90 b/source/unres/io.f90 index 9388f15..ab5dc2a 100644 --- a/source/unres/io.f90 +++ b/source/unres/io.f90 @@ -720,7 +720,7 @@ ! integer :: rescode ! double precision x(maxvar) character(len=256) :: pdbfile - character(len=480) :: weightcard + character(len=800) :: weightcard character(len=80) :: weightcard_t!,ucase ! integer,dimension(:),allocatable :: itype_pdb !(maxres) ! common /pizda/ itype_pdb @@ -769,6 +769,19 @@ call reada(weightcard,'WTURN6',wturn6,1.0D0) call reada(weightcard,'WSCCOR',wsccor,1.0D0) call reada(weightcard,'WSTRAIN',wstrain,1.0D0) + call reada(weightcard,'WVDWPP_NUCL',wvdwpp_nucl,0.0D0) + call reada(weightcard,'WELPP',welpp,0.0d0) + call reada(weightcard,'WVDWPSB',wvdwpsb,0.0d0) + call reada(weightcard,'WELPSB',welpsb,0.0D0) + call reada(weightcard,'WVDWSB',wvdwsb,0.0d0) + call reada(weightcard,'WELSB',welsb,0.0D0) + call reada(weightcard,'WBOND_NUCL',wbond_nucl,0.0D0) + call reada(weightcard,'WANG_NUCL',wang_nucl,0.0D0) + call reada(weightcard,'WSBLOC',wsbloc,0.0D0) + call reada(weightcard,'WTOR_NUCL',wtor_nucl,0.0D0) + call reada(weightcard,'WTORD_NUCL',wtor_d_nucl,0.0D0) + call reada(weightcard,'WCORR_NUCL',wcorr_nucl,0.0D0) + call reada(weightcard,'WCORR3_NUCL',wcorr3_nucl,0.0D0) call reada(weightcard,'WBOND',wbond,1.0D0) call reada(weightcard,'WTOR',wtor,1.0D0) call reada(weightcard,'WTORD',wtor_d,1.0D0) @@ -783,8 +796,15 @@ call reada(weightcard,'CUTOFF',cutoff_corr,7.0d0) call reada(weightcard,'DELT_CORR',delt_corr,0.5d0) call reada(weightcard,'TEMP0',temp0,300.0d0) + call reada(weightcard,'WSCBASE',wscbase,0.0D0) if (index(weightcard,'SOFT').gt.0) ipot=6 - call reada(weightcard,'WBOND_NUCL',wbond_nucl,1.0D0) + call reada(weightcard,'WBOND_NUCL',wbond_nucl,0.0D0) + call reada(weightcard,'WCATCAT',wcatcat,0.0d0) + call reada(weightcard,'WCATPROT',wcatprot,0.0d0) + call reada(weightcard,'WPEPBASE',wpepbase,1.0d0) + call reada(weightcard,'WSCPHO',wscpho,0.0d0) + call reada(weightcard,'WPEPPHO',wpeppho,0.0d0) + ! 12/1/95 Added weight for the multi-body term WCORR call reada(weightcard,'WCORRH',wcorr,1.0D0) if (wcorr4.gt.0.0d0) wcorr=wcorr4 @@ -943,7 +963,7 @@ nnt=nstart_sup nct=nstart_sup+nsup-1 !el if(.not.allocated(icont_ref)) - allocate(icont_ref(2,12*nres)) ! maxcont=12*maxres + allocate(icont_ref(2,(nres/2)*nres)) ! maxcont=12*maxres call contact(.false.,ncont_ref,icont_ref,co) if (sideadd) then @@ -969,23 +989,32 @@ if (indpdb.eq.0) then nres_molec(:)=0 allocate(sequence(maxres,5)) - - if (protein) then +! itype(:,:)=0 + itmp=0 + if (protein) then ! Read sequence if not taken from the pdb file. molec=1 read (inp,*) nres_molec(molec) -! print *,'nres=',nres + print *,'nres=',nres if (iscode.gt.0) then read (inp,'(80a1)') (sequence(i,molec)(1:1),i=1,nres_molec(molec)) else read (inp,'(20(1x,a3))') (sequence(i,molec),i=1,nres_molec(molec)) endif +! read(inp,*) weightcard_t +! print *,"po seq" weightcard_t ! Convert sequence to numeric code do i=1,nres_molec(molec) + itmp=itmp+1 itype(i,1)=rescode(i,sequence(i,molec),iscode,molec) + print *,itype(i,1) + enddo endif +! read(inp,*) weightcard_t +! print *,"po seq", weightcard_t + if (nucleic) then ! Read sequence if not taken from the pdb file. molec=2 @@ -997,8 +1026,9 @@ ! Convert sequence to numeric code do i=1,nres_molec(molec) - istype(i)=sugarcode(sequence(i,molec)(1:1),i) - itype(i,1)=rescode(i,sequence(i,molec)(2:2),iscode,molec) + itmp=itmp+1 + istype(itmp)=sugarcode(sequence(i,molec)(1:1),i) + itype(itmp,molec)=rescode(i,sequence(i,molec)(2:2),iscode,molec) enddo endif @@ -1011,7 +1041,9 @@ ! Convert sequence to numeric code print *,nres_molec(molec) do i=1,nres_molec(molec) - itype(i,1)=rescode(i,sequence(i,molec),iscode,molec) + itmp=itmp+1 + print *,itmp,"itmp" + itype(itmp,molec)=rescode(i,sequence(i,molec),iscode,molec) enddo endif nres=0 @@ -1021,18 +1053,27 @@ enddo ! Assign initial virtual bond lengths -!elwrite(iout,*) "test_alloc" + if(.not.allocated(molnum)) then + allocate(molnum(nres+1)) + itmp=0 + do i=1,5 + do j=1,nres_molec(i) + itmp=itmp+1 + molnum(itmp)=i + enddo + enddo +! print *,nres_molec(i) + endif if(.not.allocated(vbld)) allocate(vbld(2*nres)) -!elwrite(iout,*) "test_alloc" if(.not.allocated(vbld_inv)) allocate(vbld_inv(2*nres)) -!elwrite(iout,*) "test_alloc" do i=2,nres vbld(i)=vbl vbld_inv(i)=vblinv enddo do i=2,nres-1 - vbld(i+nres)=dsc(iabs(itype(i,1))) - vbld_inv(i+nres)=dsc_inv(iabs(itype(i,1))) + print *, "molnum",molnum(i),itype(i,molnum(i)) + vbld(i+nres)=dsc(iabs(itype(i,molnum(i)))) + vbld_inv(i+nres)=dsc_inv(iabs(itype(i,molnum(i)))) ! write (iout,*) "i",i," itype",itype(i,1), ! & " dsc",dsc(itype(i,1))," vbld",vbld(i),vbld(i+nres) enddo @@ -1091,6 +1132,7 @@ enddo if(me.eq.king.or..not.out1file)then write (iout,*) "ITEL" + print *,nres,"nres" do i=1,nres-1 write (iout,*) i,itype(i,1),itel(i) enddo @@ -1098,6 +1140,7 @@ endif call read_bridge !-------------------------------- + print *,"tu dochodze" ! znamy nres oraz nss można zaalokowac potrzebne tablice call alloc_geo_arrays call alloc_ener_arrays @@ -1187,9 +1230,9 @@ endif #endif nct=nres -!d print *,'NNT=',NNT,' NCT=',NCT - if (itype(1,1).eq.ntyp1) nnt=2 - if (itype(nres,1).eq.ntyp1) nct=nct-1 + print *,'NNT=',NNT,' NCT=',NCT + if (itype(1,molnum(1)).eq.ntyp1_molec(molnum(1))) nnt=2 + if (itype(nres,molnum(nres)).eq.ntyp1_molec(molnum(nres))) nct=nct-1 if (pdbref) then if(me.eq.king.or..not.out1file) & write (iout,'(a,i3)') 'nsup=',nsup @@ -1296,7 +1339,8 @@ ((c(l,k+nres),l=1,3),k=nnt,nct) write (iout,*) "Exit READ_CART" write (iout,'(8f10.5)') & - ((c(l,k),l=1,3),k=1,nres),& + ((c(l,k),l=1,3),k=1,nres) + write (iout,'(8f10.5)') & ((c(l,k+nres),l=1,3),k=nnt,nct) call int_from_cart1(.true.) write (iout,*) "Finish INT_TO_CART" @@ -1337,7 +1381,6 @@ do i=2,nres-1 alph(i)=110d0*deg2rad enddo -!elwrite (iout,*)"alph(i)*deg2rad",(alph(i), i=1,nres) do i=2,nres-1 omeg(i)=-120d0*deg2rad if (itype(i,1).le.0) omeg(i)=-omeg(i) @@ -1415,10 +1458,8 @@ call read_threadbase endif call setup_var -!elwrite (iout,*)"alph(i)*deg2rad",(alph(i), i=1,nres) if (me.eq.king .or. .not. out1file) & call intout -!elwrite (iout,*)"alph(i)*rad2deg",(alph(i)*rad2deg, i=1,nres) if (ns.gt.0 .and. (me.eq.king .or. .not.out1file) ) then write (iout,'(/a,i3,a)') & 'The chain contains',ns,' disulfide-bridging cysteines.'