Changeset 196


Ignore:
Timestamp:
01/19/10 16:34:34 (14 years ago)
Author:
pinsard
Message:

complete param and keyword in headers

Location:
trunk/procs
Files:
25 edited

Legend:

Unmodified
Added
Removed
  • trunk/procs/ajoutvectz.pro

    r194 r196  
    1010;       et V des valeurs de la composante horizontale et verticale du 
    1111;       champ de vecteurs a tracer. 
     12; 
    1213;       par ex: 
    1314;       vecteur={matriceu:lec('unsurface'),matricev:lec('vnsurface')} 
     
    3132; @keyword VECTMAX 
    3233; norme minimun des vecteurs a tracer 
     34; 
     35; @keyword VECTMIN 
     36; 
     37; @keyword VECTMAX 
     38; 
     39; @keyword _EXTRA 
     40; 
     41; @keyword TYPE 
    3342; 
    3443; @examples 
     
    4857; 
    4958; @todo 
     59;  
     60; fix pb in param vecteur description with idldoc. It seems that {...} 
     61; have side effects 
     62; 
    5063; in example current pb with lec('vnsurface') 
    5164; 
  • trunk/procs/data_read.pro

    r195 r196  
    1313; 
    1414; @param IOVER {in}{required} 
     15; 
     16; @keyword ALL_DATA 
     17; 
     18; @keyword USE_LARGE_DOMAIN 
     19; 
     20; @keyword _EXTRA 
    1521; 
    1622; @returns 
  • trunk/procs/def_dbase.pro

    r182 r196  
    55; @param EXPID {in}{required}{type=string} 
    66; 
     7; @returns 
     8; -1 in case of error 
    79; @examples 
    810; 
  • trunk/procs/extract_str.pro

    r185 r196  
    1616; last character of the substring to 
    1717; be extracted from LINE 
     18; 
     19; @returns 
     20; -1 in case of error 
    1821; 
    1922; @examples 
     
    3942; 
    4043  compile_opt idl2, strictarrsubs 
    41 ; 
    4244; 
    4345; Return to caller if errors 
  • trunk/procs/macros/make_depth.pro

    r194 r196  
    44; 
    55; @param FILE_NAME {in}{required}{type=string} 
    6 ; 
    76; 
    87; @param NCDF_DB {in}{required}{type=string} 
  • trunk/procs/macros/make_eos_sal.pro

    r194 r196  
    3131; @param NCDF_DB {in}{required}{type=string} 
    3232; <location>:<path> or just <path> 
     33; 
     34; @keyword BOXZOOM 
     35; 
     36; @keyword TIME_1 
     37; 
     38; @keyword TIME_2 
     39; 
     40; @keyword ALL_DATA 
     41; 
     42; @keyword ZMTYP 
    3343; 
    3444; @returns 
  • trunk/procs/mask_z.pro

    r189 r196  
    44; 
    55; mask pltz data according to bathy or box 
     6; 
     7; @param FLD 
    68; 
    79; @param CMD {in}{required}{type=structure} 
  • trunk/procs/meshes/build_mesh_glosea.pro

    r173 r196  
    11;+ 
     2; 
     3; @keyword I_INDEX 
     4; 
     5; @keyword DELTA_I 
     6; 
     7; @keyword J_INDEX 
     8; 
     9; @keyword DELTA_J 
     10; 
     11; @keyword K_INDEX 
     12; 
     13; @keyword DELTA_K 
     14; 
     15; @keyword ZONAL 
    216; 
    317; @uses 
  • trunk/procs/meshes/mesh_from_file.pro

    r195 r196  
    11;+ 
     2; 
     3; @param MODEL 
     4; 
     5; @param FILE_NAME {in}{required}{type=string} 
     6; 
     7; @param NCDF_DB {in}{required}{type=string} 
     8; <location>:<path> or just <path> 
     9; 
     10; @param VAR_NAME {in}{required}{type=string} 
     11; variable name 
     12; 
     13; @keyword ALL_DATA 
    214; 
    315; @uses 
  • trunk/procs/meshes/mesh_gaussian.pro

    r194 r196  
    11;+ 
     2; 
     3; @param TRUNC 
     4; 
     5; @keyword IBEG 
     6; 
     7; @keyword IFIN 
     8; 
     9; @keyword JBEG 
     10; 
     11; @keyword JFIN 
     12; 
     13; @keyword ZOOM 
     14; 
     15; @keyword NO_SHIFT 
     16; 
     17; @keyword WHOLE_ARRAYS 
     18; 
     19; @keyword GLAMBOUNDARY 
    220; 
    321; @uses 
  • trunk/procs/meshes/mesh_glosea.pro

    r191 r196  
    11;+ 
     2; 
     3; @keyword I_INDEX 
     4; 
     5; @keyword DELTA_I 
     6; 
     7; @keyword J_INDEX 
     8; 
     9; @keyword DELTA_J 
     10; 
     11; @keyword K_INDEX 
     12; 
     13; @keyword DELTA_K 
     14; 
     15; @keyword ZONAL 
     16; 
     17; @keyword NO_SHIFT 
     18; 
     19; @keyword WHOLE_ARRAYS 
    220; 
    321; @uses 
     
    1735    , DELTA_K=delta_k $ 
    1836    , ZONAL=zonal $ 
    19     , NO_SHIFT = no_shift $ 
     37    , NO_SHIFT=no_shift $ 
    2038    , WHOLE_ARRAYS=whole_arrays 
    2139; 
  • trunk/procs/meshes/mesh_micom.pro

    r170 r196  
    11;+ 
     2; 
     3; @keyword I_INDEX 
     4; 
     5; @keyword DELTA_I 
     6; 
     7; @keyword J_INDEX 
     8; 
     9; @keyword DELTA_J 
     10; 
     11; @keyword K_INDEX 
     12; 
     13; @keyword DELTA_K 
     14; 
     15; @keyword ZONAL 
     16; 
     17; @keyword NO_SHIFT 
     18; 
     19; @keyword WHOLE_ARRAYS 
     20; 
     21; @keyword H_CONFIG 
     22; 
     23; @keyword V_CONFIG 
    224; 
    325; @uses 
  • trunk/procs/meshes/mesh_orca.pro

    r170 r196  
    11;+ 
     2; 
     3; @keyword I_INDEX 
     4; 
     5; @keyword DELTA_I 
     6; 
     7; @keyword J_INDEX 
     8; 
     9; @keyword DELTA_J 
     10; 
     11; @keyword K_INDEX 
     12; 
     13; @keyword DELTA_K 
     14; 
     15; @keyword ZONAL 
     16; 
     17; @keyword NO_SHIFT 
     18; 
     19; @keyword WHOLE_ARRAYS 
     20; 
     21; @keyword H_CONFIG 
     22; 
     23; @keyword V_CONFIG 
    224; 
    325; @uses 
  • trunk/procs/meshes/mesh_pcmdi.pro

    r195 r196  
    11;+ 
     2; 
     3; @param MODEL 
     4; 
     5; @keyword NO_SHIFT 
     6; 
     7; @keyword WHOLE_ARRAYS 
    28; 
    39; @uses 
  • trunk/procs/meshes/mesh_regular.pro

    r194 r196  
    11;+ 
     2; 
     3; @param DELTAX 
     4; 
     5; @param DELTAY  
     6; 
     7; @keyword INILON 
     8; 
     9; @keyword EQUATOR 
     10; 
     11; @keyword NOMASK 
     12; 
     13; @keyword MASK_FILE 
     14; 
     15; @keyword I_INDEX 
     16; 
     17; @keyword DELTA_I 
     18; 
     19; @keyword J_INDEX 
     20; 
     21; @keyword DELTA_J 
     22; 
     23; @keyword NO_SHIFT 
     24; 
     25; @keyword WHOLE_ARRAYS 
     26; 
     27; @keyword REVERSE_Y 
     28; 
     29; @keyword GLAMBOUNDARY 
    230; 
    331; @uses 
  • trunk/procs/meshes/mesh_tao.pro

    r194 r196  
    11;+ 
     2; 
     3; @keyword NO_SHIFT 
     4; 
     5; @keyword WHOLE_ARRAYS 
    26; 
    37; @uses 
  • trunk/procs/meshes/mesh_um.pro

    r194 r196  
    11;+ 
     2; 
     3; @param ISIZE 
     4; 
     5; @param JSIZE 
     6; 
     7; @param TYPE 
     8; 
     9; @keyword NO_SHIFT 
     10; 
     11; @keyword WHOLE_ARRAYS 
     12; 
     13; @keyword REVERSE_Y 
    214; 
    315; @uses 
  • trunk/procs/nc_put.pro

    r195 r196  
    55; fdl.data, fld.units, fld.short_name, fld.long_name, fld.missing_value, fld.direc 
    66; with fld.direc= data type (x,xy,xyzt,yt,etc...) 
     7; 
     8; @param FILE_NAME {in}{required}{type=string} 
    79; 
    810; @keyword NCDF_DB {required}{type=string} 
  • trunk/procs/saxo_mods/ncdf_meshmicom.pro

    r194 r196  
    11;+ 
     2; 
     3; @param FILENAME  
     4; 
     5; @keyword GLAMBOUNDARY 
     6; 
     7; @keyword _EXTRA 
    28; 
    39; @uses 
  • trunk/procs/saxo_mods/plttg.pro

    r194 r196  
    197197;       l''argument et le mot cle sont specifies en meme temps, c''est 
    198198;       la valeur specifiee par le mot cle qui est retenue. 
     199; 
     200; @keyword XT 
     201; 
     202; @keyword YT 
     203; 
     204; @keyword ZT 
     205; 
     206; @keyword TT 
     207; 
     208; @keyword _EXTRA 
    199209; 
    200210; @uses 
  • trunk/procs/saxo_mods/skewness_4d.pro

    r194 r196  
    1818; If set to a non-zero value, computations are done in 
    1919; double precision arithmetic. 
     20; 
     21; @keyword NVAL 
     22;  
     23; @returns 
     24; -1 in case of error 
    2025; 
    2126; @uses 
  • trunk/procs/saxo_mods/skewness_num.pro

    r194 r196  
    1515; If set to a non-zero value, computations are done in 
    1616; double precision arithmetic. 
     17; 
     18; @keyword NAN  
     19; 
     20; @returns 
     21; -1 in case of error 
    1722; 
    1823; @history 
  • trunk/procs/tools_wavelets/wave_signif.pro

    r191 r196  
    2727; 
    2828;          If 0 (the default), then just do a regular chi-square test, 
    29 ;                       i.e. Eqn (18) from Torrence & Compo. 
     29;         i.e. Eqn (18) from Torrence & Compo. 
    3030;          If 1, then do a "time-average" test, i.e. Eqn (23). 
    31 ;                       In this case, DOF should be set to NA, the number 
    32 ;                       of local wavelet spectra that were averaged together. 
    33 ;                       For the Global Wavelet Spectrum, this would be NA=N, 
    34 ;                       where N is the number of points in your time series. 
     31;         In this case, DOF should be set to NA, the number 
     32;         of local wavelet spectra that were averaged together. 
     33;         For the Global Wavelet Spectrum, this would be NA=N, 
     34;         where N is the number of points in your time series. 
    3535;          If 2, then do a "scale-average" test, i.e. Eqns (25)-(28). 
    36 ;                       In this case, DOF should be set to a 
    37 ;                       two-element vector [S1,S2], which gives the scale 
    38 ;                       range that was averaged together. 
    39 ;                       e.g. if one scale-averaged scales between 2 and 8, 
     36;         In this case, DOF should be set to a 
     37;         two-element vector [S1,S2], which gives the scale 
     38;         range that was averaged together. 
     39;         e.g. if one scale-averaged scales between 2 and 8, 
    4040;                     then DOF=[2,8]. 
    4141; 
     
    7676;          IF SIGTEST=2, then DOF = [S1,S2], the range of scales averaged. 
    7777; 
    78 ;       Note: IF SIGTEST=1, then DOF can be a vector (same length as SCALEs), 
    79 ;                  in which case NA is assumed to vary with SCALE. 
    80 ;                  This allows one to average different numbers of times 
    81 ;                  together at different scales, or to take into account 
    82 ;                  things like the Cone of Influence. 
    83 ;                  See discussion following Eqn (23) in Torrence & Compo. 
     78;     Note: IF SIGTEST=1, then DOF can be a vector (same length as SCALEs), 
     79;        in which case NA is assumed to vary with SCALE. 
     80;        This allows one to average different numbers of times 
     81;        together at different scales, or to take into account 
     82;        things like the Cone of Influence. 
     83;        See discussion following Eqn (23) in Torrence & Compo. 
    8484; 
    8585; @keyword GWS {in}{optional} 
     
    101101; to the SCALEs. 
    102102; 
     103; @keyword SAVG 
     104; 
     105; @keyword SMID 
     106; 
     107; @keyword CDELTA 
     108; 
     109; @keyword PSI0 
    103110; 
    104111; @version 
     
    107114;- 
    108115FUNCTION wave_signif, y, dt, scale, sigtest $ 
    109         , MOTHER=mother  $ 
     116        , MOTHER=mother  $ 
    110117        , PARAM=param $ 
    111         , LAG1=lag1 $ 
     118        , LAG1=lag1 $ 
    112119        , SIGLVL=siglvl $ 
    113120        , DOF=dof $ 
    114         , GWS=gws $ 
     121        , GWS=gws $ 
    115122        , CONFIDENCE=confidence $ 
    116         , FFT_THEOR=fft_theor  $ 
     123        , FFT_THEOR=fft_theor  $ 
    117124        , PERIOD=period $ 
    118         , SAVG=savg $ 
     125        , SAVG=savg $ 
    119126        , SMID=smid $ 
    120127        , CDELTA=cdelta  $ 
     
    122129; 
    123130  compile_opt idl2, strictarrsubs 
    124 ;        
    125         ON_ERROR,2 
    126         IF (N_ELEMENTS(y) LT 1) THEN MESSAGE,'Time series Y must be input' 
    127         IF (N_ELEMENTS(dt) LT 1) THEN MESSAGE,'DT must be input' 
    128         IF (N_ELEMENTS(scale) LT 1) THEN MESSAGE,'Scales must be input' 
    129         IF (N_PARAMS() LT 4) THEN sigtest = 0   ; the default 
    130         IF (N_ELEMENTS(y) EQ 1) THEN variance=y ELSE variance=(MOMENT(y))[1] 
    131          
     131; 
     132 ON_ERROR,2 
     133 IF (N_ELEMENTS(y) LT 1) THEN MESSAGE,'Time series Y must be input' 
     134 IF (N_ELEMENTS(dt) LT 1) THEN MESSAGE,'DT must be input' 
     135 IF (N_ELEMENTS(scale) LT 1) THEN MESSAGE,'Scales must be input' 
     136 IF (N_PARAMS() LT 4) THEN sigtest = 0   ; the default 
     137 IF (N_ELEMENTS(y) EQ 1) THEN variance=y ELSE variance=(MOMENT(y))[1] 
     138  
    132139;....check keywords & optional inputs 
    133         IF (N_ELEMENTS(mother) LT 1) THEN mother = 'MORLET' 
    134         IF (N_ELEMENTS(param) LT 1) THEN param = -1 
    135         IF (N_ELEMENTS(siglvl) LT 1) THEN siglvl = 0.95 
    136         IF (N_ELEMENTS(lag1) LT 1) THEN lag1 = 0.0 
    137         confidence = KEYWORD_SET(confidence) 
    138          
    139         lag1 = lag1[0] 
    140          
    141         J = N_ELEMENTS(scale) - 1 
    142         s0 = MIN(scale) 
    143         dj = ALOG(scale[1]/scale[0])/ALOG(2) 
    144          
    145         CASE (STRUPCASE(mother)) OF 
    146         'MORLET': BEGIN 
    147                         IF (param EQ -1) THEN k0=6d ELSE k0=param 
    148                         fourier_factor = (4*!PI)/(k0 + SQRT(2+k0^2)) ; [Sec.3h] 
    149                         empir = [2.,-1,-1,-1] 
    150                         IF (k0 EQ 6) THEN empir[1:3]=[0.776,2.32,0.60] 
    151                 END 
    152         'PAUL': BEGIN ;****************** PAUL 
    153                         IF (param EQ -1) THEN m=4d ELSE m=param 
    154                         fourier_factor = 4*!PI/(2*m+1) 
    155                         empir = [2.,-1,-1,-1] 
    156                         IF (m EQ 4) THEN empir[1:3]=[1.132,1.17,1.5] 
    157                 END 
    158         'DOG': BEGIN ;******************* DOG 
    159                         IF (param EQ -1) THEN m=2 ELSE m=param 
    160                         fourier_factor = 2*!PI*SQRT(2./(2*m+1)) 
    161                         empir = [1.,-1,-1,-1] 
    162                         IF (m EQ 2) THEN empir[1:3] = [3.541,1.43,1.4] 
    163                         IF (m EQ 6) THEN empir[1:3] = [1.966,1.37,0.97] 
    164                 END 
    165         ENDCASE 
    166          
    167         period = scale*fourier_factor 
    168         dofmin = empir[0] ; Degrees of freedom with no smoothing 
    169         Cdelta = empir[1] ; reconstruction factor 
    170         gamma = empir[2]  ; time-decorrelation factor 
    171         dj0 = empir[3]    ; scale-decorrelation factor 
     140 IF (N_ELEMENTS(mother) LT 1) THEN mother = 'MORLET' 
     141 IF (N_ELEMENTS(param) LT 1) THEN param = -1 
     142 IF (N_ELEMENTS(siglvl) LT 1) THEN siglvl = 0.95 
     143 IF (N_ELEMENTS(lag1) LT 1) THEN lag1 = 0.0 
     144 confidence = KEYWORD_SET(confidence) 
     145  
     146 lag1 = lag1[0] 
     147  
     148 J = N_ELEMENTS(scale) - 1 
     149 s0 = MIN(scale) 
     150 dj = ALOG(scale[1]/scale[0])/ALOG(2) 
     151  
     152 CASE (STRUPCASE(mother)) OF 
     153 'MORLET': BEGIN 
     154   IF (param EQ -1) THEN k0=6d ELSE k0=param 
     155   fourier_factor = (4*!PI)/(k0 + SQRT(2+k0^2)) ; [Sec.3h] 
     156   empir = [2.,-1,-1,-1] 
     157   IF (k0 EQ 6) THEN empir[1:3]=[0.776,2.32,0.60] 
     158  END 
     159 'PAUL': BEGIN ;****************** PAUL 
     160   IF (param EQ -1) THEN m=4d ELSE m=param 
     161   fourier_factor = 4*!PI/(2*m+1) 
     162   empir = [2.,-1,-1,-1] 
     163   IF (m EQ 4) THEN empir[1:3]=[1.132,1.17,1.5] 
     164  END 
     165 'DOG': BEGIN ;******************* DOG 
     166   IF (param EQ -1) THEN m=2 ELSE m=param 
     167   fourier_factor = 2*!PI*SQRT(2./(2*m+1)) 
     168   empir = [1.,-1,-1,-1] 
     169   IF (m EQ 2) THEN empir[1:3] = [3.541,1.43,1.4] 
     170   IF (m EQ 6) THEN empir[1:3] = [1.966,1.37,0.97] 
     171  END 
     172 ENDCASE 
     173  
     174 period = scale*fourier_factor 
     175 dofmin = empir[0] ; Degrees of freedom with no smoothing 
     176 Cdelta = empir[1] ; reconstruction factor 
     177 gamma = empir[2]  ; time-decorrelation factor 
     178 dj0 = empir[3]    ; scale-decorrelation factor 
    172179 
    173180;....significance levels [Sec.4] 
    174         freq = dt/period  ; normalized frequency 
    175         fft_theor = (1-lag1^2)/(1-2*lag1*COS(freq*2*!PI)+lag1^2)  ; [Eqn(16)] 
    176         fft_theor = variance*fft_theor  ; include time-series variance 
    177         IF (N_ELEMENTS(gws) EQ (J+1)) THEN fft_theor = gws 
    178         signif = fft_theor 
    179  
    180         CASE (sigtest) OF 
    181  
    182         0: BEGIN   ; no smoothing, DOF=dofmin 
    183                 dof = dofmin 
    184                 signif = fft_theor*CHISQR_CVF(1. - siglvl,dof)/dof   ; [Eqn(18)] 
    185                 IF confidence THEN BEGIN 
    186                         sig = (1. - siglvl)/2. 
    187                         chisqr = dof/[CHISQR_CVF(sig,dof),CHISQR_CVF(1.-sig,dof)] 
    188                         signif = fft_theor # chisqr 
    189                 ENDIF 
    190                 END 
    191  
    192         1: BEGIN   ; time-averaged, DOFs depend upon scale [Sec.5a] 
    193                 IF (N_ELEMENTS(dof) LT 1) THEN dof = dofmin 
    194                 IF (gamma EQ -1) THEN MESSAGE, $ 
    195                         'Gamma (decorrelation factor) not defined for '+mother+ $ 
    196                         ' with param='+STRTRIM(param,2) 
    197                 IF (N_ELEMENTS(dof) EQ 1) THEN dof = FLTARR(J+1) + dof 
    198                 dof = dof > 1 
    199                 dof = dofmin*SQRT( 1 + (dof*dt/gamma/scale)^2 ) ; [Eqn(23)] 
    200                 dof = dof > dofmin   ; minimum DOF is dofmin 
    201                 IF (NOT confidence) THEN BEGIN 
    202                         FOR a1=0,J DO BEGIN 
    203                                 chisqr = CHISQR_CVF(1. - siglvl,dof[a1])/dof[a1] 
    204                                 signif[a1] = fft_theor[a1]*chisqr 
    205                         ENDFOR 
    206                 ENDIF ELSE BEGIN 
    207                         signif = FLTARR(J+1,2) 
    208                         sig = (1. - siglvl)/2. 
    209                         FOR a1=0,J DO BEGIN 
    210                                 chisqr = dof[a1]/ $ 
    211                                         [CHISQR_CVF(sig,dof[a1]),CHISQR_CVF(1.-sig,dof[a1])] 
    212                                 signif[a1,*] = fft_theor[a1]*chisqr 
    213                         ENDFOR 
    214                 ENDELSE 
    215                 END 
    216  
    217         2: BEGIN  ; scale-averaged, DOFs depend upon scale range [Sec.5b] 
    218                 IF (N_ELEMENTS(dof) NE 2) THEN $ 
    219                         MESSAGE,'DOF must be set to [S1,S2], the range of scale-averages' 
    220                 IF (Cdelta EQ -1) THEN MESSAGE, $ 
    221                         'Cdelta & dj0 not defined for '+mother+ $ 
    222                         ' with param='+STRTRIM(param,2) 
    223                 s1 = dof[0] 
    224                 s2 = dof[1] 
    225                 avg = WHERE((scale GE s1) AND (scale LE s2),navg) 
    226                 IF (navg LT 1) THEN MESSAGE,'No valid scales between ' + $ 
    227                         STRTRIM(s1,2) + ' and ' + STRTRIM(s2,2) 
    228                 s1 = MIN(scale(avg)) 
    229                 s2 = MAX(scale(avg)) 
    230                 Savg = 1./TOTAL(1./scale(avg))       ; [Eqn(25)] 
    231                 Smid = EXP((ALOG(s1)+ALOG(s2))/2.)   ; power-of-two midpoint 
    232                 dof = (dofmin*navg*Savg/Smid)*SQRT(1 + (navg*dj/dj0)^2)  ; [Eqn(28)] 
    233                 fft_theor = Savg*TOTAL(fft_theor(avg)/scale(avg))  ; [Eqn(27)] 
    234                 chisqr = CHISQR_CVF(1. - siglvl,dof)/dof 
    235                 IF confidence THEN BEGIN 
    236                         sig = (1. - siglvl)/2. 
    237                         chisqr = dof/[CHISQR_CVF(sig,dof),CHISQR_CVF(1.-sig,dof)] 
    238                 ENDIF 
    239                 signif = (dj*dt/Cdelta/Savg)*fft_theor*chisqr  ; [Eqn(26)] 
    240                 END 
    241  
    242         ENDCASE 
    243  
    244         RETURN,signif 
     181 freq = dt/period  ; normalized frequency 
     182 fft_theor = (1-lag1^2)/(1-2*lag1*COS(freq*2*!PI)+lag1^2)  ; [Eqn(16)] 
     183 fft_theor = variance*fft_theor  ; include time-series variance 
     184 IF (N_ELEMENTS(gws) EQ (J+1)) THEN fft_theor = gws 
     185 signif = fft_theor 
     186 
     187 CASE (sigtest) OF 
     188 
     189 0: BEGIN   ; no smoothing, DOF=dofmin 
     190  dof = dofmin 
     191  signif = fft_theor*CHISQR_CVF(1. - siglvl,dof)/dof   ; [Eqn(18)] 
     192  IF confidence THEN BEGIN 
     193   sig = (1. - siglvl)/2. 
     194   chisqr = dof/[CHISQR_CVF(sig,dof),CHISQR_CVF(1.-sig,dof)] 
     195   signif = fft_theor # chisqr 
     196  ENDIF 
     197  END 
     198 
     199 1: BEGIN   ; time-averaged, DOFs depend upon scale [Sec.5a] 
     200  IF (N_ELEMENTS(dof) LT 1) THEN dof = dofmin 
     201  IF (gamma EQ -1) THEN MESSAGE, $ 
     202   'Gamma (decorrelation factor) not defined for '+mother+ $ 
     203   ' with param='+STRTRIM(param,2) 
     204  IF (N_ELEMENTS(dof) EQ 1) THEN dof = FLTARR(J+1) + dof 
     205  dof = dof > 1 
     206  dof = dofmin*SQRT( 1 + (dof*dt/gamma/scale)^2 ) ; [Eqn(23)] 
     207  dof = dof > dofmin   ; minimum DOF is dofmin 
     208  IF (NOT confidence) THEN BEGIN 
     209   FOR a1=0,J DO BEGIN 
     210    chisqr = CHISQR_CVF(1. - siglvl,dof[a1])/dof[a1] 
     211    signif[a1] = fft_theor[a1]*chisqr 
     212   ENDFOR 
     213  ENDIF ELSE BEGIN 
     214   signif = FLTARR(J+1,2) 
     215   sig = (1. - siglvl)/2. 
     216   FOR a1=0,J DO BEGIN 
     217    chisqr = dof[a1]/ $ 
     218     [CHISQR_CVF(sig,dof[a1]),CHISQR_CVF(1.-sig,dof[a1])] 
     219    signif[a1,*] = fft_theor[a1]*chisqr 
     220   ENDFOR 
     221  ENDELSE 
     222  END 
     223 
     224 2: BEGIN  ; scale-averaged, DOFs depend upon scale range [Sec.5b] 
     225  IF (N_ELEMENTS(dof) NE 2) THEN $ 
     226   MESSAGE,'DOF must be set to [S1,S2], the range of scale-averages' 
     227  IF (Cdelta EQ -1) THEN MESSAGE, $ 
     228   'Cdelta & dj0 not defined for '+mother+ $ 
     229   ' with param='+STRTRIM(param,2) 
     230  s1 = dof[0] 
     231  s2 = dof[1] 
     232  avg = WHERE((scale GE s1) AND (scale LE s2),navg) 
     233  IF (navg LT 1) THEN MESSAGE,'No valid scales between ' + $ 
     234   STRTRIM(s1,2) + ' and ' + STRTRIM(s2,2) 
     235  s1 = MIN(scale(avg)) 
     236  s2 = MAX(scale(avg)) 
     237  Savg = 1./TOTAL(1./scale(avg))       ; [Eqn(25)] 
     238  Smid = EXP((ALOG(s1)+ALOG(s2))/2.)   ; power-of-two midpoint 
     239  dof = (dofmin*navg*Savg/Smid)*SQRT(1 + (navg*dj/dj0)^2)  ; [Eqn(28)] 
     240  fft_theor = Savg*TOTAL(fft_theor(avg)/scale(avg))  ; [Eqn(27)] 
     241  chisqr = CHISQR_CVF(1. - siglvl,dof)/dof 
     242  IF confidence THEN BEGIN 
     243   sig = (1. - siglvl)/2. 
     244   chisqr = dof/[CHISQR_CVF(sig,dof),CHISQR_CVF(1.-sig,dof)] 
     245  ENDIF 
     246  signif = (dj*dt/Cdelta/Savg)*fft_theor*chisqr  ; [Eqn(26)] 
     247  END 
     248 
     249 ENDCASE 
     250 
     251 RETURN,signif 
    245252 
    246253END 
  • trunk/procs/tvnplot.pro

    r194 r196  
    11;+ 
     2; 
     3; @param IMAGE 
     4; 
     5; @keyword MIN 
     6; 
     7; @keyword MAX 
     8; 
     9; @keyword GAMMA 
     10; 
     11; @keyword MSK 
     12; 
     13; @keyword ERASE 
     14; 
     15; @keyword IBASE 
     16; 
     17; @keyword JBASE 
     18; 
     19; @keyword INTERP 
     20; 
     21; @keyword SCALE_X 
     22; 
     23; @keyword SCALE_Y 
     24; 
     25; @keyword PS 
    226; 
    327; @version 
     
    1236    , ERASE=erase $ 
    1337    , IBASE=ibase $ 
    14     , JBASe=jbase $ 
     38    , JBASE=jbase $ 
    1539    , INTERP=interp $ 
    1640    , SCALE_X=scale_x $ 
  • trunk/procs/update_data.pro

    r195 r196  
    11;+ 
     2; 
     3; @keyword TAB 
     4; 
     5; @keyword VNAME 
     6; 
     7; @keyword BOXZOOM 
     8; 
     9; @keyword ZUNITS 
     10; 
     11; @keyword ZINVAR 
     12; 
     13; @keyword SUFFIX 
     14; 
     15; @keyword D_DIREC 
     16; 
     17; @keyword TIME_1 
     18; 
     19; @keyword TIME_2 
     20; 
     21; @keyword NO_MEAN 
     22; 
     23; @keyword _EXTRA 
    224; 
    325; @uses 
Note: See TracChangeset for help on using the changeset viewer.