39 subroutine tocart( t, iflg )
44 double precision TWO,THREE,t(3),t1,t2,t3
47 parameter(two=2.0d0,three=3.0d0,x=1,y=2,z=3)
50 if (iflg.eq.
axial)
then
56 t(x)=t1 - t2/three + t3/two
57 t(y)=t1 - t2/three - t3/two
58 t(z)=t1 + two*t2/three
65 subroutine tosphr( t, iflg )
70 double precision TWO,THREE,t(3),tx,ty,tz
73 parameter(two=2.0d0,three=3.0d0)
76 if (iflg.eq.
axial)
then
93 subroutine toaxil( t, iflg )
101 double precision TWO,ZERO
102 parameter(two=2.0d0,zero=0.0d0)
104 if (iflg.eq.
axial)
return
137 function tcheck(ix,ix2,ident,lumsg)
149 integer ispec,ix,ix2,ixa,ixf,jx,jx1,jx2,lu1,lu2,lumsg,mflag
163 if (ix.gt.-100 .and. ix.lt.0) ispec=
spherical
164 if (ix.lt.-100) ispec=
axial
192 write (lu1,1003)
symstr(ispec),ident(1:1)
202 tcheck=symmsg(lu2,ident,jx,
symstr(mflag))
210 tcheck=symmsg(lu2,ident,jx,
symstr(mflag))
216 else if (ispec.eq.
axial .and.
218 tcheck=symmsg(lu2,ident,jx,
symstr(mflag))
233 1003
format(
' *** ',a,
'form assumed for ',a,
' tensor ***')
238 function symmsg( lu, ident, jx, form )
244 character ident*9,form*10
251 write (lu,1004) ident(:itrim(ident)),jx,form
252 if (lu.ne.
luttyo)
write (
luttyo,1004) ident(:itrim(ident)),
258 1004
format(
' *** Cannot modify ''',a,
'(',i1,
')'': ',a,
'form',
259 #
' has been specified ***')
270 double precision t(3)
274 isaxial = (iflg.eq.
axial) .or.
287 double precision t(3)
292 # abs(t(1)-t(2)).lt.
rndoff .and.
293 # abs(t(2)-t(3)).lt.
rndoff .and.
294 # abs(t(1)-t(3)).lt.
rndoff ) .or.
296 # abs(t(2)).gt.
rndoff .and.
307 double precision t(3)
312 # abs(t(1)-t(2)).lt.
rndoff .and.
313 # abs(t(2)-t(3)).lt.
rndoff ) .or.
315 # abs(t(2)).lt.
rndoff .and.
316 # abs(t(3)).lt.
rndoff ) .or.
317 # (iflg.eq.
axial .and.
318 # abs(t(1)-t(3)).lt.
rndoff)
logical function isrhomb(t, iflg)
logical function isaxial(t, iflg)
logical function isisotr(t, iflg)
integer, parameter iiwflg
subroutine toaxil(t, iflg)
subroutine tocart(t, iflg)
integer, parameter cartesian
logical function tcheck(ix, ix2, ident, lumsg)
integer, dimension(niprm, mxsite), target, save iparm
character *10, dimension(nsymtr), save symstr
integer, parameter mxsite
logical function symmsg(lu, ident, jx, form)
integer, parameter luttyo
integer, parameter spherical
subroutine tosphr(t, iflg)
double precision, parameter rndoff