c---------------------------------------------------------------calc_ab SUBROUTINE calc_ab(a, b, E, N) c---------------------------------------------------------------------c c purpose: c c To rotate and translate coordinates from E-N to grid. c c---------------------------------------------------------------------c INCLUDE '3dgeom.cb' REAL E, N, a, b REAL nt, et nt= N-goN et= E-goE a = (nt*gaS+et*gaC)/dimXY b = (nt*gaC-et*gaS)/dimXY RETURN END c---------------------------------------------------------------calc_EN subroutine calc_EN(E,N,x,y) c---------------------------------------------------------------------c c Purpose: c c To rotate and translate coordinates from grid to E-N. c c---------------------------------------------------------------------c INCLUDE '3dgeom.cb' real E,N,x,y c N=goN+x*dimXY*gaS+y*dimXY*gaC E=goE+x*dimXY*gaC-y*dimXY*gaS return end c----------------------------------------------------------------calc_c SUBROUTINE calc_c(c, Z) c---------------------------------------------------------------------c c purpose: c c To translate z-coordinates from E-N to grid. c c---------------------------------------------------------------------c INCLUDE '3dgeom.cb' REAL c, Z c=-Z/dimZ RETURN END c--------------------------------------------------------------calc_XYZ subroutine calc_XYZ(nop,cord,itype,pel,pnl,pzl,pil,pe,pn,pz) c---------------------------------------------------------------------c c purpose: c c To interplate the global coordinates. c c---------------------------------------------------------------------c common /etype/inode(4) common /shape/shap(20),shpx(20),shpy(20),shpz(20) real pe,pn,pz,pel,pnl,pzl,cord(3,1),shap integer*2 nop(20,1) integer pil,it,nen,i,itype(1) c it=itype(pil) nen=inode(it) pe=0.0 pn=0.0 pz=0.0 call xn3(it,nen,pel,pnl,pzl) do i=1,nen pe=pe+shap(i)*cord(1,nop(i,pil)) pn=pn+shap(i)*cord(2,nop(i,pil)) pz=pz+shap(i)*cord(3,nop(i,pil)) enddo return end