quantum-espresso/Modules/wypos.f90

9849 lines
297 KiB
Fortran

!
! Copyright (C) 2014 Federico Zadra
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
! or http://www.gnu.org/copyleft/gpl.txt .
!
MODULE wy_pos
!! Main subroutine: \(\texttt{wypos}\). Converts atomic positions
!! given in Wyckoff convention: multiplicity-letter + parameter(s),
!! to crystal positions.
USE kinds, ONLY : DP
IMPLICIT NONE
SAVE
PRIVATE
PUBLIC wypos
CONTAINS
SUBROUTINE wypos(tau,wp,inp,space_group_number,uniqueb,&
rhombohedral,origin_choice)
!-----------------------------------------------------------
!! Convert atomic positions given in Wyckoff convention:
!! multiplicity-letter + parameter(s), to crystal positions.
!-----------------------------------------------------------
REAL(DP), DIMENSION(3), INTENT(OUT) :: tau
REAL(DP), INTENT(IN) :: inp(3)
!! parameter(s) (if needed)
CHARACTER(LEN=*), INTENT (IN) :: wp
!! Wyckoff label (e.g. 8c)
INTEGER, INTENT(IN) :: space_group_number
LOGICAL, INTENT(IN) :: uniqueb, rhombohedral
INTEGER, INTENT(IN) :: origin_choice
tau=1.d5
SELECT CASE (space_group_number)
CASE (1, 4, 7, 9, 19, 29, 33, 76, 78, 144, 145, 169, 170)
! groups having only one set of positions "Na x y z": do nothing
CASE (2) !P-1
CALL wypos_2 ( wp, tau )
CASE (3) !P2
CALL wypos_3 ( wp, inp, uniqueb, tau )
CASE (5) !C2
CALL wypos_5 ( wp, inp, uniqueb, tau )
CASE (6) !Pm
CALL wypos_6 ( wp, inp, uniqueb, tau )
CASE (8) !Cm
CALL wypos_8 ( wp, inp, uniqueb, tau )
CASE (10) !P2/m
CALL wypos_10 ( wp, inp, uniqueb, tau )
CASE (11) !P2(1)/m
CALL wypos_11 ( wp, inp, uniqueb, tau )
CASE (12) !C2/m
CALL wypos_12 ( wp, inp, uniqueb, tau )
CASE (13) !P2/c
CALL wypos_13 ( wp, inp, uniqueb, tau )
CASE (14) !-P2(1)/c
CALL wypos_14 ( wp, inp, uniqueb, tau )
CASE (15) !C2/c
CALL wypos_15 ( wp, inp, uniqueb, tau )
CASE (16) !P222
CALL wypos_16 ( wp, inp, tau )
CASE (17) !P222(1)
CALL wypos_17 ( wp, inp, tau )
CASE (18) !P2(1)2(1)2
CALL wypos_18 ( wp, inp, tau )
CASE (20) !C222(1)
CALL wypos_20 ( wp, inp, tau )
CASE (21) !C222
CALL wypos_21 ( wp, inp, tau )
CASE (22) !F222
CALL wypos_22 ( wp, inp, tau )
CASE (23) !I222
CALL wypos_23 ( wp, inp, tau )
CASE (24) !I2(1)2(1)2(1)
CALL wypos_24 ( wp, inp, tau )
CASE (25) !Pmm2
CALL wypos_25 ( wp, inp, tau )
CASE (26) !Pmc2(1)
CALL wypos_26 ( wp, inp, tau )
CASE (27) !Pcc2
CALL wypos_27 ( wp, inp, tau )
CASE (28) !Pma2
CALL wypos_28 ( wp, inp, tau )
CASE (30) !Pca2(1)
CALL wypos_30 ( wp, inp, tau )
CASE (31) !Pmn2(1)
CALL wypos_31 ( wp, inp, tau )
CASE (32) !Pba2
CALL wypos_32 ( wp, inp, tau )
CASE (34) !Pnn2
CALL wypos_34 ( wp, inp, tau )
CASE (35) !Cmm2
CALL wypos_35 ( wp, inp, tau )
CASE (36) !Cmc2(1)
CALL wypos_36 ( wp, inp, tau )
CASE (37) !Ccc2
CALL wypos_37 ( wp, inp, tau )
CASE (38) !Amm2
CALL wypos_38 ( wp, inp, tau )
CASE (39) !Aem2
CALL wypos_39 ( wp, inp, tau )
CASE (40) !Ama2
CALL wypos_40 ( wp, inp, tau )
CASE (41) !Aea2
CALL wypos_41 ( wp, inp, tau )
CASE (42) !Fmm2
CALL wypos_42 ( wp, inp, tau )
CASE (43) !Fdd2
CALL wypos_43 ( wp, inp, tau )
CASE (44) !Imm2
CALL wypos_44 ( wp, inp, tau )
CASE (45) !Iba2
CALL wypos_45 ( wp, inp, tau )
CASE (46) !Ima2
CALL wypos_46 ( wp, inp, tau )
CASE (47) !Pmmm
CALL wypos_47 ( wp, inp, tau )
CASE (48) !Pnnn
CALL wypos_48 ( wp, inp, origin_choice, tau )
CASE (49) !Pccm
CALL wypos_49 ( wp, inp, tau )
CASE (50) !Pban
CALL wypos_50 ( wp, inp, origin_choice, tau )
CASE (51) !Pmma
CALL wypos_51 ( wp, inp, tau )
CASE (52) !Pnna
CALL wypos_52 ( wp, inp, tau )
CASE (53) !Pmna
CALL wypos_53 ( wp, inp, tau )
CASE (54) !Pcca
CALL wypos_54 ( wp, inp, tau )
CASE (55) !Pbam
CALL wypos_55 ( wp, inp, tau )
CASE (56) !Pccn
CALL wypos_56 ( wp, inp, tau )
CASE (57) !Pbcm
CALL wypos_57 ( wp, inp, tau )
CASE (58) !Pnnm
CALL wypos_58 ( wp, inp, tau )
CASE (59) !Pmmn
CALL wypos_59 ( wp, inp, origin_choice, tau )
CASE (60) !Pbcn
CALL wypos_60 ( wp, inp, tau )
CASE (61) !Pbca
CALL wypos_61 ( wp, inp, tau )
CASE (62) !Pnma
CALL wypos_62 ( wp, inp, tau )
CASE (63) !Cmcm
CALL wypos_63 ( wp, inp, tau )
CASE (64) !Cmce
CALL wypos_64 ( wp, inp, tau )
CASE (65) !Cmmm
CALL wypos_65 ( wp, inp, tau )
CASE (66) !Cccm
CALL wypos_66 ( wp, inp, tau )
CASE (67) !Cmma
CALL wypos_67 ( wp, inp, tau )
CASE (68) !Ccce
CALL wypos_68 ( wp, inp, origin_choice, tau )
CASE (69) !Fmmm
CALL wypos_69 ( wp, inp, tau )
CASE (70) !Fddd
CALL wypos_70 ( wp, inp, origin_choice, tau )
CASE (71) !Immm
CALL wypos_71 ( wp, inp, tau )
CASE (72) !Ibam
CALL wypos_72 ( wp, inp, tau )
CASE (73) !Ibca
CALL wypos_73 ( wp, inp, tau )
CASE (74) !Imma
CALL wypos_74 ( wp, inp, tau )
CASE (75) !P4
CALL wypos_75 ( wp, inp, tau )
CASE (77) !P4(2)
CALL wypos_77 ( wp, inp, tau )
CASE (79) !I4(2)
CALL wypos_79 ( wp, inp, tau )
CASE (80) !I4(1)
CALL wypos_80 ( wp, inp, tau )
CASE (81) !P-4
CALL wypos_81 ( wp, inp, tau )
CASE (82) !I-4
CALL wypos_82 ( wp, inp, tau )
CASE (83) !P4/m
CALL wypos_83 ( wp, inp, tau )
CASE (84)
CALL wypos_84 ( wp, inp, tau )
CASE (85)
CALL wypos_85 ( wp, inp, origin_choice, tau )
CASE (86)
CALL wypos_86 ( wp, inp, origin_choice, tau )
CASE (87) !I4/m
CALL wypos_87 ( wp, inp, tau )
CASE (88) !I4(1)/a
CALL wypos_88 ( wp, inp, origin_choice, tau )
CASE (89) !P422
CALL wypos_89 ( wp, inp, tau )
CASE (90) !P42(1)2
CALL wypos_90 ( wp, inp, tau )
CASE (91) !P4(1)22
CALL wypos_91 ( wp, inp, tau )
CASE (92) !P4(1)2(1)2
CALL wypos_92 ( wp, inp, tau )
CASE (93) !P4(2)22
CALL wypos_93 ( wp, inp, tau )
CASE (94) !P4(2)2(1)2
CALL wypos_94 ( wp, inp, tau )
CASE (95) !P4(3)22
CALL wypos_95 ( wp, inp, tau )
CASE (96) !P4(2)2(1)2
CALL wypos_96 ( wp, inp, tau )
CASE (97) !I422
CALL wypos_97 ( wp, inp, tau )
CASE (98) !I4(1)22
CALL wypos_98 ( wp, inp, tau )
CASE (99) !P4mm
CALL wypos_99 ( wp, inp, tau )
CASE (100) !P4bm
CALL wypos_100( wp, inp, tau )
CASE (101) !P4(2)cm
CALL wypos_101( wp, inp, tau )
CASE (102) !P4(2)nm
CALL wypos_102( wp, inp, tau )
CASE (103) !P4cc
CALL wypos_103( wp, inp, tau )
CASE (104) !P4nc
CALL wypos_104( wp, inp, tau )
CASE (105) !P4(2)mc
CALL wypos_105( wp, inp, tau )
CASE (106) !P4(2)bc
CALL wypos_106( wp, inp, tau )
CASE (107) !I4mm
CALL wypos_107( wp, inp, tau )
CASE (108) !I4cm
CALL wypos_108( wp, inp, tau )
CASE (109) !I4(1)md
CALL wypos_109( wp, inp, tau )
CASE (110) !I4(1)cd
CALL wypos_110( wp, inp, tau )
CASE (111) !P-42m
CALL wypos_111( wp, inp, tau )
CASE (112) !P-42c
CALL wypos_112( wp, inp, tau )
CASE (113) !P-42(1)m
CALL wypos_113( wp, inp, tau )
CASE (114) !P-42(1)c
CALL wypos_114( wp, inp, tau )
CASE (115) !P-4m2
CALL wypos_115( wp, inp, tau )
CASE (116) !P4c2
CALL wypos_116( wp, inp, tau )
CASE (117) !P-4b2
CALL wypos_117( wp, inp, tau )
CASE (118) !P-4n2
CALL wypos_118( wp, inp, tau )
CASE (119) !I-4m2
CALL wypos_119( wp, inp, tau )
CASE (120) !I-4c2
CALL wypos_120( wp, inp, tau )
CASE (121) !I-42m
CALL wypos_121( wp, inp, tau )
CASE (122) !I-42d
CALL wypos_122( wp, inp, tau )
CASE (123) !P4/mmm
CALL wypos_123( wp, inp, tau )
CASE (124) !P4/mmc
CALL wypos_124( wp, inp, tau )
CASE (125) !P/nbm
CALL wypos_125( wp, inp, origin_choice, tau )
CASE (126)
CALL wypos_126( wp, inp, origin_choice, tau )
CASE (127) !P4/mbm
CALL wypos_127( wp, inp, tau )
CASE (128) !P4/mnc
CALL wypos_128( wp, inp, tau )
CASE (129) !P4/nmm
CALL wypos_129( wp, inp, origin_choice, tau )
CASE (130) !P4/ncc
CALL wypos_130( wp, inp, origin_choice, tau )
CASE (131) !P4(2)/mmc
CALL wypos_131( wp, inp, tau )
CASE (132) !P4(2)mcm
CALL wypos_132( wp, inp, tau )
CASE (133) !P4(2)/nbc
CALL wypos_133( wp, inp, origin_choice, tau )
CASE (134) !P4(2)/nnm
CALL wypos_134( wp, inp, origin_choice, tau )
CASE (135) !P3(2)/mbc
CALL wypos_135( wp, inp, tau )
CASE (136) !P4(2)/mnm
CALL wypos_136( wp, inp, tau )
CASE (137) !P4(2)/nmc
CALL wypos_137( wp, inp, origin_choice, tau )
CASE (138) !P4(2)/ncm
CALL wypos_138( wp, inp, origin_choice, tau )
CASE (139) !I4/mmm
CALL wypos_139( wp, inp, tau )
CASE (140) !I4/mcm
CALL wypos_140( wp, inp, tau )
CASE (141) !I4(1)/amd
CALL wypos_141( wp, inp, origin_choice, tau )
CASE (142) !I4(1)/acd
CALL wypos_142( wp, inp, origin_choice, tau )
CASE (143) !P3
CALL wypos_143( wp, inp, tau )
CASE (146) !R3
CALL wypos_146( wp, inp, rhombohedral, tau )
CASE (147) !P-3
CALL wypos_147( wp, inp, tau )
CASE (148) !R-3
CALL wypos_148( wp, inp, rhombohedral, tau )
CASE (149) !P312
CALL wypos_149( wp, inp, tau )
CASE (150) !P321
CALL wypos_150( wp, inp, tau )
CASE (151) !P3(1)12
CALL wypos_151( wp, inp, tau )
CASE (152) !P3(1)21
CALL wypos_152( wp, inp, tau )
CASE (153) !P3(2)12
CALL wypos_153( wp, inp, tau )
CASE (154) !3(2)21
CALL wypos_154( wp, inp, tau )
CASE (155) !R32
CALL wypos_155( wp, inp, rhombohedral, tau )
CASE (156) !P-3m1
CALL wypos_156( wp, inp, tau )
CASE (157) !P31m
CALL wypos_157( wp, inp, tau )
CASE (158) !P3c1
CALL wypos_158( wp, inp, tau )
CASE (159) !P31c
CALL wypos_159( wp, inp, tau )
CASE (160) !R3m
CALL wypos_160( wp, inp, rhombohedral, tau )
CASE (161) !R3c
CALL wypos_161( wp, inp, rhombohedral, tau )
CASE (162) !P-31m
CALL wypos_162( wp, inp, tau )
CASE (163) !P-31c
CALL wypos_163( wp, inp, tau )
CASE (164) !P-3m1
CALL wypos_164( wp, inp, tau )
CASE (165) !P-3c1
CALL wypos_165( wp, inp, tau )
CASE (166) !R-3m
CALL wypos_166( wp, inp, rhombohedral, tau )
CASE (167) !R-3c
CALL wypos_167( wp, inp, rhombohedral, tau )
CASE (168) !P6
CALL wypos_168( wp, inp, tau )
CASE (171) !P6/m
CALL wypos_171( wp, inp, tau )
CASE (172) !P6(4)
CALL wypos_172( wp, inp, tau )
CASE (173) !P6(3)
CALL wypos_173( wp, inp, tau )
CASE (174) !P-6
CALL wypos_174( wp, inp, tau )
CASE (175) !P6/m
CALL wypos_175( wp, inp, tau )
CASE (176) !P6(3)/m
CALL wypos_176( wp, inp, tau )
CASE (177) !P622
CALL wypos_177( wp, inp, tau )
CASE (178) !P6(1)22
CALL wypos_178( wp, inp, tau )
CASE (179) !P6(5)22
CALL wypos_179( wp, inp, tau )
CASE (180) !P6(2)22
CALL wypos_180( wp, inp, tau )
CASE (181) !P6(4)22
CALL wypos_181( wp, inp, tau )
CASE (182) !P6(3)22
CALL wypos_182( wp, inp, tau )
CASE (183) !P6mm
CALL wypos_183( wp, inp, tau )
CASE (184) !P6cc
CALL wypos_184( wp, inp, tau )
CASE (185) !P6(3)cm
CALL wypos_185( wp, inp, tau )
CASE (186) !P6(3)mc
CALL wypos_186( wp, inp, tau )
CASE (187) !P-6m2
CALL wypos_187( wp, inp, tau )
CASE (188) !P-6c2
CALL wypos_188( wp, inp, tau )
CASE (189) !P-62m
CALL wypos_189( wp, inp, tau )
CASE (190) !P-62c
CALL wypos_190( wp, inp, tau )
CASE (191) !P6/mmm
CALL wypos_191( wp, inp, tau )
CASE (192) !P6/mcc
CALL wypos_192( wp, inp, tau )
CASE (193) !P6(3)/mcm
CALL wypos_193( wp, inp, tau )
CASE (194) !P6(3)mmc
CALL wypos_194( wp, inp, tau )
CASE (195) !P23
CALL wypos_195( wp, inp, tau )
CASE (196) !F23
CALL wypos_196( wp, inp, tau )
CASE (197) !I23
CALL wypos_197( wp, inp, tau )
CASE (198) !P2(1)3
CALL wypos_198( wp, inp, tau )
CASE (199) !I2(1)3
CALL wypos_199( wp, inp, tau )
CASE (200) !Pm-3
CALL wypos_200( wp, inp, tau )
CASE (201) !Pn-3
CALL wypos_201( wp, inp, origin_choice, tau )
CASE (202) !Fm-3
CALL wypos_202( wp, inp, tau )
CASE (203) !Fd-3
CALL wypos_203( wp, inp, origin_choice, tau )
CASE (204) ! Im-3
CALL wypos_204( wp, inp, tau )
CASE (205) !Pa-3
CALL wypos_205( wp, inp, tau )
CASE (206) !Ia-3
CALL wypos_206( wp, inp, tau )
CASE (207) !P432
CALL wypos_207( wp, inp, tau )
CASE (208) !P4(2)32
CALL wypos_208( wp, inp, tau )
CASE (209) !F432
CALL wypos_209( wp, inp, tau )
CASE (210) !F4(1)32
CALL wypos_210( wp, inp, tau )
CASE (211) !I432
CALL wypos_211( wp, inp, tau )
CASE (212) !P4(3)32
CALL wypos_212( wp, inp, tau )
CASE (213) !P4(1)32
CALL wypos_213( wp, inp, tau )
CASE (214) !I4(I)32
CALL wypos_214( wp, inp, tau )
CASE (215) !P-43m
CALL wypos_215( wp, inp, tau )
CASE (216) !F-43m
CALL wypos_216( wp, inp, tau )
CASE (217) !I-43m
CALL wypos_217( wp, inp, tau )
CASE (218) !P-43n
CALL wypos_218( wp, inp, tau )
CASE (219) !F-43c
CALL wypos_219( wp, inp, tau )
CASE (220) !I-43d
CALL wypos_220( wp, inp, tau )
CASE (221) !Pm-3m
CALL wypos_221( wp, inp, tau )
CASE (222) !Pn-3n
CALL wypos_222( wp, inp, origin_choice, tau )
CASE (223) !Pm-3n
CALL wypos_223( wp, inp, tau )
CASE (224) !Pn-3m
CALL wypos_224( wp, inp, origin_choice, tau )
CASE (225) !Fm-3m
CALL wypos_225( wp, inp, tau )
CASE (226) !Fm-3c
CALL wypos_226( wp, inp, tau )
CASE (227) !Fd-3m
CALL wypos_227( wp, inp, origin_choice, tau )
CASE (228) !Fd-3c
CALL wypos_228( wp, inp, origin_choice, tau )
CASE (229) !Im-3m
CALL wypos_229( wp, inp, tau )
CASE (230) !Ia-3d
CALL wypos_230( wp, inp, tau )
CASE DEFAULT
CALL errore('wypos','group not recognized',1)
END SELECT
IF (tau(1)==1.d5.OR.tau(2)==1.d5.OR.tau(3)==1.d5) THEN
IF (inp(1)==1.d5.OR.inp(2)==1.d5.OR.inp(3)==1.d5) THEN
CALL errore('wypos','wyckoff position not found',1)
ELSE
CALL infomsg('wypos','wyckoff position not found, assuming x y z')
tau(:)=inp(:)
END IF
END IF
END SUBROUTINE wypos
SUBROUTINE wypos_2 ( wp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='1c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1d') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1e') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1f') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='1g') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='1h') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ENDIF
END SUBROUTINE wypos_2
SUBROUTINE wypos_3 ( wp, inp, uniqueb, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
LOGICAL, INTENT(in) :: uniqueb
REAL(dp), INTENT(out) :: tau (3)
IF (uniqueb) THEN
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='1c') THEN
tau(1)=0.5_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1d') THEN
tau(1)=0.5_DP
tau(2)=inp(1)
tau(3)=0.5_DP
ENDIF
ELSEIF (.NOT.uniqueb) THEN
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='1c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='1d') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ENDIF
ENDIF
END SUBROUTINE wypos_3
SUBROUTINE wypos_5 ( wp, inp, uniqueb, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
LOGICAL, INTENT(in) :: uniqueb
REAL(dp), INTENT(out) :: tau (3)
IF (uniqueb) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.5_DP
ENDIF
ELSEIF (.NOT.uniqueb) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ENDIF
ENDIF
END SUBROUTINE wypos_5
SUBROUTINE wypos_6 ( wp, inp, uniqueb, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
LOGICAL, INTENT(in) :: uniqueb
REAL(dp), INTENT(out) :: tau (3)
IF (uniqueb) THEN
IF (TRIM(wp)=='1a') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=inp(2)
ENDIF
ELSEIF (.NOT.uniqueb) THEN
IF (TRIM(wp)=='1a') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.5_DP
ENDIF
ENDIF
END SUBROUTINE wypos_6
SUBROUTINE wypos_8 ( wp, inp, uniqueb, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
LOGICAL, INTENT(in) :: uniqueb
REAL(dp), INTENT(out) :: tau (3)
IF (uniqueb) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=inp(2)
ENDIF
ELSEIF (.NOT.uniqueb) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ENDIF
ENDIF
END SUBROUTINE wypos_8
SUBROUTINE wypos_10 ( wp, inp, uniqueb, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
LOGICAL, INTENT(in) :: uniqueb
REAL(dp), INTENT(out) :: tau (3)
IF (uniqueb) THEN
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='1d') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1e') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1f') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='1g') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='1h') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2i') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2j') THEN
tau(1)=0.5_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2k') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2l') THEN
tau(1)=0.5_DP
tau(2)=inp(1)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2m') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='2n') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=inp(2)
ENDIF
ELSEIF (.NOT.uniqueb) THEN
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='1c') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1e') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='1f') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='1g') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1h') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2i') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2j') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2k') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2l') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2m') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2n') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.5_DP
ENDIF
ENDIF
END SUBROUTINE wypos_10
SUBROUTINE wypos_11 ( wp, inp, uniqueb, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
LOGICAL, INTENT(in) :: uniqueb
REAL(dp), INTENT(out) :: tau (3)
IF (uniqueb) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2e') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=inp(2)
ENDIF
ELSEIF (.NOT.uniqueb) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2e') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.25_DP
ENDIF
ENDIF
END SUBROUTINE wypos_11
SUBROUTINE wypos_12 ( wp, inp, uniqueb, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
LOGICAL, INTENT(in) :: uniqueb
REAL(dp), INTENT(out) :: tau (3)
IF (uniqueb) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4i') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=inp(2)
ENDIF
ELSEIF (.NOT.uniqueb) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=0.5_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4i') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ENDIF
ENDIF
END SUBROUTINE wypos_12
SUBROUTINE wypos_13 ( wp, inp, uniqueb, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
LOGICAL, INTENT(in) :: uniqueb
REAL(dp), INTENT(out) :: tau (3)
IF (uniqueb) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2e') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2f') THEN
tau(1)=0.5_DP
tau(2)=inp(1)
tau(3)=0.25_DP
ENDIF
ELSEIF (.NOT.uniqueb) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2e') THEN
tau(1)=0.25_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2f') THEN
tau(1)=0.25_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ENDIF
ENDIF
END SUBROUTINE wypos_13
SUBROUTINE wypos_14 ( wp, inp, uniqueb, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
LOGICAL, INTENT(in) :: uniqueb
REAL(dp), INTENT(out) :: tau (3)
IF (uniqueb) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ENDIF
ELSEIF (.NOT.uniqueb) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ENDIF
ENDIF
END SUBROUTINE wypos_14
SUBROUTINE wypos_15 ( wp, inp, uniqueb, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
LOGICAL, INTENT(in) :: uniqueb
REAL(dp), INTENT(out) :: tau (3)
IF (uniqueb) THEN
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.25
ENDIF
ELSEIF (.NOT.uniqueb) THEN
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.0_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.5_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.25_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ENDIF
ENDIF
END SUBROUTINE wypos_15
SUBROUTINE wypos_16 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1d') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='1e') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1f') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='1g') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='1h') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2i') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2j') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2k') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2l') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2m') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2n') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2o') THEN
tau(1)=0.5_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2p') THEN
tau(1)=0.5_DP
tau(2)=inp(1)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2q') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2r') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2s') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2t') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_16
SUBROUTINE wypos_17 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.5_DP
tau(2)=inp(1)
tau(3)=0.25_DP
ENDIF
END SUBROUTINE wypos_17
SUBROUTINE wypos_18 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_18
SUBROUTINE wypos_20 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.25_DP
ENDIF
END SUBROUTINE wypos_20
SUBROUTINE wypos_21 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4i') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4j') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4k') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_21
SUBROUTINE wypos_22 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='8e') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8f') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8g') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8h') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8i') THEN
tau(1)=0.25_DP
tau(2)=inp(1)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8j') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=0.25_DP
ENDIF
END SUBROUTINE wypos_22
SUBROUTINE wypos_23 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=0.5_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4i') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4j') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_23
SUBROUTINE wypos_24 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.25_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.0_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_24
SUBROUTINE wypos_25 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='1c') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='1d') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2e') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='2f') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='2g') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='2h') THEN
tau(1)=0.5_DP
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_25
SUBROUTINE wypos_26 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.5_DP
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_26
SUBROUTINE wypos_27 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_27
SUBROUTINE wypos_28 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.25_DP
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_28
SUBROUTINE wypos_30 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_30
SUBROUTINE wypos_31 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_31
SUBROUTINE wypos_32 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_32
SUBROUTINE wypos_34 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_34
SUBROUTINE wypos_35 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_35
SUBROUTINE wypos_36 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_36
SUBROUTINE wypos_37 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_37
SUBROUTINE wypos_38 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.5_DP
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_38
SUBROUTINE wypos_39 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_39
SUBROUTINE wypos_40 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.25_DP
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_40
SUBROUTINE wypos_41 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_41
SUBROUTINE wypos_42 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8b') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8c') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='8d') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_42
SUBROUTINE wypos_43 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='8a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_43
SUBROUTINE wypos_44 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_44
SUBROUTINE wypos_45 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_45
SUBROUTINE wypos_46 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.25_DP
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_46
SUBROUTINE wypos_47 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='1d') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='1e') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1f') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1g') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='1h') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2i') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2j') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2k') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2l') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2m') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2n') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2o') THEN
tau(1)=0.5_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2p') THEN
tau(1)=0.5_DP
tau(2)=inp(1)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2q') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2r') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2s') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2t') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4u') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='4v') THEN
tau(1)=0.5_DP
tau(2)=inp(1)
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='4w') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='4x') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='4y') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4z') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.5_DP
ENDIF
END SUBROUTINE wypos_47
SUBROUTINE wypos_48 ( wp, inp, origin_choice, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
INTEGER, INTENT(in) :: origin_choice
REAL(dp), INTENT(out) :: tau (3)
IF (origin_choice==1) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=0.75_DP
tau(2)=0.75_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4i') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4j') THEN
tau(1)=0.5_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4k') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4l') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ENDIF
ELSEIF (origin_choice==2) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.75_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.25_DP
tau(2)=0.75_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='4i') THEN
tau(1)=0.25_DP
tau(2)=inp(1)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4j') THEN
tau(1)=0.75_DP
tau(2)=inp(1)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4k') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4l') THEN
tau(1)=0.25_DP
tau(2)=0.75_DP
tau(3)=inp(1)
ENDIF
ENDIF
END SUBROUTINE wypos_48
SUBROUTINE wypos_49 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2f') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2g') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2h') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4i') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4j') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4k') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4l') THEN
tau(1)=0.5_DP
tau(2)=inp(1)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4m') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4n') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4o') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4p') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4q') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ENDIF
END SUBROUTINE wypos_49
SUBROUTINE wypos_50 ( wp, inp, origin_choice, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
INTEGER, INTENT(in) :: origin_choice
REAL(dp), INTENT(out) :: tau (3)
IF (origin_choice==1) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4i') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4j') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4k') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4l') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ENDIF
ELSEIF (origin_choice==2) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.75_DP
tau(2)=0.25_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.75_DP
tau(2)=0.25_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4i') THEN
tau(1)=0.25_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4j') THEN
tau(1)=0.25_DP
tau(2)=inp(1)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4k') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4l') THEN
tau(1)=0.25_DP
tau(2)=0.75_DP
tau(3)=inp(1)
ENDIF
ENDIF
END SUBROUTINE wypos_50
SUBROUTINE wypos_51 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2e') THEN
tau(1)=0.25_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2f') THEN
tau(1)=0.25_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4i') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='4j') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='4k') THEN
tau(1)=0.25_DP
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_51
SUBROUTINE wypos_52 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.25_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=0.25_DP
ENDIF
END SUBROUTINE wypos_52
SUBROUTINE wypos_53 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=0.25_DP
tau(2)=inp(1)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_53
SUBROUTINE wypos_54 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.25_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.25_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_54
SUBROUTINE wypos_55 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.5_DP
ENDIF
END SUBROUTINE wypos_55
SUBROUTINE wypos_56 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.25_DP
tau(2)=0.75_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_56
SUBROUTINE wypos_57 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.25_DP
ENDIF
END SUBROUTINE wypos_57
SUBROUTINE wypos_58 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ENDIF
END SUBROUTINE wypos_58
SUBROUTINE wypos_59 ( wp, inp, origin_choice, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
INTEGER, INTENT(in) :: origin_choice
REAL(dp), INTENT(out) :: tau (3)
IF (origin_choice==1) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=inp(2)
ENDIF
ELSEIF (origin_choice==2) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.25_DP
tau(2)=0.75_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.25_DP
tau(2)=inp(1)
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=inp(2)
ENDIF
ENDIF
END SUBROUTINE wypos_59
SUBROUTINE wypos_60 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.25_DP
ENDIF
END SUBROUTINE wypos_60
SUBROUTINE wypos_61 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ENDIF
END SUBROUTINE wypos_61
SUBROUTINE wypos_62 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_62
SUBROUTINE wypos_63 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8d') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8e') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8f') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='8g') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.25_DP
ENDIF
END SUBROUTINE wypos_63
SUBROUTINE wypos_64 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8c') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8d') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8e') THEN
tau(1)=0.25_DP
tau(2)=inp(1)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8f') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_64
SUBROUTINE wypos_65 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4i') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4j') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4k') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4l') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8m') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8n') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='8o') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='8p') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8q') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.5_DP
ENDIF
END SUBROUTINE wypos_65
SUBROUTINE wypos_66 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=0.25_DP
tau(2)=0.75_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8g') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8h') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8i') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8j') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8k') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8l') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ENDIF
END SUBROUTINE wypos_66
SUBROUTINE wypos_67 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.25_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.25_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=0.0_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8h') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8i') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8j') THEN
tau(1)=0.25_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8k') THEN
tau(1)=0.25_DP
tau(2)=inp(1)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8l') THEN
tau(1)=0.25_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8m') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='8n') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_67
SUBROUTINE wypos_68 ( wp, inp, origin_choice, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
INTEGER, INTENT(in) :: origin_choice
REAL(dp), INTENT(out) :: tau (3)
IF (origin_choice==1) THEN
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8c') THEN
tau(1)=0.25_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8d') THEN
tau(1)=0.0_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8e') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8f') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8g') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8h') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ENDIF
ELSEIF (origin_choice==2) THEN
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.25_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='8c') THEN
tau(1)=0.25_DP
tau(2)=0.75_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8d') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8e') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8f') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8g') THEN
tau(1)=0.0_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8h') THEN
tau(1)=0.25_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ENDIF
ENDIF
END SUBROUTINE wypos_68
SUBROUTINE wypos_69 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8c') THEN
tau(1)=0.0_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8d') THEN
tau(1)=0.25_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8e') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8f') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8g') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8h') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8i') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='16j') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='16k') THEN
tau(1)=0.25_DP
tau(2)=inp(1)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='16l') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='16m') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='16n') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='16o') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ENDIF
END SUBROUTINE wypos_69
SUBROUTINE wypos_70 ( wp, inp, origin_choice, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
INTEGER, INTENT(in) :: origin_choice
REAL(dp), INTENT(out) :: tau (3)
IF (origin_choice==1) THEN
IF (TRIM(wp)=='8a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='16c') THEN
tau(1)=0.125_DP
tau(2)=0.125_DP
tau(3)=0.125_DP
ELSEIF (TRIM(wp)=='16d') THEN
tau(1)=0.625_DP
tau(2)=0.625_DP
tau(3)=0.625_DP
ELSEIF (TRIM(wp)=='16e') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='16f') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='16g') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ENDIF
ELSEIF (origin_choice==2) THEN
IF (TRIM(wp)=='8a') THEN
tau(1)=0.125_DP
tau(2)=0.125_DP
tau(3)=0.125_DP
ELSEIF (TRIM(wp)=='8b') THEN
tau(1)=0.125_DP
tau(2)=0.125_DP
tau(3)=0.625_DP
ELSEIF (TRIM(wp)=='16c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='16d') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='16e') THEN
tau(1)=inp(1)
tau(2)=0.125_DP
tau(3)=0.125_DP
ELSEIF (TRIM(wp)=='16f') THEN
tau(1)=0.125_DP
tau(2)=inp(1)
tau(3)=0.125_DP
ELSEIF (TRIM(wp)=='16g') THEN
tau(1)=0.125_DP
tau(2)=0.125_DP
tau(3)=inp(1)
ENDIF
ENDIF
END SUBROUTINE wypos_70
SUBROUTINE wypos_71 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4i') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4j') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8k') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8l') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='8m') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='8n') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ENDIF
END SUBROUTINE wypos_71
SUBROUTINE wypos_72 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8e') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8f') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8g') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8h') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8i') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8j') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ENDIF
END SUBROUTINE wypos_72
SUBROUTINE wypos_73 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='8a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8b') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8c') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8d') THEN
tau(1)=0.25_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8e') THEN
tau(1)=0.0_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_73
SUBROUTINE wypos_74 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8f') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8g') THEN
tau(1)=0.25_DP
tau(2)=inp(1)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8h') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='8i') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_74
SUBROUTINE wypos_75 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_75
SUBROUTINE wypos_77 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_77
SUBROUTINE wypos_79 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_79
SUBROUTINE wypos_80 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_80
SUBROUTINE wypos_81 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='1c') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1d') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2f') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2g') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_81
SUBROUTINE wypos_82 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_82
SUBROUTINE wypos_83 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='1c') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1d') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2e') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2f') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2g') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2h') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4i') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4j') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4k') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.5_DP
ENDIF
END SUBROUTINE wypos_83
SUBROUTINE wypos_84 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2f') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4i') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4j') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ENDIF
END SUBROUTINE wypos_84
SUBROUTINE wypos_85 ( wp, inp, origin_choice, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
INTEGER, INTENT(in) :: origin_choice
REAL(dp), INTENT(out) :: tau (3)
IF (origin_choice==1) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ENDIF
ELSEIF (origin_choice==2) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.25_DP
tau(2)=0.75_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.25_DP
tau(2)=0.75_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=0.25_DP
tau(2)=0.75_DP
tau(3)=inp(1)
ENDIF
ENDIF
END SUBROUTINE wypos_85
SUBROUTINE wypos_86 ( wp, inp, origin_choice, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
INTEGER, INTENT(in) :: origin_choice
REAL(dp), INTENT(out) :: tau (3)
IF (origin_choice==1) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ENDIF
ELSEIF (origin_choice==2) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.75_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ENDIF
ENDIF
END SUBROUTINE wypos_86
SUBROUTINE wypos_87 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8f') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8g') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8h') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ENDIF
END SUBROUTINE wypos_87
SUBROUTINE wypos_88 ( wp, inp, origin_choice, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
INTEGER, INTENT(in) :: origin_choice
REAL(dp), INTENT(out) :: tau (3)
IF (origin_choice==1) THEN
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8c') THEN
tau(1)=0.0_DP
tau(2)=0.25_DP
tau(3)=0.125_DP
ELSEIF (TRIM(wp)=='8d') THEN
tau(1)=0.0_DP
tau(2)=0.25_DP
tau(3)=0.625_DP
ELSEIF (TRIM(wp)=='8e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ENDIF
ELSEIF (origin_choice==2) THEN
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.25_DP
tau(3)=0.125_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.25_DP
tau(3)=0.625_DP
ELSEIF (TRIM(wp)=='8c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8d') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8e') THEN
tau(1)=0.0_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ENDIF
ENDIF
END SUBROUTINE wypos_88
SUBROUTINE wypos_89 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='1c') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1d') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2e') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2f') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2g') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2h') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4i') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4j') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4k') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4l') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4m') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4n') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4o') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.0_DP
ENDIF
END SUBROUTINE wypos_89
SUBROUTINE wypos_90 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.5_DP
ENDIF
END SUBROUTINE wypos_90
SUBROUTINE wypos_91 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.5_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.375_DP
ENDIF
END SUBROUTINE wypos_91
SUBROUTINE wypos_92 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.0_DP
ENDIF
END SUBROUTINE wypos_92
SUBROUTINE wypos_93 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2f') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4i') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4j') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4k') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4l') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4m') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4n') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4o') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.75_DP
ENDIF
END SUBROUTINE wypos_93
SUBROUTINE wypos_94 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.5_DP
ENDIF
END SUBROUTINE wypos_94
SUBROUTINE wypos_95 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.5_DP
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.625_DP
ENDIF
END SUBROUTINE wypos_95
SUBROUTINE wypos_96 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.0_DP
ENDIF
END SUBROUTINE wypos_96
SUBROUTINE wypos_97 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8f') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8g') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8h') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8i') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4j') THEN
tau(1)=inp(1)
tau(2)=inp(1)+0.5_DP
tau(3)=0.25_DP
ENDIF
END SUBROUTINE wypos_97
SUBROUTINE wypos_98 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8d') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8e') THEN
tau(1)=-inp(1)
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8f') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=0.125_DP
ENDIF
END SUBROUTINE wypos_98
SUBROUTINE wypos_99 ( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_99
SUBROUTINE wypos_100( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=inp(1)
tau(2)=inp(1)+0.5_DP
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_100
SUBROUTINE wypos_101( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_101
SUBROUTINE wypos_102( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_102
SUBROUTINE wypos_103( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_103
SUBROUTINE wypos_104( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_104
SUBROUTINE wypos_105( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_105
SUBROUTINE wypos_106( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_106
SUBROUTINE wypos_107( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8c') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='8d') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_107
SUBROUTINE wypos_108( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=inp(1)
tau(2)=inp(1)+0.5_DP
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_108
SUBROUTINE wypos_109( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8b') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_109
SUBROUTINE wypos_110( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='8a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_110
SUBROUTINE wypos_111( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='1c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='1d') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2e') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2f') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2g') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2h') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4i') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4j') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4k') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4l') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4m') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4n') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_111
SUBROUTINE wypos_112( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2f') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=0.5_DP
tau(2)=inp(1)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4i') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4j') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4k') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4l') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4m') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_112
SUBROUTINE wypos_113( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=inp(1)
tau(2)=inp(1)+0.5_DP
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_113
SUBROUTINE wypos_114( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_114
SUBROUTINE wypos_115( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1c') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='1d') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2f') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2g') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4i') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4j') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='4k') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_115
SUBROUTINE wypos_116( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4i') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_116
SUBROUTINE wypos_117( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=inp(1)
tau(2)=inp(1)+0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=inp(1)
tau(2)=inp(1)+0.5_DP
tau(3)=0.5_DP
ENDIF
END SUBROUTINE wypos_117
SUBROUTINE wypos_118( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=inp(1)
tau(2)=-inp(1)+0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=inp(1)
tau(2)=inp(1)+0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_118
SUBROUTINE wypos_119( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8g') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8h') THEN
tau(1)=inp(1)
tau(2)=inp(1)+0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8i') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_119
SUBROUTINE wypos_120( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8e') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8f') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8g') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8h') THEN
tau(1)=inp(1)
tau(2)=inp(1)+0.5_DP
tau(3)=0.0_DP
ENDIF
END SUBROUTINE wypos_120
SUBROUTINE wypos_121( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8f') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8g') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8h') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8i') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_121
SUBROUTINE wypos_122( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8d') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=0.125_DP
ENDIF
END SUBROUTINE wypos_122
SUBROUTINE wypos_123( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='1c') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1d') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2e') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2f') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2g') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2h') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4i') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4j') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4k') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4l') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4m') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4n') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4o') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8p') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8q') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8r') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='8s') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='8t') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_123
SUBROUTINE wypos_124( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8i') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8j') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8k') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8l') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8m') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ENDIF
END SUBROUTINE wypos_124
SUBROUTINE wypos_125( wp, inp, origin_choice, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
INTEGER, INTENT(in) :: origin_choice
REAL(dp), INTENT(out) :: tau (3)
IF (origin_choice==1) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8i') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8j') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8k') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8l') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8m') THEN
tau(1)=inp(1)
tau(2)=inp(1)+0.5_DP
tau(3)=inp(2)
ENDIF
ELSEIF (origin_choice==2) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.75_DP
tau(2)=0.25_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.75_DP
tau(2)=0.25_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=0.75_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8i') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8j') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8k') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8l') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8m') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=inp(2)
ENDIF
ENDIF
END SUBROUTINE wypos_125
SUBROUTINE wypos_126( wp, inp, origin_choice, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
INTEGER, INTENT(in) :: origin_choice
REAL(dp), INTENT(out) :: tau (3)
IF (origin_choice==1) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8f') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8g') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8h') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8i') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8j') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ENDIF
ELSEIF (origin_choice==2) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.25_DP
tau(2)=0.75_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.25_DP
tau(2)=0.75_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8f') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8g') THEN
tau(1)=0.25_DP
tau(2)=0.75_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8h') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8i') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8j') THEN
tau(1)=inp(1)
tau(2)=0.75_DP
tau(3)=0.25_DP
ENDIF
ENDIF
END SUBROUTINE wypos_126
SUBROUTINE wypos_127( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=inp(1)
tau(2)=inp(1)+0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=inp(1)
tau(2)=inp(1)+0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8i') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8j') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8k') THEN
tau(1)=inp(1)
tau(2)=inp(1)+0.5_DP
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_127
SUBROUTINE wypos_128( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8f') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8g') THEN
tau(1)=inp(1)
tau(2)=inp(1)+0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8h') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ENDIF
END SUBROUTINE wypos_128
SUBROUTINE wypos_129( wp, inp, origin_choice, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
INTEGER, INTENT(in) :: origin_choice
REAL(dp), INTENT(out) :: tau (3)
IF (origin_choice==1) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8g') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8h') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8i') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='8j') THEN
tau(1)=inp(1)
tau(2)=inp(1)+0.5_DP
tau(3)=inp(2)
ENDIF
ELSEIF (origin_choice==2) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.75_DP
tau(2)=0.25_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.75_DP
tau(2)=0.25_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=0.75_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8g') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8h') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8i') THEN
tau(1)=0.25_DP
tau(2)=inp(1)
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='8j') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
ENDIF
END SUBROUTINE wypos_129
SUBROUTINE wypos_130( wp, inp, origin_choice, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
INTEGER, INTENT(in) :: origin_choice
REAL(dp), INTENT(out) :: tau (3)
IF (origin_choice==1) THEN
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8d') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8f') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.25_DP
ENDIF
ELSEIF (origin_choice==2) THEN
IF (TRIM(wp)=='4a') THEN
tau(1)=0.75_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.75_DP
tau(2)=0.25_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8d') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8e') THEN
tau(1)=0.75_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8f') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=0.25_DP
ENDIF
ENDIF
END SUBROUTINE wypos_130
SUBROUTINE wypos_131( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2f') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4i') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4j') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4k') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4l') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4m') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8n') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8o') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='8p') THEN
tau(1)=0.5_DP
tau(2)=inp(1)
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='8q') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ENDIF
END SUBROUTINE wypos_131
SUBROUTINE wypos_132( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4i') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4j') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8k') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8l') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8m') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8n') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8o') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_132
SUBROUTINE wypos_133( wp, inp, origin_choice, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
INTEGER, INTENT(in) :: origin_choice
REAL(dp), INTENT(out) :: tau (3)
IF (origin_choice==1) THEN
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8e') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8f') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8g') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8h') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8i') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='8j') THEN
tau(1)=inp(1)
tau(2)=inp(1)+0.5_DP
tau(3)=0.0_DP
ENDIF
ELSEIF (origin_choice==2) THEN
IF (TRIM(wp)=='4a') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.75_DP
tau(2)=0.25_DP
tau(3)=0.00_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.75_DP
tau(2)=0.25_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='8e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8f') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8g') THEN
tau(1)=0.75_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8h') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8i') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8j') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.25_DP
ENDIF
ENDIF
END SUBROUTINE wypos_133
SUBROUTINE wypos_134( wp, inp, origin_choice, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
INTEGER, INTENT(in) :: origin_choice
REAL(dp), INTENT(out) :: tau (3)
IF (origin_choice==1) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=0.75_DP
tau(2)=0.75_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8h') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8i') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8j') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8k') THEN
tau(1)=inp(1)
tau(2)=inp(1)+0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8l') THEN
tau(1)=inp(1)
tau(2)=inp(1)+0.5_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='8m') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
ELSEIF (origin_choice==2) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.25_DP
tau(2)=0.75_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.75_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=0.75_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8h') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8i') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='8j') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8k') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8l') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8m') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=inp(2)
ENDIF
ENDIF
END SUBROUTINE wypos_134
SUBROUTINE wypos_135( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8f') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8g') THEN
tau(1)=inp(1)
tau(2)=inp(1)+0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8h') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ENDIF
END SUBROUTINE wypos_135
SUBROUTINE wypos_136( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8h') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8i') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8j') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_136
SUBROUTINE wypos_137( wp, inp, origin_choice, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
INTEGER, INTENT(in) :: origin_choice
REAL(dp), INTENT(out) :: tau (3)
IF (origin_choice==1) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8e') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8f') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8g') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
ELSEIF (origin_choice==2) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.25_DP
tau(2)=0.75_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.75_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.75_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8f') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8g') THEN
tau(1)=0.25_DP
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
ENDIF
END SUBROUTINE wypos_137
SUBROUTINE wypos_138( wp, inp, origin_choice, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
INTEGER, INTENT(in) :: origin_choice
REAL(dp), INTENT(out) :: tau (3)
IF (origin_choice==1) THEN
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8f') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8g') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8h') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='8i') THEN
tau(1)=inp(1)
tau(2)=inp(1)+0.5_DP
tau(3)=inp(2)
ENDIF
ELSEIF (origin_choice==2) THEN
IF (TRIM(wp)=='4a') THEN
tau(1)=0.75_DP
tau(2)=0.25_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.75_DP
tau(2)=0.25_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8f') THEN
tau(1)=0.75_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8g') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8h') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8i') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
ENDIF
END SUBROUTINE wypos_138
SUBROUTINE wypos_139( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8f') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8g') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8h') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8i') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8j') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='16k') THEN
tau(1)=inp(1)
tau(2)=inp(1)+0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='16l') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='16m') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='16n') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_139
SUBROUTINE wypos_140( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8e') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8f') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='8h') THEN
tau(1)=inp(1)
tau(2)=inp(1)+0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='16i') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='16j') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='16k') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='16l') THEN
tau(1)=inp(1)
tau(2)=inp(1)+0.5_DP
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_140
SUBROUTINE wypos_141( wp, inp, origin_choice, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
INTEGER, INTENT(in) :: origin_choice
REAL(dp), INTENT(out) :: tau (3)
IF (origin_choice==1) THEN
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8c') THEN
tau(1)=0.0_DP
tau(2)=0.25_DP
tau(3)=0.125_DP
ELSEIF (TRIM(wp)=='8d') THEN
tau(1)=0.0_DP
tau(2)=0.25_DP
tau(3)=0.625_DP
ELSEIF (TRIM(wp)=='8e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='16f') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=0.125_DP
ELSEIF (TRIM(wp)=='16g') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='16h') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
ELSEIF (origin_choice==2) THEN
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.75_DP
tau(3)=0.125_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.25_DP
tau(3)=0.375_DP
ELSEIF (TRIM(wp)=='8c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8d') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8e') THEN
tau(1)=0.0_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='16f') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='16g') THEN
tau(1)=inp(1)
tau(2)=inp(1)+0.25_DP
tau(3)=0.875_DP
ELSEIF (TRIM(wp)=='16h') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
ENDIF
END SUBROUTINE wypos_141
SUBROUTINE wypos_142( wp, inp, origin_choice, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
INTEGER, INTENT(in) :: origin_choice
REAL(dp), INTENT(out) :: tau (3)
IF (origin_choice==1) THEN
IF (TRIM(wp)=='8a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='16c') THEN
tau(1)=0.0_DP
tau(2)=0.25_DP
tau(3)=0.125_DP
ELSEIF (TRIM(wp)=='16d') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='16e') THEN
tau(1)=0.25_DP
tau(2)=inp(1)
tau(3)=0.125_DP
ELSEIF (TRIM(wp)=='16f') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=0.25_DP
ENDIF
ELSEIF (origin_choice==2) THEN
IF (TRIM(wp)=='8a') THEN
tau(1)=0.0_DP
tau(2)=0.25_DP
tau(3)=0.375_DP
ELSEIF (TRIM(wp)=='8b') THEN
tau(1)=0.0_DP
tau(2)=0.25_DP
tau(3)=0.125_DP
ELSEIF (TRIM(wp)=='16c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='16d') THEN
tau(1)=0.0_DP
tau(2)=0.25_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='16e') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='16f') THEN
tau(1)=inp(1)
tau(2)=inp(1)+0.25_DP
tau(3)=0.125_DP
ENDIF
ENDIF
END SUBROUTINE wypos_142
SUBROUTINE wypos_143( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='1c') THEN
tau(1)=2.0_DP/3.0_DP
tau(2)=1.0_DP/3.0_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_143
SUBROUTINE wypos_146( wp, inp, rhombohedral, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
LOGICAL, INTENT(in) :: rhombohedral
REAL(dp), INTENT(out) :: tau (3)
IF (rhombohedral) THEN
IF (TRIM(wp)=='1a') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ENDIF
ELSE !If HEXAGONAL
IF (TRIM(wp)=='3a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ENDIF
ENDIF
END SUBROUTINE wypos_146
SUBROUTINE wypos_147( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='3e') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='3f') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ENDIF
END SUBROUTINE wypos_147
SUBROUTINE wypos_148( wp, inp, rhombohedral, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
LOGICAL, INTENT(in) :: rhombohedral
REAL(dp), INTENT(out) :: tau (3)
IF (rhombohedral) THEN
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='3d') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='3e') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ENDIF
ELSEIF (.NOT.rhombohedral) THEN
IF (TRIM(wp)=='3a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='3b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='6c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='9d') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='9e') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ENDIF
ENDIF
END SUBROUTINE wypos_148
SUBROUTINE wypos_149( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='1c') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1d') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='1e') THEN
tau(1)=2.0_DP/3.0_DP
tau(2)=1.0_DP/3.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1f') THEN
tau(1)=2.0_DP/3.0_DP
tau(2)=1.0_DP/3.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2g') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2h') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2i') THEN
tau(1)=2.0_DP/3.0_DP
tau(2)=1.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='3j') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='3k') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=0.5_DP
ENDIF
END SUBROUTINE wypos_149
SUBROUTINE wypos_150( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='3d') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='3e') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='3f') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ENDIF
END SUBROUTINE wypos_150
SUBROUTINE wypos_151( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='3a') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=1.0_DP/3.0_DP
ELSEIF (TRIM(wp)=='3b') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=5.0_DP/6.0_DP
ENDIF
END SUBROUTINE wypos_151
SUBROUTINE wypos_152( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='3a') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=1.0_DP/3.0_DP
ELSEIF (TRIM(wp)=='3b') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=5.0_DP/6.0_DP
ENDIF
END SUBROUTINE wypos_152
SUBROUTINE wypos_153( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='3a') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=2.0_DP/3.0_DP
ELSEIF (TRIM(wp)=='3b') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=1.0_DP/6.0_DP
ENDIF
END SUBROUTINE wypos_153
SUBROUTINE wypos_154( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='3a') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=2.0_DP/3.0_DP
ELSEIF (TRIM(wp)=='3b') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=1.0_DP/6.0_DP
ENDIF
END SUBROUTINE wypos_154
SUBROUTINE wypos_155( wp, inp, rhombohedral, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
LOGICAL, INTENT(in) :: rhombohedral
REAL(dp), INTENT(out) :: tau (3)
IF (rhombohedral) THEN
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='3d') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=-inp(1)
ELSEIF (TRIM(wp)=='3e') THEN
tau(1)=0.5_DP
tau(2)=inp(1)
tau(3)=-inp(1)
ENDIF
ELSEIF (.NOT.rhombohedral) THEN
IF (TRIM(wp)=='3a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='3b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='6c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='9d') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='9e') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ENDIF
ENDIF
END SUBROUTINE wypos_155
SUBROUTINE wypos_156( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='1c') THEN
tau(1)=2.0_DP/3.0_DP
tau(2)=1.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='3d') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_156
SUBROUTINE wypos_157( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='3c') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_157
SUBROUTINE wypos_158( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=2.0_DP/3.0_DP
tau(2)=1.0_DP/3.0_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_158
SUBROUTINE wypos_159( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_159
SUBROUTINE wypos_160( wp, inp, rhombohedral, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
LOGICAL, INTENT(in) :: rhombohedral
REAL(dp), INTENT(out) :: tau (3)
IF (rhombohedral) THEN
IF (TRIM(wp)=='1a') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='3b') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
ELSEIF (.NOT.rhombohedral) THEN
IF (TRIM(wp)=='3a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='9b') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=inp(2)
ENDIF
ENDIF
END SUBROUTINE wypos_160
SUBROUTINE wypos_161( wp, inp, rhombohedral, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
LOGICAL, INTENT(in) :: rhombohedral
REAL(dp), INTENT(out) :: tau (3)
IF (rhombohedral) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ENDIF
ELSEIF (.NOT.rhombohedral) THEN
IF (TRIM(wp)=='6a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ENDIF
ENDIF
END SUBROUTINE wypos_161
SUBROUTINE wypos_162( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='3f') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='3g') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='6i') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6j') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='6k') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_162
SUBROUTINE wypos_163( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=2.0_DP/3.0_DP
tau(2)=1.0_DP/3.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='6g') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6h') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=0.25_DP
ENDIF
END SUBROUTINE wypos_163
SUBROUTINE wypos_164( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='3e') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='3f') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='6g') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6h') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='6i') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_164
SUBROUTINE wypos_165( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='6e') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6f') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.25_DP
ENDIF
END SUBROUTINE wypos_165
SUBROUTINE wypos_166( wp, inp, rhombohedral, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
LOGICAL, INTENT(in) :: rhombohedral
REAL(dp), INTENT(out) :: tau (3)
IF (rhombohedral) THEN
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='3d') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='3e') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='6f') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6g') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='6h') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
ELSEIF (.NOT.rhombohedral) THEN
IF (TRIM(wp)=='3a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='3b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='6c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='9d') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='9e') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='18f') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='18g') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='18h') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=inp(2)
ENDIF
ENDIF
END SUBROUTINE wypos_166
SUBROUTINE wypos_167( wp, inp, rhombohedral, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
LOGICAL, INTENT(in) :: rhombohedral
REAL(dp), INTENT(out) :: tau (3)
IF (rhombohedral) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='6d') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6e') THEN
tau(1)=inp(1)
tau(2)=-inp(1)+0.5_DP
tau(3)=0.25_DP
ENDIF
ELSEIF (.NOT.rhombohedral) THEN
IF (TRIM(wp)=='6a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='6b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='12c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='18d') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='18e') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.25_DP
ENDIF
ENDIF
END SUBROUTINE wypos_167
SUBROUTINE wypos_168( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='3c') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_168
SUBROUTINE wypos_171( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='3a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='3b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_171
SUBROUTINE wypos_172( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='3a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='3b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_172
SUBROUTINE wypos_173( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_173
SUBROUTINE wypos_174( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='1c') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1d') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='1e') THEN
tau(1)=2.0_DP/3.0_DP
tau(2)=1.0_DP/3.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1f') THEN
tau(1)=2.0_DP/3.0_DP
tau(2)=1.0_DP/3.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2g') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2h') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2i') THEN
tau(1)=2.0_DP/3.0_DP
tau(2)=1.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='3j') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='3k') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.5_DP
ENDIF
END SUBROUTINE wypos_174
SUBROUTINE wypos_175( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='3f') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='3g') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='6i') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='6j') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6k') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.5_DP
ENDIF
END SUBROUTINE wypos_175
SUBROUTINE wypos_176( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=2.0_DP/3.0_DP
tau(2)=1.0_DP/3.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='6g') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6h') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.25_DP
ENDIF
END SUBROUTINE wypos_176
SUBROUTINE wypos_177( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='3f') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='3g') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='6i') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='6j') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6k') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='6l') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6m') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=0.5_DP
ENDIF
END SUBROUTINE wypos_177
SUBROUTINE wypos_178( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='6a') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6b') THEN
tau(1)=inp(1)
tau(2)=2.0_DP*inp(1)
tau(3)=0.25_DP
ENDIF
END SUBROUTINE wypos_178
SUBROUTINE wypos_179( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='6a') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6b') THEN
tau(1)=inp(1)
tau(2)=2.0_DP*inp(1)
tau(3)=0.75_DP
ENDIF
END SUBROUTINE wypos_179
SUBROUTINE wypos_180( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='3a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='3b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='3c') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='3d') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='6e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='6f') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='6g') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6h') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='6i') THEN
tau(1)=inp(1)
tau(2)=2.0_DP*inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6j') THEN
tau(1)=inp(1)
tau(2)=2.0_DP*inp(1)
tau(3)=0.5_DP
ENDIF
END SUBROUTINE wypos_180
SUBROUTINE wypos_181( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='3a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='3b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='3c') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='3d') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='6e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='6f') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='6g') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6h') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='6i') THEN
tau(1)=inp(1)
tau(2)=2.0_DP*inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6j') THEN
tau(1)=inp(1)
tau(2)=2.0_DP*inp(1)
tau(3)=0.5_DP
ENDIF
END SUBROUTINE wypos_181
SUBROUTINE wypos_182( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='6g') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6h') THEN
tau(1)=inp(1)
tau(2)=2.0_DP*inp(1)
tau(3)=0.25_DP
ENDIF
END SUBROUTINE wypos_182
SUBROUTINE wypos_183( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='3c') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='6d') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='6e') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_183
SUBROUTINE wypos_184( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='6c') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_184
SUBROUTINE wypos_185( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='6c') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_185
SUBROUTINE wypos_186( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='6c') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_186
SUBROUTINE wypos_187( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='1c') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1d') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='1e') THEN
tau(1)=2.0_DP/3.0_DP
tau(2)=1.0_DP/3.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1f') THEN
tau(1)=2.0_DP/3.0_DP
tau(2)=1.0_DP/3.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2g') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2h') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='2i') THEN
tau(1)=2.0_DP/3.0_DP
tau(2)=1.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='3j') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='3k') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='6l') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6m') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='6n') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_187
SUBROUTINE wypos_188( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2e') THEN
tau(1)=2.0_DP/3.0_DP
tau(2)=1.0_DP/3.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2f') THEN
tau(1)=2.0_DP/3.0_DP
tau(2)=1.0_DP/3.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4g') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4i') THEN
tau(1)=2.0_DP/3.0_DP
tau(2)=1.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='6j') THEN
tau(1)=inp(1)
tau(2)=-inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6k') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.25_DP
ENDIF
END SUBROUTINE wypos_188
SUBROUTINE wypos_189( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='3f') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='3g') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='6i') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='6j') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6k') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.5_DP
ENDIF
END SUBROUTINE wypos_189
SUBROUTINE wypos_190( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=2.0_DP/3.0_DP
tau(2)=1.0_DP/3.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='6g') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6h') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.25_DP
ENDIF
END SUBROUTINE wypos_190
SUBROUTINE wypos_191( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='2e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='3f') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='3g') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4h') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='6i') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='6j') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6k') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='6l') THEN
tau(1)=inp(1)
tau(2)=2.0_DP*inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6m') THEN
tau(1)=inp(1)
tau(2)=2.0_DP*inp(1)
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='12n') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='12o') THEN
tau(1)=inp(1)
tau(2)=2.0_DP*inp(1)
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='12p') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='12q') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.5_DP
ENDIF
END SUBROUTINE wypos_191
SUBROUTINE wypos_192( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='6f') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='6g') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8h') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='12i') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='12j') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='12k') THEN
tau(1)=inp(1)
tau(2)=2.0_DP*inp(1)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='12l') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.0_DP
ENDIF
END SUBROUTINE wypos_192
SUBROUTINE wypos_193( wp, inp, tau )
REAL(dp), INTENT(in) :: inp(3)
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='6f') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6g') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8h') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='12i') THEN
tau(1)=inp(1)
tau(2)=2.0_DP*inp(1)
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='12j') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='12k') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_193
SUBROUTINE wypos_194( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='2b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2c') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='2d') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='4f') THEN
tau(1)=1.0_DP/3.0_DP
tau(2)=2.0_DP/3.0_DP
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='6g') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6h') THEN
tau(1)=inp(1)
tau(2)=2.0_DP*inp(1)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='12i') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='12j') THEN
tau(1)=inp(1)
tau(2)=inp(2)
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='12k') THEN
tau(1)=inp(1)
tau(2)=2.0_DP*inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_194
SUBROUTINE wypos_195( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='3c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='3d') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='6f') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6g') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='6h') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6i') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.5_DP
ENDIF
END SUBROUTINE wypos_195
SUBROUTINE wypos_196( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.75_DP
tau(2)=0.75_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='16e') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='24f') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='24g') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=0.25_DP
ENDIF
END SUBROUTINE wypos_196
SUBROUTINE wypos_197( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8c') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='12d') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='12e') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.0_DP
ENDIF
END SUBROUTINE wypos_197
SUBROUTINE wypos_198( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_198
SUBROUTINE wypos_199( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='8a') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='12b') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.25_DP
ENDIF
END SUBROUTINE wypos_199
SUBROUTINE wypos_200( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='3c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='3d') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6e') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6f') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='6g') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6h') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8i') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='12j') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='12k') THEN
tau(1)=0.5_DP
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_200
SUBROUTINE wypos_201( wp, inp, origin_choice, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
INTEGER, INTENT(in) :: origin_choice
REAL(dp), INTENT(out) :: tau (3)
IF (origin_choice==1) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.75_DP
tau(2)=0.75_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='6d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8e') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='12f') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='12g') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.0_DP
ENDIF
ELSEIF (origin_choice==2) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='6d') THEN
tau(1)=0.25_DP
tau(2)=0.75_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='8e') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='12f') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='12g') THEN
tau(1)=inp(1)
tau(2)=0.75_DP
tau(3)=0.25_DP
ENDIF
ENDIF
END SUBROUTINE wypos_201
SUBROUTINE wypos_202( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8c') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='24d') THEN
tau(1)=0.0_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='24e') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='32f') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='48g') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='48h') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_202
SUBROUTINE wypos_203( wp, inp, origin_choice, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
INTEGER, INTENT(in) :: origin_choice
REAL(dp), INTENT(out) :: tau (3)
IF (origin_choice==1) THEN
IF (TRIM(wp)=='8a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='16c') THEN
tau(1)=0.125_DP
tau(2)=0.125_DP
tau(3)=0.125_DP
ELSEIF (TRIM(wp)=='16d') THEN
tau(1)=0.625_DP
tau(2)=0.625_DP
tau(3)=0.625_DP
ELSEIF (TRIM(wp)=='32e') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='48f') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ENDIF
ELSEIF (origin_choice==2) THEN
IF (TRIM(wp)=='8a') THEN
tau(1)=0.125_DP
tau(2)=0.125_DP
tau(3)=0.125_DP
ELSEIF (TRIM(wp)=='8b') THEN
tau(1)=0.625_DP
tau(2)=0.625_DP
tau(3)=0.625_DP
ELSEIF (TRIM(wp)=='16c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='16d') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='32e') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='48f') THEN
tau(1)=inp(1)
tau(2)=0.125_DP
tau(3)=0.125_DP
ENDIF
ENDIF
END SUBROUTINE wypos_203
SUBROUTINE wypos_204( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8c') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='12d') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='12e') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='16f') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='24g') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_204
SUBROUTINE wypos_205( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8c') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_205
SUBROUTINE wypos_206( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='8a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8b') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='16c') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='24d') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.25_DP
ENDIF
END SUBROUTINE wypos_206
SUBROUTINE wypos_207( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='3c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='3d') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6e') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6f') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8g') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='12h') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='12i') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='12j') THEN
tau(1)=0.5_DP
tau(2)=inp(1)
tau(3)=inp(1)
ENDIF
END SUBROUTINE wypos_207
SUBROUTINE wypos_208( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.75_DP
tau(2)=0.75_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='6d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='6e') THEN
tau(1)=0.25_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='6f') THEN
tau(1)=0.25_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8g') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='12h') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='12i') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='12j') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='12k') THEN
tau(1)=0.25_DP
tau(2)=inp(1)
tau(3)=-inp(1)+0.5_DP
ELSEIF (TRIM(wp)=='12l') THEN
tau(1)=0.25_DP
tau(2)=inp(1)
tau(3)=inp(1)+0.5_DP
ENDIF
END SUBROUTINE wypos_208
SUBROUTINE wypos_209( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8c') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='24d') THEN
tau(1)=0.0_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='24e') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='32f') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='48g') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='48h') THEN
tau(1)=0.5_DP
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='48i') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=0.25_DP
ENDIF
END SUBROUTINE wypos_209
SUBROUTINE wypos_210( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='8a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='16c') THEN
tau(1)=0.125_DP
tau(2)=0.125_DP
tau(3)=0.125_DP
ELSEIF (TRIM(wp)=='16d') THEN
tau(1)=0.625_DP
tau(2)=0.625_DP
tau(3)=0.625_DP
ELSEIF (TRIM(wp)=='32e') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='48f') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='48g') THEN
tau(1)=0.125_DP
tau(2)=inp(1)
tau(3)=-inp(1)+0.25_DP
ENDIF
END SUBROUTINE wypos_210
SUBROUTINE wypos_211( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8c') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='12d') THEN
tau(1)=0.25_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='12e') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='16f') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='24g') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='24h') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='24i') THEN
tau(1)=0.25_DP
tau(2)=inp(1)
tau(3)=-inp(1)+0.5_DP
ENDIF
END SUBROUTINE wypos_211
SUBROUTINE wypos_212( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.125_DP
tau(2)=0.125_DP
tau(3)=0.125_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.625_DP
tau(2)=0.625_DP
tau(3)=0.625_DP
ELSEIF (TRIM(wp)=='8c') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='12d') THEN
tau(1)=0.125_DP
tau(2)=inp(1)
tau(3)=-inp(1)+0.25_DP
ENDIF
END SUBROUTINE wypos_212
SUBROUTINE wypos_213( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.375_DP
tau(2)=0.375_DP
tau(3)=0.375_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.875_DP
tau(2)=0.875_DP
tau(3)=0.875_DP
ELSEIF (TRIM(wp)=='8c') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='12d') THEN
tau(1)=0.125_DP
tau(2)=inp(1)
tau(3)=inp(1)+0.25_DP
ENDIF
END SUBROUTINE wypos_213
SUBROUTINE wypos_214( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='8a') THEN
tau(1)=0.125_DP
tau(2)=0.125_DP
tau(3)=0.125_DP
ELSEIF (TRIM(wp)=='8b') THEN
tau(1)=0.875_DP
tau(2)=0.875_DP
tau(3)=0.875_DP
ELSEIF (TRIM(wp)=='12c') THEN
tau(1)=0.125_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='12d') THEN
tau(1)=0.625_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='16e') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='24f') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='24g') THEN
tau(1)=0.125_DP
tau(2)=inp(1)
tau(3)=inp(1)+0.25_DP
ELSEIF (TRIM(wp)=='24h') THEN
tau(1)=0.125_DP
tau(2)=inp(1)
tau(3)=-inp(1)+0.25_DP
ENDIF
END SUBROUTINE wypos_214
SUBROUTINE wypos_215( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='3c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='3d') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4e') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='6f') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6g') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='12h') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='12i') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_215
SUBROUTINE wypos_216( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4d') THEN
tau(1)=0.75_DP
tau(2)=0.75_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='16e') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='24f') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='24g') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='48h') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_216
SUBROUTINE wypos_217( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8c') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='12d') THEN
tau(1)=0.25_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='12e') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='24f') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='24g') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_217
SUBROUTINE wypos_218( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='6c') THEN
tau(1)=0.25_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6d') THEN
tau(1)=0.25_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8e') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='12f') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='12g') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='12h') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ENDIF
END SUBROUTINE wypos_218
SUBROUTINE wypos_219( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='8a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8b') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='24c') THEN
tau(1)=0.0_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='24d') THEN
tau(1)=0.25_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='32e') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='48f') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='48g') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=0.25_DP
ENDIF
END SUBROUTINE wypos_219
SUBROUTINE wypos_220( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='12a') THEN
tau(1)=0.375_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='12b') THEN
tau(1)=0.875_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='16c') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='24d') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.25_DP
ENDIF
END SUBROUTINE wypos_220
SUBROUTINE wypos_221( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='1a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='1b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='3c') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='3d') THEN
tau(1)=0.5_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6e') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6f') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8g') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='12h') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='12i') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='12j') THEN
tau(1)=0.5_DP
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='24k') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='24l') THEN
tau(1)=0.5_DP
tau(2)=inp(1)
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='24m') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_221
SUBROUTINE wypos_222( wp, inp, origin_choice, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
INTEGER, INTENT(in) :: origin_choice
REAL(dp), INTENT(out) :: tau (3)
IF (origin_choice==1) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8c') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='12d') THEN
tau(1)=0.25_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='12e') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='16f') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='24g') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='24h') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(1)
ENDIF
ELSEIF (origin_choice==2) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='6b') THEN
tau(1)=0.75_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='12d') THEN
tau(1)=0.0_DP
tau(2)=0.75_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='12e') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='16f') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='24g') THEN
tau(1)=inp(1)
tau(2)=0.75_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='24h') THEN
tau(1)=0.25_DP
tau(2)=inp(1)
tau(3)=inp(1)
ENDIF
ENDIF
END SUBROUTINE wypos_222
SUBROUTINE wypos_223( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='6c') THEN
tau(1)=0.25_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='6d') THEN
tau(1)=0.25_DP
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8e') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='12f') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='12g') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='12h') THEN
tau(1)=inp(1)
tau(2)=0.5_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='16i') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='24j') THEN
tau(1)=0.25_DP
tau(2)=inp(1)
tau(3)=inp(1)+0.5_DP
ELSEIF (TRIM(wp)=='24k') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_223
SUBROUTINE wypos_224( wp, inp, origin_choice, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
INTEGER, INTENT(in) :: origin_choice
REAL(dp), INTENT(out) :: tau (3)
IF (origin_choice==1) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.75_DP
tau(2)=0.75_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='6d') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8e') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='12f') THEN
tau(1)=0.25_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='12g') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='24h') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='24i') THEN
tau(1)=0.25_DP
tau(2)=inp(1)
tau(3)=-inp(1)+0.5_DP
ELSEIF (TRIM(wp)=='24j') THEN
tau(1)=0.25_DP
tau(2)=inp(1)
tau(3)=inp(1)+0.5_DP
ELSEIF (TRIM(wp)=='24k') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
ELSEIF (origin_choice==2) THEN
IF (TRIM(wp)=='2a') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4c') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='6d') THEN
tau(1)=0.25_DP
tau(2)=0.75_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='8e') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='12f') THEN
tau(1)=0.5_DP
tau(2)=0.25_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='12g') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='24h') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=0.75_DP
ELSEIF (TRIM(wp)=='24i') THEN
tau(1)=0.5_DP
tau(2)=inp(1)
tau(3)=inp(1)+0.5_DP
ELSEIF (TRIM(wp)=='24j') THEN
tau(1)=0.5_DP
tau(2)=inp(1)
tau(3)=-inp(1)
ELSEIF (TRIM(wp)=='24k') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
ENDIF
END SUBROUTINE wypos_224
SUBROUTINE wypos_225( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='4a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='4b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8c') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='24d') THEN
tau(1)=0.0_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='24e') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='32f') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='48g') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='48h') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='48i') THEN
tau(1)=0.5_DP
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='96j') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='96k') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_225
SUBROUTINE wypos_226( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='8a') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='8b') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='24c') THEN
tau(1)=0.25_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='24d') THEN
tau(1)=0.0_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='48e') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='48f') THEN
tau(1)=inp(1)
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='64g') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='96h') THEN
tau(1)=0.25_DP
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='96i') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_226
SUBROUTINE wypos_227( wp, inp, origin_choice, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
INTEGER, INTENT(in) :: origin_choice
REAL(dp), INTENT(out) :: tau (3)
IF (origin_choice==1) THEN
IF (TRIM(wp)=='8a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='8b') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='16c') THEN
tau(1)=0.125_DP
tau(2)=0.125_DP
tau(3)=0.125_DP
ELSEIF (TRIM(wp)=='16d') THEN
tau(1)=0.625_DP
tau(2)=0.625_DP
tau(3)=0.625_DP
ELSEIF (TRIM(wp)=='32e') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='48f') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='96g') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='96h') THEN
tau(1)=0.125_DP
tau(2)=inp(1)
tau(3)=-inp(1)+0.25_DP
ENDIF
ELSEIF (origin_choice==2) THEN
IF (TRIM(wp)=='8a') THEN
tau(1)=0.125_DP
tau(2)=0.125_DP
tau(3)=0.125_DP
ELSEIF (TRIM(wp)=='8b') THEN
tau(1)=0.375_DP
tau(2)=0.375_DP
tau(3)=0.375_DP
ELSEIF (TRIM(wp)=='16c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='16d') THEN
tau(1)=0.5_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='32e') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='48f') THEN
tau(1)=inp(1)
tau(2)=0.125_DP
tau(3)=0.125_DP
ELSEIF (TRIM(wp)=='96g') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='96h') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=-inp(1)
ENDIF
ENDIF
END SUBROUTINE wypos_227
SUBROUTINE wypos_228( wp, inp, origin_choice, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
INTEGER, INTENT(in) :: origin_choice
REAL(dp), INTENT(out) :: tau (3)
IF (origin_choice==1) THEN
IF (TRIM(wp)=='16a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='32b') THEN
tau(1)=0.125_DP
tau(2)=0.125_DP
tau(3)=0.125_DP
ELSEIF (TRIM(wp)=='32c') THEN
tau(1)=0.375_DP
tau(2)=0.375_DP
tau(3)=0.375_DP
ELSEIF (TRIM(wp)=='48d') THEN
tau(1)=0.25_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='64e') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='96f') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='96g') THEN
tau(1)=0.125_DP
tau(2)=inp(1)
tau(3)=-inp(1)+0.25_DP
ENDIF
ELSEIF (origin_choice==2) THEN
IF (TRIM(wp)=='16a') THEN
tau(1)=0.125_DP
tau(2)=0.125_DP
tau(3)=0.125_DP
ELSEIF (TRIM(wp)=='32b') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='32c') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='48d') THEN
tau(1)=0.875_DP
tau(2)=0.125_DP
tau(3)=0.125_DP
ELSEIF (TRIM(wp)=='64e') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='96f') THEN
tau(1)=inp(1)
tau(2)=0.125_DP
tau(3)=0.125_DP
ELSEIF (TRIM(wp)=='96g') THEN
tau(1)=0.25_DP
tau(2)=inp(1)
tau(3)=-inp(1)
ENDIF
ENDIF
END SUBROUTINE wypos_228
SUBROUTINE wypos_229( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='2a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='6b') THEN
tau(1)=0.0_DP
tau(2)=0.5_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='8c') THEN
tau(1)=0.25_DP
tau(2)=0.25_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='12d') THEN
tau(1)=0.25_DP
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='12e') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='16f') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='24g') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.5_DP
ELSEIF (TRIM(wp)=='24h') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='48i') THEN
tau(1)=0.25_DP
tau(2)=inp(1)
tau(3)=-inp(1)+0.5_DP
ELSEIF (TRIM(wp)=='48j') THEN
tau(1)=0.0_DP
tau(2)=inp(1)
tau(3)=inp(2)
ELSEIF (TRIM(wp)=='48k') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(2)
ENDIF
END SUBROUTINE wypos_229
SUBROUTINE wypos_230( wp, inp, tau )
CHARACTER(LEN=*), INTENT(in) :: wp
REAL(dp), INTENT(in) :: inp(3)
REAL(dp), INTENT(out) :: tau (3)
IF (TRIM(wp)=='16a') THEN
tau(1)=0.0_DP
tau(2)=0.0_DP
tau(3)=0.0_DP
ELSEIF (TRIM(wp)=='16b') THEN
tau(1)=0.125_DP
tau(2)=0.125_DP
tau(3)=0.125_DP
ELSEIF (TRIM(wp)=='24c') THEN
tau(1)=0.125_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='24d') THEN
tau(1)=0.375_DP
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='32e') THEN
tau(1)=inp(1)
tau(2)=inp(1)
tau(3)=inp(1)
ELSEIF (TRIM(wp)=='48f') THEN
tau(1)=inp(1)
tau(2)=0.0_DP
tau(3)=0.25_DP
ELSEIF (TRIM(wp)=='48g') THEN
tau(1)=0.125_DP
tau(2)=inp(1)
tau(3)=-inp(1)+0.25_DP
ENDIF
END SUBROUTINE wypos_230
END MODULE