Changeset 717 in Sophya


Ignore:
Timestamp:
Feb 5, 2000, 6:22:55 PM (26 years ago)
Author:
ansari
Message:

Introduction FFTMayer, debug de FFTPack - Reza 5/2/2000

Location:
trunk/SophyaLib/NTools
Files:
6 added
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/NTools/NTools.o.list

    r710 r717  
    1111fct1dfit.o
    1212fct2dfit.o
     13fftmayer_r4.o
     14fftmayer_r8.o
     15fftmserver.o
    1316fftpackc.o
    1417fftpserver.o
  • trunk/SophyaLib/NTools/fftpackc.c

    r710 r717  
    1111
    1212/*  ------ File cfftb.f ------ */
    13 /* Subroutine */ int cfftb_(integer *n, float *c__, float *wsave)
    14 {
    15     extern /* Subroutine */ int cfftb1_(integer *, float *, float *, float *,
    16             integer *);
     13/* Subroutine */ int cfftb_(integer *n, r_4 *c__, r_4 *wsave)
     14{
     15    extern /* Subroutine */ int cfftb1_(integer *, r_4 *, r_4 *, r_4 *,
     16            int_4 *);
    1717    static integer iw1, iw2;
    1818
     
    3232
    3333/*  ------ File cfftb1.f ------ */
    34 /* Subroutine */ int cfftb1_(integer *n, float *c__, float *ch, float *wa,
    35         integer *ifac)
     34/* Subroutine */ int cfftb1_(integer *n, r_4 *c__, r_4 *ch, r_4 *wa,
     35        int_4 *ifac)
    3636{
    3737    /* System generated locals */
     
    4141    static integer idot, i__;
    4242    extern /* Subroutine */ int passb_(integer *, integer *, integer *,
    43             integer *, integer *, float *, float *, float *, float *, float *,
    44             float *);
     43            integer *, integer *, r_4 *, r_4 *, r_4 *, r_4 *, r_4 *,
     44            r_4 *);
    4545    static integer k1, l1, l2, n2;
    46     extern /* Subroutine */ int passb2_(integer *, integer *, float *, float *,
    47             float *), passb3_(integer *, integer *, float *, float *, float *,
    48             float *), passb4_(integer *, integer *, float *, float *, float *,
    49             float *, float *), passb5_(integer *, integer *, float *, float *,
    50             float *, float *, float *, float *);
     46    extern /* Subroutine */ int passb2_(integer *, integer *, r_4 *, r_4 *,
     47            r_4 *), passb3_(integer *, integer *, r_4 *, r_4 *, r_4 *,
     48            r_4 *), passb4_(integer *, integer *, r_4 *, r_4 *, r_4 *,
     49            r_4 *, r_4 *), passb5_(integer *, integer *, r_4 *, r_4 *,
     50            r_4 *, r_4 *, r_4 *, r_4 *);
    5151    static integer na, nf, ip, iw, ix2, ix3, ix4, nac, ido, idl1;
    5252
     
    164164
    165165/*  ------ File cfftf.f ------ */
    166 /* Subroutine */ int cfftf_(integer *n, float *c__, float *wsave)
    167 {
    168     extern /* Subroutine */ int cfftf1_(integer *, float *, float *, float *,
    169             integer *);
     166/* Subroutine */ int cfftf_(integer *n, r_4 *c__, r_4 *wsave)
     167{
     168    extern /* Subroutine */ int cfftf1_(integer *, r_4 *, r_4 *, r_4 *,
     169            int_4 *);
    170170    static integer iw1, iw2;
    171171
     
    185185
    186186/*  ------ File cfftf1.f ------ */
    187 /* Subroutine */ int cfftf1_(integer *n, float *c__, float *ch, float *wa,
    188         integer *ifac)
     187/* Subroutine */ int cfftf1_(integer *n, r_4 *c__, r_4 *ch, r_4 *wa,
     188        int_4 *ifac)
    189189{
    190190    /* System generated locals */
     
    194194    static integer idot, i__;
    195195    extern /* Subroutine */ int passf_(integer *, integer *, integer *,
    196             integer *, integer *, float *, float *, float *, float *, float *,
    197             float *);
     196            integer *, integer *, r_4 *, r_4 *, r_4 *, r_4 *, r_4 *,
     197            r_4 *);
    198198    static integer k1, l1, l2, n2;
    199     extern /* Subroutine */ int passf2_(integer *, integer *, float *, float *,
    200             float *), passf3_(integer *, integer *, float *, float *, float *,
    201             float *), passf4_(integer *, integer *, float *, float *, float *,
    202             float *, float *), passf5_(integer *, integer *, float *, float *,
    203             float *, float *, float *, float *);
     199    extern /* Subroutine */ int passf2_(integer *, integer *, r_4 *, r_4 *,
     200            r_4 *), passf3_(integer *, integer *, r_4 *, r_4 *, r_4 *,
     201            r_4 *), passf4_(integer *, integer *, r_4 *, r_4 *, r_4 *,
     202            r_4 *, r_4 *), passf5_(integer *, integer *, r_4 *, r_4 *,
     203            r_4 *, r_4 *, r_4 *, r_4 *);
    204204    static integer na, nf, ip, iw, ix2, ix3, ix4, nac, ido, idl1;
    205205
     
    317317
    318318/*  ------ File cffti.f ------ */
    319 /* Subroutine */ int cffti_(integer *n, float *wsave)
    320 {
    321     extern /* Subroutine */ int cffti1_(integer *, float *, integer *);
     319/* Subroutine */ int cffti_(integer *n, r_4 *wsave)
     320{
     321    extern /* Subroutine */ int cffti1_(integer *, r_4 *, int_4 *);
    322322    static integer iw1, iw2;
    323323
     
    336336
    337337/*  ------ File cffti1.f ------ */
    338 /* Subroutine */ int cffti1_(integer *n, float *wa, integer *ifac)
     338/* Subroutine */ int cffti1_(integer *n, r_4 *wa, int_4 *ifac)
    339339{
    340340    /* Initialized data */
     
    346346
    347347    /* Builtin functions */
    348 /*    double cos(doubletruc), sin(doubletruc);   commente, remplace par math.h - Reza  29/11/99 */
     348/*    r_8 cos(r_8truc), sin(r_8truc);   commente, remplace par math.h - Reza  29/11/99 */
    349349
    350350    /* Local variables */
    351     static float argh;
     351    static r_4 argh;
    352352    static integer idot, ntry, i__, j;
    353     static float argld;
     353    static r_4 argld;
    354354    static integer i1, k1, l1, l2, ib;
    355     static float fi;
     355    static r_4 fi;
    356356    static integer ld, ii, nf, ip, nl, nq, nr;
    357     static float arg;
     357    static r_4 arg;
    358358    static integer ido, ipm;
    359     static float tpi;
     359    static r_4 tpi;
    360360
    361361    /* Parameter adjustments */
     
    411411    ifac[2] = nf;
    412412    tpi = 6.28318530717959f;
    413     argh = tpi / (float) (*n);
     413    argh = tpi / (r_4) (*n);
    414414    i__ = 2;
    415415    l1 = 1;
     
    429429            ld += l1;
    430430            fi = 0.f;
    431             argld = (float) ld * argh;
     431            argld = (r_4) ld * argh;
    432432            i__3 = idot;
    433433            for (ii = 4; ii <= i__3; ii += 2) {
     
    454454
    455455/*  ------ File cosqb.f ------ */
    456 /* Subroutine */ int cosqb_(integer *n, float *x, float *wsave)
     456/* Subroutine */ int cosqb_(integer *n, r_4 *x, r_4 *wsave)
    457457{
    458458    /* Initialized data */
    459459
    460     static float tsqrt2 = 2.82842712474619f;
     460    static r_4 tsqrt2 = 2.82842712474619f;
    461461
    462462    /* System generated locals */
     
    464464
    465465    /* Local variables */
    466     static float x1;
    467     extern /* Subroutine */ int cosqb1_(integer *, float *, float *, float *);
     466    static r_4 x1;
     467    extern /* Subroutine */ int cosqb1_(integer *, r_4 *, r_4 *, r_4 *);
    468468
    469469    /* Parameter adjustments */
     
    493493
    494494/*  ------ File cosqb1.f ------ */
    495 /* Subroutine */ int cosqb1_(integer *n, float *x, float *w, float *xh)
     495/* Subroutine */ int cosqb1_(integer *n, r_4 *x, r_4 *w, r_4 *xh)
    496496{
    497497    /* System generated locals */
     
    500500    /* Local variables */
    501501    static integer modn, i__, k;
    502     extern /* Subroutine */ int rfftb_(integer *, float *, float *);
     502    extern /* Subroutine */ int rfftb_(integer *, r_4 *, r_4 *);
    503503    static integer kc, np2, ns2;
    504     static float xim1;
     504    static r_4 xim1;
    505505
    506506    /* Parameter adjustments */
     
    547547
    548548/*  ------ File cosqf.f ------ */
    549 /* Subroutine */ int cosqf_(integer *n, float *x, float *wsave)
     549/* Subroutine */ int cosqf_(integer *n, r_4 *x, r_4 *wsave)
    550550{
    551551    /* Initialized data */
    552552
    553     static float sqrt2 = 1.4142135623731f;
     553    static r_4 sqrt2 = 1.4142135623731f;
    554554
    555555    /* System generated locals */
     
    557557
    558558    /* Local variables */
    559     static float tsqx;
    560     extern /* Subroutine */ int cosqf1_(integer *, float *, float *, float *);
     559    static r_4 tsqx;
     560    extern /* Subroutine */ int cosqf1_(integer *, r_4 *, r_4 *, r_4 *);
    561561
    562562    /* Parameter adjustments */
     
    584584
    585585/*  ------ File cosqf1.f ------ */
    586 /* Subroutine */ int cosqf1_(integer *n, float *x, float *w, float *xh)
     586/* Subroutine */ int cosqf1_(integer *n, r_4 *x, r_4 *w, r_4 *xh)
    587587{
    588588    /* System generated locals */
     
    591591    /* Local variables */
    592592    static integer modn, i__, k;
    593     extern /* Subroutine */ int rfftf_(integer *, float *, float *);
     593    extern /* Subroutine */ int rfftf_(integer *, r_4 *, r_4 *);
    594594    static integer kc, np2, ns2;
    595     static float xim1;
     595    static r_4 xim1;
    596596
    597597    /* Parameter adjustments */
     
    636636
    637637/*  ------ File cosqi.f ------ */
    638 /* Subroutine */ int cosqi_(integer *n, float *wsave)
     638/* Subroutine */ int cosqi_(integer *n, r_4 *wsave)
    639639{
    640640    /* Initialized data */
    641641
    642     static float pih = 1.57079632679491f;
     642    static r_4 pih = 1.57079632679491f;
    643643
    644644    /* System generated locals */
     
    646646
    647647    /* Builtin functions */
    648 /*    double cos(doubletruc);    commente - Remplace par math.h  Reza 29/11/99 */
     648/*    r_8 cos(r_8truc);    commente - Remplace par math.h  Reza 29/11/99 */
    649649
    650650    /* Local variables */
    651651    static integer k;
    652     extern /* Subroutine */ int rffti_(integer *, float *);
    653     static float fk, dt;
     652    extern /* Subroutine */ int rffti_(integer *, r_4 *);
     653    static r_4 fk, dt;
    654654
    655655    /* Parameter adjustments */
     
    657657
    658658    /* Function Body */
    659     dt = pih / (float) (*n);
     659    dt = pih / (r_4) (*n);
    660660    fk = 0.f;
    661661    i__1 = *n;
     
    670670
    671671/*  ------ File cost.f ------ */
    672 /* Subroutine */ int cost_(integer *n, float *x, float *wsave)
     672/* Subroutine */ int cost_(integer *n, r_4 *x, r_4 *wsave)
    673673{
    674674    /* System generated locals */
     
    677677    /* Local variables */
    678678    static integer modn, i__, k;
    679     extern /* Subroutine */ int rfftf_(integer *, float *, float *);
    680     static float c1, t1, t2;
     679    extern /* Subroutine */ int rfftf_(integer *, r_4 *, r_4 *);
     680    static r_4 c1, t1, t2;
    681681    static integer kc;
    682     static float xi;
     682    static r_4 xi;
    683683    static integer nm1, np1;
    684     static float x1h;
     684    static r_4 x1h;
    685685    static integer ns2;
    686     static float tx2, x1p3, xim2;
     686    static r_4 tx2, x1p3, xim2;
    687687
    688688    /* Parameter adjustments */
     
    753753
    754754/*  ------ File costi.f ------ */
    755 /* Subroutine */ int costi_(integer *n, float *wsave)
     755/* Subroutine */ int costi_(integer *n, r_4 *wsave)
    756756{
    757757    /* Initialized data */
    758758
    759     static float pi = 3.14159265358979f;
     759    static r_4 pi = 3.14159265358979f;
    760760
    761761    /* System generated locals */
     
    763763
    764764    /* Builtin functions */
    765 /*    double sin(doubletruc), cos(doubletruc);  commente - Remplace par math.h  Reza 29/11/99 */
     765/*    r_8 sin(r_8truc), cos(r_8truc);  commente - Remplace par math.h  Reza 29/11/99 */
    766766
    767767    /* Local variables */
    768768    static integer k;
    769     extern /* Subroutine */ int rffti_(integer *, float *);
     769    extern /* Subroutine */ int rffti_(integer *, r_4 *);
    770770    static integer kc;
    771     static float fk, dt;
     771    static r_4 fk, dt;
    772772    static integer nm1, np1, ns2;
    773773
     
    782782    np1 = *n + 1;
    783783    ns2 = *n / 2;
    784     dt = pi / (float) nm1;
     784    dt = pi / (r_4) nm1;
    785785    fk = 0.f;
    786786    i__1 = ns2;
     
    797797
    798798/*  ------ File ezfft1.f ------ */
    799 /* Subroutine */ int ezfft1_(integer *n, float *wa, integer *ifac)
     799/* Subroutine */ int ezfft1_(integer *n, r_4 *wa, int_4 *ifac)
    800800{
    801801    /* Initialized data */
    802802
    803803    static integer ntryh[4] = { 4,2,3,5 };
    804     static float tpi = 6.28318530717959f;
     804    static r_4 tpi = 6.28318530717959f;
    805805
    806806    /* System generated locals */
     
    808808
    809809    /* Builtin functions */
    810 /*    double cos(doubletruc), sin(doubletruc);  commente - Remplace par math.h  Reza 29/11/99 */
     810/*    r_8 cos(r_8truc), sin(r_8truc);  commente - Remplace par math.h  Reza 29/11/99 */
    811811
    812812    /* Local variables */
    813     static float argh;
     813    static r_4 argh;
    814814    static integer ntry, i__, j, k1, l1, l2, ib, ii, nf, ip, nl, is, nq, nr;
    815     static float ch1, sh1;
     815    static r_4 ch1, sh1;
    816816    static integer ido, ipm;
    817     static float dch1, ch1h, arg1, dsh1;
     817    static r_4 dch1, ch1h, arg1, dsh1;
    818818    static integer nfm1;
    819819
     
    869869    ifac[1] = *n;
    870870    ifac[2] = nf;
    871     argh = tpi / (float) (*n);
     871    argh = tpi / (r_4) (*n);
    872872    is = 0;
    873873    nfm1 = nf - 1;
     
    882882        ido = *n / l2;
    883883        ipm = ip - 1;
    884         arg1 = (float) l1 * argh;
     884        arg1 = (r_4) l1 * argh;
    885885        ch1 = 1.f;
    886886        sh1 = 0.f;
     
    916916
    917917/*  ------ File ezfftb.f ------ */
    918 /* Subroutine */ int ezfftb_(integer *n, float *r__, float *azero, float *a,
    919         float *b, float *wsave)
     918/* Subroutine */ int ezfftb_(integer *n, r_4 *r__, r_4 *azero, r_4 *a,
     919        r_4 *b, r_4 *wsave)
    920920{
    921921    /* System generated locals */
     
    924924    /* Local variables */
    925925    static integer i__;
    926     extern /* Subroutine */ int rfftb_(integer *, float *, float *);
     926    extern /* Subroutine */ int rfftb_(integer *, r_4 *, r_4 *);
    927927    static integer ns2;
    928928
     
    965965
    966966/*  ------ File ezfftf.f ------ */
    967 /* Subroutine */ int ezfftf_(integer *n, float *r__, float *azero, float *a,
    968         float *b, float *wsave)
     967/* Subroutine */ int ezfftf_(integer *n, r_4 *r__, r_4 *azero, r_4 *a,
     968        r_4 *b, r_4 *wsave)
    969969{
    970970    /* System generated locals */
     
    973973    /* Local variables */
    974974    static integer i__;
    975     extern /* Subroutine */ int rfftf_(integer *, float *, float *);
    976     static float cf;
     975    extern /* Subroutine */ int rfftf_(integer *, r_4 *, r_4 *);
     976    static r_4 cf;
    977977    static integer ns2;
    978     static float cfm;
     978    static r_4 cfm;
    979979    static integer ns2m;
    980980
     
    10101010    }
    10111011    rfftf_(n, &wsave[1], &wsave[*n + 1]);
    1012     cf = 2.f / (float) (*n);
     1012    cf = 2.f / (r_4) (*n);
    10131013    cfm = -cf;
    10141014    *azero = cf * .5f * wsave[1];
     
    10301030
    10311031/*  ------ File ezffti.f ------ */
    1032 /* Subroutine */ int ezffti_(integer *n, float *wsave)
    1033 {
    1034     extern /* Subroutine */ int ezfft1_(integer *, float *, integer *);
     1032/* Subroutine */ int ezffti_(integer *n, r_4 *wsave)
     1033{
     1034    extern /* Subroutine */ int ezfft1_(integer *, r_4 *, int_4 *);
    10351035
    10361036    /* Parameter adjustments */
     
    10471047/*  ------ File passb.f ------ */
    10481048/* Subroutine */ int passb_(integer *nac, integer *ido, integer *ip, integer *
    1049         l1, integer *idl1, float *cc, float *c1, float *c2, float *ch, float *ch2,
    1050         float *wa)
     1049        l1, integer *idl1, r_4 *cc, r_4 *c1, r_4 *c2, r_4 *ch, r_4 *ch2,
     1050        r_4 *wa)
    10511051{
    10521052    /* System generated locals */
     
    10581058    static integer idij, idlj, idot, ipph, i__, j, k, l, jc, lc, ik, nt, idj,
    10591059            idl, inc, idp;
    1060     static float wai, war;
     1060    static r_4 wai, war;
    10611061    static integer ipp2;
    10621062
     
    12871287
    12881288/*  ------ File passb2.f ------ */
    1289 /* Subroutine */ int passb2_(integer *ido, integer *l1, float *cc, float *ch,
    1290         float *wa1)
     1289/* Subroutine */ int passb2_(integer *ido, integer *l1, r_4 *cc, r_4 *ch,
     1290        r_4 *wa1)
    12911291{
    12921292    /* System generated locals */
     
    12951295    /* Local variables */
    12961296    static integer i__, k;
    1297     static float ti2, tr2;
     1297    static r_4 ti2, tr2;
    12981298
    12991299    /* Parameter adjustments */
     
    13491349
    13501350/*  ------ File passb3.f ------ */
    1351 /* Subroutine */ int passb3_(integer *ido, integer *l1, float *cc, float *ch,
    1352         float *wa1, float *wa2)
     1351/* Subroutine */ int passb3_(integer *ido, integer *l1, r_4 *cc, r_4 *ch,
     1352        r_4 *wa1, r_4 *wa2)
    13531353{
    13541354    /* Initialized data */
    13551355
    1356     static float taur = -.5f;
    1357     static float taui = .866025403784439f;
     1356    static r_4 taur = -.5f;
     1357    static r_4 taui = .866025403784439f;
    13581358
    13591359    /* System generated locals */
     
    13621362    /* Local variables */
    13631363    static integer i__, k;
    1364     static float ci2, ci3, di2, di3, cr2, cr3, dr2, dr3, ti2, tr2;
     1364    static r_4 ci2, ci3, di2, di3, cr2, cr3, dr2, dr3, ti2, tr2;
    13651365
    13661366    /* Parameter adjustments */
     
    14371437
    14381438/*  ------ File passb4.f ------ */
    1439 /* Subroutine */ int passb4_(integer *ido, integer *l1, float *cc, float *ch,
    1440         float *wa1, float *wa2, float *wa3)
     1439/* Subroutine */ int passb4_(integer *ido, integer *l1, r_4 *cc, r_4 *ch,
     1440        r_4 *wa1, r_4 *wa2, r_4 *wa3)
    14411441{
    14421442    /* System generated locals */
     
    14451445    /* Local variables */
    14461446    static integer i__, k;
    1447     static float ci2, ci3, ci4, cr2, cr3, cr4, ti1, ti2, ti3, ti4, tr1, tr2,
     1447    static r_4 ci2, ci3, ci4, cr2, cr3, cr4, ti1, ti2, ti3, ti4, tr1, tr2,
    14481448            tr3, tr4;
    14491449
     
    15421542
    15431543/*  ------ File passb5.f ------ */
    1544 /* Subroutine */ int passb5_(integer *ido, integer *l1, float *cc, float *ch,
    1545         float *wa1, float *wa2, float *wa3, float *wa4)
     1544/* Subroutine */ int passb5_(integer *ido, integer *l1, r_4 *cc, r_4 *ch,
     1545        r_4 *wa1, r_4 *wa2, r_4 *wa3, r_4 *wa4)
    15461546{
    15471547    /* Initialized data */
    15481548
    1549     static float tr11 = .309016994374947f;
    1550     static float ti11 = .951056516295154f;
    1551     static float tr12 = -.809016994374947f;
    1552     static float ti12 = .587785252292473f;
     1549    static r_4 tr11 = .309016994374947f;
     1550    static r_4 ti11 = .951056516295154f;
     1551    static r_4 tr12 = -.809016994374947f;
     1552    static r_4 ti12 = .587785252292473f;
    15531553
    15541554    /* System generated locals */
     
    15571557    /* Local variables */
    15581558    static integer i__, k;
    1559     static float ci2, ci3, ci4, ci5, di3, di4, di5, di2, cr2, cr3, cr5, cr4,
     1559    static r_4 ci2, ci3, ci4, ci5, di3, di4, di5, di2, cr2, cr3, cr5, cr4,
    15601560            ti2, ti3, ti4, ti5, dr3, dr4, dr5, dr2, tr2, tr3, tr4, tr5;
    15611561
     
    16781678/*  ------ File passf.f ------ */
    16791679/* Subroutine */ int passf_(integer *nac, integer *ido, integer *ip, integer *
    1680         l1, integer *idl1, float *cc, float *c1, float *c2, float *ch, float *ch2,
    1681         float *wa)
     1680        l1, integer *idl1, r_4 *cc, r_4 *c1, r_4 *c2, r_4 *ch, r_4 *ch2,
     1681        r_4 *wa)
    16821682{
    16831683    /* System generated locals */
     
    16891689    static integer idij, idlj, idot, ipph, i__, j, k, l, jc, lc, ik, nt, idj,
    16901690            idl, inc, idp;
    1691     static float wai, war;
     1691    static r_4 wai, war;
    16921692    static integer ipp2;
    16931693
     
    19181918
    19191919/*  ------ File passf2.f ------ */
    1920 /* Subroutine */ int passf2_(integer *ido, integer *l1, float *cc, float *ch,
    1921         float *wa1)
     1920/* Subroutine */ int passf2_(integer *ido, integer *l1, r_4 *cc, r_4 *ch,
     1921        r_4 *wa1)
    19221922{
    19231923    /* System generated locals */
     
    19261926    /* Local variables */
    19271927    static integer i__, k;
    1928     static float ti2, tr2;
     1928    static r_4 ti2, tr2;
    19291929
    19301930    /* Parameter adjustments */
     
    19801980
    19811981/*  ------ File passf3.f ------ */
    1982 /* Subroutine */ int passf3_(integer *ido, integer *l1, float *cc, float *ch,
    1983         float *wa1, float *wa2)
     1982/* Subroutine */ int passf3_(integer *ido, integer *l1, r_4 *cc, r_4 *ch,
     1983        r_4 *wa1, r_4 *wa2)
    19841984{
    19851985    /* Initialized data */
    19861986
    1987     static float taur = -.5f;
    1988     static float taui = -.866025403784439f;
     1987    static r_4 taur = -.5f;
     1988    static r_4 taui = -.866025403784439f;
    19891989
    19901990    /* System generated locals */
     
    19931993    /* Local variables */
    19941994    static integer i__, k;
    1995     static float ci2, ci3, di2, di3, cr2, cr3, dr2, dr3, ti2, tr2;
     1995    static r_4 ci2, ci3, di2, di3, cr2, cr3, dr2, dr3, ti2, tr2;
    19961996
    19971997    /* Parameter adjustments */
     
    20682068
    20692069/*  ------ File passf4.f ------ */
    2070 /* Subroutine */ int passf4_(integer *ido, integer *l1, float *cc, float *ch,
    2071         float *wa1, float *wa2, float *wa3)
     2070/* Subroutine */ int passf4_(integer *ido, integer *l1, r_4 *cc, r_4 *ch,
     2071        r_4 *wa1, r_4 *wa2, r_4 *wa3)
    20722072{
    20732073    /* System generated locals */
     
    20762076    /* Local variables */
    20772077    static integer i__, k;
    2078     static float ci2, ci3, ci4, cr2, cr3, cr4, ti1, ti2, ti3, ti4, tr1, tr2,
     2078    static r_4 ci2, ci3, ci4, cr2, cr3, cr4, ti1, ti2, ti3, ti4, tr1, tr2,
    20792079            tr3, tr4;
    20802080
     
    21732173
    21742174/*  ------ File passf5.f ------ */
    2175 /* Subroutine */ int passf5_(integer *ido, integer *l1, float *cc, float *ch,
    2176         float *wa1, float *wa2, float *wa3, float *wa4)
     2175/* Subroutine */ int passf5_(integer *ido, integer *l1, r_4 *cc, r_4 *ch,
     2176        r_4 *wa1, r_4 *wa2, r_4 *wa3, r_4 *wa4)
    21772177{
    21782178    /* Initialized data */
    21792179
    2180     static float tr11 = .309016994374947f;
    2181     static float ti11 = -.951056516295154f;
    2182     static float tr12 = -.809016994374947f;
    2183     static float ti12 = -.587785252292473f;
     2180    static r_4 tr11 = .309016994374947f;
     2181    static r_4 ti11 = -.951056516295154f;
     2182    static r_4 tr12 = -.809016994374947f;
     2183    static r_4 ti12 = -.587785252292473f;
    21842184
    21852185    /* System generated locals */
     
    21882188    /* Local variables */
    21892189    static integer i__, k;
    2190     static float ci2, ci3, ci4, ci5, di3, di4, di5, di2, cr2, cr3, cr5, cr4,
     2190    static r_4 ci2, ci3, ci4, ci5, di3, di4, di5, di2, cr2, cr3, cr5, cr4,
    21912191            ti2, ti3, ti4, ti5, dr3, dr4, dr5, dr2, tr2, tr3, tr4, tr5;
    21922192
     
    23082308
    23092309/*  ------ File radb2.f ------ */
    2310 /* Subroutine */ int radb2_(integer *ido, integer *l1, float *cc, float *ch,
    2311         float *wa1)
     2310/* Subroutine */ int radb2_(integer *ido, integer *l1, r_4 *cc, r_4 *ch,
     2311        r_4 *wa1)
    23122312{
    23132313    /* System generated locals */
     
    23162316    /* Local variables */
    23172317    static integer i__, k, ic;
    2318     static float ti2, tr2;
     2318    static r_4 ti2, tr2;
    23192319    static integer idp2;
    23202320
     
    23852385
    23862386/*  ------ File radb3.f ------ */
    2387 /* Subroutine */ int radb3_(integer *ido, integer *l1, float *cc, float *ch,
    2388         float *wa1, float *wa2)
     2387/* Subroutine */ int radb3_(integer *ido, integer *l1, r_4 *cc, r_4 *ch,
     2388        r_4 *wa1, r_4 *wa2)
    23892389{
    23902390    /* Initialized data */
    23912391
    2392     static float taur = -.5f;
    2393     static float taui = .866025403784439f;
     2392    static r_4 taur = -.5f;
     2393    static r_4 taui = .866025403784439f;
    23942394
    23952395    /* System generated locals */
     
    23982398    /* Local variables */
    23992399    static integer i__, k, ic;
    2400     static float ci2, ci3, di2, di3, cr2, cr3, dr2, dr3, ti2, tr2;
     2400    static r_4 ci2, ci3, di2, di3, cr2, cr3, dr2, dr3, ti2, tr2;
    24012401    static integer idp2;
    24022402
     
    24682468
    24692469/*  ------ File radb4.f ------ */
    2470 /* Subroutine */ int radb4_(integer *ido, integer *l1, float *cc, float *ch,
    2471         float *wa1, float *wa2, float *wa3)
     2470/* Subroutine */ int radb4_(integer *ido, integer *l1, r_4 *cc, r_4 *ch,
     2471        r_4 *wa1, r_4 *wa2, r_4 *wa3)
    24722472{
    24732473    /* Initialized data */
    24742474
    2475     static float sqrt2 = 1.414213562373095f;
     2475    static r_4 sqrt2 = 1.414213562373095f;
    24762476
    24772477    /* System generated locals */
     
    24802480    /* Local variables */
    24812481    static integer i__, k, ic;
    2482     static float ci2, ci3, ci4, cr2, cr3, cr4, ti1, ti2, ti3, ti4, tr1, tr2,
     2482    static r_4 ci2, ci3, ci4, cr2, cr3, cr4, ti1, ti2, ti3, ti4, tr1, tr2,
    24832483            tr3, tr4;
    24842484    static integer idp2;
     
    25922592
    25932593/*  ------ File radb5.f ------ */
    2594 /* Subroutine */ int radb5_(integer *ido, integer *l1, float *cc, float *ch,
    2595         float *wa1, float *wa2, float *wa3, float *wa4)
     2594/* Subroutine */ int radb5_(integer *ido, integer *l1, r_4 *cc, r_4 *ch,
     2595        r_4 *wa1, r_4 *wa2, r_4 *wa3, r_4 *wa4)
    25962596{
    25972597    /* Initialized data */
    25982598
    2599     static float tr11 = .309016994374947f;
    2600     static float ti11 = .951056516295154f;
    2601     static float tr12 = -.809016994374947f;
    2602     static float ti12 = .587785252292473f;
     2599    static r_4 tr11 = .309016994374947f;
     2600    static r_4 ti11 = .951056516295154f;
     2601    static r_4 tr12 = -.809016994374947f;
     2602    static r_4 ti12 = .587785252292473f;
    26032603
    26042604    /* System generated locals */
     
    26072607    /* Local variables */
    26082608    static integer i__, k, ic;
    2609     static float ci2, ci3, ci4, ci5, di3, di4, di5, di2, cr2, cr3, cr5, cr4,
     2609    static r_4 ci2, ci3, ci4, ci5, di3, di4, di5, di2, cr2, cr3, cr5, cr4,
    26102610            ti2, ti3, ti4, ti5, dr3, dr4, dr5, dr2, tr2, tr3, tr4, tr5;
    26112611    static integer idp2;
     
    27172717/*  ------ File radbg.f ------ */
    27182718/* Subroutine */ int radbg_(integer *ido, integer *ip, integer *l1, integer *
    2719         idl1, float *cc, float *c1, float *c2, float *ch, float *ch2, float *wa)
     2719        idl1, r_4 *cc, r_4 *c1, r_4 *c2, r_4 *ch, r_4 *ch2, r_4 *wa)
    27202720{
    27212721    /* Initialized data */
    27222722
    2723     static float tpi = 6.28318530717959f;
     2723    static r_4 tpi = 6.28318530717959f;
    27242724
    27252725    /* System generated locals */
     
    27292729
    27302730    /* Builtin functions */
    2731 /*    double cos(doubletruc), sin(doubletruc);  commente - Remplace par math.h  Reza 29/11/99 */
     2731/*    r_8 cos(r_8truc), sin(r_8truc);  commente - Remplace par math.h  Reza 29/11/99 */
    27322732
    27332733    /* Local variables */
    27342734    static integer idij, ipph, i__, j, k, l, j2, ic, jc, lc, ik, is;
    2735     static float dc2, ai1, ai2, ar1, ar2, ds2;
     2735    static r_4 dc2, ai1, ai2, ar1, ar2, ds2;
    27362736    static integer nbd;
    2737     static float dcp, arg, dsp, ar1h, ar2h;
     2737    static r_4 dcp, arg, dsp, ar1h, ar2h;
    27382738    static integer idp2, ipp2;
    27392739
     
    27602760
    27612761    /* Function Body */
    2762     arg = tpi / (float) (*ip);
     2762    arg = tpi / (r_4) (*ip);
    27632763    dcp = cos(arg);
    27642764    dsp = sin(arg);
     
    30573057
    30583058/*  ------ File radf2.f ------ */
    3059 /* Subroutine */ int radf2_(integer *ido, integer *l1, float *cc, float *ch,
    3060         float *wa1)
     3059/* Subroutine */ int radf2_(integer *ido, integer *l1, r_4 *cc, r_4 *ch,
     3060        r_4 *wa1)
    30613061{
    30623062    /* System generated locals */
     
    30653065    /* Local variables */
    30663066    static integer i__, k, ic;
    3067     static float ti2, tr2;
     3067    static r_4 ti2, tr2;
    30683068    static integer idp2;
    30693069
     
    31353135
    31363136/*  ------ File radf3.f ------ */
    3137 /* Subroutine */ int radf3_(integer *ido, integer *l1, float *cc, float *ch,
    3138         float *wa1, float *wa2)
     3137/* Subroutine */ int radf3_(integer *ido, integer *l1, r_4 *cc, r_4 *ch,
     3138        r_4 *wa1, r_4 *wa2)
    31393139{
    31403140    /* Initialized data */
    31413141
    3142     static float taur = -.5f;
    3143     static float taui = .866025403784439f;
     3142    static r_4 taur = -.5f;
     3143    static r_4 taui = .866025403784439f;
    31443144
    31453145    /* System generated locals */
     
    31483148    /* Local variables */
    31493149    static integer i__, k, ic;
    3150     static float ci2, di2, di3, cr2, dr2, dr3, ti2, ti3, tr2, tr3;
     3150    static r_4 ci2, di2, di3, cr2, dr2, dr3, ti2, ti3, tr2, tr3;
    31513151    static integer idp2;
    31523152
     
    32143214
    32153215/*  ------ File radf4.f ------ */
    3216 /* Subroutine */ int radf4_(integer *ido, integer *l1, float *cc, float *ch,
    3217         float *wa1, float *wa2, float *wa3)
     3216/* Subroutine */ int radf4_(integer *ido, integer *l1, r_4 *cc, r_4 *ch,
     3217        r_4 *wa1, r_4 *wa2, r_4 *wa3)
    32183218{
    32193219    /* Initialized data */
    32203220
    3221     static float hsqt2 = .7071067811865475f;
     3221    static r_4 hsqt2 = .7071067811865475f;
    32223222
    32233223    /* System generated locals */
     
    32263226    /* Local variables */
    32273227    static integer i__, k, ic;
    3228     static float ci2, ci3, ci4, cr2, cr3, cr4, ti1, ti2, ti3, ti4, tr1, tr2,
     3228    static r_4 ci2, ci3, ci4, cr2, cr3, cr4, ti1, ti2, ti3, ti4, tr1, tr2,
    32293229            tr3, tr4;
    32303230    static integer idp2;
     
    33303330
    33313331/*  ------ File radf5.f ------ */
    3332 /* Subroutine */ int radf5_(integer *ido, integer *l1, float *cc, float *ch,
    3333         float *wa1, float *wa2, float *wa3, float *wa4)
     3332/* Subroutine */ int radf5_(integer *ido, integer *l1, r_4 *cc, r_4 *ch,
     3333        r_4 *wa1, r_4 *wa2, r_4 *wa3, r_4 *wa4)
    33343334{
    33353335    /* Initialized data */
    33363336
    3337     static float tr11 = .309016994374947f;
    3338     static float ti11 = .951056516295154f;
    3339     static float tr12 = -.809016994374947f;
    3340     static float ti12 = .587785252292473f;
     3337    static r_4 tr11 = .309016994374947f;
     3338    static r_4 ti11 = .951056516295154f;
     3339    static r_4 tr12 = -.809016994374947f;
     3340    static r_4 ti12 = .587785252292473f;
    33413341
    33423342    /* System generated locals */
     
    33453345    /* Local variables */
    33463346    static integer i__, k, ic;
    3347     static float ci2, di2, ci4, ci5, di3, di4, di5, ci3, cr2, cr3, dr2, dr3,
     3347    static r_4 ci2, di2, ci4, ci5, di3, di4, di5, ci3, cr2, cr3, dr2, dr3,
    33483348            dr4, dr5, cr5, cr4, ti2, ti3, ti5, ti4, tr2, tr3, tr4, tr5;
    33493349    static integer idp2;
     
    34493449/*  ------ File radfg.f ------ */
    34503450/* Subroutine */ int radfg_(integer *ido, integer *ip, integer *l1, integer *
    3451         idl1, float *cc, float *c1, float *c2, float *ch, float *ch2, float *wa)
     3451        idl1, r_4 *cc, r_4 *c1, r_4 *c2, r_4 *ch, r_4 *ch2, r_4 *wa)
    34523452{
    34533453    /* Initialized data */
    34543454
    3455     static float tpi = 6.28318530717959f;
     3455    static r_4 tpi = 6.28318530717959f;
    34563456
    34573457    /* System generated locals */
     
    34613461
    34623462    /* Builtin functions */
    3463 /*    double cos(doubletruc), sin(doubletruc);    */
     3463/*    r_8 cos(r_8truc), sin(r_8truc);    */
    34643464
    34653465    /* Local variables */
    34663466    static integer idij, ipph, i__, j, k, l, j2, ic, jc, lc, ik, is;
    3467     static float dc2, ai1, ai2, ar1, ar2, ds2;
     3467    static r_4 dc2, ai1, ai2, ar1, ar2, ds2;
    34683468    static integer nbd;
    3469     static float dcp, arg, dsp, ar1h, ar2h;
     3469    static r_4 dcp, arg, dsp, ar1h, ar2h;
    34703470    static integer idp2, ipp2;
    34713471
     
    34923492
    34933493    /* Function Body */
    3494     arg = tpi / (float) (*ip);
     3494    arg = tpi / (r_4) (*ip);
    34953495    dcp = cos(arg);
    34963496    dsp = sin(arg);
     
    37953795
    37963796/*  ------ File rfftb.f ------ */
    3797 /* Subroutine */ int rfftb_(integer *n, float *r__, float *wsave)
    3798 {
    3799     extern /* Subroutine */ int rfftb1_(integer *, float *, float *, float *,
    3800             integer *);
     3797/* Subroutine */ int rfftb_(integer *n, r_4 *r__, r_4 *wsave)
     3798{
     3799    extern /* Subroutine */ int rfftb1_(integer *, r_4 *, r_4 *, r_4 *,
     3800            int_4 *);
    38013801
    38023802    /* Parameter adjustments */
     
    38083808        return 0;
    38093809    }
    3810     rfftb1_(n, &r__[1], &wsave[1], &wsave[*n + 1], (int *)&wsave[(*n << 1) + 1]);   /* (int *) rajoute Reza 29/11/99 */
     3810    rfftb1_(n, &r__[1], &wsave[1], &wsave[*n + 1], (int_4 *)&wsave[(*n << 1) + 1]);   /* (int *) rajoute Reza 29/11/99 */
    38113811    return 0;
    38123812} /* rfftb_ */
    38133813
    38143814/*  ------ File rfftb1.f ------ */
    3815 /* Subroutine */ int rfftb1_(integer *n, float *c__, float *ch, float *wa,
    3816         integer *ifac)
     3815/* Subroutine */ int rfftb1_(integer *n, r_4 *c__, r_4 *ch, r_4 *wa,
     3816        int_4 *ifac)
    38173817{
    38183818    /* System generated locals */
     
    38203820
    38213821    /* Local variables */
    3822     extern /* Subroutine */ int radb2_(integer *, integer *, float *, float *,
    3823             float *), radb3_(integer *, integer *, float *, float *, float *,
    3824             float *), radb4_(integer *, integer *, float *, float *, float *,
    3825             float *, float *), radb5_(integer *, integer *, float *, float *,
    3826             float *, float *, float *, float *);
     3822    extern /* Subroutine */ int radb2_(integer *, integer *, r_4 *, r_4 *,
     3823            r_4 *), radb3_(integer *, integer *, r_4 *, r_4 *, r_4 *,
     3824            r_4 *), radb4_(integer *, integer *, r_4 *, r_4 *, r_4 *,
     3825            r_4 *, r_4 *), radb5_(integer *, integer *, r_4 *, r_4 *,
     3826            r_4 *, r_4 *, r_4 *, r_4 *);
    38273827    static integer i__;
    38283828    extern /* Subroutine */ int radbg_(integer *, integer *, integer *,
    3829             integer *, float *, float *, float *, float *, float *, float *);
     3829            integer *, r_4 *, r_4 *, r_4 *, r_4 *, r_4 *, r_4 *);
    38303830    static integer k1, l1, l2, na, nf, ip, iw, ix2, ix3, ix4, ido, idl1;
    38313831
     
    39413941
    39423942/*  ------ File rfftf.f ------ */
    3943 /* Subroutine */ int rfftf_(integer *n, float *r__, float *wsave)
    3944 {
    3945     extern /* Subroutine */ int rfftf1_(integer *, float *, float *, float *,
    3946             integer *);
     3943/* Subroutine */ int rfftf_(integer *n, r_4 *r__, r_4 *wsave)
     3944{
     3945    extern /* Subroutine */ int rfftf1_(integer *, r_4 *, r_4 *, r_4 *,
     3946            int_4 *);
    39473947
    39483948    /* Parameter adjustments */
     
    39543954        return 0;
    39553955    }
    3956     rfftf1_(n, &r__[1], &wsave[1], &wsave[*n + 1], (int *)&wsave[(*n << 1) + 1]); /* (int *) rajoute Reza 29/11/99 */
     3956    rfftf1_(n, &r__[1], &wsave[1], &wsave[*n + 1], (int_4 *)&wsave[(*n << 1) + 1]); /* (int *) rajoute Reza 29/11/99 */
    39573957    return 0;
    39583958} /* rfftf_ */
    39593959
    39603960/*  ------ File rfftf1.f ------ */
    3961 /* Subroutine */ int rfftf1_(integer *n, float *c__, float *ch, float *wa,
    3962         integer *ifac)
     3961/* Subroutine */ int rfftf1_(integer *n, r_4 *c__, r_4 *ch, r_4 *wa,
     3962        int_4 *ifac)
    39633963{
    39643964    /* System generated locals */
     
    39663966
    39673967    /* Local variables */
    3968     extern /* Subroutine */ int radf2_(integer *, integer *, float *, float *,
    3969             float *), radf3_(integer *, integer *, float *, float *, float *,
    3970             float *), radf4_(integer *, integer *, float *, float *, float *,
    3971             float *, float *), radf5_(integer *, integer *, float *, float *,
    3972             float *, float *, float *, float *);
     3968    extern /* Subroutine */ int radf2_(integer *, integer *, r_4 *, r_4 *,
     3969            r_4 *), radf3_(integer *, integer *, r_4 *, r_4 *, r_4 *,
     3970            r_4 *), radf4_(integer *, integer *, r_4 *, r_4 *, r_4 *,
     3971            r_4 *, r_4 *), radf5_(integer *, integer *, r_4 *, r_4 *,
     3972            r_4 *, r_4 *, r_4 *, r_4 *);
    39733973    static integer i__;
    39743974    extern /* Subroutine */ int radfg_(integer *, integer *, integer *,
    3975             integer *, float *, float *, float *, float *, float *, float *);
     3975            integer *, r_4 *, r_4 *, r_4 *, r_4 *, r_4 *, r_4 *);
    39763976    static integer k1, l1, l2, na, kh, nf, ip, iw, ix2, ix3, ix4, ido, idl1;
    39773977
     
    40824082
    40834083/*  ------ File rffti.f ------ */
    4084 /* Subroutine */ int rffti_(integer *n, float *wsave)
    4085 {
    4086     extern /* Subroutine */ int rffti1_(integer *, float *, integer *);
     4084/* Subroutine */ int rffti_(integer *n, r_4 *wsave)
     4085{
     4086    extern /* Subroutine */ int rffti1_(integer *, r_4 *, int_4 *);
    40874087
    40884088    /* Parameter adjustments */
     
    40934093        return 0;
    40944094    }
    4095     rffti1_(n, &wsave[*n + 1], (int *)&wsave[(*n << 1) + 1]); /* (int *) rajoute Reza 29/11/99 */
     4095    rffti1_(n, &wsave[*n + 1], (int_4 *)&wsave[(*n << 1) + 1]); /* (int *) rajoute Reza 29/11/99 */
    40964096    return 0;
    40974097} /* rffti_ */
    40984098
    40994099/*  ------ File rffti1.f ------ */
    4100 /* Subroutine */ int rffti1_(integer *n, float *wa, integer *ifac)
     4100/* Subroutine */ int rffti1_(integer *n, r_4 *wa, int_4 *ifac)
    41014101{
    41024102    /* Initialized data */
     
    41084108
    41094109    /* Builtin functions */
    4110 /*   double cos(doubletruc), sin(doubletruc);  Remplace par math.h , Reza 29/11/99 */
     4110/*   r_8 cos(r_8truc), sin(r_8truc);  Remplace par math.h , Reza 29/11/99 */
    41114111
    41124112    /* Local variables */
    4113     static float argh;
     4113    static r_4 argh;
    41144114    static integer ntry, i__, j;
    4115     static float argld;
     4115    static r_4 argld;
    41164116    static integer k1, l1, l2, ib;
    4117     static float fi;
     4117    static r_4 fi;
    41184118    static integer ld, ii, nf, ip, nl, is, nq, nr;
    4119     static float arg;
     4119    static r_4 arg;
    41204120    static integer ido, ipm;
    4121     static float tpi;
     4121    static r_4 tpi;
    41224122    static integer nfm1;
    41234123
     
    41744174    ifac[2] = nf;
    41754175    tpi = 6.28318530717959f;
    4176     argh = tpi / (float) (*n);
     4176    argh = tpi / (r_4) (*n);
    41774177    is = 0;
    41784178    nfm1 = nf - 1;
     
    41924192            ld += l1;
    41934193            i__ = is;
    4194             argld = (float) ld * argh;
     4194            argld = (r_4) ld * argh;
    41954195            fi = 0.f;
    41964196            i__3 = ido;
     
    42134213
    42144214/*  ------ File sinqb.f ------ */
    4215 /* Subroutine */ int sinqb_(integer *n, float *x, float *wsave)
     4215/* Subroutine */ int sinqb_(integer *n, r_4 *x, r_4 *wsave)
    42164216{
    42174217    /* System generated locals */
     
    42204220    /* Local variables */
    42214221    static integer k;
    4222     extern /* Subroutine */ int cosqb_(integer *, float *, float *);
    4223     static float xhold;
     4222    extern /* Subroutine */ int cosqb_(integer *, r_4 *, r_4 *);
     4223    static r_4 xhold;
    42244224    static integer kc, ns2;
    42254225
     
    42544254
    42554255/*  ------ File sinqf.f ------ */
    4256 /* Subroutine */ int sinqf_(integer *n, float *x, float *wsave)
     4256/* Subroutine */ int sinqf_(integer *n, r_4 *x, r_4 *wsave)
    42574257{
    42584258    /* System generated locals */
     
    42614261    /* Local variables */
    42624262    static integer k;
    4263     extern /* Subroutine */ int cosqf_(integer *, float *, float *);
    4264     static float xhold;
     4263    extern /* Subroutine */ int cosqf_(integer *, r_4 *, r_4 *);
     4264    static r_4 xhold;
    42654265    static integer kc, ns2;
    42664266
     
    42924292
    42934293/*  ------ File sinqi.f ------ */
    4294 /* Subroutine */ int sinqi_(integer *n, float *wsave)
    4295 {
    4296     extern /* Subroutine */ int cosqi_(integer *, float *);
     4294/* Subroutine */ int sinqi_(integer *n, r_4 *wsave)
     4295{
     4296    extern /* Subroutine */ int cosqi_(integer *, r_4 *);
    42974297
    42984298    /* Parameter adjustments */
     
    43054305
    43064306/*  ------ File sint.f ------ */
    4307 /* Subroutine */ int sint_(integer *n, float *x, float *wsave)
    4308 {
    4309     extern /* Subroutine */ int sint1_(integer *, float *, float *, float *,
    4310             float *, integer *);
     4307/* Subroutine */ int sint_(integer *n, r_4 *x, r_4 *wsave)
     4308{
     4309    extern /* Subroutine */ int sint1_(integer *, r_4 *, r_4 *, r_4 *,
     4310            r_4 *, int_4 *);
    43114311    static integer np1, iw1, iw2, iw3;
    43124312
     
    43204320    iw2 = iw1 + np1;
    43214321    iw3 = iw2 + np1;
    4322     sint1_(n, &x[1], &wsave[1], &wsave[iw1], &wsave[iw2], (int *)&wsave[iw3]);  /* (int *) rajoute Reza 29/11/99 */
     4322    sint1_(n, &x[1], &wsave[1], &wsave[iw1], &wsave[iw2], (int_4 *)&wsave[iw3]);  /* (int *) rajoute Reza 29/11/99 */
    43234323    return 0;
    43244324} /* sint_ */
    43254325
    43264326/*  ------ File sint1.f ------ */
    4327 /* Subroutine */ int sint1_(integer *n, float *war, float *was, float *xh, float *
    4328         x, integer *ifac)
     4327/* Subroutine */ int sint1_(integer *n, r_4 *war, r_4 *was, r_4 *xh, r_4 *
     4328        x, int_4 *ifac)
    43294329{
    43304330    /* Initialized data */
    43314331
    4332     static float sqrt3 = 1.73205080756888f;
     4332    static r_4 sqrt3 = 1.73205080756888f;
    43334333
    43344334    /* System generated locals */
     
    43374337    /* Local variables */
    43384338    static integer modn, i__, k;
    4339     static float xhold, t1, t2;
    4340     extern /* Subroutine */ int rfftf1_(integer *, float *, float *, float *,
    4341             integer *);
     4339    static r_4 xhold, t1, t2;
     4340    extern /* Subroutine */ int rfftf1_(integer *, r_4 *, r_4 *, r_4 *,
     4341            int_4 *);
    43424342    static integer kc, np1, ns2;
    43434343
     
    44114411
    44124412/*  ------ File sinti.f ------ */
    4413 /* Subroutine */ int sinti_(integer *n, float *wsave)
     4413/* Subroutine */ int sinti_(integer *n, r_4 *wsave)
    44144414{
    44154415    /* Initialized data */
    44164416
    4417     static float pi = 3.14159265358979f;
     4417    static r_4 pi = 3.14159265358979f;
    44184418
    44194419    /* System generated locals */
     
    44214421
    44224422    /* Builtin functions */
    4423 /*    double sin(doubletruc);  remplace par math.h , Reza 29/11/99 */
     4423/*    r_8 sin(r_8truc);  remplace par math.h , Reza 29/11/99 */
    44244424
    44254425    /* Local variables */
    44264426    static integer k;
    4427     extern /* Subroutine */ int rffti_(integer *, float *);
    4428     static float dt;
     4427    extern /* Subroutine */ int rffti_(integer *, r_4 *);
     4428    static r_4 dt;
    44294429    static integer np1, ns2;
    44304430
     
    44384438    ns2 = *n / 2;
    44394439    np1 = *n + 1;
    4440     dt = pi / (float) np1;
     4440    dt = pi / (r_4) np1;
    44414441    i__1 = ns2;
    44424442    for (k = 1; k <= i__1; ++k) {
     
    44484448} /* sinti_ */
    44494449
    4450 /* make a double version of the library*/
    4451 
    4452 /* Subroutine */ int cdfftb_(integer *n, double *c__, double *wsave)
    4453 {
    4454     extern /* Subroutine */ int cdfftb1_(integer *, double *, double *, double *,
    4455             integer *);
     4450/* --------------------------------------------------------------- */
     4451/* -------------- make a r_8 version of the library ----------- */
     4452/* --------------------------------------------------------------- */
     4453
     4454/* Subroutine */ int cdfftb_(integer *n, r_8 *c__, r_8 *wsave)
     4455{
     4456    extern /* Subroutine */ int cdfftb1_(integer *, r_8 *, r_8 *, r_8 *,
     4457            int_8 *);
    44564458    static integer iw1, iw2;
    44574459
     
    44664468    iw1 = *n + *n + 1;
    44674469    iw2 = iw1 + *n + *n;
    4468     cdfftb1_(n, &c__[1], &wsave[1], &wsave[iw1], (int *)&wsave[iw2]); /* (int *) rajoute Reza 29/11/99 */
     4470    cdfftb1_(n, &c__[1], &wsave[1], &wsave[iw1], (int_8 *)&wsave[iw2]); /* (int *) rajoute Reza 29/11/99 */
    44694471    return 0;
    44704472} /* cdfftb_ */
    44714473
    44724474/*  ------ File cdfftb1.f ------ */
    4473 /* Subroutine */ int cdfftb1_(integer *n, double *c__, double *ch, double *wa,
    4474         integer *ifac)
     4475/* Subroutine */ int cdfftb1_(integer *n, r_8 *c__, r_8 *ch, r_8 *wa,
     4476        int_8 *ifac)
    44754477{
    44764478    /* System generated locals */
     
    44804482    static integer idot, i__;
    44814483    extern /* Subroutine */ int dpassb_(integer *, integer *, integer *,
    4482             integer *, integer *, double *, double *, double *, double *, double *,
    4483             double *);
     4484            integer *, integer *, r_8 *, r_8 *, r_8 *, r_8 *, r_8 *,
     4485            r_8 *);
    44844486    static integer k1, l1, l2, n2;
    4485     extern /* Subroutine */ int dpassb2_(integer *, integer *, double *, double *,
    4486             double *), dpassb3_(integer *, integer *, double *, double *, double *,
    4487             double *), dpassb4_(integer *, integer *, double *, double *, double *,
    4488             double *, double *), dpassb5_(integer *, integer *, double *, double *,
    4489             double *, double *, double *, double *);
     4487    extern /* Subroutine */ int dpassb2_(integer *, integer *, r_8 *, r_8 *,
     4488            r_8 *), dpassb3_(integer *, integer *, r_8 *, r_8 *, r_8 *,
     4489            r_8 *), dpassb4_(integer *, integer *, r_8 *, r_8 *, r_8 *,
     4490            r_8 *, r_8 *), dpassb5_(integer *, integer *, r_8 *, r_8 *,
     4491            r_8 *, r_8 *, r_8 *, r_8 *);
    44904492    static integer na, nf, ip, iw, ix2, ix3, ix4, nac, ido, idl1;
    44914493
     
    46034605
    46044606/*  ------ File cdfftf.f ------ */
    4605 /* Subroutine */ int cdfftf_(integer *n, double *c__, double *wsave)
    4606 {
    4607     extern /* Subroutine */ int cdfftf1_(integer *, double *, double *, double *,
    4608             integer *);
     4607/* Subroutine */ int cdfftf_(integer *n, r_8 *c__, r_8 *wsave)
     4608{
     4609    extern /* Subroutine */ int cdfftf1_(integer *, r_8 *, r_8 *, r_8 *,
     4610            int_8 *);
    46094611    static integer iw1, iw2;
    46104612
     
    46194621    iw1 = *n + *n + 1;
    46204622    iw2 = iw1 + *n + *n;
    4621     cdfftf1_(n, &c__[1], &wsave[1], &wsave[iw1], (int *)&wsave[iw2]); /* (int *) rajoute Reza 29/11/99 */
     4623    cdfftf1_(n, &c__[1], &wsave[1], &wsave[iw1], (int_8 *)&wsave[iw2]); /* (int *) rajoute Reza 29/11/99 */
    46224624    return 0;
    46234625} /* cdfftf_ */
    46244626
    46254627/*  ------ File cdfftf1.f ------ */
    4626 /* Subroutine */ int cdfftf1_(integer *n, double *c__, double *ch, double *wa,
    4627         integer *ifac)
     4628/* Subroutine */ int cdfftf1_(integer *n, r_8 *c__, r_8 *ch, r_8 *wa,
     4629        int_8 *ifac)
    46284630{
    46294631    /* System generated locals */
     
    46334635    static integer idot, i__;
    46344636    extern /* Subroutine */ int dpassf_(integer *, integer *, integer *,
    4635             integer *, integer *, double *, double *, double *, double *, double *,
    4636             double *);
     4637            integer *, integer *, r_8 *, r_8 *, r_8 *, r_8 *, r_8 *,
     4638            r_8 *);
    46374639    static integer k1, l1, l2, n2;
    4638     extern /* Subroutine */ int dpassf2_(integer *, integer *, double *, double *,
    4639             double *), dpassf3_(integer *, integer *, double *, double *, double *,
    4640             double *), dpassf4_(integer *, integer *, double *, double *, double *,
    4641             double *, double *), dpassf5_(integer *, integer *, double *, double *,
    4642             double *, double *, double *, double *);
     4640    extern /* Subroutine */ int dpassf2_(integer *, integer *, r_8 *, r_8 *,
     4641            r_8 *), dpassf3_(integer *, integer *, r_8 *, r_8 *, r_8 *,
     4642            r_8 *), dpassf4_(integer *, integer *, r_8 *, r_8 *, r_8 *,
     4643            r_8 *, r_8 *), dpassf5_(integer *, integer *, r_8 *, r_8 *,
     4644            r_8 *, r_8 *, r_8 *, r_8 *);
    46434645    static integer na, nf, ip, iw, ix2, ix3, ix4, nac, ido, idl1;
    46444646
     
    47564758
    47574759/*  ------ File cdffti.f ------ */
    4758 /* Subroutine */ int cdffti_(integer *n, double *wsave)
    4759 {
    4760     extern /* Subroutine */ int cdffti1_(integer *, double *, integer *);
     4760/* Subroutine */ int cdffti_(integer *n, r_8 *wsave)
     4761{
     4762    extern /* Subroutine */ int cdffti1_(integer *, r_8 *, int_8 *);
    47614763    static integer iw1, iw2;
    47624764
     
    47704772    iw1 = *n + *n + 1;
    47714773    iw2 = iw1 + *n + *n;
    4772     cdffti1_(n, &wsave[iw1], (int *)&wsave[iw2]); /* (int *) rajoute Reza 29/11/99 */
     4774    cdffti1_(n, &wsave[iw1], (int_8 *)&wsave[iw2]); /* (int *) rajoute Reza 29/11/99 */
    47734775    return 0;
    47744776} /* cdffti_ */
    47754777
    47764778/*  ------ File cdffti1.f ------ */
    4777 /* Subroutine */ int cdffti1_(integer *n, double *wa, integer *ifac)
     4779/* Subroutine */ int cdffti1_(integer *n, r_8 *wa, int_8 *ifac)
    47784780{
    47794781    /* Initialized data */
     
    47854787
    47864788    /* Builtin functions */
    4787 /*    double cos(doubletruc), sin(doubletruc);  remplace par math.h  Reza 29/11/99 */
     4789/*    r_8 cos(r_8truc), sin(r_8truc);  remplace par math.h  Reza 29/11/99 */
    47884790
    47894791    /* Local variables */
    4790     static double argh;
     4792    static r_8 argh;
    47914793    static integer idot, ntry, i__, j;
    4792     static double argld;
     4794    static r_8 argld;
    47934795    static integer i1, k1, l1, l2, ib;
    4794     static double fi;
     4796    static r_8 fi;
    47954797    static integer ld, ii, nf, ip, nl, nq, nr;
    4796     static double arg;
     4798    static r_8 arg;
    47974799    static integer ido, ipm;
    4798     static double tpi;
     4800    static r_8 tpi;
    47994801
    48004802    /* Parameter adjustments */
     
    48504852    ifac[2] = nf;
    48514853    tpi = 6.28318530717959f;
    4852     argh = tpi / (double) (*n);
     4854    argh = tpi / (r_8) (*n);
    48534855    i__ = 2;
    48544856    l1 = 1;
     
    48684870            ld += l1;
    48694871            fi = 0.f;
    4870             argld = (double) ld * argh;
     4872            argld = (r_8) ld * argh;
    48714873            i__3 = idot;
    48724874            for (ii = 4; ii <= i__3; ii += 2) {
     
    48934895
    48944896/*  ------ File dcosqb.f ------ */
    4895 /* Subroutine */ int dcosqb_(integer *n, double *x, double *wsave)
     4897/* Subroutine */ int dcosqb_(integer *n, r_8 *x, r_8 *wsave)
    48964898{
    48974899    /* Initialized data */
    48984900
    4899     static double tsqrt2 = 2.82842712474619f;
     4901    static r_8 tsqrt2 = 2.82842712474619f;
    49004902
    49014903    /* System generated locals */
     
    49034905
    49044906    /* Local variables */
    4905     static double x1;
    4906     extern /* Subroutine */ int dcosqb1_(integer *, double *, double *, double *);
     4907    static r_8 x1;
     4908    extern /* Subroutine */ int dcosqb1_(integer *, r_8 *, r_8 *, r_8 *);
    49074909
    49084910    /* Parameter adjustments */
     
    49324934
    49334935/*  ------ File dcosqb1.f ------ */
    4934 /* Subroutine */ int dcosqb1_(integer *n, double *x, double *w, double *xh)
     4936/* Subroutine */ int dcosqb1_(integer *n, r_8 *x, r_8 *w, r_8 *xh)
    49354937{
    49364938    /* System generated locals */
     
    49394941    /* Local variables */
    49404942    static integer modn, i__, k;
    4941     extern /* Subroutine */ int dfftb_(integer *, double *, double *);
     4943    extern /* Subroutine */ int dfftb_(integer *, r_8 *, r_8 *);
    49424944    static integer kc, np2, ns2;
    4943     static double xim1;
     4945    static r_8 xim1;
    49444946
    49454947    /* Parameter adjustments */
     
    49864988
    49874989/*  ------ File dcosqf.f ------ */
    4988 /* Subroutine */ int dcosqf_(integer *n, double *x, double *wsave)
     4990/* Subroutine */ int dcosqf_(integer *n, r_8 *x, r_8 *wsave)
    49894991{
    49904992    /* Initialized data */
    49914993
    4992     static double sqrt2 = 1.4142135623731f;
     4994    static r_8 sqrt2 = 1.4142135623731f;
    49934995
    49944996    /* System generated locals */
     
    49964998
    49974999    /* Local variables */
    4998     static double tsqx;
    4999     extern /* Subroutine */ int dcosqf1_(integer *, double *, double *, double *);
     5000    static r_8 tsqx;
     5001    extern /* Subroutine */ int dcosqf1_(integer *, r_8 *, r_8 *, r_8 *);
    50005002
    50015003    /* Parameter adjustments */
     
    50235025
    50245026/*  ------ File dcosqf1.f ------ */
    5025 /* Subroutine */ int dcosqf1_(integer *n, double *x, double *w, double *xh)
     5027/* Subroutine */ int dcosqf1_(integer *n, r_8 *x, r_8 *w, r_8 *xh)
    50265028{
    50275029    /* System generated locals */
     
    50305032    /* Local variables */
    50315033    static integer modn, i__, k;
    5032     extern /* Subroutine */ int dfftf_(integer *, double *, double *);
     5034    extern /* Subroutine */ int dfftf_(integer *, r_8 *, r_8 *);
    50335035    static integer kc, np2, ns2;
    5034     static double xim1;
     5036    static r_8 xim1;
    50355037
    50365038    /* Parameter adjustments */
     
    50755077
    50765078/*  ------ File dcosqi.f ------ */
    5077 /* Subroutine */ int dcosqi_(integer *n, double *wsave)
     5079/* Subroutine */ int dcosqi_(integer *n, r_8 *wsave)
    50785080{
    50795081    /* Initialized data */
    50805082
    5081     static double pih = 1.57079632679491f;
     5083    static r_8 pih = 1.57079632679491f;
    50825084
    50835085    /* System generated locals */
     
    50855087
    50865088    /* Builtin functions */
    5087 /*    double cos(doubletruc); remplace par math.h  Reza 29/11/99 */
     5089/*    r_8 cos(r_8truc); remplace par math.h  Reza 29/11/99 */
    50885090
    50895091    /* Local variables */
    50905092    static integer k;
    5091     extern /* Subroutine */ int dffti_(integer *, double *);
    5092     static double fk, dt;
     5093    extern /* Subroutine */ int dffti_(integer *, r_8 *);
     5094    static r_8 fk, dt;
    50935095
    50945096    /* Parameter adjustments */
     
    50965098
    50975099    /* Function Body */
    5098     dt = pih / (double) (*n);
     5100    dt = pih / (r_8) (*n);
    50995101    fk = 0.f;
    51005102    i__1 = *n;
     
    51095111
    51105112/*  ------ File dcost.f ------ */
    5111 /* Subroutine */ int dcost_(integer *n, double *x, double *wsave)
     5113/* Subroutine */ int dcost_(integer *n, r_8 *x, r_8 *wsave)
    51125114{
    51135115    /* System generated locals */
     
    51165118    /* Local variables */
    51175119    static integer modn, i__, k;
    5118     extern /* Subroutine */ int dfftf_(integer *, double *, double *);
    5119     static double c1, t1, t2;
     5120    extern /* Subroutine */ int dfftf_(integer *, r_8 *, r_8 *);
     5121    static r_8 c1, t1, t2;
    51205122    static integer kc;
    5121     static double xi;
     5123    static r_8 xi;
    51225124    static integer nm1, np1;
    5123     static double x1h;
     5125    static r_8 x1h;
    51245126    static integer ns2;
    5125     static double tx2, x1p3, xim2;
     5127    static r_8 tx2, x1p3, xim2;
    51265128
    51275129    /* Parameter adjustments */
     
    51925194
    51935195/*  ------ File dcosti.f ------ */
    5194 /* Subroutine */ int dcosti_(integer *n, double *wsave)
     5196/* Subroutine */ int dcosti_(integer *n, r_8 *wsave)
    51955197{
    51965198    /* Initialized data */
    51975199
    5198     static double pi = 3.14159265358979f;
     5200    static r_8 pi = 3.14159265358979f;
    51995201
    52005202    /* System generated locals */
     
    52025204
    52035205    /* Builtin functions */
    5204 /*    double sin(doubletruc), cos(doubletruc);  remplace par math.h  Reza 29/11/99 */
     5206/*    r_8 sin(r_8truc), cos(r_8truc);  remplace par math.h  Reza 29/11/99 */
    52055207
    52065208    /* Local variables */
    52075209    static integer k;
    5208     extern /* Subroutine */ int dffti_(integer *, double *);
     5210    extern /* Subroutine */ int dffti_(integer *, r_8 *);
    52095211    static integer kc;
    5210     static double fk, dt;
     5212    static r_8 fk, dt;
    52115213    static integer nm1, np1, ns2;
    52125214
     
    52215223    np1 = *n + 1;
    52225224    ns2 = *n / 2;
    5223     dt = pi / (double) nm1;
     5225    dt = pi / (r_8) nm1;
    52245226    fk = 0.f;
    52255227    i__1 = ns2;
     
    52365238
    52375239/*  ------ File dezfft1.f ------ */
    5238 /* Subroutine */ int dezfft1_(integer *n, double *wa, integer *ifac)
     5240/* Subroutine */ int dezfft1_(integer *n, r_8 *wa, int_8 *ifac)
    52395241{
    52405242    /* Initialized data */
    52415243
    52425244    static integer ntryh[4] = { 4,2,3,5 };
    5243     static double tpi = 6.28318530717959f;
     5245    static r_8 tpi = 6.28318530717959f;
    52445246
    52455247    /* System generated locals */
     
    52475249
    52485250    /* Builtin functions */
    5249 /*    double cos(doubletruc), sin(doubletruc);  remplace par math.h  Reza 29/11/99  */
     5251/*    r_8 cos(r_8truc), sin(r_8truc);  remplace par math.h  Reza 29/11/99  */
    52505252
    52515253    /* Local variables */
    5252     static double argh;
     5254    static r_8 argh;
    52535255    static integer ntry, i__, j, k1, l1, l2, ib, ii, nf, ip, nl, is, nq, nr;
    5254     static double ch1, sh1;
     5256    static r_8 ch1, sh1;
    52555257    static integer ido, ipm;
    5256     static double dch1, ch1h, arg1, dsh1;
     5258    static r_8 dch1, ch1h, arg1, dsh1;
    52575259    static integer nfm1;
    52585260
     
    53085310    ifac[1] = *n;
    53095311    ifac[2] = nf;
    5310     argh = tpi / (double) (*n);
     5312    argh = tpi / (r_8) (*n);
    53115313    is = 0;
    53125314    nfm1 = nf - 1;
     
    53215323        ido = *n / l2;
    53225324        ipm = ip - 1;
    5323         arg1 = (double) l1 * argh;
     5325        arg1 = (r_8) l1 * argh;
    53245326        ch1 = 1.f;
    53255327        sh1 = 0.f;
     
    53555357
    53565358/*  ------ File dezfftb.f ------ */
    5357 /* Subroutine */ int dezfftb_(integer *n, double *r__, double *azero, double *a,
    5358         double *b, double *wsave)
     5359/* Subroutine */ int dezfftb_(integer *n, r_8 *r__, r_8 *azero, r_8 *a,
     5360        r_8 *b, r_8 *wsave)
    53595361{
    53605362    /* System generated locals */
     
    53635365    /* Local variables */
    53645366    static integer i__;
    5365     extern /* Subroutine */ int dfftb_(integer *, double *, double *);
     5367    extern /* Subroutine */ int dfftb_(integer *, r_8 *, r_8 *);
    53665368    static integer ns2;
    53675369
     
    54045406
    54055407/*  ------ File dezfftf.f ------ */
    5406 /* Subroutine */ int dezfftf_(integer *n, double *r__, double *azero, double *a,
    5407         double *b, double *wsave)
     5408/* Subroutine */ int dezfftf_(integer *n, r_8 *r__, r_8 *azero, r_8 *a,
     5409        r_8 *b, r_8 *wsave)
    54085410{
    54095411    /* System generated locals */
     
    54125414    /* Local variables */
    54135415    static integer i__;
    5414     extern /* Subroutine */ int dfftf_(integer *, double *, double *);
    5415     static double cf;
     5416    extern /* Subroutine */ int dfftf_(integer *, r_8 *, r_8 *);
     5417    static r_8 cf;
    54165418    static integer ns2;
    5417     static double cfm;
     5419    static r_8 cfm;
    54185420    static integer ns2m;
    54195421
     
    54495451    }
    54505452    dfftf_(n, &wsave[1], &wsave[*n + 1]);
    5451     cf = 2.f / (double) (*n);
     5453    cf = 2.f / (r_8) (*n);
    54525454    cfm = -cf;
    54535455    *azero = cf * .5f * wsave[1];
     
    54695471
    54705472/*  ------ File dezffti.f ------ */
    5471 /* Subroutine */ int dezffti_(integer *n, double *wsave)
    5472 {
    5473     extern /* Subroutine */ int dezfft1_(integer *, double *, integer *);
     5473/* Subroutine */ int dezffti_(integer *n, r_8 *wsave)
     5474{
     5475    extern /* Subroutine */ int dezfft1_(integer *, r_8 *, int_8 *);
    54745476
    54755477    /* Parameter adjustments */
     
    54805482        return 0;
    54815483    }
    5482     dezfft1_(n, &wsave[(*n << 1) + 1], (integer*)&wsave[*n * 3 + 1]);
     5484    dezfft1_(n, &wsave[(*n << 1) + 1], (int_8 *)&wsave[*n * 3 + 1]);
    54835485    return 0;
    54845486} /* dezffti_ */
     
    54865488/*  ------ File dpassb.f ------ */
    54875489/* Subroutine */ int dpassb_(integer *nac, integer *ido, integer *ip, integer *
    5488         l1, integer *idl1, double *cc, double *c1, double *c2, double *ch, double *ch2,
    5489         double *wa)
     5490        l1, integer *idl1, r_8 *cc, r_8 *c1, r_8 *c2, r_8 *ch, r_8 *ch2,
     5491        r_8 *wa)
    54905492{
    54915493    /* System generated locals */
     
    54975499    static integer idij, idlj, idot, ipph, i__, j, k, l, jc, lc, ik, nt, idj,
    54985500            idl, inc, idp;
    5499     static double wai, war;
     5501    static r_8 wai, war;
    55005502    static integer ipp2;
    55015503
     
    57265728
    57275729/*  ------ File dpassb2.f ------ */
    5728 /* Subroutine */ int dpassb2_(integer *ido, integer *l1, double *cc, double *ch,
    5729         double *wa1)
     5730/* Subroutine */ int dpassb2_(integer *ido, integer *l1, r_8 *cc, r_8 *ch,
     5731        r_8 *wa1)
    57305732{
    57315733    /* System generated locals */
     
    57345736    /* Local variables */
    57355737    static integer i__, k;
    5736     static double ti2, tr2;
     5738    static r_8 ti2, tr2;
    57375739
    57385740    /* Parameter adjustments */
     
    57885790
    57895791/*  ------ File dpassb3.f ------ */
    5790 /* Subroutine */ int dpassb3_(integer *ido, integer *l1, double *cc, double *ch,
    5791         double *wa1, double *wa2)
     5792/* Subroutine */ int dpassb3_(integer *ido, integer *l1, r_8 *cc, r_8 *ch,
     5793        r_8 *wa1, r_8 *wa2)
    57925794{
    57935795    /* Initialized data */
    57945796
    5795     static double taur = -.5f;
    5796     static double taui = .866025403784439f;
     5797    static r_8 taur = -.5f;
     5798    static r_8 taui = .866025403784439f;
    57975799
    57985800    /* System generated locals */
     
    58015803    /* Local variables */
    58025804    static integer i__, k;
    5803     static double ci2, ci3, di2, di3, cr2, cr3, dr2, dr3, ti2, tr2;
     5805    static r_8 ci2, ci3, di2, di3, cr2, cr3, dr2, dr3, ti2, tr2;
    58045806
    58055807    /* Parameter adjustments */
     
    58765878
    58775879/*  ------ File dpassb4.f ------ */
    5878 /* Subroutine */ int dpassb4_(integer *ido, integer *l1, double *cc, double *ch,
    5879         double *wa1, double *wa2, double *wa3)
     5880/* Subroutine */ int dpassb4_(integer *ido, integer *l1, r_8 *cc, r_8 *ch,
     5881        r_8 *wa1, r_8 *wa2, r_8 *wa3)
    58805882{
    58815883    /* System generated locals */
     
    58845886    /* Local variables */
    58855887    static integer i__, k;
    5886     static double ci2, ci3, ci4, cr2, cr3, cr4, ti1, ti2, ti3, ti4, tr1, tr2,
     5888    static r_8 ci2, ci3, ci4, cr2, cr3, cr4, ti1, ti2, ti3, ti4, tr1, tr2,
    58875889            tr3, tr4;
    58885890
     
    59815983
    59825984/*  ------ File dpassb5.f ------ */
    5983 /* Subroutine */ int dpassb5_(integer *ido, integer *l1, double *cc, double *ch,
    5984         double *wa1, double *wa2, double *wa3, double *wa4)
     5985/* Subroutine */ int dpassb5_(integer *ido, integer *l1, r_8 *cc, r_8 *ch,
     5986        r_8 *wa1, r_8 *wa2, r_8 *wa3, r_8 *wa4)
    59855987{
    59865988    /* Initialized data */
    59875989
    5988     static double tr11 = .309016994374947f;
    5989     static double ti11 = .951056516295154f;
    5990     static double tr12 = -.809016994374947f;
    5991     static double ti12 = .587785252292473f;
     5990    static r_8 tr11 = .309016994374947f;
     5991    static r_8 ti11 = .951056516295154f;
     5992    static r_8 tr12 = -.809016994374947f;
     5993    static r_8 ti12 = .587785252292473f;
    59925994
    59935995    /* System generated locals */
     
    59965998    /* Local variables */
    59975999    static integer i__, k;
    5998     static double ci2, ci3, ci4, ci5, di3, di4, di5, di2, cr2, cr3, cr5, cr4,
     6000    static r_8 ci2, ci3, ci4, ci5, di3, di4, di5, di2, cr2, cr3, cr5, cr4,
    59996001            ti2, ti3, ti4, ti5, dr3, dr4, dr5, dr2, tr2, tr3, tr4, tr5;
    60006002
     
    61176119/*  ------ File dpassf.f ------ */
    61186120/* Subroutine */ int dpassf_(integer *nac, integer *ido, integer *ip, integer *
    6119         l1, integer *idl1, double *cc, double *c1, double *c2, double *ch, double *ch2,
    6120         double *wa)
     6121        l1, integer *idl1, r_8 *cc, r_8 *c1, r_8 *c2, r_8 *ch, r_8 *ch2,
     6122        r_8 *wa)
    61216123{
    61226124    /* System generated locals */
     
    61286130    static integer idij, idlj, idot, ipph, i__, j, k, l, jc, lc, ik, nt, idj,
    61296131            idl, inc, idp;
    6130     static double wai, war;
     6132    static r_8 wai, war;
    61316133    static integer ipp2;
    61326134
     
    63576359
    63586360/*  ------ File dpassf2.f ------ */
    6359 /* Subroutine */ int dpassf2_(integer *ido, integer *l1, double *cc, double *ch,
    6360         double *wa1)
     6361/* Subroutine */ int dpassf2_(integer *ido, integer *l1, r_8 *cc, r_8 *ch,
     6362        r_8 *wa1)
    63616363{
    63626364    /* System generated locals */
     
    63656367    /* Local variables */
    63666368    static integer i__, k;
    6367     static double ti2, tr2;
     6369    static r_8 ti2, tr2;
    63686370
    63696371    /* Parameter adjustments */
     
    64196421
    64206422/*  ------ File dpassf3.f ------ */
    6421 /* Subroutine */ int dpassf3_(integer *ido, integer *l1, double *cc, double *ch,
    6422         double *wa1, double *wa2)
     6423/* Subroutine */ int dpassf3_(integer *ido, integer *l1, r_8 *cc, r_8 *ch,
     6424        r_8 *wa1, r_8 *wa2)
    64236425{
    64246426    /* Initialized data */
    64256427
    6426     static double taur = -.5f;
    6427     static double taui = -.866025403784439f;
     6428    static r_8 taur = -.5f;
     6429    static r_8 taui = -.866025403784439f;
    64286430
    64296431    /* System generated locals */
     
    64326434    /* Local variables */
    64336435    static integer i__, k;
    6434     static double ci2, ci3, di2, di3, cr2, cr3, dr2, dr3, ti2, tr2;
     6436    static r_8 ci2, ci3, di2, di3, cr2, cr3, dr2, dr3, ti2, tr2;
    64356437
    64366438    /* Parameter adjustments */
     
    65076509
    65086510/*  ------ File dpassf4.f ------ */
    6509 /* Subroutine */ int dpassf4_(integer *ido, integer *l1, double *cc, double *ch,
    6510         double *wa1, double *wa2, double *wa3)
     6511/* Subroutine */ int dpassf4_(integer *ido, integer *l1, r_8 *cc, r_8 *ch,
     6512        r_8 *wa1, r_8 *wa2, r_8 *wa3)
    65116513{
    65126514    /* System generated locals */
     
    65156517    /* Local variables */
    65166518    static integer i__, k;
    6517     static double ci2, ci3, ci4, cr2, cr3, cr4, ti1, ti2, ti3, ti4, tr1, tr2,
     6519    static r_8 ci2, ci3, ci4, cr2, cr3, cr4, ti1, ti2, ti3, ti4, tr1, tr2,
    65186520            tr3, tr4;
    65196521
     
    66126614
    66136615/*  ------ File dpassf5.f ------ */
    6614 /* Subroutine */ int dpassf5_(integer *ido, integer *l1, double *cc, double *ch,
    6615         double *wa1, double *wa2, double *wa3, double *wa4)
     6616/* Subroutine */ int dpassf5_(integer *ido, integer *l1, r_8 *cc, r_8 *ch,
     6617        r_8 *wa1, r_8 *wa2, r_8 *wa3, r_8 *wa4)
    66166618{
    66176619    /* Initialized data */
    66186620
    6619     static double tr11 = .309016994374947f;
    6620     static double ti11 = -.951056516295154f;
    6621     static double tr12 = -.809016994374947f;
    6622     static double ti12 = -.587785252292473f;
     6621    static r_8 tr11 = .309016994374947f;
     6622    static r_8 ti11 = -.951056516295154f;
     6623    static r_8 tr12 = -.809016994374947f;
     6624    static r_8 ti12 = -.587785252292473f;
    66236625
    66246626    /* System generated locals */
     
    66276629    /* Local variables */
    66286630    static integer i__, k;
    6629     static double ci2, ci3, ci4, ci5, di3, di4, di5, di2, cr2, cr3, cr5, cr4,
     6631    static r_8 ci2, ci3, ci4, ci5, di3, di4, di5, di2, cr2, cr3, cr5, cr4,
    66306632            ti2, ti3, ti4, ti5, dr3, dr4, dr5, dr2, tr2, tr3, tr4, tr5;
    66316633
     
    67476749
    67486750/*  ------ File dadb2.f ------ */
    6749 /* Subroutine */ int dadb2_(integer *ido, integer *l1, double *cc, double *ch,
    6750         double *wa1)
     6751/* Subroutine */ int dadb2_(integer *ido, integer *l1, r_8 *cc, r_8 *ch,
     6752        r_8 *wa1)
    67516753{
    67526754    /* System generated locals */
     
    67556757    /* Local variables */
    67566758    static integer i__, k, ic;
    6757     static double ti2, tr2;
     6759    static r_8 ti2, tr2;
    67586760    static integer idp2;
    67596761
     
    68246826
    68256827/*  ------ File dadb3.f ------ */
    6826 /* Subroutine */ int dadb3_(integer *ido, integer *l1, double *cc, double *ch,
    6827         double *wa1, double *wa2)
     6828/* Subroutine */ int dadb3_(integer *ido, integer *l1, r_8 *cc, r_8 *ch,
     6829        r_8 *wa1, r_8 *wa2)
    68286830{
    68296831    /* Initialized data */
    68306832
    6831     static double taur = -.5f;
    6832     static double taui = .866025403784439f;
     6833    static r_8 taur = -.5f;
     6834    static r_8 taui = .866025403784439f;
    68336835
    68346836    /* System generated locals */
     
    68376839    /* Local variables */
    68386840    static integer i__, k, ic;
    6839     static double ci2, ci3, di2, di3, cr2, cr3, dr2, dr3, ti2, tr2;
     6841    static r_8 ci2, ci3, di2, di3, cr2, cr3, dr2, dr3, ti2, tr2;
    68406842    static integer idp2;
    68416843
     
    69076909
    69086910/*  ------ File dadb4.f ------ */
    6909 /* Subroutine */ int dadb4_(integer *ido, integer *l1, double *cc, double *ch,
    6910         double *wa1, double *wa2, double *wa3)
     6911/* Subroutine */ int dadb4_(integer *ido, integer *l1, r_8 *cc, r_8 *ch,
     6912        r_8 *wa1, r_8 *wa2, r_8 *wa3)
    69116913{
    69126914    /* Initialized data */
    69136915
    6914     static double sqrt2 = 1.414213562373095f;
     6916    static r_8 sqrt2 = 1.414213562373095f;
    69156917
    69166918    /* System generated locals */
     
    69196921    /* Local variables */
    69206922    static integer i__, k, ic;
    6921     static double ci2, ci3, ci4, cr2, cr3, cr4, ti1, ti2, ti3, ti4, tr1, tr2,
     6923    static r_8 ci2, ci3, ci4, cr2, cr3, cr4, ti1, ti2, ti3, ti4, tr1, tr2,
    69226924            tr3, tr4;
    69236925    static integer idp2;
     
    70317033
    70327034/*  ------ File dadb5.f ------ */
    7033 /* Subroutine */ int dadb5_(integer *ido, integer *l1, double *cc, double *ch,
    7034         double *wa1, double *wa2, double *wa3, double *wa4)
     7035/* Subroutine */ int dadb5_(integer *ido, integer *l1, r_8 *cc, r_8 *ch,
     7036        r_8 *wa1, r_8 *wa2, r_8 *wa3, r_8 *wa4)
    70357037{
    70367038    /* Initialized data */
    70377039
    7038     static double tr11 = .309016994374947f;
    7039     static double ti11 = .951056516295154f;
    7040     static double tr12 = -.809016994374947f;
    7041     static double ti12 = .587785252292473f;
     7040    static r_8 tr11 = .309016994374947f;
     7041    static r_8 ti11 = .951056516295154f;
     7042    static r_8 tr12 = -.809016994374947f;
     7043    static r_8 ti12 = .587785252292473f;
    70427044
    70437045    /* System generated locals */
     
    70467048    /* Local variables */
    70477049    static integer i__, k, ic;
    7048     static double ci2, ci3, ci4, ci5, di3, di4, di5, di2, cr2, cr3, cr5, cr4,
     7050    static r_8 ci2, ci3, ci4, ci5, di3, di4, di5, di2, cr2, cr3, cr5, cr4,
    70497051            ti2, ti3, ti4, ti5, dr3, dr4, dr5, dr2, tr2, tr3, tr4, tr5;
    70507052    static integer idp2;
     
    71567158/*  ------ File dadbg.f ------ */
    71577159/* Subroutine */ int dadbg_(integer *ido, integer *ip, integer *l1, integer *
    7158         idl1, double *cc, double *c1, double *c2, double *ch, double *ch2, double *wa)
     7160        idl1, r_8 *cc, r_8 *c1, r_8 *c2, r_8 *ch, r_8 *ch2, r_8 *wa)
    71597161{
    71607162    /* Initialized data */
    71617163
    7162     static double tpi = 6.28318530717959f;
     7164    static r_8 tpi = 6.28318530717959f;
    71637165
    71647166    /* System generated locals */
     
    71687170
    71697171    /* Builtin functions */
    7170 /*    double cos(doubletruc), sin(doubletruc);  remplace par math.h  Reza 29/11/99 */
     7172/*    r_8 cos(r_8truc), sin(r_8truc);  remplace par math.h  Reza 29/11/99 */
    71717173
    71727174    /* Local variables */
    71737175    static integer idij, ipph, i__, j, k, l, j2, ic, jc, lc, ik, is;
    7174     static double dc2, ai1, ai2, ar1, ar2, ds2;
     7176    static r_8 dc2, ai1, ai2, ar1, ar2, ds2;
    71757177    static integer nbd;
    7176     static double dcp, arg, dsp, ar1h, ar2h;
     7178    static r_8 dcp, arg, dsp, ar1h, ar2h;
    71777179    static integer idp2, ipp2;
    71787180
     
    71997201
    72007202    /* Function Body */
    7201     arg = tpi / (double) (*ip);
     7203    arg = tpi / (r_8) (*ip);
    72027204    dcp = cos(arg);
    72037205    dsp = sin(arg);
     
    74967498
    74977499/*  ------ File dadf2.f ------ */
    7498 /* Subroutine */ int dadf2_(integer *ido, integer *l1, double *cc, double *ch,
    7499         double *wa1)
     7500/* Subroutine */ int dadf2_(integer *ido, integer *l1, r_8 *cc, r_8 *ch,
     7501        r_8 *wa1)
    75007502{
    75017503    /* System generated locals */
     
    75047506    /* Local variables */
    75057507    static integer i__, k, ic;
    7506     static double ti2, tr2;
     7508    static r_8 ti2, tr2;
    75077509    static integer idp2;
    75087510
     
    75747576
    75757577/*  ------ File dadf3.f ------ */
    7576 /* Subroutine */ int dadf3_(integer *ido, integer *l1, double *cc, double *ch,
    7577         double *wa1, double *wa2)
     7578/* Subroutine */ int dadf3_(integer *ido, integer *l1, r_8 *cc, r_8 *ch,
     7579        r_8 *wa1, r_8 *wa2)
    75787580{
    75797581    /* Initialized data */
    75807582
    7581     static double taur = -.5f;
    7582     static double taui = .866025403784439f;
     7583    static r_8 taur = -.5f;
     7584    static r_8 taui = .866025403784439f;
    75837585
    75847586    /* System generated locals */
     
    75877589    /* Local variables */
    75887590    static integer i__, k, ic;
    7589     static double ci2, di2, di3, cr2, dr2, dr3, ti2, ti3, tr2, tr3;
     7591    static r_8 ci2, di2, di3, cr2, dr2, dr3, ti2, ti3, tr2, tr3;
    75907592    static integer idp2;
    75917593
     
    76537655
    76547656/*  ------ File dadf4.f ------ */
    7655 /* Subroutine */ int dadf4_(integer *ido, integer *l1, double *cc, double *ch,
    7656         double *wa1, double *wa2, double *wa3)
     7657/* Subroutine */ int dadf4_(integer *ido, integer *l1, r_8 *cc, r_8 *ch,
     7658        r_8 *wa1, r_8 *wa2, r_8 *wa3)
    76577659{
    76587660    /* Initialized data */
    76597661
    7660     static double hsqt2 = .7071067811865475f;
     7662    static r_8 hsqt2 = .7071067811865475f;
    76617663
    76627664    /* System generated locals */
     
    76657667    /* Local variables */
    76667668    static integer i__, k, ic;
    7667     static double ci2, ci3, ci4, cr2, cr3, cr4, ti1, ti2, ti3, ti4, tr1, tr2,
     7669    static r_8 ci2, ci3, ci4, cr2, cr3, cr4, ti1, ti2, ti3, ti4, tr1, tr2,
    76687670            tr3, tr4;
    76697671    static integer idp2;
     
    77697771
    77707772/*  ------ File dadf5.f ------ */
    7771 /* Subroutine */ int dadf5_(integer *ido, integer *l1, double *cc, double *ch,
    7772         double *wa1, double *wa2, double *wa3, double *wa4)
     7773/* Subroutine */ int dadf5_(integer *ido, integer *l1, r_8 *cc, r_8 *ch,
     7774        r_8 *wa1, r_8 *wa2, r_8 *wa3, r_8 *wa4)
    77737775{
    77747776    /* Initialized data */
    77757777
    7776     static double tr11 = .309016994374947f;
    7777     static double ti11 = .951056516295154f;
    7778     static double tr12 = -.809016994374947f;
    7779     static double ti12 = .587785252292473f;
     7778    static r_8 tr11 = .309016994374947f;
     7779    static r_8 ti11 = .951056516295154f;
     7780    static r_8 tr12 = -.809016994374947f;
     7781    static r_8 ti12 = .587785252292473f;
    77807782
    77817783    /* System generated locals */
     
    77847786    /* Local variables */
    77857787    static integer i__, k, ic;
    7786     static double ci2, di2, ci4, ci5, di3, di4, di5, ci3, cr2, cr3, dr2, dr3,
     7788    static r_8 ci2, di2, ci4, ci5, di3, di4, di5, ci3, cr2, cr3, dr2, dr3,
    77877789            dr4, dr5, cr5, cr4, ti2, ti3, ti5, ti4, tr2, tr3, tr4, tr5;
    77887790    static integer idp2;
     
    78887890/*  ------ File dadfg.f ------ */
    78897891/* Subroutine */ int dadfg_(integer *ido, integer *ip, integer *l1, integer *
    7890         idl1, double *cc, double *c1, double *c2, double *ch, double *ch2, double *wa)
     7892        idl1, r_8 *cc, r_8 *c1, r_8 *c2, r_8 *ch, r_8 *ch2, r_8 *wa)
    78917893{
    78927894    /* Initialized data */
    78937895
    7894     static double tpi = 6.28318530717959f;
     7896    static r_8 tpi = 6.28318530717959f;
    78957897
    78967898    /* System generated locals */
     
    79007902
    79017903    /* Builtin functions */
    7902 /*    double cos(doubletruc), sin(doubletruc);   */
     7904/*    r_8 cos(r_8truc), sin(r_8truc);   */
    79037905
    79047906    /* Local variables */
    79057907    static integer idij, ipph, i__, j, k, l, j2, ic, jc, lc, ik, is;
    7906     static double dc2, ai1, ai2, ar1, ar2, ds2;
     7908    static r_8 dc2, ai1, ai2, ar1, ar2, ds2;
    79077909    static integer nbd;
    7908     static double dcp, arg, dsp, ar1h, ar2h;
     7910    static r_8 dcp, arg, dsp, ar1h, ar2h;
    79097911    static integer idp2, ipp2;
    79107912
     
    79317933
    79327934    /* Function Body */
    7933     arg = tpi / (double) (*ip);
     7935    arg = tpi / (r_8) (*ip);
    79347936    dcp = cos(arg);
    79357937    dsp = sin(arg);
     
    82348236
    82358237/*  ------ File dfftb.f ------ */
    8236 /* Subroutine */ int dfftb_(integer *n, double *r__, double *wsave)
    8237 {
    8238     extern /* Subroutine */ int dfftb1_(integer *, double *, double *, double *,
    8239             integer *);
     8238/* Subroutine */ int dfftb_(integer *n, r_8 *r__, r_8 *wsave)
     8239{
     8240    extern /* Subroutine */ int dfftb1_(integer *, r_8 *, r_8 *, r_8 *,
     8241            int_8 *);
    82408242
    82418243    /* Parameter adjustments */
     
    82478249        return 0;
    82488250    }
    8249     dfftb1_(n, &r__[1], &wsave[1], &wsave[*n + 1], (int *)&wsave[(*n << 1) + 1]); /* (int *) rajoute Reza 29/11/99 */
     8251    dfftb1_(n, &r__[1], &wsave[1], &wsave[*n + 1], (int_8 *)&wsave[(*n << 1) + 1]); /* (int *) rajoute Reza 29/11/99 */
    82508252    return 0;
    82518253} /* dfftb_ */
    82528254
    82538255/*  ------ File dfftb1.f ------ */
    8254 /* Subroutine */ int dfftb1_(integer *n, double *c__, double *ch, double *wa,
    8255         integer *ifac)
     8256/* Subroutine */ int dfftb1_(integer *n, r_8 *c__, r_8 *ch, r_8 *wa,
     8257        int_8 *ifac)
    82568258{
    82578259    /* System generated locals */
     
    82598261
    82608262    /* Local variables */
    8261     extern /* Subroutine */ int dadb2_(integer *, integer *, double *, double *,
    8262             double *), dadb3_(integer *, integer *, double *, double *, double *,
    8263             double *), dadb4_(integer *, integer *, double *, double *, double *,
    8264             double *, double *), dadb5_(integer *, integer *, double *, double *,
    8265             double *, double *, double *, double *);
     8263    extern /* Subroutine */ int dadb2_(integer *, integer *, r_8 *, r_8 *,
     8264            r_8 *), dadb3_(integer *, integer *, r_8 *, r_8 *, r_8 *,
     8265            r_8 *), dadb4_(integer *, integer *, r_8 *, r_8 *, r_8 *,
     8266            r_8 *, r_8 *), dadb5_(integer *, integer *, r_8 *, r_8 *,
     8267            r_8 *, r_8 *, r_8 *, r_8 *);
    82668268    static integer i__;
    82678269    extern /* Subroutine */ int dadbg_(integer *, integer *, integer *,
    8268             integer *, double *, double *, double *, double *, double *, double *);
     8270            integer *, r_8 *, r_8 *, r_8 *, r_8 *, r_8 *, r_8 *);
    82698271    static integer k1, l1, l2, na, nf, ip, iw, ix2, ix3, ix4, ido, idl1;
    82708272
     
    83808382
    83818383/*  ------ File dfftf.f ------ */
    8382 /* Subroutine */ int dfftf_(integer *n, double *r__, double *wsave)
    8383 {
    8384     extern /* Subroutine */ int dfftf1_(integer *, double *, double *, double *,
    8385             integer *);
     8384/* Subroutine */ int dfftf_(integer *n, r_8 *r__, r_8 *wsave)
     8385{
     8386    extern /* Subroutine */ int dfftf1_(integer *, r_8 *, r_8 *, r_8 *,
     8387            int_8 *);
    83868388
    83878389    /* Parameter adjustments */
     
    83938395        return 0;
    83948396    }
    8395     dfftf1_(n, &r__[1], &wsave[1], &wsave[*n + 1], (int *)&wsave[(*n << 1) + 1]);/* (int *) rajoute Reza 29/11/99 */
     8397    dfftf1_(n, &r__[1], &wsave[1], &wsave[*n + 1], (int_8 *)&wsave[(*n << 1) + 1]);/* (int *) rajoute Reza 29/11/99 */
    83968398    return 0;
    83978399} /* dfftf_ */
    83988400
    83998401/*  ------ File dfftf1.f ------ */
    8400 /* Subroutine */ int dfftf1_(integer *n, double *c__, double *ch, double *wa,
    8401         integer *ifac)
     8402/* Subroutine */ int dfftf1_(integer *n, r_8 *c__, r_8 *ch, r_8 *wa,
     8403        int_8 *ifac)
    84028404{
    84038405    /* System generated locals */
     
    84058407
    84068408    /* Local variables */
    8407     extern /* Subroutine */ int dadf2_(integer *, integer *, double *, double *,
    8408             double *), dadf3_(integer *, integer *, double *, double *, double *,
    8409             double *), dadf4_(integer *, integer *, double *, double *, double *,
    8410             double *, double *), dadf5_(integer *, integer *, double *, double *,
    8411             double *, double *, double *, double *);
     8409    extern /* Subroutine */ int dadf2_(integer *, integer *, r_8 *, r_8 *,
     8410            r_8 *), dadf3_(integer *, integer *, r_8 *, r_8 *, r_8 *,
     8411            r_8 *), dadf4_(integer *, integer *, r_8 *, r_8 *, r_8 *,
     8412            r_8 *, r_8 *), dadf5_(integer *, integer *, r_8 *, r_8 *,
     8413            r_8 *, r_8 *, r_8 *, r_8 *);
    84128414    static integer i__;
    84138415    extern /* Subroutine */ int dadfg_(integer *, integer *, integer *,
    8414             integer *, double *, double *, double *, double *, double *, double *);
     8416            integer *, r_8 *, r_8 *, r_8 *, r_8 *, r_8 *, r_8 *);
    84158417    static integer k1, l1, l2, na, kh, nf, ip, iw, ix2, ix3, ix4, ido, idl1;
    84168418
     
    85218523
    85228524/*  ------ File dffti.f ------ */
    8523 /* Subroutine */ int dffti_(integer *n, double *wsave)
    8524 {
    8525     extern /* Subroutine */ int dffti1_(integer *, double *, integer *);
     8525/* Subroutine */ int dffti_(integer *n, r_8 *wsave)
     8526{
     8527    extern /* Subroutine */ int dffti1_(integer *, r_8 *, int_8 *);
    85268528
    85278529    /* Parameter adjustments */
     
    85328534        return 0;
    85338535    }
    8534     dffti1_(n, &wsave[*n + 1], (int *)&wsave[(*n << 1) + 1]); /* (int *) rajoute Reza 29/11/99 */
     8536    dffti1_(n, &wsave[*n + 1], (int_8 *)&wsave[(*n << 1) + 1]); /* (int *) rajoute Reza 29/11/99 */
    85358537    return 0;
    85368538} /* dffti_ */
    85378539
    85388540/*  ------ File dffti1.f ------ */
    8539 /* Subroutine */ int dffti1_(integer *n, double *wa, integer *ifac)
     8541/* Subroutine */ int dffti1_(integer *n, r_8 *wa, int_8 *ifac)
    85408542{
    85418543    /* Initialized data */
     
    85478549
    85488550    /* Builtin functions */
    8549 /*    double cos(doubletruc), sin(doubletruc); remplace par math.h  Reza 29/11/99 */
     8551/*    r_8 cos(r_8truc), sin(r_8truc); remplace par math.h  Reza 29/11/99 */
    85508552
    85518553    /* Local variables */
    8552     static double argh;
     8554    static r_8 argh;
    85538555    static integer ntry, i__, j;
    8554     static double argld;
     8556    static r_8 argld;
    85558557    static integer k1, l1, l2, ib;
    8556     static double fi;
     8558    static r_8 fi;
    85578559    static integer ld, ii, nf, ip, nl, is, nq, nr;
    8558     static double arg;
     8560    static r_8 arg;
    85598561    static integer ido, ipm;
    8560     static double tpi;
     8562    static r_8 tpi;
    85618563    static integer nfm1;
    85628564
     
    86138615    ifac[2] = nf;
    86148616    tpi = 6.28318530717959f;
    8615     argh = tpi / (double) (*n);
     8617    argh = tpi / (r_8) (*n);
    86168618    is = 0;
    86178619    nfm1 = nf - 1;
     
    86318633            ld += l1;
    86328634            i__ = is;
    8633             argld = (double) ld * argh;
     8635            argld = (r_8) ld * argh;
    86348636            fi = 0.f;
    86358637            i__3 = ido;
     
    86528654
    86538655/*  ------ File dsinqb.f ------ */
    8654 /* Subroutine */ int dsinqb_(integer *n, double *x, double *wsave)
     8656/* Subroutine */ int dsinqb_(integer *n, r_8 *x, r_8 *wsave)
    86558657{
    86568658    /* System generated locals */
     
    86598661    /* Local variables */
    86608662    static integer k;
    8661     extern /* Subroutine */ int dcosqb_(integer *, double *, double *);
    8662     static double xhold;
     8663    extern /* Subroutine */ int dcosqb_(integer *, r_8 *, r_8 *);
     8664    static r_8 xhold;
    86638665    static integer kc, ns2;
    86648666
     
    86938695
    86948696/*  ------ File dsinqf.f ------ */
    8695 /* Subroutine */ int dsinqf_(integer *n, double *x, double *wsave)
     8697/* Subroutine */ int dsinqf_(integer *n, r_8 *x, r_8 *wsave)
    86968698{
    86978699    /* System generated locals */
     
    87008702    /* Local variables */
    87018703    static integer k;
    8702     extern /* Subroutine */ int dcosqf_(integer *, double *, double *);
    8703     static double xhold;
     8704    extern /* Subroutine */ int dcosqf_(integer *, r_8 *, r_8 *);
     8705    static r_8 xhold;
    87048706    static integer kc, ns2;
    87058707
     
    87318733
    87328734/*  ------ File dsinqi.f ------ */
    8733 /* Subroutine */ int dsinqi_(integer *n, double *wsave)
    8734 {
    8735     extern /* Subroutine */ int dcosqi_(integer *, double *);
     8735/* Subroutine */ int dsinqi_(integer *n, r_8 *wsave)
     8736{
     8737    extern /* Subroutine */ int dcosqi_(integer *, r_8 *);
    87368738
    87378739    /* Parameter adjustments */
     
    87448746
    87458747/*  ------ File dsint.f ------ */
    8746 /* Subroutine */ int dsint_(integer *n, double *x, double *wsave)
    8747 {
    8748     extern /* Subroutine */ int dsint1_(integer *, double *, double *, double *,
    8749             double *, integer *);
     8748/* Subroutine */ int dsint_(integer *n, r_8 *x, r_8 *wsave)
     8749{
     8750    extern /* Subroutine */ int dsint1_(integer *, r_8 *, r_8 *, r_8 *,
     8751            r_8 *, int_8 *);
    87508752    static integer np1, iw1, iw2, iw3;
    87518753
     
    87598761    iw2 = iw1 + np1;
    87608762    iw3 = iw2 + np1;
    8761     dsint1_(n, &x[1], &wsave[1], &wsave[iw1], &wsave[iw2], (int *) &wsave[iw3]); /* (int *) rajoute Reza 29/11/99 */
     8763    dsint1_(n, &x[1], &wsave[1], &wsave[iw1], &wsave[iw2], (int_8 *) &wsave[iw3]); /* (int *) rajoute Reza 29/11/99 */
    87628764    return 0;
    87638765} /* dsint_ */
    87648766
    87658767/*  ------ File dsint1.f ------ */
    8766 /* Subroutine */ int dsint1_(integer *n, double *war, double *was, double *xh, double *
    8767         x, integer *ifac)
     8768/* Subroutine */ int dsint1_(integer *n, r_8 *war, r_8 *was, r_8 *xh, r_8 *
     8769        x, int_8 *ifac)
    87688770{
    87698771    /* Initialized data */
    87708772
    8771     static double sqrt3 = 1.73205080756888f;
     8773    static r_8 sqrt3 = 1.73205080756888f;
    87728774
    87738775    /* System generated locals */
     
    87768778    /* Local variables */
    87778779    static integer modn, i__, k;
    8778     static double xhold, t1, t2;
    8779     extern /* Subroutine */ int dfftf1_(integer *, double *, double *, double *,
    8780             integer *);
     8780    static r_8 xhold, t1, t2;
     8781    extern /* Subroutine */ int dfftf1_(integer *, r_8 *, r_8 *, r_8 *,
     8782            int_8 *);
    87818783    static integer kc, np1, ns2;
    87828784
     
    88508852
    88518853/*  ------ File dsinti.f ------ */
    8852 /* Subroutine */ int dsinti_(integer *n, double *wsave)
     8854/* Subroutine */ int dsinti_(integer *n, r_8 *wsave)
    88538855{
    88548856    /* Initialized data */
    88558857
    8856     static double pi = 3.14159265358979f;
     8858    static r_8 pi = 3.14159265358979f;
    88578859
    88588860    /* System generated locals */
     
    88608862
    88618863    /* Builtin functions */
    8862 /*    double sin(doubletruc);  remplace par math.h  Reza 29/11/99 */
     8864/*    r_8 sin(r_8truc);  remplace par math.h  Reza 29/11/99 */
    88638865
    88648866    /* Local variables */
    88658867    static integer k;
    8866     extern /* Subroutine */ int dffti_(integer *, double *);
    8867     static double dt;
     8868    extern /* Subroutine */ int dffti_(integer *, r_8 *);
     8869    static r_8 dt;
    88688870    static integer np1, ns2;
    88698871
     
    88778879    ns2 = *n / 2;
    88788880    np1 = *n + 1;
    8879     dt = pi / (double) np1;
     8881    dt = pi / (r_8) np1;
    88808882    i__1 = ns2;
    88818883    for (k = 1; k <= i__1; ++k) {
  • trunk/SophyaLib/NTools/fftpackc.h

    r710 r717  
    2424/* ---------------------- */
    2525
    26 extern int cfftb_(integer *n, float *c__, float *wsave);
    27 extern int cfftb1_(integer *n, float *c__, float *ch, float *wa, integer *ifac);
    28 extern int cfftf_(integer *n, float *c__, float *wsave);
    29 extern int cfftf1_(integer *n, float *c__, float *ch, float *wa, integer *ifac);
    30 extern int cffti_(integer *n, float *wsave);
    31 extern int cffti1_(integer *n, float *wa, integer *ifac);
    32 extern int cosqb_(integer *n, float *x, float *wsave);
    33 extern int cosqb1_(integer *n, float *x, float *w, float *xh);
    34 extern int cosqf_(integer *n, float *x, float *wsave);
    35 extern int cosqf1_(integer *n, float *x, float *w, float *xh);
    36 extern int cosqi_(integer *n, float *wsave);
    37 extern int cost_(integer *n, float *x, float *wsave);
    38 extern int costi_(integer *n, float *wsave);
    39 extern int ezfft1_(integer *n, float *wa, integer *ifac);
    40 extern int ezfftb_(integer *n, float *r__, float *azero, float *a, float *b, float *wsave);
    41 extern int ezfftf_(integer *n, float *r__, float *azero, float *a, float *b, float *wsave);
    42 extern int ezffti_(integer *n, float *wsave);
    43 extern int passb_(integer *nac, integer *ido, integer *ip, integer *l1, integer *idl1, float *cc, float *c1, float *c2, float *ch, float *ch2, float *wa);
    44 extern int passb2_(integer *ido, integer *l1, float *cc, float *ch, float *wa1);
    45 extern int passb3_(integer *ido, integer *l1, float *cc, float *ch, float *wa1, float *wa2);
    46 extern int passb4_(integer *ido, integer *l1, float *cc, float *ch, float *wa1, float *wa2, float *wa3);
    47 extern int passb5_(integer *ido, integer *l1, float *cc, float *ch, float *wa1, float *wa2, float *wa3, float *wa4);
    48 extern int passf_(integer *nac, integer *ido, integer *ip, integer *l1, integer *idl1, float *cc, float *c1, float *c2, float *ch, float *ch2, float *wa);
    49 extern int passf2_(integer *ido, integer *l1, float *cc, float *ch, float *wa1);
    50 extern int passf3_(integer *ido, integer *l1, float *cc, float *ch, float *wa1, float *wa2);
    51 extern int passf4_(integer *ido, integer *l1, float *cc, float *ch, float *wa1, float *wa2, float *wa3);
    52 extern int passf5_(integer *ido, integer *l1, float *cc, float *ch, float *wa1, float *wa2, float *wa3, float *wa4);
    53 extern int radb2_(integer *ido, integer *l1, float *cc, float *ch, float *wa1);
    54 extern int radb3_(integer *ido, integer *l1, float *cc, float *ch, float *wa1, float *wa2);
    55 extern int radb4_(integer *ido, integer *l1, float *cc, float *ch, float *wa1, float *wa2, float *wa3);
    56 extern int radb5_(integer *ido, integer *l1, float *cc, float *ch, float *wa1, float *wa2, float *wa3, float *wa4);
    57 extern int radbg_(integer *ido, integer *ip, integer *l1, integer *idl1, float *cc, float *c1, float *c2, float *ch, float *ch2, float *wa);
    58 extern int radf2_(integer *ido, integer *l1, float *cc, float *ch, float *wa1);
    59 extern int radf3_(integer *ido, integer *l1, float *cc, float *ch, float *wa1, float *wa2);
    60 extern int radf4_(integer *ido, integer *l1, float *cc, float *ch, float *wa1, float *wa2, float *wa3);
    61 extern int radf5_(integer *ido, integer *l1, float *cc, float *ch, float *wa1, float *wa2, float *wa3, float *wa4);
    62 extern int radfg_(integer *ido, integer *ip, integer *l1, integer *idl1, float *cc, float *c1, float *c2, float *ch, float *ch2, float *wa);
    63 extern int rfftb_(integer *n, float *r__, float *wsave);
    64 extern int rfftb1_(integer *n, float *c__, float *ch, float *wa, integer *ifac);
    65 extern int rfftf_(integer *n, float *r__, float *wsave);
    66 extern int rfftf1_(integer *n, float *c__, float *ch, float *wa, integer *ifac);
    67 extern int rffti_(integer *n, float *wsave);
    68 extern int rffti1_(integer *n, float *wa, integer *ifac);
    69 extern int sinqb_(integer *n, float *x, float *wsave);
    70 extern int sinqf_(integer *n, float *x, float *wsave);
    71 extern int sinqi_(integer *n, float *wsave);
    72 extern int sint_(integer *n, float *x, float *wsave);
    73 extern int sint1_(integer *n, float *war, float *was, float *xh, float *x, integer *ifac);
    74 extern int sinti_(integer *n, float *wsave);
     26extern int cfftb_(integer *n, r_4 *c__, r_4 *wsave);
     27extern int cfftb1_(integer *n, r_4 *c__, r_4 *ch, r_4 *wa, int_4 *ifac);
     28extern int cfftf_(integer *n, r_4 *c__, r_4 *wsave);
     29extern int cfftf1_(integer *n, r_4 *c__, r_4 *ch, r_4 *wa, int_4 *ifac);
     30extern int cffti_(integer *n, r_4 *wsave);
     31extern int cffti1_(integer *n, r_4 *wa, int_4 *ifac);
     32extern int cosqb_(integer *n, r_4 *x, r_4 *wsave);
     33extern int cosqb1_(integer *n, r_4 *x, r_4 *w, r_4 *xh);
     34extern int cosqf_(integer *n, r_4 *x, r_4 *wsave);
     35extern int cosqf1_(integer *n, r_4 *x, r_4 *w, r_4 *xh);
     36extern int cosqi_(integer *n, r_4 *wsave);
     37extern int cost_(integer *n, r_4 *x, r_4 *wsave);
     38extern int costi_(integer *n, r_4 *wsave);
     39extern int ezfft1_(integer *n, r_4 *wa, int_4 *ifac);
     40extern int ezfftb_(integer *n, r_4 *r__, r_4 *azero, r_4 *a, r_4 *b, r_4 *wsave);
     41extern int ezfftf_(integer *n, r_4 *r__, r_4 *azero, r_4 *a, r_4 *b, r_4 *wsave);
     42extern int ezffti_(integer *n, r_4 *wsave);
     43extern int passb_(integer *nac, integer *ido, integer *ip, integer *l1, integer *idl1, r_4 *cc, r_4 *c1, r_4 *c2, r_4 *ch, r_4 *ch2, r_4 *wa);
     44extern int passb2_(integer *ido, integer *l1, r_4 *cc, r_4 *ch, r_4 *wa1);
     45extern int passb3_(integer *ido, integer *l1, r_4 *cc, r_4 *ch, r_4 *wa1, r_4 *wa2);
     46extern int passb4_(integer *ido, integer *l1, r_4 *cc, r_4 *ch, r_4 *wa1, r_4 *wa2, r_4 *wa3);
     47extern int passb5_(integer *ido, integer *l1, r_4 *cc, r_4 *ch, r_4 *wa1, r_4 *wa2, r_4 *wa3, r_4 *wa4);
     48extern int passf_(integer *nac, integer *ido, integer *ip, integer *l1, integer *idl1, r_4 *cc, r_4 *c1, r_4 *c2, r_4 *ch, r_4 *ch2, r_4 *wa);
     49extern int passf2_(integer *ido, integer *l1, r_4 *cc, r_4 *ch, r_4 *wa1);
     50extern int passf3_(integer *ido, integer *l1, r_4 *cc, r_4 *ch, r_4 *wa1, r_4 *wa2);
     51extern int passf4_(integer *ido, integer *l1, r_4 *cc, r_4 *ch, r_4 *wa1, r_4 *wa2, r_4 *wa3);
     52extern int passf5_(integer *ido, integer *l1, r_4 *cc, r_4 *ch, r_4 *wa1, r_4 *wa2, r_4 *wa3, r_4 *wa4);
     53extern int radb2_(integer *ido, integer *l1, r_4 *cc, r_4 *ch, r_4 *wa1);
     54extern int radb3_(integer *ido, integer *l1, r_4 *cc, r_4 *ch, r_4 *wa1, r_4 *wa2);
     55extern int radb4_(integer *ido, integer *l1, r_4 *cc, r_4 *ch, r_4 *wa1, r_4 *wa2, r_4 *wa3);
     56extern int radb5_(integer *ido, integer *l1, r_4 *cc, r_4 *ch, r_4 *wa1, r_4 *wa2, r_4 *wa3, r_4 *wa4);
     57extern int radbg_(integer *ido, integer *ip, integer *l1, integer *idl1, r_4 *cc, r_4 *c1, r_4 *c2, r_4 *ch, r_4 *ch2, r_4 *wa);
     58extern int radf2_(integer *ido, integer *l1, r_4 *cc, r_4 *ch, r_4 *wa1);
     59extern int radf3_(integer *ido, integer *l1, r_4 *cc, r_4 *ch, r_4 *wa1, r_4 *wa2);
     60extern int radf4_(integer *ido, integer *l1, r_4 *cc, r_4 *ch, r_4 *wa1, r_4 *wa2, r_4 *wa3);
     61extern int radf5_(integer *ido, integer *l1, r_4 *cc, r_4 *ch, r_4 *wa1, r_4 *wa2, r_4 *wa3, r_4 *wa4);
     62extern int radfg_(integer *ido, integer *ip, integer *l1, integer *idl1, r_4 *cc, r_4 *c1, r_4 *c2, r_4 *ch, r_4 *ch2, r_4 *wa);
     63extern int rfftb_(integer *n, r_4 *r__, r_4 *wsave);
     64extern int rfftb1_(integer *n, r_4 *c__, r_4 *ch, r_4 *wa, int_4 *ifac);
     65extern int rfftf_(integer *n, r_4 *r__, r_4 *wsave);
     66extern int rfftf1_(integer *n, r_4 *c__, r_4 *ch, r_4 *wa, int_4 *ifac);
     67extern int rffti_(integer *n, r_4 *wsave);
     68extern int rffti1_(integer *n, r_4 *wa, int_4 *ifac);
     69extern int sinqb_(integer *n, r_4 *x, r_4 *wsave);
     70extern int sinqf_(integer *n, r_4 *x, r_4 *wsave);
     71extern int sinqi_(integer *n, r_4 *wsave);
     72extern int sint_(integer *n, r_4 *x, r_4 *wsave);
     73extern int sint1_(integer *n, r_4 *war, r_4 *was, r_4 *xh, r_4 *x, int_4 *ifac);
     74extern int sinti_(integer *n, r_4 *wsave);
    7575
    7676/* ---------------------- */
    7777
    78 extern int cdfftb_(integer *n, double *c__, double *wsave);
    79 extern int cdfftb1_(integer *n, double *c__, double *ch, double *wa, integer *ifac);
    80 extern int cdfftf_(integer *n, double *c__, double *wsave);
    81 extern int cdfftf1_(integer *n, double *c__, double *ch, double *wa, integer *ifac);
    82 extern int cdffti_(integer *n, double *wsave);
    83 extern int cdffti1_(integer *n, double *wa, integer *ifac);
    84 extern int dcosqb_(integer *n, double *x, double *wsave);
    85 extern int dcosqb1_(integer *n, double *x, double *w, double *xh);
    86 extern int dcosqf_(integer *n, double *x, double *wsave);
    87 extern int dcosqf1_(integer *n, double *x, double *w, double *xh);
    88 extern int dcosqi_(integer *n, double *wsave);
    89 extern int dcost_(integer *n, double *x, double *wsave);
    90 extern int dcosti_(integer *n, double *wsave);
    91 extern int dezfft1_(integer *n, double *wa, integer *ifac);
    92 extern int dezfftb_(integer *n, double *r__, double *azero, double *a, double *b, double *wsave);
    93 extern int dezfftf_(integer *n, double *r__, double *azero, double *a, double *b, double *wsave);
    94 extern int dezffti_(integer *n, double *wsave);
    95 extern int dpassb_(integer *nac, integer *ido, integer *ip, integer *l1, integer *idl1, double *cc, double *c1, double *c2, double *ch, double *ch2, double *wa);
    96 extern int dpassb2_(integer *ido, integer *l1, double *cc, double *ch, double *wa1);
    97 extern int dpassb3_(integer *ido, integer *l1, double *cc, double *ch, double *wa1, double *wa2);
    98 extern int dpassb4_(integer *ido, integer *l1, double *cc, double *ch, double *wa1, double *wa2, double *wa3);
    99 extern int dpassb5_(integer *ido, integer *l1, double *cc, double *ch, double *wa1, double *wa2, double *wa3, double *wa4);
    100 extern int dpassf_(integer *nac, integer *ido, integer *ip, integer *l1, integer *idl1, double *cc, double *c1, double *c2, double *ch, double *ch2, double *wa);
    101 extern int dpassf2_(integer *ido, integer *l1, double *cc, double *ch, double *wa1);
    102 extern int dpassf3_(integer *ido, integer *l1, double *cc, double *ch, double *wa1, double *wa2);
    103 extern int dpassf4_(integer *ido, integer *l1, double *cc, double *ch, double *wa1, double *wa2, double *wa3);
    104 extern int dpassf5_(integer *ido, integer *l1, double *cc, double *ch, double *wa1, double *wa2, double *wa3, double *wa4);
    105 extern int dadb2_(integer *ido, integer *l1, double *cc, double *ch, double *wa1);
    106 extern int dadb3_(integer *ido, integer *l1, double *cc, double *ch, double *wa1, double *wa2);
    107 extern int dadb4_(integer *ido, integer *l1, double *cc, double *ch, double *wa1, double *wa2, double *wa3);
    108 extern int dadb5_(integer *ido, integer *l1, double *cc, double *ch, double *wa1, double *wa2, double *wa3, double *wa4);
    109 extern int dadbg_(integer *ido, integer *ip, integer *l1, integer *idl1, double *cc, double *c1, double *c2, double *ch, double *ch2, double *wa);
    110 extern int dadf2_(integer *ido, integer *l1, double *cc, double *ch, double *wa1);
    111 extern int dadf3_(integer *ido, integer *l1, double *cc, double *ch, double *wa1, double *wa2);
    112 extern int dadf4_(integer *ido, integer *l1, double *cc, double *ch, double *wa1, double *wa2, double *wa3);
    113 extern int dadf5_(integer *ido, integer *l1, double *cc, double *ch, double *wa1, double *wa2, double *wa3, double *wa4);
    114 extern int dadfg_(integer *ido, integer *ip, integer *l1, integer *idl1, double *cc, double *c1, double *c2, double *ch, double *ch2, double *wa);
    115 extern int dfftb_(integer *n, double *r__, double *wsave);
    116 extern int dfftb1_(integer *n, double *c__, double *ch, double *wa, integer *ifac);
    117 extern int dfftf_(integer *n, double *r__, double *wsave);
    118 extern int dfftf1_(integer *n, double *c__, double *ch, double *wa, integer *ifac);
    119 extern int dffti_(integer *n, double *wsave);
    120 extern int dffti1_(integer *n, double *wa, integer *ifac);
    121 extern int dsinqb_(integer *n, double *x, double *wsave);
    122 extern int dsinqf_(integer *n, double *x, double *wsave);
    123 extern int dsinqi_(integer *n, double *wsave);
    124 extern int dsint_(integer *n, double *x, double *wsave);
    125 extern int dsint1_(integer *n, double *war, double *was, double *xh, double *x, integer *ifac);
    126 extern int dsinti_(integer *n, double *wsave);
     78extern int cdfftb_(integer *n, r_8 *c__, r_8 *wsave);
     79extern int cdfftb1_(integer *n, r_8 *c__, r_8 *ch, r_8 *wa, int_8 *ifac);
     80extern int cdfftf_(integer *n, r_8 *c__, r_8 *wsave);
     81extern int cdfftf1_(integer *n, r_8 *c__, r_8 *ch, r_8 *wa, int_8 *ifac);
     82extern int cdffti_(integer *n, r_8 *wsave);
     83extern int cdffti1_(integer *n, r_8 *wa, int_8 *ifac);
     84extern int dcosqb_(integer *n, r_8 *x, r_8 *wsave);
     85extern int dcosqb1_(integer *n, r_8 *x, r_8 *w, r_8 *xh);
     86extern int dcosqf_(integer *n, r_8 *x, r_8 *wsave);
     87extern int dcosqf1_(integer *n, r_8 *x, r_8 *w, r_8 *xh);
     88extern int dcosqi_(integer *n, r_8 *wsave);
     89extern int dcost_(integer *n, r_8 *x, r_8 *wsave);
     90extern int dcosti_(integer *n, r_8 *wsave);
     91extern int dezfft1_(integer *n, r_8 *wa, int_8 *ifac);
     92extern int dezfftb_(integer *n, r_8 *r__, r_8 *azero, r_8 *a, r_8 *b, r_8 *wsave);
     93extern int dezfftf_(integer *n, r_8 *r__, r_8 *azero, r_8 *a, r_8 *b, r_8 *wsave);
     94extern int dezffti_(integer *n, r_8 *wsave);
     95extern int dpassb_(integer *nac, integer *ido, integer *ip, integer *l1, integer *idl1, r_8 *cc, r_8 *c1, r_8 *c2, r_8 *ch, r_8 *ch2, r_8 *wa);
     96extern int dpassb2_(integer *ido, integer *l1, r_8 *cc, r_8 *ch, r_8 *wa1);
     97extern int dpassb3_(integer *ido, integer *l1, r_8 *cc, r_8 *ch, r_8 *wa1, r_8 *wa2);
     98extern int dpassb4_(integer *ido, integer *l1, r_8 *cc, r_8 *ch, r_8 *wa1, r_8 *wa2, r_8 *wa3);
     99extern int dpassb5_(integer *ido, integer *l1, r_8 *cc, r_8 *ch, r_8 *wa1, r_8 *wa2, r_8 *wa3, r_8 *wa4);
     100extern int dpassf_(integer *nac, integer *ido, integer *ip, integer *l1, integer *idl1, r_8 *cc, r_8 *c1, r_8 *c2, r_8 *ch, r_8 *ch2, r_8 *wa);
     101extern int dpassf2_(integer *ido, integer *l1, r_8 *cc, r_8 *ch, r_8 *wa1);
     102extern int dpassf3_(integer *ido, integer *l1, r_8 *cc, r_8 *ch, r_8 *wa1, r_8 *wa2);
     103extern int dpassf4_(integer *ido, integer *l1, r_8 *cc, r_8 *ch, r_8 *wa1, r_8 *wa2, r_8 *wa3);
     104extern int dpassf5_(integer *ido, integer *l1, r_8 *cc, r_8 *ch, r_8 *wa1, r_8 *wa2, r_8 *wa3, r_8 *wa4);
     105extern int dadb2_(integer *ido, integer *l1, r_8 *cc, r_8 *ch, r_8 *wa1);
     106extern int dadb3_(integer *ido, integer *l1, r_8 *cc, r_8 *ch, r_8 *wa1, r_8 *wa2);
     107extern int dadb4_(integer *ido, integer *l1, r_8 *cc, r_8 *ch, r_8 *wa1, r_8 *wa2, r_8 *wa3);
     108extern int dadb5_(integer *ido, integer *l1, r_8 *cc, r_8 *ch, r_8 *wa1, r_8 *wa2, r_8 *wa3, r_8 *wa4);
     109extern int dadbg_(integer *ido, integer *ip, integer *l1, integer *idl1, r_8 *cc, r_8 *c1, r_8 *c2, r_8 *ch, r_8 *ch2, r_8 *wa);
     110extern int dadf2_(integer *ido, integer *l1, r_8 *cc, r_8 *ch, r_8 *wa1);
     111extern int dadf3_(integer *ido, integer *l1, r_8 *cc, r_8 *ch, r_8 *wa1, r_8 *wa2);
     112extern int dadf4_(integer *ido, integer *l1, r_8 *cc, r_8 *ch, r_8 *wa1, r_8 *wa2, r_8 *wa3);
     113extern int dadf5_(integer *ido, integer *l1, r_8 *cc, r_8 *ch, r_8 *wa1, r_8 *wa2, r_8 *wa3, r_8 *wa4);
     114extern int dadfg_(integer *ido, integer *ip, integer *l1, integer *idl1, r_8 *cc, r_8 *c1, r_8 *c2, r_8 *ch, r_8 *ch2, r_8 *wa);
     115extern int dfftb_(integer *n, r_8 *r__, r_8 *wsave);
     116extern int dfftb1_(integer *n, r_8 *c__, r_8 *ch, r_8 *wa, int_8 *ifac);
     117extern int dfftf_(integer *n, r_8 *r__, r_8 *wsave);
     118extern int dfftf1_(integer *n, r_8 *c__, r_8 *ch, r_8 *wa, int_8 *ifac);
     119extern int dffti_(integer *n, r_8 *wsave);
     120extern int dffti1_(integer *n, r_8 *wa, int_8 *ifac);
     121extern int dsinqb_(integer *n, r_8 *x, r_8 *wsave);
     122extern int dsinqf_(integer *n, r_8 *x, r_8 *wsave);
     123extern int dsinqi_(integer *n, r_8 *wsave);
     124extern int dsint_(integer *n, r_8 *x, r_8 *wsave);
     125extern int dsint1_(integer *n, r_8 *war, r_8 *was, r_8 *xh, r_8 *x, int_8 *ifac);
     126extern int dsinti_(integer *n, r_8 *wsave);
    127127
    128128/* Rerunning f2c -P may change prototypes or declarations. */
  • trunk/SophyaLib/NTools/fftpserver.cc

    r710 r717  
    2626*/
    2727
    28 /*! \fn virtual void FFTServer::fftf(int l, float* inout)
     28/*! \fn virtual void FFTServer::fftf(int l, r_4* inout)
    2929  \param l length of array
    3030  \param inout input array /output forward FFT (original array destroyed)
    3131*/
    32 /*! \fn virtual void FFTServer::fftb(int l, float* inout)
     32/*! \fn virtual void FFTServer::fftb(int l, r_4* inout)
    3333  \param l length of array
    3434  \param inout input array /output backward FFT (original array destroyed)
    3535*/
    36 /*! \fn virtual void FFTServer::fftf(int l, double* inout)
     36/*! \fn virtual void FFTServer::fftf(int l, r_8* inout)
    3737  \param l length of array
    3838  \param inout input array /output forward FFT (original array destroyed)
    3939  \param inout input/output array (original array destroyed)
    4040*/
    41 /*! \fn virtual void FFTServer::fftb(int l, double* inout)
     41/*! \fn virtual void FFTServer::fftb(int l, r_8* inout)
    4242  \param l length of array
    4343  \param inout input array /output backward FFT(original array destroyed)
    4444*/
    45 /*!\fn  virtual void FFTServer::fftf(int l, complex<float>* inout)
     45/*!\fn  virtual void FFTServer::fftf(int l, complex<r_4>* inout)
    4646  \param l length of array
    4747  \param inout input array /output forward FFT (original array destroyed)
    4848*/
    49 /*! \fn virtual void FFTServer::fftb(int l, complex<float>* inout)
     49/*! \fn virtual void FFTServer::fftb(int l, complex<r_4>* inout)
    5050  \param l length of array
    5151  \param inout input array /output backward FFT (original array destroyed)
    5252*/
    53 /*! \fn virtual void FFTServer::fftf(int l, complex<double>* inout)
     53/*! \fn virtual void FFTServer::fftf(int l, complex<r_8>* inout)
    5454  \param l length of array
    5555  \param inout input array /output forward FFT (original array destroyed)
    5656*/
    57 /*! \fn virtual void FFTServer::fftb(int l, complex<double>* inout)
     57/*! \fn virtual void FFTServer::fftb(int l, complex<r_8>* inout)
    5858  \param l length of array
    5959  \param inout input array /output backward FFT(original array destroyed)
     
    6969
    7070FFTPackServer::FFTPackServer()
    71    : FFTServerInterface("FFTServer using FFTPack (C-version) package")
     71   : FFTServerInterface("FFTPackServer using extended FFTPack (C-version) package")
    7272
    7373{
     
    9292}
    9393
     94
    9495void FFTPackServer::FFTForward(TVector< complex<r_8> > const & in, TVector< complex<r_8> > & out)
    9596{
    9697  out = in;
    9798  fftf(out.NElts(), out.Data());
     99  if (getNormalize()) out *= (1./(r_8)(in.NElts()));
    98100}
    99101
     
    104106}
    105107
     108
     109
    106110void FFTPackServer::FFTForward(TVector< complex<r_4> > const & in, TVector< complex<r_4> > & out)
    107111{
    108112  out = in;
    109113  fftf(out.NElts(), out.Data());
     114  if (getNormalize()) out *= (1./(r_4)(in.NElts()));
    110115}
    111116
     
    121126  fftf(inout.NElts(), inout.Data());
    122127  ReShapetoCompl(inout, out);
     128  if (getNormalize()) out *= (1./(r_4)(in.NElts()));
    123129}
    124130
     
    128134  fftb(out.NElts(), out.Data());
    129135}
     136
    130137
    131138void FFTPackServer::FFTForward(TVector< r_8 > const & in, TVector< complex<r_8> > & out)
     
    134141  fftf(inout.NElts(), inout.Data());
    135142  ReShapetoCompl(inout, out);
     143  if (getNormalize()) out *= (1./(r_8)(in.NElts()));
    136144}
    137145
     
    142150}
    143151
     152 
    144153
    145154void FFTPackServer::checkint_rfft(int l)
     
    149158  if (ws_rfft) delete[] ws_rfft;  //a transform
    150159  sz_rfft = l;
    151   ws_rfft = new float[2*l+15];
     160  ws_rfft = new r_4[2*l+15];
    152161  rffti_(&l, ws_rfft);
    153162}
     
    159168  if (ws_cfft) delete[] ws_cfft;
    160169  sz_cfft = l;
    161   ws_cfft = new float[4*l+15];
     170  ws_cfft = new r_4[4*l+15];
    162171  cffti_(&l, ws_cfft);
    163172}
     
    169178  if (ws_dfft) delete[] ws_dfft;
    170179  sz_dfft = l;
    171   ws_dfft = new double[2*l+15];
     180  ws_dfft = new r_8[2*l+15];
    172181  dffti_(&l, ws_dfft);
    173182}
     
    179188  if (ws_cdfft) delete[] ws_cdfft;
    180189  sz_cdfft = l;
    181   ws_cdfft = new double[4*l+15];
     190  ws_cdfft = new r_8[4*l+15];
    182191  cdffti_(&l, ws_cdfft);
    183192}
     
    186195   return inverse transformations */
    187196
    188 void FFTPackServer::fftf(int l, float* inout)
     197void FFTPackServer::fftf(int l, r_4* inout)
    189198{
    190199  checkint_rfft(l);
    191200  rfftf_(&l, inout, ws_rfft);
    192   for (int k= 2;k<=(l+1)/2;k++) inout[2*k-2]=-inout[2*k-2];
    193 }
    194 
    195 void FFTPackServer::fftf(int l, double* inout)
     201  //  for (int k= 2;k<=(l+1)/2;k++) inout[2*k-2]=-inout[2*k-2];
     202}
     203
     204void FFTPackServer::fftf(int l, r_8* inout)
    196205{
    197206  checkint_dfft(l);
    198207  dfftf_(&l, inout, ws_dfft);
    199   for (int k= 2;k<=(l+1)/2;k++) inout[2*k-2]=-inout[2*k-2];
    200 }
    201 
    202 void FFTPackServer::fftf(int l, complex<float>* inout)
     208  //  for (int k= 2;k<=(l+1)/2;k++) inout[2*k-2]=-inout[2*k-2];
     209}
     210
     211void FFTPackServer::fftf(int l, complex<r_4>* inout)
    203212{
    204213  checkint_cfft(l);
    205   cfftf_(&l, (float *)(inout), ws_cfft);
    206 
    207   /*
    208   float* foo = new float[2*l];
    209   int i;
    210   for (i=0;i<l;i++){
    211     foo[2*i]=inout[i].real();
    212     foo[2*i+1]=inout[i].imag();
     214  cfftf_(&l, (r_4 *)(inout), ws_cfft);
     215}
     216
     217void FFTPackServer::fftf(int l, complex<r_8>* inout)
     218{
     219  checkint_cdfft(l);
     220  cdfftf_(&l, (r_8*)(inout), ws_cdfft);
     221}
     222
     223void FFTPackServer::fftb(int l, r_4* inout)
     224{
     225  checkint_rfft(l);
     226  rfftb_(&l, inout, ws_rfft);
     227}
     228
     229void FFTPackServer::fftb(int l, r_8* inout)
     230{
     231  checkint_dfft(l);
     232  dfftb_(&l, inout, ws_dfft);
     233}
     234
     235void FFTPackServer::fftb(int l, complex<r_4>* inout)
     236{
     237  checkint_cfft(l);
     238  cfftb_(&l, (r_4 *)(inout), ws_cfft);
     239}
     240
     241void FFTPackServer::fftb(int l, complex<r_8>* inout)
     242{
     243  checkint_cdfft(l);
     244  cdfftb_(&l, (r_8 *)(inout), ws_cdfft);
     245}
     246
     247// Methodes pour reordonner les donnees
     248
     249/* --Methode-- */
     250void FFTPackServer::ReShapetoReal( TVector< complex<r_8> > const & in, TVector< r_8 >  & out)
     251{
     252  int n = in.NElts();
     253  int ncs = (fabs(in(n-1).imag()) > 1.e-12) ? ncs = 2*n-1 : ncs = n*2-2;
     254  out.ReSize(ncs);
     255  int k;
     256  out(0) = in(0).real();
     257  for(k=1;k<n-1;k++) {
     258    out(2*k-1) = in(k).real();
     259    out(2*k) = in(k).imag();
    213260  }
    214   cfftf_(&l, foo, ws_cfft);
    215   inout[0]=complex<float> (foo[0],foo[1]);
    216   for (i=1;i<l;i++) inout[l-i]= complex<float> (foo[2*i], foo[2*i+1]);
    217   delete[] foo;
    218   */
    219 }
    220 
    221 void FFTPackServer::fftf(int l, complex<double>* inout)
    222 {
    223   checkint_cdfft(l);
    224   cdfftf_(&l, (double*)(inout), ws_cdfft);
    225   /*
    226   double* foo=new double[2*l];
    227   int i;
    228   for (i=0;i<l;i++){
    229     foo[2*i]=inout[i].real();
    230     foo[2*i+1]=inout[i].imag();
     261  if (ncs == n*2-2)  out(ncs-1) = in(n-1).real();
     262  else { out(ncs-2) = in(n-1).real();  out(ncs-1) = in(n-1).imag(); }
     263}
     264
     265/* --Methode-- */
     266void FFTPackServer::ReShapetoReal( TVector< complex<r_4> > const & in, TVector< r_4 >  & out)
     267{
     268  int n = in.NElts();
     269  int ncs = (fabs(in(n-1).imag()) > 1.e-12) ? ncs = 2*n-1 : ncs = n*2-2;
     270  out.ReSize(ncs);
     271  int k;
     272  out(0) = in(0).real();
     273  for(k=1;k<n-1;k++) {
     274    out(2*k-1) = in(k).real();
     275    out(2*k) = in(k).imag();
    231276  }
    232   cdfftf_(&l, foo, ws_cdfft);
    233   inout[0]=complex<double> (foo[0],foo[1]);
    234   for (i=1;i<l;i++) {
    235     inout[l-i]= complex<double> (foo[2*i],foo[2*i+1]);
    236   }
    237   delete[] foo;
    238   */
    239 }
    240 
    241 void FFTPackServer::fftb(int l, float* inout)
    242 {
    243   checkint_rfft(l);
    244   rfftf_(&l, inout, ws_rfft);
    245 }
    246 
    247 void FFTPackServer::fftb(int l, double* inout)
    248 {
    249   checkint_dfft(l);
    250   dfftf_(&l, inout, ws_dfft);
    251 }
    252 
    253 void FFTPackServer::fftb(int l, complex<float>* inout)
    254 {
    255   checkint_cfft(l);
    256   cfftb_(&l, (float *)(inout), ws_cfft);
    257   /*
    258   float* foo = new float[2*l];
    259   int i;
    260   for (i=0;i<l;i++){
    261     foo[2*i]=inout[i].real();
    262     foo[2*i+1]=inout[i].imag();
    263   }
    264   cfftf_(&l, foo, ws_cfft);
    265   for (i=0;i<l;i++) inout[i]=complex<float> (foo[2*i],foo[2*i+1]);
    266   delete[] foo;
    267   */
    268 }
    269 
    270 void FFTPackServer::fftb(int l, complex<double>* inout)
    271 {
    272   checkint_cdfft(l);
    273   cfftb_(&l, (float *)(inout), ws_cfft);
    274   /*
    275   double* foo = new double[2*l];
    276   int i;
    277   for (i=0;i<l;i++){
    278     foo[2*i]=inout[i].real();
    279     foo[2*i+1]=inout[i].imag();
    280   }
    281   cdfftf_(&l, foo, ws_cdfft);
    282   for (i=0;i<l;i++) inout[i]=complex<double> (foo[2*i],foo[2*i+1]);
    283   delete[] foo;
    284   */
    285 }
    286 
     277  if (ncs == n*2-2)  out(ncs-1) = in(n-1).real();
     278  else { out(ncs-2) = in(n-1).real();  out(ncs-1) = in(n-1).imag(); }
     279}
     280
     281
     282/* --Methode-- */
     283void FFTPackServer::ReShapetoCompl(TVector< r_8 > const & in, TVector< complex<r_8> > & out)
     284{
     285  uint_4 n =  in.NElts();
     286  uint_4 ncs = n/2+1;
     287  uint_4 nc = (n%2 != 0) ? n/2+1 : n/2;
     288  out.ReSize(ncs);
     289  out(0) = complex<r_8> (in(0),0.);
     290  int k;
     291  for(int k=1;k<nc;k++)
     292    out(k) =  complex<r_4> (in(2*k-1), in(2*k));
     293  if (n%2 == 0) out(ncs-1) = complex<r_8>(in(n-1), 0.);
     294
     295}
     296
     297/* --Methode-- */
     298void FFTPackServer::ReShapetoCompl(TVector< r_4 > const & in, TVector< complex<r_4> > & out)
     299{
     300  uint_4 n =  in.NElts();
     301  uint_4 ncs = n/2+1;
     302  uint_4 nc = (n%2 != 0) ? n/2+1 : n/2;
     303  out.ReSize(ncs);
     304  out(0) = complex<r_4> (in(0),0.);
     305  int k;
     306  for(int k=1;k<nc;k++)
     307    out(k) =  complex<r_4> (in(2*k-1), in(2*k));
     308  if (n%2 == 0) out(ncs-1) = complex<r_4>(in(n-1), 0.);
     309}
  • trunk/SophyaLib/NTools/fftpserver.h

    r710 r717  
    1717  virtual FFTServerInterface * Clone();
    1818
     19  // Transforme unidimensionnel sur des double
    1920  virtual void FFTForward(TVector< complex<r_8> > const & in, TVector< complex<r_8> > & out);
    2021  virtual void FFTBackward(TVector< complex<r_8> > const & in, TVector< complex<r_8> > & out);
     
    2223  virtual void FFTBackward(TVector< complex<r_8> > const & in, TVector< r_8 > & out);
    2324
     25  // Transforme unidimensionnel sur des float
    2426  virtual void FFTForward(TVector< complex<r_4> > const & in, TVector< complex<r_4> > & out);
    2527  virtual void FFTBackward(TVector< complex<r_4> > const & in, TVector< complex<r_4> > & out);
     
    3638  virtual void fftf(int l, complex<double>* inout);
    3739  virtual void fftb(int l, complex<double>* inout);
     40
     41// Methodes statiques pour reordonner les donnees
     42  virtual  void ReShapetoReal( TVector< complex<r_8> > const & in, TVector< r_8 >  & out);
     43  virtual  void ReShapetoReal( TVector< complex<r_4> > const & in, TVector< r_4 >  & out);
     44
     45  virtual void ReShapetoCompl(TVector< r_8 > const & in, TVector< complex<r_8> > & out);
     46  virtual void ReShapetoCompl(TVector< r_4 > const & in, TVector< complex<r_4> > & out);
    3847
    3948 protected:
  • trunk/SophyaLib/NTools/fftservintf.cc

    r710 r717  
    77{
    88  _info = info;
    9   _fgnorm = false;
     9  _fgnorm = true;
    1010}
    1111
     
    115115
    116116
    117 // Methodes pour reordonner les donnees
    118 
    119 /* --Methode-- */
    120 void FFTServerInterface::ReShapetoReal( TVector< complex<r_8> > const & in, TVector< r_8 >  & out)
    121 {
    122   int N = in.NElts();
    123   out.ReSize(in.NElts()*2);
    124   out(0) = in(0).real();
    125   if (in(in.NElts()-1).imag() == 0)  {
    126     for(int i=1; i<in.NElts(); i++)
    127       out(i) = in(i).real();
    128 
    129     for(int i=1; i<in.NElts(); i++)
    130       out(i+in.NElts()-1) = in(in.NElts()-i-1).imag();
    131 
    132   }
    133   else    {
    134     for(int i=1; i<in.NElts(); i++)
    135       out(i) = in(i).real();
    136     for(int i=1; i<in.NElts(); i++)
    137       out(i+in.NElts()-1) = in(in.NElts()-i).imag();
    138   }
    139 }
    140 /* --Methode-- */
    141 void FFTServerInterface::ReShapetoReal( TVector< complex<r_4> > const & in, TVector< r_4 >  & out)
    142 {
    143   int N = in.NElts();
    144   out.ReSize(in.NElts()*2);
    145   out(0) = in(0).real();
    146   if (in(in.NElts()-1).imag() == 0)  {
    147     for(int i=1; i<in.NElts(); i++)
    148       out(i) = in(i).real();
    149 
    150     for(int i=1; i<in.NElts(); i++)
    151       out(i+in.NElts()-1) = in(in.NElts()-i-1).imag();
    152 
    153   }
    154   else    {
    155     for(int i=1; i<in.NElts(); i++)
    156       out(i) = in(i).real();
    157     for(int i=1; i<in.NElts(); i++)
    158       out(i+in.NElts()-1) = in(in.NElts()-i).imag();
    159   }
    160 }
    161 
    162 
    163 /* --Methode-- */
    164 void FFTServerInterface::ReShapetoCompl(TVector< r_8 > const & in, TVector< complex<r_8> > & out)
    165 {
    166   int N = in.NElts();
    167   out.ReSize(N/2+1);
    168   out(0) = complex<r_8> (in(0),0.);
    169 
    170   if(in.NElts()%2 !=0) {
    171     for(int k=1;k<=N/2+1;k++) {
    172       out(k) =  complex<r_8> (in(k),in(N-k));
    173     }
    174   }
    175   else  {
    176     for(int k=1;k<N/2;k++)  {
    177       out(k) =  complex<r_8> (in(k),in(N-k));
    178     }
    179     out(N/2) = complex<r_8> (in(N/2),0.);
    180   }
    181 
    182 }
    183 
    184 /* --Methode-- */
    185 void FFTServerInterface::ReShapetoCompl(TVector< r_4 > const & in, TVector< complex<r_4> > & out)
    186 {
    187   int N = in.NElts();
    188   out.ReSize(N/2+1);
    189   out(0) = complex<r_4> (in(0),0.);
    190 
    191   if(in.NElts()%2 !=0) {
    192     for(int k=1;k<=N/2+1;k++) {
    193       out(k) =  complex<r_4> (in(k),in(N-k));
    194     }
    195   }
    196   else  {
    197     for(int k=1;k<N/2;k++)  {
    198       out(k) =  complex<r_4> (in(k),in(N-k));
    199     }
    200     out(N/2) = complex<r_4> (in(N/2),0.);
    201   }
    202 
    203 }
    204 
  • trunk/SophyaLib/NTools/fftservintf.h

    r710 r717  
    5353  virtual void FFTBackward(TMatrix< complex<r_4> > const & in, TMatrix< r_4 > & out);
    5454
    55 // Methodes statiques pour reordonner les donnees
    56   virtual  void ReShapetoReal( TVector< complex<r_8> > const & in, TVector< r_8 >  & out);
    57   virtual  void ReShapetoReal( TVector< complex<r_4> > const & in, TVector< r_4 >  & out);
    58 
    59   virtual void ReShapetoCompl(TVector< r_8 > const & in, TVector< complex<r_8> > & out);
    60   virtual void ReShapetoCompl(TVector< r_4 > const & in, TVector< complex<r_4> > & out);
    6155
    6256
Note: See TracChangeset for help on using the changeset viewer.