You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
2.4 KiB
Plaintext

5 years ago
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