C C User subroutine for defining distributed electromagnetic potential subroutine udempotential(vecPot,coords,nBlock, $ i_array,niarray,r_array,nrarray,c_array,ncarray) c include 'aba_param.inc' c dimension vecPot(nBlock,*),i_array(*),r_array(*) dimension coords(nBlock,*) character*80 c_array(*) c parameter(i_udempot_kstep = 1, $ i_udempot_kinc = 2, $ i_udempot_noel = 3, $ i_udempot_pottyp = 4, $ i_udempot_phase = 5, $ i_udempot_proc = 6) c parameter(ir_udempot_time_1 = 1, $ ir_udempot_time_2 = 2) c parameter(ic_udempot_surf = 1) c parameter(i_pottyp_mvp = 1, $ i_pottyp_esp = 2) c parameter(i_proc_lf_th = 1) c parameter(i_udempot_phase_real = 1, $ i_udempot_phase_imag = 2) parameter (zero = 0.d0, $ zp15 = 0.15d0, $ ten = 10.d0) c vecPot(1,1)=zero vecPot(1,2)=zero vecPot(1,3)=zero c r = sqrt(coords(1,1)**2 + coords(1,2)**2 + coords(1,3)**2) rho = sqrt(coords(1,1)**2 + coords(1,2)**2) theta = atan2(rho, coords(1,3)) if (i_array(i_udempot_phase).eq.i_udempot_phase_real) then vecPot(1,1)=zero vecPot(1,2)=zp15*sin(theta) vecPot(1,3)=zero else if (i_array(i_udempot_phase).eq.i_udempot_phase_imag) then vecPot(1,1)=zero vecPot(1,2)=zero vecPot(1,3)=zero end if c return end