X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;f=source%2Funres%2Fsrc_MD-M%2Finitialize_p.F;h=696a931c049e5fd164950fe9d59a75a07b35dbf8;hb=06a7b5d89b58b39f785a1662d35225f4da1cf5d8;hp=a650241753d78bb7e605549a354896dd05d0a2fe;hpb=7675ab8ec26554f2fd3f2e7e427b177254872a45;p=unres.git diff --git a/source/unres/src_MD-M/initialize_p.F b/source/unres/src_MD-M/initialize_p.F index a650241..696a931 100644 --- a/source/unres/src_MD-M/initialize_p.F +++ b/source/unres/src_MD-M/initialize_p.F @@ -119,6 +119,17 @@ C icsa_in=40 crc for ifc error 118 icsa_pdb=42 + itorkcc=43 + ithetkcc=44 + itube=45 +C Lipidic input file for parameters range 60-79 + iliptranpar=60 +C input file for transfer sidechain and peptide group inside the +C lipidic environment if lipid is implicite + +C DNA input files for parameters range 80-99 +C Suger input files for parameters range 100-119 +C All-atom input files for parameters range 120-149 C C Set default weights of the energy terms. C @@ -146,8 +157,10 @@ c call memmon_print_usage() enddo do i=1,ntyp do j=1,ntyp - aa(i,j)=0.0D0 - bb(i,j)=0.0D0 + aa_aq(i,j)=0.0D0 + bb_aq(i,j)=0.0D0 + aa_lip(i,j)=0.0D0 + bb_lip(i,j)=0.0D0 augm(i,j)=0.0D0 sigma(i,j)=0.0D0 r0(i,j)=0.0D0 @@ -245,6 +258,32 @@ C Initialize the bridge arrays ihpb(i)=0 jhpb(i)=0 enddo +C Initialize correlation arrays + do i=1,maxres + do k=1,2 + b1(k,i)=0.0 + b2(k,i)=0.0 + b1tilde(k,i)=0.0 +c b2tilde(k,i)=0.0 + do j=1,2 +C CC(j,k,i)=0.0 +C Ctilde(j,k,i)=0.0 +C DD(j,k,i)=0.0 +C Dtilde(j,k,i)=0.0 + EE(j,k,i)=0.0 + enddo + enddo + enddo + do i=-maxtor,maxtor + do k=1,2 + do j=1,2 + CC(j,k,i)=0.0 + Ctilde(j,k,i)=0.0 + DD(j,k,i)=0.0 + Dtilde(j,k,i)=0.0 + enddo + enddo + enddo C C Initialize timing. C @@ -267,8 +306,8 @@ C C Initialize constants used to split the energy into long- and short-range C components C - r_cut=2.0d0 - rlamb=0.3d0 +C r_cut=2.0d0 +C rlamb=0.3d0 #ifndef SPLITELE nprint_ene=nprint_ene-1 #endif @@ -297,14 +336,16 @@ c------------------------------------------------------------------------- & "EVDW SC-SC","EVDW2 SC-p","EES p-p","ECORR4 ","ECORR5 ", & "ECORR6 ","EELLO ","ETURN3 ","ETURN4 ","ETURN6 ", & "EBE bend","ESC SCloc","ETORS ","ETORSD ","EHPB ","EVDWPP ", - & "ESTR ","EVDW2_14 ","UCONST ", " ","ESCCOR"/ + & "ESTR ","EVDW2_14 ","UCONST ", " ","ESCCOR", + & "ELIPTRAN", "EAFM", "ETHETCNSTR", " "/ data wname / & "WSC","WSCP","WELEC","WCORR","WCORR5","WCORR6","WEL_LOC", & "WTURN3","WTURN4","WTURN6","WANG","WSCLOC","WTOR","WTORD", - & "WSTRAIN","WVDWPP","WBOND","SCAL14"," "," ","WSCCOR"/ + & "WSTRAIN","WVDWPP","WBOND","SCAL14"," "," ","WSCCOR", + & "WLT", "WAFM", "WTHETCNSR", " "/ data nprint_ene /20/ data print_order/1,2,3,11,12,13,14,4,5,6,7,8,9,10,19,18,15,17,16, - & 21,0/ + & 21,0,22,23,24,25/ end c--------------------------------------------------------------------------- subroutine init_int_table @@ -344,7 +385,7 @@ C... to deal with by current processor. itask_cont_from(i)=fg_rank itask_cont_to(i)=fg_rank enddo - lprint=.false. + lprint=energy_dec if (lprint) &write (iout,*) 'INIT_INT_TABLE nres=',nres,' nnt=',nnt,' nct=',nct n_sc_int_tot=(nct-nnt+1)*(nct-nnt)/2-nss @@ -377,6 +418,7 @@ cd write (iout,*) 'ns=',ns,' nss=',nss,' ihpb,jhpb', cd & (ihpb(i),jhpb(i),i=1,nss) do i=nnt,nct-1 scheck=.false. + if (dyn_ss) goto 10 do ii=1,nss if (ihpb(ii).eq.i+nres) then scheck=.true. @@ -442,6 +484,7 @@ c write (iout,*) 'jj=nct' iatsc_s=nnt iatsc_e=nct-1 #endif + if (iatsc_s.eq.0) iatsc_s=1 #ifdef MPI if (lprint) write (*,*) 'Processor',fg_rank,' CG Group',kolor, & ' absolute rank',myrank,' iatsc_s=',iatsc_s,' iatsc_e=',iatsc_e @@ -574,6 +617,7 @@ cd write (iout,*) 'i.gt.nct-iscp' endif enddo ! i #endif + if (iatscp_s.eq.0) iatscp_s=1 if (lprint) then write (iout,'(a)') 'SC-p interaction array:' do i=iatscp_s,iatscp_e @@ -615,6 +659,12 @@ C Partition local interactions call int_bounds(nct-nnt,ibondp_start,ibondp_end) ibondp_start=ibondp_start+nnt ibondp_end=ibondp_end+nnt + call int_bounds(nres,ilip_start,ilip_end) + ilip_start=ilip_start + ilip_end=ilip_end + call int_bounds(nres-1,itube_start,itube_end) + itube_start=itube_start + itube_end=itube_end call int_bounds1(nres-1,ivec_start,ivec_end) c print *,"Processor",myrank,fg_rank,fg_rank1, c & " ivec_start",ivec_start," ivec_end",ivec_end @@ -626,6 +676,13 @@ c & " ivec_start",ivec_start," ivec_end",ivec_end else call int_bounds(ndih_constr,idihconstr_start,idihconstr_end) endif + if (ntheta_constr.eq.0) then + ithetaconstr_start=1 + ithetaconstr_end=0 + else + call int_bounds + & (ntheta_constr,ithetaconstr_start,ithetaconstr_end) + endif c nsumgrad=(nres-nnt)*(nres-nnt+1)/2 c nlen=nres-nnt+1 nsumgrad=(nres-nnt)*(nres-nnt+1)/2 @@ -660,7 +717,10 @@ c nlen=nres-nnt+1 & ' ivec_start',ivec_start,' ivec_end',ivec_end, & ' iset_start',iset_start,' iset_end',iset_end, & ' idihconstr_start',idihconstr_start,' idihconstr_end', - & idihconstr_end + & idihconstr_end, + & ' ithetaconstr_start',ithetaconstr_start,' ithetaconstr_end', + & ithetaconstr_end + write (*,*) 'Processor:',fg_rank,myrank,' igrad_start', & igrad_start,' igrad_end',igrad_end,' ngrad_start',ngrad_start, & ' ngrad_end',ngrad_end @@ -700,7 +760,7 @@ c nlen=nres-nnt+1 iaux=iphi1_end-iphi1_start+1 call MPI_Allgather(iaux,1,MPI_INTEGER,iphi1_count(0),1, & MPI_INTEGER,FG_COMM,IERROR) - do i=0,maxprocs-1 + do i=0,max_fg_procs-1 do j=1,maxres ielstart_all(j,i)=0 ielend_all(j,i)=0 @@ -945,9 +1005,15 @@ c call flush(iout) call MPI_Group_free(cont_to_group,ierr) call MPI_Type_contiguous(3,MPI_DOUBLE_PRECISION,MPI_UYZ,IERROR) call MPI_Type_commit(MPI_UYZ,IERROR) + call MPI_Type_contiguous(maxcontsshi,MPI_INTEGER,MPI_I50,IERROR) + call MPI_Type_commit(MPI_I50,IERROR) call MPI_Type_contiguous(18,MPI_DOUBLE_PRECISION,MPI_UYZGRAD, & IERROR) call MPI_Type_commit(MPI_UYZGRAD,IERROR) + impishi=maxcontsshi*3 + call MPI_Type_contiguous(impishi,MPI_DOUBLE_PRECISION, + & MPI_SHI,IERROR) + call MPI_Type_commit(MPI_SHI,IERROR) call MPI_Type_contiguous(2,MPI_DOUBLE_PRECISION,MPI_MU,IERROR) call MPI_Type_commit(MPI_MU,IERROR) call MPI_Type_contiguous(4,MPI_DOUBLE_PRECISION,MPI_MAT1,IERROR) @@ -1125,6 +1191,8 @@ c write (iout,*) "MPI_ROTAT2",MPI_ROTAT2 iphi1_end=nres idihconstr_start=1 idihconstr_end=ndih_constr + ithetaconstr_start=1 + ithetaconstr_end=ntheta_constr iphid_start=iphi_start iphid_end=iphi_end-1 itau_start=4 @@ -1132,13 +1200,19 @@ c write (iout,*) "MPI_ROTAT2",MPI_ROTAT2 ibond_start=2 ibond_end=nres-1 ibondp_start=nnt - ibondp_end=nct-1 +C ibondp_end=nct-1 + ibondp_end=nct ivec_start=1 ivec_end=nres-1 iset_start=3 iset_end=nres+1 iint_start=2 iint_end=nres-1 + ilip_start=1 + ilip_end=nres + itube_start=1 + itube_end=nres + #endif return end