3 C Define constants and zero out tables.
5 implicit real*8 (a-h,o-z)
7 include 'DIMENSIONS.ZSCOPT'
11 include 'COMMON.IOUNITS'
12 include 'COMMON.CHAIN'
13 include 'COMMON.INTERACT'
15 include 'COMMON.LOCAL'
16 include 'COMMON.TORSION'
17 include 'COMMON.FFIELD'
18 include 'COMMON.SBRIDGE'
19 include 'COMMON.MINIM'
20 include 'COMMON.DERIV'
21 include "COMMON.WEIGHTS"
22 include "COMMON.NAMES"
23 include "COMMON.TIME1"
25 C The following is just to define auxiliary variables used in angle conversion
57 C CSA I/O units (separated from others especially for Jooyoung)
68 icsa_bank_reminimized=38
72 C Set default weights of the energy terms.
133 gaussc(l,k,j,i)=0.0D0
154 C Initialize the bridge arrays
173 C Initialize variables used in minimization.
182 C Initialize the variables responsible for the mode of gradient storage.
188 if (print_order(i).eq.j) then
196 C Set timers and counters for the respective routines
216 c-------------------------------------------------------------------------
218 implicit real*8 (a-h,o-z)
220 include 'DIMENSIONS.ZSCOPT'
221 include 'COMMON.NAMES'
222 include 'COMMON.FFIELD'
224 &'CYS','MET','PHE','ILE','LEU','VAL','TRP','TYR','ALA','GLY','THR',
225 &'SER','GLN','ASN','GLU','ASP','HIS','ARG','LYS','PRO','D'/
227 &'C','M','F','I','L','V','W','Y','A','G','T',
228 &'S','Q','N','E','D','H','R','K','P','X'/
229 data potname /'LJ','LJK','BP','GB','GBV'/
231 & "EVDW SC-SC","EVDW2 SC-p","EES p-p","ECORR4 ","ECORR5 ",
232 & "ECORR6 ","EELLO ","ETURN3 ","ETURN4 ","ETURN6 ",
233 & "EBE bend","ESC SCloc","ETORS ","ETORSD ","EVDW2_14",2*" "/
235 & "WSC","WSCP","WELEC","WCORR","WCORR5","WCORR6","WEL_LOC",
236 & "WTURN3","WTURN4","WTURN6","WANG","WSCLOC","WTOR","WTORD",
240 data print_order /1,2,3,11,12,13,14,4,5,6,7,8,9,10,16,0/
243 data print_order /1,2,3,11,12,13,14,4,5,6,7,8,9,10,3*0/
246 c---------------------------------------------------------------------------
247 subroutine init_int_table
248 implicit real*8 (a-h,o-z)
250 include 'DIMENSIONS.ZSCOPT'
255 include 'COMMON.INFO'
257 include 'COMMON.CHAIN'
258 include 'COMMON.INTERACT'
259 include 'COMMON.LOCAL'
260 include 'COMMON.SBRIDGE'
261 include 'COMMON.IOUNITS'
262 logical scheck,lprint
264 integer my_sc_int(0:max_fg_Procs-1),my_sc_intt(0:max_fg_Procs),
265 & my_ele_int(0:max_fg_Procs-1),my_ele_intt(0:max_fg_Procs)
266 C... Determine the numbers of start and end SC-SC interaction
267 C... to deal with by current processor.
270 &write (iout,*) 'INIT_INT_TABLE nres=',nres,' nnt=',nnt,' nct=',nct
271 n_sc_int_tot=(nct-nnt+1)*(nct-nnt)/2-nss
272 MyRank=MyID-(MyGroup-1)*fgProcs
273 call int_bounds(n_sc_int_tot,my_sc_inds,my_sc_inde)
275 & write (iout,*) 'Processor',MyID,' MyRank',MyRank,
276 & ' n_sc_int_tot',n_sc_int_tot,' my_sc_inds=',my_sc_inds,
277 & ' my_sc_inde',my_sc_inde
297 cd write (iout,*) 'ns=',ns,' nss=',nss,' ihpb,jhpb',
298 cd & (ihpb(i),jhpb(i),i=1,nss)
302 if (ihpb(ii).eq.i+nres) then
309 cd write (iout,*) 'i=',i,' scheck=',scheck,' jj=',jj
313 write (iout,*) 'jj=i+1'
314 call int_partition(ind_scint,my_sc_inds,my_sc_inde,i,
315 & iatsc_s,iatsc_e,i+2,nct,nint_gr(i),istart(i,1),iend(i,1),*12)
321 else if (jj.eq.nct) then
323 write (iout,*) 'jj=nct'
324 call int_partition(ind_scint,my_sc_inds,my_sc_inde,i,
325 & iatsc_s,iatsc_e,i+1,nct-1,nint_gr(i),istart(i,1),iend(i,1),*12)
333 call int_partition(ind_scint,my_sc_inds,my_sc_inde,i,
334 & iatsc_s,iatsc_e,i+1,jj-1,nint_gr(i),istart(i,1),iend(i,1),*12)
336 call int_partition(ind_scint,my_sc_inds,my_sc_inde,i,
337 & iatsc_s,iatsc_e,jj+1,nct,nint_gr(i),istart(i,ii),iend(i,ii),*12)
348 call int_partition(ind_scint,my_sc_inds,my_sc_inde,i,
349 & iatsc_s,iatsc_e,i+1,nct,nint_gr(i),istart(i,1),iend(i,1),*12)
354 ind_scint=int_scint+nct-i
358 ind_scint_old=ind_scint
368 write (iout,*) 'Processor',MyID,' Group',MyGroup
369 write (iout,*) 'iatsc_s=',iatsc_s,' iatsc_e=',iatsc_e
373 write (iout,'(a)') 'Interaction array:'
375 write (iout,'(i3,2(2x,2i3))')
376 & i,(istart(i,iint),iend(i,iint),iint=1,nint_gr(i))
381 C Now partition the electrostatic-interaction array
383 nele_int_tot=(npept-ispp)*(npept-ispp+1)/2
384 call int_bounds(nele_int_tot,my_ele_inds,my_ele_inde)
386 & write (iout,*) 'Processor',MyID,' MyRank',MyRank,
387 & ' nele_int_tot',nele_int_tot,' my_ele_inds=',my_ele_inds,
388 & ' my_ele_inde',my_ele_inde
395 call int_partition(ind_eleint,my_ele_inds,my_ele_inde,i,
396 & iatel_s,iatel_e,i+ispp,nct-1,ijunk,ielstart(i),ielend(i),*13)
408 write (iout,'(a)') 'Electrostatic interaction array:'
410 write (iout,'(i3,2(2x,2i3))') i,ielstart(i),ielend(i)
415 C Partition the SC-p interaction array
417 nscp_int_tot=(npept-iscp+1)*(npept-iscp+1)
418 call int_bounds(nscp_int_tot,my_scp_inds,my_scp_inde)
420 & write (iout,*) 'Processor',MyID,' MyRank',MyRank,
421 & ' nscp_int_tot',nscp_int_tot,' my_scp_inds=',my_scp_inds,
422 & ' my_scp_inde',my_scp_inde
428 if (i.lt.nnt+iscp) then
429 cd write (iout,*) 'i.le.nnt+iscp'
430 call int_partition(ind_scpint,my_scp_inds,my_scp_inde,i,
431 & iatscp_s,iatscp_e,i+iscp,nct,nscp_gr(i),iscpstart(i,1),
433 else if (i.gt.nct-iscp) then
434 cd write (iout,*) 'i.gt.nct-iscp'
435 call int_partition(ind_scpint,my_scp_inds,my_scp_inde,i,
436 & iatscp_s,iatscp_e,nnt,i-iscp,nscp_gr(i),iscpstart(i,1),
439 call int_partition(ind_scpint,my_scp_inds,my_scp_inde,i,
440 & iatscp_s,iatscp_e,nnt,i-iscp,nscp_gr(i),iscpstart(i,1),
443 call int_partition(ind_scpint,my_scp_inds,my_scp_inde,i,
444 & iatscp_s,iatscp_e,i+iscp,nct,nscp_gr(i),iscpstart(i,ii),
453 if (i.lt.nnt+iscp) then
455 iscpstart(i,1)=i+iscp
457 elseif (i.gt.nct-iscp) then
465 iscpstart(i,2)=i+iscp
471 write (iout,'(a)') 'SC-p interaction array:'
472 do i=iatscp_s,iatscp_e
473 write (iout,'(i3,2(2x,2i3))')
474 & i,(iscpstart(i,j),iscpend(i,j),j=1,nscp_gr(i))
477 C Partition local interactions
479 call int_bounds(nres-2,loc_start,loc_end)
480 loc_start=loc_start+1
482 call int_bounds(nres-2,ithet_start,ithet_end)
483 ithet_start=ithet_start+2
484 ithet_end=ithet_end+2
485 call int_bounds(nct-nnt-2,iphi_start,iphi_end)
486 iphi_start=iphi_start+nnt+2
487 iphi_end=iphi_end+nnt+2
489 write (iout,*) 'Processor:',MyID,
490 & ' loc_start',loc_start,' loc_end',loc_end,
491 & ' ithet_start',ithet_start,' ithet_end',ithet_end,
492 & ' iphi_start',iphi_start,' iphi_end',iphi_end
493 write (*,*) 'Processor:',MyID,
494 & ' loc_start',loc_start,' loc_end',loc_end,
495 & ' ithet_start',ithet_start,' ithet_end',ithet_end,
496 & ' iphi_start',iphi_start,' iphi_end',iphi_end
498 if (fgprocs.gt.1 .and. MyID.eq.BossID) then
499 write(iout,'(i10,a,i10,a,i10,a/a,i3,a)') n_sc_int_tot,' SC-SC ',
500 & nele_int_tot,' electrostatic and ',nscp_int_tot,
501 & ' SC-p interactions','were distributed among',fgprocs,
502 & ' fine-grain processors.'
514 c---------------------------------------------------------------------------
515 subroutine int_partition(int_index,lower_index,upper_index,atom,
516 & at_start,at_end,first_atom,last_atom,int_gr,jat_start,jat_end,*)
517 implicit real*8 (a-h,o-z)
519 include 'COMMON.IOUNITS'
520 integer int_index,lower_index,upper_index,atom,at_start,at_end,
521 & first_atom,last_atom,int_gr,jat_start,jat_end
524 if (lprn) write (iout,*) 'int_index=',int_index
525 int_index_old=int_index
526 int_index=int_index+last_atom-first_atom+1
528 & write (iout,*) 'int_index=',int_index,
529 & ' int_index_old',int_index_old,
530 & ' lower_index=',lower_index,
531 & ' upper_index=',upper_index,
532 & ' atom=',atom,' first_atom=',first_atom,
533 & ' last_atom=',last_atom
534 if (int_index.ge.lower_index) then
536 if (at_start.eq.0) then
538 jat_start=first_atom-1+lower_index-int_index_old
542 if (lprn) write (iout,*) 'jat_start',jat_start
543 if (int_index.ge.upper_index) then
545 jat_end=first_atom-1+upper_index-int_index_old
550 if (lprn) write (iout,*) 'jat_end',jat_end
554 c------------------------------------------------------------------------------
555 subroutine hpb_partition
556 implicit real*8 (a-h,o-z)
558 include 'COMMON.SBRIDGE'
559 include 'COMMON.IOUNITS'
561 include 'COMMON.INFO'
562 call int_bounds(nhpb,link_start,link_end)
567 cd write (iout,*) 'Processor',MyID,' MyRank',MyRank,
568 cd & ' nhpb',nhpb,' link_start=',link_start,
569 cd & ' link_end',link_end