hdiff output

r33384/amber12_interface.F90 2017-10-10 16:30:14.756936681 +0100 r33383/amber12_interface.F90 2017-10-10 16:30:15.280943657 +0100
130:   use master_setup_mod130:   use master_setup_mod
131:   use mdin_ctrl_dat_mod131:   use mdin_ctrl_dat_mod
132:   use mdin_ewald_dat_mod132:   use mdin_ewald_dat_mod
133:   use nb_pairlist_mod133:   use nb_pairlist_mod
134:   use nbips_mod134:   use nbips_mod
135:   use parallel_dat_mod135:   use parallel_dat_mod
136:   use pme_setup_mod136:   use pme_setup_mod
137:   use prmtop_dat_mod137:   use prmtop_dat_mod
138:   use random_mod138:   use random_mod
139:   use shake_mod139:   use shake_mod
140: #ifdef CUDA 
141:   use extra_pnts_nb14_mod, only: ep_frame_rec  
142: #endif CUDA 
143: #ifdef AMBMPI140: #ifdef AMBMPI
144:   use pme_force_mod,  only : alloc_force_mem141:   use pme_force_mod,  only : alloc_force_mem
145:   use remd_mod,       only : remd_method, bcast_remd_method, remd_setup, &142:   use remd_mod,       only : remd_method, bcast_remd_method, remd_setup, &
146:                              slave_remd_setup143:                              slave_remd_setup
147:   use remd_exchg_mod, only : setup_remd_randgen144:   use remd_exchg_mod, only : setup_remd_randgen
148:   use multipmemd_mod, only : setup_groups145:   use multipmemd_mod, only : setup_groups
149:   use pmemd_lib_mod146:   use pmemd_lib_mod
150:   use nmr_calls_mod147:   use nmr_calls_mod
151: #endif148: #endif
152: #endif /* DUMMY_AMBER12 */149: #endif /* DUMMY_AMBER12 */
159:             intent(in)                 :: inpcrd_name_input  156:             intent(in)                 :: inpcrd_name_input  
160: ! Variables  157: ! Variables  
161: #ifndef DUMMY_AMBER12158: #ifndef DUMMY_AMBER12
162:   double precision            :: max_erfc_relerr159:   double precision            :: max_erfc_relerr
163:   integer                     :: new_stack_limit    ! new stack limit160:   integer                     :: new_stack_limit    ! new stack limit
164:   integer                     :: num_ints = 0161:   integer                     :: num_ints = 0
165:   integer                     :: num_reals = 0162:   integer                     :: num_reals = 0
166:   integer                     :: i163:   integer                     :: i
167:   logical                     :: terminal_flag = .false.164:   logical                     :: terminal_flag = .false.
168:   character(len=80)           :: inpcrd_name_string165:   character(len=80)           :: inpcrd_name_string
169: #ifdef CUDA 
170:   !kr366> as arrays are dynamically allocated we have problems with these, so we 
171:   !avoid them as we don't use extra points 
172:   type(ep_frame_rec)            :: ep_frames(0)   
173:   double precision              :: ep_lcl_crd(3,2,0) 
174:   integer, allocatable          :: atm_jrc(:) 
175:   double precision, allocatable :: atm_weight(:), atm_xc(:,:) 
176: #endif /* CUDA */ 
177: 166: 
178: #ifdef AMBMPI167: #ifdef AMBMPI
179: ! Establish pmemd communicators and process ranks168: ! Establish pmemd communicators and process ranks
180:   call setup_groups169:   call setup_groups
181: 170: 
182:   master = mytaskid .eq. 0 ! Make task 0 the master:171:   master = mytaskid .eq. 0 ! Make task 0 the master:
183: 172: 
184: ! CUDA version with GB can run on 1 GPU / task.173: ! CUDA version with GB can run on 1 GPU / task.
185: ! All other combinations require .gt. 1174: ! All other combinations require .gt. 1
186: #ifndef CUDA175: #ifndef CUDA
285:       call remd_setup(numexchg)274:       call remd_setup(numexchg)
286:     else275:     else
287:       call slave_remd_setup276:       call slave_remd_setup
288:     end if277:     end if
289:     call setup_remd_randgen278:     call setup_remd_randgen
290:   end if279:   end if
291: #endif /* AMBMPI */280: #endif /* AMBMPI */
292: 281: 
293: ! Initialize system282: ! Initialize system
294: #ifdef CUDA283: #ifdef CUDA
295:   allocate(atm_jrc(natom)) 
296:   allocate(atm_weight(natom))  
297:   allocate(atm_xc(3,natom)) 
298:   call gpu_setup_system(natom, imin, tol, ntf, ntb, ips, ntp, ntt, vrand)284:   call gpu_setup_system(natom, imin, tol, ntf, ntb, ips, ntp, ntt, vrand)
299:   call gpu_upload_crd(atm_crd)285:   call gpu_upload_crd(atm_crd)
300:   call gpu_upload_charges(atm_qterm)286:   call gpu_upload_charges(atm_qterm)
301:   call gpu_upload_masses(atm_mass)287:   call gpu_upload_masses(atm_mass)
302:   call gpu_upload_frc(atm_frc)288:   call gpu_upload_frc(atm_frc)
303:   call gpu_upload_vel(atm_vel)289:   call gpu_upload_vel(atm_vel)
304:   call gpu_upload_last_vel(atm_last_vel)290:   call gpu_upload_last_vel(atm_last_vel)
305:   call gpu_init_extra_pnts_nb14(gbl_frame_cnt, ep_frames, ep_lcl_crd)291:   call gpu_init_extra_pnts_nb14(gbl_frame_cnt, ep_frames, ep_lcl_crd)
306:   call gpu_constraints_setup(natc, atm_jrc, atm_weight, atm_xc)292:   call gpu_constraints_setup(natc, atm_jrc, atm_weight, atm_xc)
307:   call gminoptim_copy_const()293:   call gminoptim_copy_const()


