! File: fft23t.i90 ! Public domain 2004 James Van Buskirk subroutine fft23t(h) ! 490 adds, 258 muls complex(wp), intent(inout) :: h(0:22) real(wp) xr1m, xi1m, xr1_m, xi1_m real(wp) xr2l, xi2l, xr2_l, xi2_l real(wp) xr4j, xi4j, xr4_j, xi4_j real(wp) xr8f, xi8f, xr8_f, xi8_f real(wp) xrg7, xig7, xrg_7, xig_7 real(wp) xr9e, xi9e, xr9_e, xi9_e real(wp) xri5, xii5, xri_5, xii_5 real(wp) xrda, xida, xrd_a, xid_a real(wp) xr3k, xi3k, xr3_k, xi3_k real(wp) xr6h, xi6h, xr6_h, xi6_h real(wp) xrcb, xicb, xrc_b, xic_b real(wp) xr1m2l, xi1m2l, xr12_ml, xi12_ml real(wp) xr4j8f, xi4j8f, xr48_jf, xi48_jf real(wp) xrg79e, xig79e, xrg9_7e, xig9_7e real(wp) xri5da, xii5da, xrid_5a, xiid_5a real(wp) xr3k6h, xi3k6h, xr36_kh, xi36_kh real(wp) xr1m2l4j8f, xi1m2l4j8f, xr1248_mljf, xi1248_mljf real(wp) xrg79ei5da, xig79ei5da, xrg9id_7e5a, xig9id_7e5a real(wp) xr2l8f, xi2l8f, xr9eda, xi9eda real(wp) xr1m4j, xi1m4j, xrg7i5, xig7i5 real(wp) xr28_lf, xi28_lf, xr9d_ea, xi9d_ea real(wp) xr14_mj, xi14_mj, xrgi_75, xigi_75 real(wp) xrsigma, xisigma real(wp) xr0, xi0, yrc63di9g8421, yic63di9g8421 real(wp) yrc63d, yic63d, yri9g8, yii9g8 real(wp) yrc6, yic6, yr3d, yi3d real(wp) yri9, yii9, yrg8, yig8 real(wp) yrc3, yic3, yr6d, yi6d real(wp) yrig, yiig, yr98, yi98 real(wp) yr42, yi42 real(wp) yr0, yi0, yrc, yic, yr6, yi6, yr3, yi3 real(wp) yrd, yid, yri, yii, yr9, yi9, yrg, yig real(wp) yr8, yi8, yr4, yi4, yr2, yi2, yr1, yi1 real(wp) zrc63d, zic63d, zri9g8, zii9g8 real(wp) zrc6, zic6, zr3d, zi3d real(wp) zri9, zii9, zrg8, zig8 real(wp) zrc3, zic3, zr6d, zi6d real(wp) zrig, ziig, zr98, zi98 real(wp) zr42, zi42 real(wp) zrc, zic, zr6, zi6, zr3, zi3 real(wp) zrd, zid, zri, zii, zr9, zi9, zrg, zig real(wp) zr8, zi8, zr4, zi4, zr2, zi2, zr1, zi1 real(wp) xr1248g9id_mljf7e5a, xi1248g9id_mljf7e5a real(wp) zrsigma, zisigma, zr0, zi0 real(wp), parameter :: cc = -.99068594603633075234232296009620602_wp real(wp), parameter :: c1_c = 1.95360323338413004735754655746944470_wp real(wp), parameter :: c2_c = 1.84510535058281930489053857964645680_wp real(wp), parameter :: c4_c = 1.45075098376748287838389871990715790_wp real(wp), parameter :: c8_c = .41400562392146361109127468482935323_wp real(wp), parameter :: cg_c = .65580633386534460038420788924831581_wp real(wp), parameter :: c9_c = .21497465533191094530122194912666916_wp real(wp), parameter :: ci_c = 1.19414195908896454222035168215778440_wp real(wp), parameter :: cd_c = .07347464453087773449851751213059043_wp real(wp), parameter :: c3_c = 1.67323908925498483521686050546874680_wp real(wp), parameter :: c6_c = .92244353267165977642113448107374711_wp real(wp), parameter :: cg_8 = .24180070994388098929293320441896253_wp real(wp), parameter :: c4_8 = 1.03674535984601926729262403507780470_wp real(wp), parameter :: c9_8 = -.19903096858955266579005273570268407_wp real(wp), parameter :: c2_8 = 1.43109972666135569379926389481710360_wp real(wp), parameter :: cd_i = -1.12066731455808680772183417002719410_wp real(wp), parameter :: c9_i = -.97916730375705359691912973303111526_wp real(wp), parameter :: c3_i = .47909713016602029299650882331096224_wp real(wp), parameter :: cg_i = -.53833562522361994183614379290946871_wp real(wp), parameter :: c4_2 = -.39435436681533642650663985973929897_wp real(wp), parameter :: c1_2 = .10849788280131074246700797782298799_wp real(wp), parameter :: cg_9 = .44083167853343365508298594012164660_wp real(wp), parameter :: c3_d = 1.59976444472410710071834299333815620_wp real(wp), parameter :: c6_3 = -.75079555658332505879572602439499954_wp real(wp), parameter :: c4c_21 = -2.34795760019946647386418641720874400_wp real(wp), parameter :: ci8_9g = .73736659381317260762619652861215278_wp real(wp), parameter :: c6c_31 = -2.70439878996745510615327258186444410_wp real(wp), parameter :: c48_2g = -.63615507675921741579957306415826146_wp real(wp), parameter :: c1c_26 = -.81394564987034903395412650325075912_wp real(wp), parameter :: cg8_94 = -.59591368131258561220963809495615796_wp real(wp), parameter :: cdc_36 = -2.52220797739576687713947747441190360_wp real(wp), parameter :: c18_24 = -.92824747704470852482561605725481662_wp real(wp), parameter :: c6i_3d = .36987175797476174892610814563219454_wp real(wp), parameter :: cdi_39 = -.62059714096705350379921326030704087_wp real(wp), parameter :: c9i_gd = .67983563602465315263884822990554734_wp real(wp), parameter :: csigma = -.50000000000000000000000000000000000_wp real(wp), parameter :: sc = -.13616664909624659076072583338787273_wp real(wp), parameter :: sd_c = -.26223444074999486723715456658180602_wp real(wp), parameter :: si_c = -.84291743858607628487208905137236438_wp real(wp), parameter :: s9_c = .76725459342229938012812596353118328_wp real(wp), parameter :: sg_c = -.80609427302257390485695839193009936_wp real(wp), parameter :: s8_c = .95313654210668860773413987063286092_wp real(wp), parameter :: s4_c = 1.02405186749862182574499511080745720_wp real(wp), parameter :: s1_c = .40596342025327086200605435599044326_wp real(wp), parameter :: s6_c = 1.13383541828678578921430411408715100_wp real(wp), parameter :: s3_c = .86700261337437069241155894947146116_wp real(wp), parameter :: s2_c = .65575059913168016889372684471166040_wp real(wp), parameter :: sg_8 = -1.75923081512926251259109826256296030_wp real(wp), parameter :: s4_8 = .07091532539193321801085524017459629_wp real(wp), parameter :: s9_8 = -.18588194868438922760601390710167764_wp real(wp), parameter :: s2_8 = -.29738594297500843884041302592120053_wp real(wp), parameter :: sd_i = .58068299783608141763493448479055836_wp real(wp), parameter :: s9_i = 1.61017203200837566500021501490354780_wp real(wp), parameter :: s3_i = 1.70992005196044697728364800084382550_wp real(wp), parameter :: sg_i = .03682316556350238001513065944226502_wp real(wp), parameter :: s4_2 = .36830126836694165685126826609579682_wp real(wp), parameter :: s1_2 = -.24978717887840930688767248872121714_wp real(wp), parameter :: sg_9 = -1.57334886644487328498508435546128260_wp real(wp), parameter :: s3_d = 1.12923705412436555964871351605326710_wp real(wp), parameter :: s6_3 = .26683280491241509680274516461568985_wp real(wp), parameter :: s4c_21 = -.03766215188632920515478608989464644_wp real(wp), parameter :: si8_9g = .14905878312088684759088324765941262_wp real(wp), parameter :: s6c_31 = -.13913061534085576520330919137475340_wp real(wp), parameter :: s48_2g = 2.12753208349620416944236652865875720_wp real(wp), parameter :: s1c_26 = -1.38362259716519509610197660280836820_wp real(wp), parameter :: sg8_94 = -1.64426419183680650299593959563587900_wp real(wp), parameter :: sdc_36 = -2.26307247241115134886301763014041810_wp real(wp), parameter :: s18_24 = -.32070250427034252489852772889581347_wp real(wp), parameter :: s6i_3d = -.31385019292366632083218932017486851_wp real(wp), parameter :: sdi_39 = -2.73940908613274122464892853095681480_wp real(wp), parameter :: s9i_gd = .99266586860879186735014987067072427_wp real(wp), parameter :: ssigma = 2.39791576165635977079871903208134750_wp xr1m = real(h(1))+real(h(22)) xr1_m = real(h(1))-real(h(22)) xi1m = aimag(h(1))+aimag(h(22)) xi1_m = aimag(h(1))-aimag(h(22)) xr2l = real(h(2))+real(h(21)) xr2_l = real(h(2))-real(h(21)) xi2l = aimag(h(2))+aimag(h(21)) xi2_l = aimag(h(2))-aimag(h(21)) xr4j = real(h(4))+real(h(19)) xr4_j = real(h(4))-real(h(19)) xi4j = aimag(h(4))+aimag(h(19)) xi4_j = aimag(h(4))-aimag(h(19)) xr8f = real(h(8))+real(h(15)) xr8_f = real(h(8))-real(h(15)) xi8f = aimag(h(8))+aimag(h(15)) xi8_f = aimag(h(8))-aimag(h(15)) xrg7 = real(h(16))+real(h(7)) xrg_7 = real(h(16))-real(h(7)) xig7 = aimag(h(16))+aimag(h(7)) xig_7 = aimag(h(16))-aimag(h(7)) xr9e = real(h(9))+real(h(14)) xr9_e = real(h(9))-real(h(14)) xi9e = aimag(h(9))+aimag(h(14)) xi9_e = aimag(h(9))-aimag(h(14)) xri5 = real(h(18))+real(h(5)) xri_5 = real(h(18))-real(h(5)) xii5 = aimag(h(18))+aimag(h(5)) xii_5 = aimag(h(18))-aimag(h(5)) xrda = real(h(13))+real(h(10)) xrd_a = real(h(13))-real(h(10)) xida = aimag(h(13))+aimag(h(10)) xid_a = aimag(h(13))-aimag(h(10)) xr3k = real(h(3))+real(h(20)) xr3_k = real(h(3))-real(h(20)) xi3k = aimag(h(3))+aimag(h(20)) xi3_k = aimag(h(3))-aimag(h(20)) xr6h = real(h(6))+real(h(17)) xr6_h = real(h(6))-real(h(17)) xi6h = aimag(h(6))+aimag(h(17)) xi6_h = aimag(h(6))-aimag(h(17)) xrcb = real(h(12))+real(h(11)) xrc_b = real(h(12))-real(h(11)) xicb = aimag(h(12))+aimag(h(11)) xic_b = aimag(h(12))-aimag(h(11)) xr1m = xr1m-xrcb xi1m = xi1m-xicb xr1_m = xr1_m-xrc_b xi1_m = xi1_m-xic_b xr2l = xr2l-xrcb xi2l = xi2l-xicb xr2_l = xr2_l-xrc_b xi2_l = xi2_l-xic_b xr4j = xr4j-xrcb xi4j = xi4j-xicb xr4_j = xr4_j-xrc_b xi4_j = xi4_j-xic_b xr8f = xr8f-xrcb xi8f = xi8f-xicb xr8_f = xr8_f-xrc_b xi8_f = xi8_f-xic_b xrg7 = xrg7-xrcb xig7 = xig7-xicb xrg_7 = xrg_7-xrc_b xig_7 = xig_7-xic_b xr9e = xr9e-xrcb xi9e = xi9e-xicb xr9_e = xr9_e-xrc_b xi9_e = xi9_e-xic_b xri5 = xri5-xrcb xii5 = xii5-xicb xri_5 = xri_5-xrc_b xii_5 = xii_5-xic_b xrda = xrda-xrcb xida = xida-xicb xrd_a = xrd_a-xrc_b xid_a = xid_a-xic_b xr3k = xr3k-xrcb xi3k = xi3k-xicb xr3_k = xr3_k-xrc_b xi3_k = xi3_k-xic_b xr6h = xr6h-xrcb xi6h = xi6h-xicb xr6_h = xr6_h-xrc_b xi6_h = xi6_h-xic_b xr1m2l = xr1m+xr2l xi1m2l = xi1m+xi2l xr4j8f = xr4j+xr8f xi4j8f = xi4j+xi8f xrg79e = xrg7+xr9e xig79e = xig7+xi9e xri5da = xri5+xrda xii5da = xii5+xida xr3k6h = xr3k+xr6h xi3k6h = xi3k+xi6h xr1m2l4j8f = xr1m2l+xr4j8f xi1m2l4j8f = xi1m2l+xi4j8f xrg79ei5da = xrg79e+xri5da xig79ei5da = xig79e+xii5da xr0 = xr1m2l4j8f+xrg79ei5da+xr3k6h xi0 = xi1m2l4j8f+xig79ei5da+xi3k6h xr2l8f = xr2l+xr8f xi2l8f = xi2l+xi8f xr9eda = xr9e+xrda xi9eda = xi9e+xida xr1m4j = xr1m+xr4j xi1m4j = xi1m+xi4j xrg7i5 = xrg7+xri5 xig7i5 = xig7+xii5 yrc63di9g8421 = real(h(0))+cc*xr0+csigma*xrcb yic63di9g8421 = aimag(h(0))+cc*xi0+csigma*xicb xrsigma = xr0+11*xrcb xisigma = xi0+11*xicb yr0 = real(h(0))+xrsigma yi0 = aimag(h(0))+xisigma yrc63d = yrc63di9g8421+c8_c*xrg79ei5da yic63d = yic63di9g8421+c8_c*xig79ei5da yrc6 = yrc63d+c2_c*xr4j8f+c9_8*xri5da+cd_c*xr3k6h yic6 = yic63d+c2_c*xi4j8f+c9_8*xii5da+cd_c*xi3k6h yrc3 = c1_c*xr2l8f+cg_8*xr9eda yic3 = c1_c*xi2l8f+cg_8*xi9eda yr6d = c6_c*xr1m4j+c4_8*xrg7i5 yi6d = c6_c*xi1m4j+c4_8*xig7i5 yrc = yrc6+yrc3+c4c_21*xr8f+ci8_9g*xrda+c3_d*xr6h yic = yic6+yic3+c4c_21*xi8f+ci8_9g*xida+c3_d*xi6h yr6 = yrc6+yr6d+c1c_26*xr4j+cg8_94*xri5-cd_i*xr3k yi6 = yic6+yi6d+c1c_26*xi4j+cg8_94*xii5-cd_i*xi3k yr3d = yrc63d+c3_c*xr1m2l+c2_8*xrg79e+c9_c*xr3k6h yi3d = yic63d+c3_c*xi1m2l+c2_8*xig79e+c9_c*xi3k6h yr3 = yr3d+yrc3+c6c_31*xr2l+c48_2g*xr9e-c9_i*xr6h yi3 = yi3d+yic3+c6c_31*xi2l+c48_2g*xi9e-c9_i*xi6h yrd = yr3d+yr6d+cdc_36*xr1m+c18_24*xrg7+cg_9*xr3k yid = yi3d+yi6d+cdc_36*xi1m+c18_24*xig7+cg_9*xi3k yri9g8 = yrc63di9g8421+ci_c*xr1m2l4j8f yii9g8 = yic63di9g8421+ci_c*xi1m2l4j8f yri9 = yri9g8+c3_i*xr4j8f+c2_c*xri5da+c8_c*xr3k6h yii9 = yii9g8+c3_i*xi4j8f+c2_c*xii5da+c8_c*xi3k6h yrig = cd_i*xr2l8f+c1_c*xr9eda yiig = cd_i*xi2l8f+c1_c*xi9eda yr98 = c9_i*xr1m4j+c6_c*xrg7i5 yi98 = c9_i*xi1m4j+c6_c*xig7i5 yri = yri9+yrig+c6i_3d*xr8f+c4c_21*xrda+cg_8*xr6h yii = yii9+yiig+c6i_3d*xi8f+c4c_21*xida+cg_8*xi6h yr9 = yri9+yr98+cdi_39*xr4j+c1c_26*xri5+c4_8*xr3k yi9 = yii9+yi98+cdi_39*xi4j+c1c_26*xii5+c4_8*xi3k yrg8 = yri9g8+cg_i*xr1m2l+c3_c*xrg79e+c2_c*xr3k6h yig8 = yii9g8+cg_i*xi1m2l+c3_c*xig79e+c2_c*xi3k6h yrg = yrg8+yrig+c9i_gd*xr2l+c6c_31*xr9e+c4_2*xr6h yig = yig8+yiig+c9i_gd*xi2l+c6c_31*xi9e+c4_2*xi6h yr8 = yrg8+yr98+ci8_9g*xr1m+cdc_36*xrg7+c1_2*xr3k yi8 = yig8+yi98+ci8_9g*xi1m+cdc_36*xig7+c1_2*xi3k yr42 = yrc63di9g8421+c4_c*xr1m2l+cg_c*xr4j8f+ci_c*xrg79e+c3_c*xri5da yi42 = yic63di9g8421+c4_c*xi1m2l+cg_c*xi4j8f+ci_c*xig79e+c3_c*xii5da yr4 = yr42-c4_8*xr2l-cg_9*xr8f+cd_i*xr9e+c6_3*xrda+c1_c*xr6h yi4 = yi42-c4_8*xi2l-cg_9*xi8f+cd_i*xi9e+c6_3*xida+c1_c*xi6h yr2 = yr42-c4_2*xr1m-cg_8*xr4j+c9_i*xrg7-c3_d*xri5+c6_c*xr3k yi2 = yi42-c4_2*xi1m-cg_8*xi4j+c9_i*xig7-c3_d*xii5+c6_c*xi3k yr1 = csigma*xrsigma-(yrc+yr6+yr3+yrd+yri+yr9+yrg+yr8+yr4+yr2)+11*real(h(0)) yi1 = csigma*xisigma-(yic+yi6+yi3+yid+yii+yi9+yig+yi8+yi4+yi2)+11*aimag(h(0)) xr12_ml = xr1_m+xr2_l xi12_ml = xi1_m+xi2_l xr48_jf = xr4_j+xr8_f xi48_jf = xi4_j+xi8_f xrg9_7e = xrg_7+xr9_e xig9_7e = xig_7+xi9_e xrid_5a = xri_5+xrd_a xiid_5a = xii_5+xid_a xr36_kh = xr3_k+xr6_h xi36_kh = xi3_k+xi6_h xr1248_mljf = xr12_ml+xr48_jf xi1248_mljf = xi12_ml+xi48_jf xrg9id_7e5a = xrg9_7e+xrid_5a xig9id_7e5a = xig9_7e+xiid_5a xr28_lf = xr2_l+xr8_f xi28_lf = xi2_l+xi8_f xr9d_ea = xr9_e+xrd_a xi9d_ea = xi9_e+xid_a xr14_mj = xr1_m+xr4_j xi14_mj = xi1_m+xi4_j xrgi_75 = xrg_7+xri_5 xigi_75 = xig_7+xii_5 xr1248g9id_mljf7e5a = xr1248_mljf+xrg9id_7e5a+xr36_kh xi1248g9id_mljf7e5a = xi1248_mljf+xig9id_7e5a+xi36_kh zrsigma = xr1248g9id_mljf7e5a+11*xrc_b zisigma = xi1248g9id_mljf7e5a+11*xic_b zr0 = ssigma*xrc_b+sc*xr1248g9id_mljf7e5a zi0 = ssigma*xic_b+sc*xi1248g9id_mljf7e5a zrc63d = zr0+s8_c*xrg9id_7e5a zic63d = zi0+s8_c*xig9id_7e5a zrc6 = zrc63d+s2_c*xr48_jf+s9_8*xrid_5a+sd_c*xr36_kh zic6 = zic63d+s2_c*xi48_jf+s9_8*xiid_5a+sd_c*xi36_kh zrc3 = s1_c*xr28_lf+sg_8*xr9d_ea zic3 = s1_c*xi28_lf+sg_8*xi9d_ea zr6d = s6_c*xr14_mj+s4_8*xrgi_75 zi6d = s6_c*xi14_mj+s4_8*xigi_75 zrc = zrc6+zrc3+s4c_21*xr8_f+si8_9g*xrd_a+s3_d*xr6_h zic = zic6+zic3+s4c_21*xi8_f+si8_9g*xid_a+s3_d*xi6_h zr6 = zrc6+zr6d+s1c_26*xr4_j+sg8_94*xri_5-sd_i*xr3_k zi6 = zic6+zi6d+s1c_26*xi4_j+sg8_94*xii_5-sd_i*xi3_k zr3d = zrc63d+s3_c*xr12_ml+s2_8*xrg9_7e+s9_c*xr36_kh zi3d = zic63d+s3_c*xi12_ml+s2_8*xig9_7e+s9_c*xi36_kh zr3 = zr3d+zrc3+s6c_31*xr2_l+s48_2g*xr9_e-s9_i*xr6_h zi3 = zi3d+zic3+s6c_31*xi2_l+s48_2g*xi9_e-s9_i*xi6_h zrd = zr3d+zr6d+sdc_36*xr1_m+s18_24*xrg_7+sg_9*xr3_k zid = zi3d+zi6d+sdc_36*xi1_m+s18_24*xig_7+sg_9*xi3_k zri9g8 = si_c*xr1248_mljf+zr0 zii9g8 = si_c*xi1248_mljf+zi0 zri9 = zri9g8+s3_i*xr48_jf+s2_c*xrid_5a+s8_c*xr36_kh zii9 = zii9g8+s3_i*xi48_jf+s2_c*xiid_5a+s8_c*xi36_kh zrig = sd_i*xr28_lf+s1_c*xr9d_ea ziig = sd_i*xi28_lf+s1_c*xi9d_ea zr98 = s9_i*xr14_mj+s6_c*xrgi_75 zi98 = s9_i*xi14_mj+s6_c*xigi_75 zri = zri9+zrig+s6i_3d*xr8_f+s4c_21*xrd_a+sg_8*xr6_h zii = zii9+ziig+s6i_3d*xi8_f+s4c_21*xid_a+sg_8*xi6_h zr9 = zri9+zr98+sdi_39*xr4_j+s1c_26*xri_5+s4_8*xr3_k zi9 = zii9+zi98+sdi_39*xi4_j+s1c_26*xii_5+s4_8*xi3_k zrg8 = zri9g8+sg_i*xr12_ml+s3_c*xrg9_7e+s2_c*xr36_kh zig8 = zii9g8+sg_i*xi12_ml+s3_c*xig9_7e+s2_c*xi36_kh zrg = zrg8+zrig+s9i_gd*xr2_l+s6c_31*xr9_e+s4_2*xr6_h zig = zig8+ziig+s9i_gd*xi2_l+s6c_31*xi9_e+s4_2*xi6_h zr8 = zrg8+zr98+si8_9g*xr1_m+sdc_36*xrg_7+s1_2*xr3_k zi8 = zig8+zi98+si8_9g*xi1_m+sdc_36*xig_7+s1_2*xi3_k zr42 = s4_c*xr12_ml+sg_c*xr48_jf+si_c*xrg9_7e+s3_c*xrid_5a+zr0 zi42 = s4_c*xi12_ml+sg_c*xi48_jf+si_c*xig9_7e+s3_c*xiid_5a+zi0 zr4 = zr42-s4_8*xr2_l-sg_9*xr8_f+sd_i*xr9_e+s6_3*xrd_a+s1_c*xr6_h zi4 = zi42-s4_8*xi2_l-sg_9*xi8_f+sd_i*xi9_e+s6_3*xid_a+s1_c*xi6_h zr2 = zr42-s4_2*xr1_m-sg_8*xr4_j+s9_i*xrg_7-s3_d*xri_5+s6_c*xr3_k zi2 = zi42-s4_2*xi1_m-sg_8*xi4_j+s9_i*xig_7-s3_d*xii_5+s6_c*xi3_k zr1 = ssigma*zrsigma-(zrc+zr6+zr3+zrd+zri+zr9+zrg+zr8+zr4+zr2) zi1 = ssigma*zisigma-(zic+zi6+zi3+zid+zii+zi9+zig+zi8+zi4+zi2) h(0) = cmplx(yr0, yi0, wp) h(1) = cmplx(yr1+zi1, yi1-zr1, wp) h(2) = cmplx(yr2+zi2, yi2-zr2, wp) h(3) = cmplx(yr3+zi3, yi3-zr3, wp) h(4) = cmplx(yr4+zi4, yi4-zr4, wp) h(5) = cmplx(yri-zii, yii+zri, wp) h(6) = cmplx(yr6+zi6, yi6-zr6, wp) h(7) = cmplx(yrg-zig, yig+zrg, wp) h(8) = cmplx(yr8+zi8, yi8-zr8, wp) h(9) = cmplx(yr9+zi9, yi9-zr9, wp) h(10) = cmplx(yrd-zid, yid+zrd, wp) h(11) = cmplx(yrc-zic, yic+zrc, wp) h(12) = cmplx(yrc+zic, yic-zrc, wp) h(13) = cmplx(yrd+zid, yid-zrd, wp) h(14) = cmplx(yr9-zi9, yi9+zr9, wp) h(15) = cmplx(yr8-zi8, yi8+zr8, wp) h(16) = cmplx(yrg+zig, yig-zrg, wp) h(17) = cmplx(yr6-zi6, yi6+zr6, wp) h(18) = cmplx(yri+zii, yii-zri, wp) h(19) = cmplx(yr4-zi4, yi4+zr4, wp) h(20) = cmplx(yr3-zi3, yi3+zr3, wp) h(21) = cmplx(yr2-zi2, yi2+zr2, wp) h(22) = cmplx(yr1-zi1, yi1+zr1, wp) end subroutine fft23t