include "COMMON.FREE"
include "COMMON.CONTROL"
include "COMMON.ENERGIES"
+ include "COMMON.SPLITELE"
+ include "COMMON.SBRIDGE"
character*800 controlcard
integer i,j,k,ii,n_ene_found
integer ind,itype1,itype2,itypf,itypsc,itypp
character*16 ucase
character*16 key
external ucase
-
+ double precision pi
call card_concat(controlcard,.true.)
call readi(controlcard,"N_ENE",n_ene,max_ene)
if (n_ene.gt.max_ene) then
call readi(controlcard,"RESCALE",rescale_mode,1)
check_conf=index(controlcard,"NO_CHECK_CONF").eq.0
call reada(controlcard,'DISTCHAINMAX',distchainmax,50.0d0)
+ call reada(controlcard,'BOXX',boxxsize,100.0d0)
+ call reada(controlcard,'BOXY',boxysize,100.0d0)
+ call reada(controlcard,'BOXZ',boxzsize,100.0d0)
+c Cutoff range for interactions
+ call reada(controlcard,"R_CUT",r_cut,15.0d0)
+ call reada(controlcard,"LAMBDA",rlamb,0.3d0)
+ call reada(controlcard,"LIPTHICK",lipthick,0.0d0)
+ call reada(controlcard,"LIPAQBUF",lipbufthick,0.0d0)
+ if (lipthick.gt.0.0d0) then
+ bordliptop=(boxzsize+lipthick)/2.0
+ bordlipbot=bordliptop-lipthick
+C endif
+ if ((bordliptop.gt.boxzsize).or.(bordlipbot.lt.0.0))
+ & write(iout,*) "WARNING WRONG SIZE OF LIPIDIC PHASE"
+ buflipbot=bordlipbot+lipbufthick
+ bufliptop=bordliptop-lipbufthick
+ if ((lipbufthick*2.0d0).gt.lipthick)
+ &write(iout,*) "WARNING WRONG SIZE OF LIP AQ BUF"
+ endif
+ write(iout,*) "bordliptop=",bordliptop
+ write(iout,*) "bordlipbot=",bordlipbot
+ write(iout,*) "bufliptop=",bufliptop
+ write(iout,*) "buflipbot=",buflipbot
call readi(controlcard,'SYM',symetr,1)
write (iout,*) "DISTCHAINMAX",distchainmax
write (iout,*) "delta",delta
zscfile=index(controlcard,"ZSCFILE").gt.0
with_dihed_constr = index(controlcard,"WITH_DIHED_CONSTR").gt.0
write (iout,*) "with_dihed_constr ",with_dihed_constr
+ with_theta_constr = index(controlcard,"WITH_THETA_CONSTR").gt.0
+ write (iout,*) "with_theta_constr ",with_theta_constr
call readi(controlcard,'CONSTR_DIST',constr_dist,0)
+ write (iout,*) "with_dihed_constr ",with_dihed_constr,
+ & " CONSTR_DIST",constr_dist
+ call readi(controlcard,'CONSTR_HOMOL',constr_homology,0)
+ write (iout,*) "with_homology_constr ",with_dihed_constr,
+ & " CONSTR_HOMOLOGY",constr_homology
+ refstr = index(controlcard,'REFSTR').gt.0
+ pdbref = index(controlcard,'PDBREF').gt.0
+ dyn_ss=(index(controlcard,'DYN_SS').gt.0)
+C /06/28/2013 Adasko: dyn_ss is keyword allowing to break and create bond
+C disulfide bond. Note that in conterary to dynamics this in
+C CONTROLCARD. The bond are read in molread_zs.F
+ call flush(iout)
return
end
c------------------------------------------------------------------------------
call flush(iout)
enddo
+ write (iout,*) "HOMOL_NSET",homol_nset
enddo
if (hamil_rep) then
external ilen,iroof
double precision rmsdev,energia(0:max_ene),efree,eini,temp
double precision prop(maxQ)
- integer ntot_all(maxslice,0:maxprocs-1)
+ integer ntot_all(maxslice,0:maxprocs-1), maxslice_buff
integer iparm,ib,iib,ir,nprop,nthr,npars
double precision etot,time
integer ixdrf,iret
#ifdef MPI
c Check if everyone has the same number of conformations
- call MPI_Allgather(stot(1),maxslice,MPI_INTEGER,
+
+c call MPI_ALLgather(MPI_IN_PLACE,stot(1),MPI_DATATYPE_NULL,
+c & ntot_all(1,0),maxslice,MPI_INTEGER,MPI_Comm_World,IERROR)
+
+ maxslice_buff=maxslice
+
+ call MPI_Allgather(stot(1),maxslice_buff,MPI_INTEGER,
& ntot_all(1,0),maxslice,MPI_INTEGER,MPI_Comm_World,IERROR)
lerr=.false.
do i=0,nprocs-1