r33384/shake.F90 2017-10-10 16:30:15.016940145 +0100 r33383/shake.F90 2017-10-10 16:30:15.532946998 +0100
614:         end if614:         end if
615:       end do615:       end do
616: #if defined(AMBMPI) && !defined(CUDA)616: #if defined(AMBMPI) && !defined(CUDA)
617:     end if617:     end if
618: #endif618: #endif
619:   end if619:   end if
620: 620: 
621:   call nonfastwat_shake_setup621:   call nonfastwat_shake_setup
622:   622:   
623: #ifdef CUDA623: #ifdef CUDA
624:   !allocate my_fast_res_lst if fastwat_res_cnt = 0, only needed for CUDA due to 
625:   !lack of exception handling 
626:   if (fastwat_res_cnt .eq. 0) allocate(my_fastwat_res_lst(0)) 
627:   call gpu_shake_setup(atm_mass, my_nonfastwat_bond_cnt, my_nonfastwat_bond_dat, my_fastwat_res_cnt, iorwat, my_fastwat_res_lst)624:   call gpu_shake_setup(atm_mass, my_nonfastwat_bond_cnt, my_nonfastwat_bond_dat, my_fastwat_res_cnt, iorwat, my_fastwat_res_lst)
628: #endif  625: #endif  
629: 626: 
630:   return627:   return
631: 628: 
632: ! Format statements:629: ! Format statements:
633: 630: 
634: 9000 format(' Error: Fast 3-point water residue, name and bond data incorrect!')631: 9000 format(' Error: Fast 3-point water residue, name and bond data incorrect!')
635: 9001 format(' Number of triangulated 3-point waters found: ', i8)632: 9001 format(' Number of triangulated 3-point waters found: ', i8)
636: 633: 
677: #endif674: #endif
678: 675: 
679:     bond_cnt = nbonh + nbona676:     bond_cnt = nbonh + nbona
680: 677: 
681:   else678:   else
682: 679: 
683:     ! shake not done on anything.680:     ! shake not done on anything.
684: 681: 
685:     nonfastwat_bond_cnt = 0682:     nonfastwat_bond_cnt = 0
686:     my_nonfastwat_bond_cnt = 0683:     my_nonfastwat_bond_cnt = 0
687: #ifdef CUDA684: 
688:     ! need the allocations routines to be called as we need them for CUDA 
689:     ! (gdb and valgrind break otherwise) 
690:     allocate(my_nonfastwat_bond_dat(nonfastwat_bond_cnt)) 
691: #endif 
692:     return685:     return
693: 686: 
694:   end if687:   end if
695: 688: 
696:   ! Determine how many nonfastwater bonds there are.689:   ! Determine how many nonfastwater bonds there are.
697: 690: 
698:   nonfastwat_bond_cnt = 0691:   nonfastwat_bond_cnt = 0
699: 692: 
700:   do bond_idx = 1, bond_cnt693:   do bond_idx = 1, bond_cnt
701:     if (fastwat_bonds(bond_idx) .eq. 0) then694:     if (fastwat_bonds(bond_idx) .eq. 0) then


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0