Ignore:
Timestamp:
Sep 12, 2008 9:25:36 PM (14 years ago)
Author:
ajj
Message:

Refactoring USANS functions to use root:Packages:NIST:USANS as their base to comply with canSAS proposal.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sans/Dev/trunk/NCNR_User_Procedures/USANS/LakeDesmearing_JB.ipf

    r379 r404  
    5454// main entry routine 
    5555Proc Desmear() 
     56 
     57        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder 
     58 
    5659        //check for the correct data folder, initialize if necessary 
    5760        // 
    58         if(DataFolderExists("root:DSM") == 0) 
     61        if(DataFolderExists($(USANSFolder+":DSM")) == 0) 
    5962                Execute "Init_Desmearing()" 
    6063        endif 
    6164         
    6265        //always initialize these 
    63         String/G root:DSM:gStr1 = "" 
    64         String/G root:DSM:gStr2 = "" 
    65         String/G root:DSM:gIterStr = "" 
     66        String/G $(USANSFolder+":DSM:gStr1") = "" 
     67        String/G $(USANSFolder+":DSM:gStr2") = "" 
     68        String/G $(USANSFolder+":DSM:gIterStr") = "" 
    6669         
    6770        DoWindow/F Desmear_Graph 
     
    7376Proc Init_Desmearing() 
    7477        //set up the folder(s) needed 
    75         NewDataFolder/O root:DSM 
    76         NewDataFolder/O root:myGlobals          //in case it wasn't created elsewhere 
    77          
    78         String/G root:DSM:gCurFile="" 
    79          
    80         Variable/G root:DSM:gMaxFastIter = 100                  //max number of iter in Fast convergence 
    81         Variable/G root:DSM:gMaxSlowIter = 10000 
    82          
    83         Variable/G root:DSM:gNptsExtrap = 10            //points for high q extrapolation 
    84         Variable/G root:DSM:gChi2Target = 1             //chi^2 target 
    85         Variable/G root:DSM:gPowerM = -4 
    86         Variable/G root:DSM:gDqv = 0.117                        //2005 measured slit height - see John 
    87         Variable/G root:DSM:gNq = 1 
    88         Variable/G root:DSM:gS = 0              // global varaible for Midpnt() 
    89         Variable/G root:DSM:gSmoothFac=0.03 
    90          
    91         Variable/G root:DSM:gChi2Final = 0              //chi^2 final 
    92         Variable/G root:DSM:gIterations = 0             //total number of iterations 
    93          
    94         String/G root:DSM:gStr1 = ""                            //information strings 
    95         String/G root:DSM:gStr2 = "" 
    96         String/G root:DSM:gIterStr = "" 
    97         Variable/G root:DSM:gChi2Smooth = 0 
    98          
    99         Variable/G root:DSM:gFreshMask=1 
     78        NewDataFolder/O $(USANSFolder+":DSM") 
     79        NewDataFolder/O $(USANSFolder+":myGlobals")             //in case it wasn't created elsewhere 
     80         
     81        String/G $(USANSFolder+":DSM:gCurFile")="" 
     82         
     83        Variable/G $(USANSFolder+":DSM:gMaxFastIter") = 100                     //max number of iter in Fast convergence 
     84        Variable/G $(USANSFolder+":DSM:gMaxSlowIter") = 10000 
     85         
     86        Variable/G $(USANSFolder+":DSM:gNptsExtrap") = 10               //points for high q extrapolation 
     87        Variable/G $(USANSFolder+":DSM:gChi2Target") = 1                //chi^2 target 
     88        Variable/G $(USANSFolder+":DSM:gPowerM") = -4 
     89        Variable/G $(USANSFolder+":DSM:gDqv") = 0.117                   //2005 measured slit height - see John 
     90        Variable/G $(USANSFolder+":DSM:gNq") = 1 
     91        Variable/G $(USANSFolder+":DSM:gS") = 0         // global varaible for Midpnt() 
     92        Variable/G $(USANSFolder+":DSM:gSmoothFac")=0.03 
     93         
     94        Variable/G $(USANSFolder+":DSM:gChi2Final") = 0         //chi^2 final 
     95        Variable/G $(USANSFolder+":DSM:gIterations") = 0                //total number of iterations 
     96         
     97        String/G $(USANSFolder+":DSM:gStr1") = ""                               //information strings 
     98        String/G $(USANSFolder+":DSM:gStr2") = "" 
     99        String/G $(USANSFolder+":DSM:gIterStr") = "" 
     100        Variable/G $(USANSFolder+":DSM:gChi2Smooth") = 0 
     101         
     102        Variable/G $(USANSFolder+":DSM:gFreshMask")=1 
    100103End 
    101104 
     
    163166        Variable m 
    164167        Wave FW,Q_exp 
    165          
    166         NVAR dqv = root:DSM:gDqv 
    167         NVAR NN = root:DSM:gNq 
     168 
     169        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder 
     170         
     171        NVAR dqv = $(USANSFolder+":DSM:gDqv") 
     172        NVAR NN = $(USANSFolder+":DSM:gNq") 
    168173 
    169174//      Calculate Remainder fractions and put into separate array. 
    170175        Variable lower,ii,ss,jj 
    171         Duplicate/O Q_exp root:DSM:R_wave 
    172         wave r_wave = root:DSM:R_wave 
     176        Duplicate/O Q_exp $(USANSFolder+":DSM:R_wave") 
     177        wave r_wave = $(USANSFolder+":DSM:R_wave") 
    173178         
    174179//      Make/O/D/N=75 root:DSM:SS_save  //debug 
     
    241246Function DU(ii,jj) 
    242247        Variable ii,jj 
    243          
    244         Wave Q_exp = root:DSM:Q_exp 
     248 
     249        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder 
     250         
     251        Wave Q_exp = $(USANSFolder+":DSM:Q_exp") 
    245252        Variable DU 
    246253 
     
    259266        Variable ii,jj 
    260267         
    261         Wave Q_exp=root:DSM:Q_exp 
     268        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder         
     269         
     270        Wave Q_exp=$(USANSFolder+":DSM:Q_exp") 
    262271        Variable IG,UL,UU 
    263272 
     
    284293        Variable ii,jj 
    285294 
     295        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder 
     296 
    286297        Variable FF 
    287         NVAR dqv = root:DSM:gDqv 
     298        NVAR dqv = $(USANSFolder+":DSM:gDqv") 
    288299 
    289300        FF = (1.0/dqv)*(0.5+HH(ii,jj)) 
     
    295306        Variable ii,jj 
    296307 
     308        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder 
     309 
    297310        Variable GG 
    298         NVAR dqv = root:DSM:gDqv 
     311        NVAR dqv = $(USANSFolder+":DSM:gDqv") 
    299312         
    300313        GG = (1.0/dqv)*(0.5-HH(ii,jj)) 
     
    305318        Variable ii,jj 
    306319 
    307         Wave Q_exp=root:DSM:Q_exp 
     320        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder 
     321 
     322        Wave Q_exp=$(USANSFolder+":DSM:Q_exp") 
    308323        Variable HH 
    309324         
     
    316331Function CC(ii,jj) 
    317332        Variable ii,jj 
    318          
    319         wave Q_exp = root:DSM:Q_exp 
     333 
     334        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder 
     335         
     336        wave Q_exp = $(USANSFolder+":DSM:Q_exp") 
    320337        Variable CC 
    321338         
     
    339356Function QROMO(A,B,qi,m) 
    340357        Variable A,B,qi,m 
     358 
     359        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder 
    341360         
    342361        Variable EPS,JMAX,JMAXP,KM,K 
     
    346365        K=KM+1 
    347366         
    348         Make/O/D/N=(JMAX) root:DSM:S_wave 
    349         Make/O/D/N=(JMAX+1) root:DSM:H_wave 
    350         wave S_wave=root:DSM:S_wave 
    351         wave H_wave=root:DSM:H_wave 
     367        Make/O/D/N=(JMAX) $(USANSFolder+":DSM:S_wave") 
     368        Make/O/D/N=(JMAX+1) $(USANSFolder+":DSM:H_wave") 
     369        wave S_wave=$(USANSFolder+":DSM:S_wave") 
     370        wave H_wave=$(USANSFolder+":DSM:H_wave") 
    352371        S_wave=0 
    353372        H_wave=0 
     
    386405         
    387406        Variable ii,mm,nmax,ns,dif,den,ho,hp,wi,dift 
     407 
     408        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder 
    388409         
    389410        NMAX=10 
    390411         
    391         Make/O/D/N=(NMAX) root:DSM:Ci,root:DSM:Di 
    392         wave Ci = root:DSM:Ci 
    393         wave Di = root:DSM:Di 
     412        Make/O/D/N=(NMAX) $(USANSFolder+":DSM:Ci"),$(USANSFolder+":DSM:Di") 
     413        wave Ci = $(USANSFolder+":DSM:Ci") 
     414        wave Di = $(USANSFolder+":DSM:Di") 
    394415 
    395416        NS=1 
     
    438459         
    439460        Variable it,tnm,del,ddel,x,summ,jj 
    440          
    441         NVAR S_ret = root:DSM:gS 
     461 
     462        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder 
     463         
     464        NVAR S_ret = $(USANSFolder+":DSM:gS") 
    442465         
    443466        IF (N == 0) 
     
    490513        Variable lo,hi,dialog           //=1 will present dialog for name 
    491514         
     515        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder         
     516         
    492517        String termStr="\r\n" 
    493         String destStr = "root:DSM:" 
     518        String destStr = USANSFolder+":DSM:" 
    494519        String formatStr = "%15.6g %15.6g %15.6g %15.6g %15.6g %15.6g"+termStr 
    495520         
     
    543568        String samStr="",dateStr="",str1,str2 
    544569         
    545         NVAR m = root:DSM:gPowerM                                       // power law exponent 
    546         NVAR chiFinal = root:DSM:gChi2Final             //chi^2 final 
    547         NVAR iter = root:DSM:gIterations                //total number of iterations 
     570        NVAR m = $(USANSFolder+":DSM:gPowerM")                          // power law exponent 
     571        NVAR chiFinal = $(USANSFolder+":DSM:gChi2Final")                //chi^2 final 
     572        NVAR iter = $(USANSFolder+":DSM:gIterations:")          //total number of iterations 
    548573         
    549574        //get the number of spline passes from the wave note 
     
    584609        Wave w 
    585610 
     611        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder 
     612 
    586613        Variable num_extr=25 
    587614         
    588         SetDataFolder root:DSM 
     615        SetDataFolder $(USANSFolder+":DSM") 
    589616         
    590617        Make/O/D/N=(num_extr) extr_hqq,extr_hqi 
     
    614641        Wave qw,iw,sw 
    615642        Variable nbeg,nend,num_extr 
     643 
     644        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder 
    616645         
    617646        Variable/G V_FitMaxIters=300 
     
    624653//      Print "num,num_new",num,num_new 
    625654         
    626         SetDataFolder root:DSM 
     655        SetDataFolder $(USANSFolder+":DSM") 
    627656        Make/O/D/N=(num_new) Q_ext,I_ext,S_ext 
    628657         
     
    694723        Wave qw,iw,sw 
    695724        Variable nend 
    696          
    697         Setdatafolder root:DSM 
     725 
     726        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder 
     727         
     728        Setdatafolder $(USANSFolder+":DSM") 
    698729         
    699730//      Wave extr_lqi=extr_lqi 
     
    742773 
    743774Proc Desmear_Graph()  
     775        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder 
     776 
    744777        PauseUpdate; Silent 1           // building window... 
    745778        Display /W=(5,44,408,558) /K=1 
     
    770803        CheckBox DSMControl_0b,help={"Toggle Log/Lin Q display"},value= 1 
    771804        TitleBox DSMControl_0c,pos={120,37},size={104,19},font="Courier",fSize=10 
    772         TitleBox DSMControl_0c,variable= root:DSM:gStr1 
     805        TitleBox DSMControl_0c,variable= $(USANSFolder+":DSM:gStr1") 
    773806        //second message string not used currently 
    774807//      TitleBox DSMControl_0d,pos={120,57},size={104,19},font="Courier",fSize=10 
     
    797830        SetVariable DSMControl_2b,pos={31,70},size={100,15},title="# of points" 
    798831        SetVariable DSMControl_2b,help={"Set the number of points for the power-law extrapolation"} 
    799         SetVariable DSMControl_2b,limits={5,100,1},value=  root:DSM:gNptsExtrap 
     832        SetVariable DSMControl_2b,limits={5,100,1},value=  $(USANSFolder+":DSM:gNptsExtrap") 
    800833        SetVariable DSMControl_2b,disable=1 
    801834        CheckBox DSMControl_2c,pos={157,45},size={105,14},proc=DSM_ExtrapolationCheckProc,title="Show Extrapolation" 
     
    805838        SetVariable DSMControl_2d,help={"Power Law exponent from the fit = the DESMEARED slope - override as needed"} 
    806839        SetVariable DSMControl_2d format="%5.2f" 
    807         SetVariable DSMControl_2d,limits={-inf,inf,0},value= root:DSM:gPowerM 
     840        SetVariable DSMControl_2d,limits={-inf,inf,0},value= $(USANSFolder+":DSM:gPowerM") 
    808841        SetVariable DSMControl_2d,disable=1 
    809842         
     
    830863        SetVariable DSMControl_3f,help={"Smoothing factor for the smoothing spline"} 
    831864        SetVariable DSMControl_3f format="%5.4f" 
    832         SetVariable DSMControl_3f,limits={0.01,2,0.01},value= root:DSM:gSmoothFac 
     865        SetVariable DSMControl_3f,limits={0.01,2,0.01},value= $(USANSFolder+"DSM:gSmoothFac") 
    833866        SetVariable DSMControl_3f,disable=1 
    834867        CheckBox DSMControl_3g,pos={268,39},size={90,14},title="Log-scale smoothing?" 
     
    846879        SetVariable DSMControl_4b,pos={35,63},size={120,15},title="Chi^2 target" 
    847880        SetVariable DSMControl_4b,help={"Set the targetchi^2 for convergence (recommend chi^2=1)"} 
    848         SetVariable DSMControl_4b,limits={0,inf,0.1},value= root:DSM:gChi2Target 
     881        SetVariable DSMControl_4b,limits={0,inf,0.1},value= $(USANSFolder+":DSM:gChi2Target") 
    849882        SetVariable DSMControl_4b,disable=1 
    850883        SetVariable DSMControl_4c,pos={35,35},size={80,15},title="dQv" 
    851884        SetVariable DSMControl_4c,help={"Slit height as read in from the data file. 0.117 is the NIST value, override if necessary"} 
    852         SetVariable DSMControl_4c,limits={-inf,inf,0},value= root:DSM:gDqv 
     885        SetVariable DSMControl_4c,limits={-inf,inf,0},value= $(USANSFolder+":DSM:gDqv") 
    853886        SetVariable DSMControl_4c,disable=1 
    854887        TitleBox DSMControl_4d,pos={160,37},size={104,19},font="Courier",fSize=10 
    855         TitleBox DSMControl_4d,variable= root:DSM:gIterStr 
     888        TitleBox DSMControl_4d,variable= $(USANSFolder+":DSM:gIterStr") 
    856889        TitleBox DSMControl_4d,disable=1 
    857890         
     
    912945 
    913946Proc AppendSmeared() 
    914         SetDataFolder root:DSM 
     947        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder 
     948 
     949        SetDataFolder $(USANSFolder+":DSM") 
    915950//      if( strsearch(TraceNameList("Desmear_Graph", "", 1),"I_exp_orig",0,2) == -1)            //Igor 5 
    916951        if( strsearch(TraceNameList("Desmear_Graph", "", 1),"I_exp_orig",0) == -1) 
     
    927962        TextBox/K/N=text1 
    928963//      TextBox/C/N=text1/F=0/A=MT/E=2/X=5.50/Y=0.00 root:DSM:gCurFile                  //Igor 5 
    929         TextBox/C/N=text1/F=0/A=MT/E=1/X=5.50/Y=0.00 root:DSM:gCurFile 
     964        TextBox/C/N=text1/F=0/A=MT/E=1/X=5.50/Y=0.00 $(USANSFolder+"DSM:gCurFile") 
    930965End 
    931966 
    932967Proc AppendMask() 
     968        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder 
     969 
    933970//      if( strsearch(TraceNameList("Desmear_Graph", "", 1),"MaskData",0,2) == -1)                      //Igor 5 
    934971        if( strsearch(TraceNameList("Desmear_Graph", "", 1),"MaskData",0) == -1) 
    935                 SetDataFolder root:DSM: 
     972                SetDataFolder $(USANSFolder+":DSM:") 
    936973                AppendToGraph/W=Desmear_Graph MaskData vs Q_exp_orig 
    937974                ModifyGraph mode(MaskData)=3,marker(MaskData)=8,msize(MaskData)=2.5,opaque(MaskData)=1 
     
    942979 
    943980Proc AppendSmoothed() 
     981        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder 
     982 
    944983//      if( strsearch(TraceNameList("Desmear_Graph", "", 1),"I_smth",0,2) == -1)                        //Igor 5 
    945984        if( strsearch(TraceNameList("Desmear_Graph", "", 1),"I_smth",0) == -1) 
    946                 SetDataFolder root:DSM: 
     985                SetDataFolder $(USANSFolder+":DSM:") 
    947986                AppendToGraph/W=Desmear_Graph I_smth vs Q_smth 
    948987                ModifyGraph/W=Desmear_Graph rgb(I_smth)=(3,52428,1),lsize(I_smth)=2 
     
    952991 
    953992Function RemoveSmoothed() 
    954         SetDataFolder root:DSM: 
     993        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder 
     994 
     995        SetDataFolder $(USANSFolder+":DSM:") 
    955996        RemoveFromGraph/W=Desmear_Graph/Z I_smth 
    956997        setdatafolder root: 
     
    958999 
    9591000Function RemoveMask() 
    960         SetDataFolder root:DSM: 
     1001        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder 
     1002 
     1003        SetDataFolder $(USANSFolder+":DSM:") 
    9611004        RemoveFromGraph/W=Desmear_Graph/Z MaskData 
    9621005        setdatafolder root: 
     
    9641007 
    9651008Proc AppendDesmeared() 
     1009        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder 
     1010 
    9661011//      if( strsearch(TraceNameList("Desmear_Graph", "", 1),"I_dsm",0,2) == -1)         //Igor 5 
    9671012        if( strsearch(TraceNameList("Desmear_Graph", "", 1),"I_dsm",0) == -1) 
    968                 SetDataFolder root:DSM: 
     1013                SetDataFolder $(USANSFolder+":DSM:") 
    9691014                AppendToGraph/W=Desmear_Graph I_dsm vs Q_dsm 
    9701015                ModifyGraph mode(I_dsm)=3,marker(I_dsm)=19 
     
    9761021 
    9771022Function RemoveDesmeared() 
    978         SetDataFolder root:DSM: 
     1023        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder 
     1024 
     1025        SetDataFolder $(USANSFolder+":DSM:") 
    9791026        RemoveFromGraph/W=Desmear_Graph/Z I_dsm 
    9801027        setdatafolder root: 
     
    9821029 
    9831030Function AppendExtrapolation() 
     1031        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder 
     1032 
    9841033//      if( strsearch(TraceNameList("Desmear_Graph", "", 1),"extr_hqi",0,2) == -1)              //Igor 5 
    9851034        if( strsearch(TraceNameList("Desmear_Graph", "", 1),"extr_hqi",0) == -1) 
    986                 SetDataFolder root:DSM: 
     1035                SetDataFolder $(USANSFolder+":DSM:") 
    9871036                AppendToGraph/W=Desmear_Graph extr_hqi vs extr_hqq 
    9881037                ModifyGraph/W=Desmear_Graph lSize(extr_hqi)=2 
     
    9921041 
    9931042Function RemoveExtrapolation() 
    994         SetDataFolder root:DSM: 
     1043        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder 
     1044 
     1045        SetDataFolder $(USANSFolder+":DSM:") 
    9951046        RemoveFromGraph/W=Desmear_Graph/Z extr_hqi 
    9961047        setdatafolder root: 
     
    10071058        String ctrlName 
    10081059 
     1060        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder 
     1061 
    10091062        String qStr,iStr,sStr,sqStr 
    10101063        Variable nq,dqv,numBad,val 
     
    10161069        Execute "U_LoadOneDDataWithName(\"\")" 
    10171070        //define the waves that the smoothing will be looking for... 
    1018         SVAR fname = root:myGlobals:gLastFileName                       //this changes as any data is loaded 
    1019         SVAR curFile = root:DSM:gCurFile                                                //keep this for title, save 
     1071        SVAR fname = $(USANSFolder+":myGlobals:gLastFileName")          //this changes as any data is loaded 
     1072        SVAR curFile = $(USANSFolder+":DSM:gCurFile")                                   //keep this for title, save 
    10201073        curFile = fname 
    10211074         
     
    10251078        sqStr = CleanupName((fName + "sq"),0)           //the sq-wave, which should have -dQv as the elements 
    10261079 
    1027         Duplicate/O $qStr root:DSM:Q_exp                        //root:DSM:Q_exp_orig 
    1028         Duplicate/O $iStr root:DSM:I_exp                        //root:DSM:I_exp_orig 
    1029         Duplicate/O $sStr root:DSM:S_exp                //root:DSM:S_exp_orig 
    1030         wave Q_exp = root:DSM:Q_exp 
    1031         Wave I_exp = root:DSM:I_exp 
    1032         Wave S_exp = root:DSM:S_exp 
     1080        Duplicate/O $qStr $(USANSFolder+":DSM:Q_exp     ")               
     1081        Duplicate/O $iStr $(USANSFolder+":DSM:I_exp")            
     1082        Duplicate/O $sStr $(USANSFolder+":DSM:S_exp     ")       
     1083        wave Q_exp = $(USANSFolder+":DSM:Q_exp") 
     1084        Wave I_exp = $(USANSFolder+":DSM:I_exp") 
     1085        Wave S_exp = $(USANSFolder+":DSM:S_exp") 
    10331086        Wave/Z sigQ = $sqStr 
    10341087         
     
    10361089        // ? and trim the low q to be >= 3.0e-5 (1/A), below this USANS is not reliable. 
    10371090        NumBad = RemoveBadQPoints(Q_exp,I_exp,S_exp,0) 
    1038         SVAR str1 = root:DSM:gStr1 
     1091        SVAR str1 = $(USANSFolder+":DSM:gStr1") 
    10391092        sprintf str1,"%d negative q-values were removed",numBad 
    10401093         
     
    10451098//      sprintf str2,"%d q-values below q = %g were removed",numBad,val 
    10461099         
    1047         Duplicate/O root:DSM:Q_exp root:DSM:Q_exp_orig 
    1048         Duplicate/O root:DSM:I_exp root:DSM:I_exp_orig 
    1049         Duplicate/O root:DSM:S_exp root:DSM:S_exp_orig 
    1050         wave I_exp_orig = root:DSM:I_exp_orig 
    1051          
    1052         nq = numpnts(root:DSM:Q_exp) 
     1100        Duplicate/O $(USANSFolder+":DSM:Q_exp") $(USANSFolder+":DSM:Q_exp_orig") 
     1101        Duplicate/O $(USANSFolder+":DSM:I_exp") $(USANSFolder+":DSM:I_exp_orig") 
     1102        Duplicate/O $(USANSFolder+":DSM:S_exp") $(USANSFolder+":DSM:S_exp_orig") 
     1103        wave I_exp_orig = $(USANSFolder+":DSM:I_exp_orig") 
     1104         
     1105        nq = numpnts($(USANSFolder+":DSM:Q_exp")) 
    10531106         
    10541107        if(WaveExists(sigQ))                    //try to read dQv 
     
    10601113                DoAlert 0,"Could not find dQv in the data file - using " + num2str(dqv) 
    10611114        endif 
    1062         NVAR gDqv = root:DSM:gDqv                               //needs to be global for Weights_L() 
    1063         NVAR gNq = root:DSM:gNq 
     1115        NVAR gDqv = $(USANSFolder+":DSM:gDqv")                          //needs to be global for Weights_L() 
     1116        NVAR gNq = $(USANSFolder+":DSM:gNq") 
    10641117        //reset the globals 
    10651118        gDqv = dqv 
     
    11321185        String ctrlName 
    11331186 
     1187        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder 
     1188 
    11341189//      Variable aExists= strlen(CsrInfo(A)) > 0                        //Igor 5 
    11351190        Variable aExists= strlen(CsrWave(A)) > 0                        //Igor 4 
     
    11381193        endif 
    11391194         
    1140         Duplicate/O root:DSM:Q_exp_orig,root:DSM:Q_msk 
    1141         Duplicate/O root:DSM:I_exp_orig,root:DSM:I_msk 
    1142         Duplicate/O root:DSM:S_exp_orig,root:DSM:S_msk 
    1143         Wave Q_msk=root:DSM:Q_msk 
    1144         Wave I_msk=root:DSM:I_msk 
    1145         Wave S_msk=root:DSM:S_msk 
     1195        Duplicate/O $(USANSFolder+":DSM:Q_exp_orig"),$(USANSFolder+":DSM:Q_msk") 
     1196        Duplicate/O $(USANSFolder+":DSM:I_exp_orig"),$(USANSFolder+":DSM:I_msk") 
     1197        Duplicate/O $(USANSFolder+":DSM:S_exp_orig"),$(USANSFolder+":DSM:S_msk") 
     1198        Wave Q_msk=$(USANSFolder+":DSM:Q_msk") 
     1199        Wave I_msk=$(USANSFolder+":DSM:I_msk") 
     1200        Wave S_msk=$(USANSFolder+":DSM:S_msk") 
    11461201         
    11471202        //finish up - trim the data sets and reassign the working set 
    1148         Wave MaskData=root:DSM:MaskData 
     1203        Wave MaskData=$(USANSFolder+":DSM:MaskData") 
    11491204         
    11501205        RemoveMaskedPoints(MaskData,Q_msk,I_msk,S_msk) 
    11511206 
    11521207        //reset the number of points 
    1153         NVAR gNq = root:DSM:gNq 
     1208        NVAR gNq = $(USANSFolder+":DSM:gNq") 
    11541209        gNq = numpnts(Q_msk) 
    11551210         
     
    11651220        String ctrlName 
    11661221         
    1167         Wave MaskData=root:DSM:MaskData 
     1222        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder 
     1223         
     1224        Wave MaskData=$(USANSFolder+":DSM:MaskData") 
    11681225        MaskData = NaN 
    11691226         
     
    11771234        String ctrlName 
    11781235         
    1179         Wave data=root:DSM:I_exp_orig 
     1236        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder 
     1237         
     1238        Wave data=$(USANSFolder+":DSM:I_exp_orig") 
    11801239         
    11811240//      Variable aExists= strlen(CsrInfo(A)) > 0                        //Igor 5 
     
    11841243// need to get rid of old smoothed data if data is re-masked 
    11851244        Execute "RemoveSmoothed()" 
    1186         SetDataFolder root:DSM 
     1245        SetDataFolder $(USANSFolder+":DSM") 
    11871246        Killwaves/Z I_smth,Q_smth,S_smth 
    1188         SetDataFolder root: 
    11891247                 
    11901248        if(aExists)             //mask the selected point 
    11911249                // toggle NaN (keep) or Data value (= masked) 
    1192                 Wave MaskData=root:DSM:MaskData 
     1250                Wave MaskData 
    11931251                MaskData[pcsr(A)] = (numType(MaskData[pcsr(A)])==0) ? NaN : data[pcsr(A)]               //if NaN, doesn't plot  
    11941252        else 
     
    11961254                ShowInfo 
    11971255                //if the mask wave does not exist, make one 
    1198                 if(exists("root:DSM:MaskData") != 1) 
    1199                         Duplicate/O root:DSM:Q_exp_orig root:DSM:MaskData 
    1200                         Wave MaskData=root:DSM:MaskData 
     1256                if(exists("MaskData") != 1) 
     1257                        Duplicate/O Q_exp_orig MaskData 
    12011258                        MaskData = NaN          //use all data 
    12021259                endif 
    12031260                Execute "AppendMask()"   
    12041261        endif 
    1205          
     1262 
     1263        SetDataFolder root: 
     1264 
    12061265        return(0) 
    12071266End 
     
    12121271Function DSM_MaskLTCursor(ctrlName) : ButtonControl 
    12131272        String ctrlName 
    1214          
    1215         Wave data=root:DSM:I_exp_orig 
     1273 
     1274        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder         
     1275                 
     1276//      Variable aExists= strlen(CsrInfo(A)) > 0                        //Igor 5 
     1277        Variable aExists= strlen(CsrWave(A)) > 0                        //Igor 4 
     1278         
     1279        if(!aExists) 
     1280                return(1) 
     1281        endif 
     1282// need to get rid of old smoothed data if data is re-masked 
     1283        Execute "RemoveSmoothed()" 
     1284        SetDataFolder $(USANSFolder+":DSM") 
     1285        Killwaves/Z I_smth,Q_smth,S_smth 
     1286 
     1287        Wave data=I_exp_orig 
     1288 
     1289        Variable pt,ii 
     1290        pt = pcsr(A) 
     1291        for(ii=pt;ii>=0;ii-=1) 
     1292                // toggle NaN (keep) or Data value (= masked) 
     1293                Wave MaskData 
     1294                MaskData[ii] = (numType(MaskData[ii])==0) ? NaN : data[ii]              //if NaN, doesn't plot  
     1295        endfor 
     1296 
     1297        SetDataFolder root: 
     1298        return(0) 
     1299End 
     1300 
     1301// when the mask button is pressed, A must be on the graph 
     1302// Displays MaskData wave on the graph 
     1303// 
     1304Function DSM_MaskGTCursor(ctrlName) : ButtonControl 
     1305        String ctrlName 
     1306         
     1307        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder         
     1308 
    12161309         
    12171310//      Variable aExists= strlen(CsrInfo(A)) > 0                        //Igor 5 
     
    12251318        SetDataFolder root:DSM 
    12261319        Killwaves/Z I_smth,Q_smth,S_smth 
    1227         SetDataFolder root: 
    1228  
    1229         Wave MaskData=root:DSM:MaskData 
    1230         Variable pt,ii 
    1231         pt = pcsr(A) 
    1232         for(ii=pt;ii>=0;ii-=1) 
    1233                 // toggle NaN (keep) or Data value (= masked) 
    1234                 MaskData[ii] = (numType(MaskData[ii])==0) ? NaN : data[ii]              //if NaN, doesn't plot  
    1235         endfor 
    1236         return(0) 
    1237 End 
    1238  
    1239 // when the mask button is pressed, A must be on the graph 
    1240 // Displays MaskData wave on the graph 
    1241 // 
    1242 Function DSM_MaskGTCursor(ctrlName) : ButtonControl 
    1243         String ctrlName 
    1244          
    1245         Wave data=root:DSM:I_exp_orig 
    1246          
    1247 //      Variable aExists= strlen(CsrInfo(A)) > 0                        //Igor 5 
    1248         Variable aExists= strlen(CsrWave(A)) > 0                        //Igor 4 
    1249          
    1250         if(!aExists) 
    1251                 return(1) 
    1252         endif 
    1253 // need to get rid of old smoothed data if data is re-masked 
    1254         Execute "RemoveSmoothed()" 
    1255         SetDataFolder root:DSM 
    1256         Killwaves/Z I_smth,Q_smth,S_smth 
    1257         SetDataFolder root: 
    1258  
    1259         Wave MaskData=root:DSM:MaskData 
     1320 
     1321        Wave data=I_exp_orig 
     1322 
    12601323        Variable pt,ii,endPt 
    12611324        endPt=numpnts(MaskData) 
     
    12631326        for(ii=pt;ii<endPt;ii+=1) 
    12641327                // toggle NaN (keep) or Data value (= masked) 
     1328                Wave MaskData 
    12651329                MaskData[ii] = (numType(MaskData[ii])==0) ? NaN : data[ii]              //if NaN, doesn't plot  
    12661330        endfor 
     1331 
     1332        SetDataFolder root: 
     1333 
    12671334        return(0) 
    12681335End 
    12691336 
    12701337Function CleanUpJunk() 
     1338        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder         
     1339 
    12711340        // clean up the old junk on the graph, /Z for no error 
    12721341        Execute "RemoveExtrapolation()" 
     
    12791348         
    12801349        //always initialize these 
    1281         String/G root:DSM:gStr1 = "" 
    1282         String/G root:DSM:gStr2 = "" 
    1283         String/G root:DSM:gIterStr = "" 
     1350        String/G $(USANSFolder+":DSM:gStr1") = "" 
     1351        String/G $(USANSFolder+":DSM:gStr2") = "" 
     1352        String/G $(USANSFolder+":DSM:gIterStr") = "" 
    12841353         
    12851354        // clean up the old waves from smoothing and desmearing steps 
    1286         SetDataFolder root:DSM 
     1355        SetDataFolder $(USANSFolder+":DSM") 
    12871356        Killwaves/Z I_smth,I_dsm,I_dsm_sm,Q_smth,Q_dsm,S_smth,S_dsm,Yi_SS,Yq_SS 
    12881357        Killwaves/Z Weights,FW,R_wave,S_wave,H_wave,Di,Ci 
     
    13021371        String ctrlName 
    13031372 
    1304         NVAR nend = root:DSM:gNptsExtrap 
    1305         NVAR m_pred = root:DSM:gPowerM 
    1306          
    1307         SetDataFolder root:DSM 
     1373        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder         
     1374 
     1375        NVAR nend = $(USANSFolder+":DSM:gNptsExtrap") 
     1376        NVAR m_pred = $(USANSFolder+":DSM:gPowerM") 
     1377         
     1378        SetDataFolder $(USANSFolder+":DSM") 
    13081379//use masked data if it exists 
    13091380        if(exists("I_msk")==1 && exists("Q_msk")==1 && exists("S_msk")==1) 
    1310                 wave Qw = root:DSM:Q_msk 
    1311                 Wave Iw = root:DSM:I_msk 
    1312                 Wave Sw = root:DSM:S_msk 
     1381                wave Qw = $(USANSFolder+":DSM:Q_msk") 
     1382                Wave Iw = $(USANSFolder+":DSM:I_msk") 
     1383                Wave Sw = $(USANSFolder+":DSM:S_msk") 
    13131384        else 
    13141385                //start from the "_exp" waves 
    13151386                if(exists("I_exp")==1 && exists("Q_exp")==1 && exists("S_exp")==1) 
    1316                         wave Qw = root:DSM:Q_exp 
    1317                         Wave Iw = root:DSM:I_exp 
    1318                         Wave Sw = root:DSM:S_exp 
     1387                        wave Qw = $(USANSFolder+":DSM:Q_exp") 
     1388                        Wave Iw = $(USANSFolder+":DSM:I_exp") 
     1389                        Wave Sw = $(USANSFolder+":DSM:S_exp") 
    13191390                endif 
    13201391        endif 
     
    13471418        String ctrlName 
    13481419 
    1349         SetDataFolder root:DSM   
     1420        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder         
     1421 
     1422        SetDataFolder $(USANSFolder+":DSM")      
    13501423 
    13511424        Variable ii,new_n,pass,nq_ext,offset,doLog=1 
     
    13621435                //start from the "msk", creating smth waves 
    13631436                if(exists("I_msk")==1 && exists("Q_msk")==1 && exists("S_msk")==1) 
    1364                         wave Q_msk = root:DSM:Q_msk 
    1365                         Wave I_msk = root:DSM:I_msk 
    1366                         Wave S_msk = root:DSM:S_msk 
     1437                        wave Q_msk,I_msk,S_msk 
    13671438                        Duplicate/O I_msk,I_smth,Q_smth,S_smth 
    13681439                        I_smth = I_msk 
     
    13721443                        //start from the "_exp" waves 
    13731444                        if(exists("I_exp")==1 && exists("Q_exp")==1 && exists("S_exp")==1) 
    1374                                 wave Q_exp = root:DSM:Q_exp 
    1375                                 Wave I_exp = root:DSM:I_exp 
    1376                                 Wave S_exp = root:DSM:S_exp 
     1445                                wave Q_exp,I_exp,S_exp 
    13771446                                Duplicate/O I_exp,I_smth,Q_smth,S_smth 
    13781447                                I_smth = I_exp 
     
    13831452        endif 
    13841453         
    1385         wave Q_smth = root:DSM:Q_smth 
    1386         Wave I_smth = root:DSM:I_smth 
    1387         Wave S_smth = root:DSM:S_smth 
     1454        wave Q_smth,I_smth,S_smth 
    13881455 
    13891456        // extend the data to avoid end effects 
     
    13991466         
    14001467        //whether extending or not, the working data is "_ext", set by ExtendToSmooth() 
    1401         setDataFolder root:DSM 
    1402         wave Q_ext = root:DSM:Q_ext 
    1403         Wave I_ext = root:DSM:I_ext 
    1404         Wave S_ext = root:DSM:S_ext 
     1468        SetDataFolder $(USANSFolder+":DSM")      
     1469        wave Q_ext,I_ext ,S_ext 
    14051470         
    14061471        noteStr=note(I_smth) 
     
    14151480        if(doLog) 
    14161481                //convert to log scale 
    1417                 Duplicate/O I_ext root:DSM:I_log,root:DSM:I_log_err 
    1418                 Wave I_log = root:DSM:I_log 
    1419                 Wave I_log_err = root:DSM:I_log_err 
     1482                Duplicate/O I_ext I_log,I_log_err 
     1483                Wave I_log ,I_log_err 
    14201484                I_log = log(I_ext) 
    14211485                WaveStats/Q I_log 
     
    14411505        endif 
    14421506 
    1443         NVAR sParam = root:DSM:gSmoothFac 
     1507        NVAR sParam = $(USANSFolder+":DSM:gSmoothFac") 
    14441508         
    14451509        ControlInfo/W=Desmear_Graph DSMControl_3c               //SSCheck 
     
    14901554 
    14911555        //reset the global 
    1492         NVAR gNq = root:DSM:gNq 
     1556        NVAR gNq = $(USANSFolder+":DSM:gNq") 
    14931557        gNq = nq 
    14941558        //report the chi^2 difference between the smoothed curve and the experimental data 
     
    15061570Function DSM_SmoothUndoButtonProc(ctrlName) : ButtonControl 
    15071571        String ctrlName 
     1572 
     1573        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder         
    15081574         
    15091575        Execute "RemoveSmoothed()" 
    1510         SetDataFolder root:DSM 
     1576        SetDataFolder $(USANSFolder+":DSM") 
    15111577        Killwaves/Z I_smth,Q_smth,S_smth,Q_ext,I_ext,S_ext,Yi_SS,Yq_SS 
    15121578        SetDataFolder root: 
     
    15181584        Wave I_smth 
    15191585         
     1586        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder         
     1587         
    15201588        //start from the "msk", if they exist 
    15211589        if(exists("I_msk")==1 && exists("Q_msk")==1 && exists("S_msk")==1) 
    1522                 Wave iw = root:DSM:I_msk 
    1523                 Wave sw = root:DSM:S_msk 
     1590                Wave iw = $(USANSFolder+":DSM:I_msk") 
     1591                Wave sw = $(USANSFolder+":DSM:S_msk") 
    15241592        else 
    15251593                //start from the "_exp" waves 
    15261594                if(exists("I_exp")==1 && exists("Q_exp")==1 && exists("S_exp")==1) 
    1527                         Wave iw = root:DSM:I_exp 
    1528                         Wave sw = root:DSM:S_exp 
     1595                        Wave iw = $(USANSFolder+":DSM:I_exp") 
     1596                        Wave sw = $(USANSFolder+":DSM:S_exp") 
    15291597                endif 
    15301598        endif 
     
    15471615        String ctrlName 
    15481616 
     1617        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder         
     1618 
    15491619        String saveStr 
    1550         SVAR curFile = root:DSM:gCurFile 
     1620        SVAR curFile = $(USANSFolder+":DSM:gCurFile") 
    15511621        saveStr = CleanupName((curFile),0)              //the output filename 
    15521622        // 
     
    16001670        String ctrlName 
    16011671         
    1602         SetDataFolder root:DSM 
     1672        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder         
     1673         
     1674        SetDataFolder $(USANSFolder+":DSM") 
    16031675        if(exists("I_smth")==1 && exists("Q_smth")==1 && exists("S_smth")==1) 
    1604                 wave Q_smth = root:DSM:Q_smth 
    1605                 Wave I_smth = root:DSM:I_smth 
    1606                 Wave S_smth = root:DSM:S_smth 
     1676                wave Q_smth , I_smth ,S_smth  
    16071677                Duplicate/O I_smth,I_work,Q_work,S_work 
    16081678                I_work = I_smth 
     
    16121682                //start from the "msk", creating work waves 
    16131683                if(exists("I_msk")==1 && exists("Q_msk")==1 && exists("S_msk")==1) 
    1614                         wave Q_msk = root:DSM:Q_msk 
    1615                         Wave I_msk = root:DSM:I_msk 
    1616                         Wave S_msk = root:DSM:S_msk 
     1684                        wave Q_msk,I_msk,S_msk 
    16171685                        Duplicate/O I_msk,I_work,Q_work,S_work 
    16181686                        I_work = I_msk 
     
    16221690                        //start from the "_exp" waves 
    16231691                        if(exists("I_exp")==1 && exists("Q_exp")==1 && exists("S_exp")==1) 
    1624                                 wave Q_exp = root:DSM:Q_exp 
    1625                                 Wave I_exp = root:DSM:I_exp 
    1626                                 Wave S_exp = root:DSM:S_exp 
     1692                                wave Q_exp,I_exp,S_exp  
    16271693                                Duplicate/O I_exp,I_work,Q_work,S_work 
    16281694                                I_work = I_exp 
     
    16321698                endif 
    16331699        endif 
    1634         SetDataFolder root: 
    1635          
    1636         NVAR nq = root:DSM:gNq 
    1637         NVAR m = root:DSM:gPowerM 
    1638         NVAR chi2_target = root:DSM:gChi2Target 
    1639         NVAR maxFastIter = root:DSM:gMaxFastIter 
    1640         NVAR maxSlowIter = root:DSM:gMaxSlowIter 
     1700        //SetDataFolder root: 
     1701         
     1702        NVAR nq = gNq 
     1703        NVAR m = gPowerM 
     1704        NVAR chi2_target = gChi2Target 
     1705        NVAR maxFastIter = gMaxFastIter 
     1706        NVAR maxSlowIter = gMaxSlowIter 
    16411707         
    16421708        //      SET WEIGHTING OF EXPERIMENTAL DATA. 
    1643         Duplicate/O Q_work root:DSM:weights 
    1644         Wave weights = root:DSM:weights 
     1709        Duplicate/O Q_work weights 
     1710        Wave weights = weights 
    16451711        weights = 1/S_work^2 
    16461712 
    16471713//      calculate weighting array for smearing of data 
    1648         Make/O/D/N=(nq,nq) root:DSM:FW 
    1649         Wave FW = root:DSM:FW 
     1714        Make/O/D/N=(nq,nq) FW 
     1715        Wave FW 
    16501716        Weights_L(m,FW,Q_work) 
    16511717 
     
    16551721//      y_old = I_old, y_new = I_dsm, I_dsm_sm = ys_new, 
    16561722// duplicate preserves the wave note! 
    1657         Duplicate/O I_work root:DSM:I_old,root:DSM:Is_old,root:DSM:I_dsm,root:DSM:I_dsm_sm 
    1658         Duplicate/O Q_work root:DSM:Q_dsm,root:DSM:S_dsm                //sets Q_dsm correctly 
    1659         wave S_dsm = root:DSM:S_dsm             //set correctly at end of this function 
    1660         wave I_old = root:DSM:I_old 
    1661         wave Is_old = root:DSM:Is_old 
    1662         wave I_dsm = root:DSM:I_dsm 
    1663         wave I_dsm_sm = root:DSM:I_dsm_sm 
     1723        Duplicate/O I_work I_old,Is_old,root:DSM:I_dsm,root:DSM:I_dsm_sm 
     1724        Duplicate/O Q_work Q_dsm,S_dsm          //sets Q_dsm correctly 
     1725        wave S_dsm,I_old,Is_old,I_dsm,I_dsm_sm 
    16641726        I_old = I_work 
    16651727        Is_old = 0 
     
    17061768        Execute "AppendDesmeared()" 
    17071769        DoUpdate 
    1708  
     1770        SetDataFolder $(USANSFolder+":DSM") 
     1771 
     1772         
    17091773// step (6) - refine the desmearing using slow convergence 
    17101774        Print "Starting slow convergence..... " 
     
    17451809 
    17461810        // adjust the error 
    1747         SetDataFolder root:DSM 
     1811        SetDataFolder $(USANSFolder+":DSM") 
    17481812        Duplicate/O S_work err 
    17491813        S_dsm = abs(err/I_work*I_dsm)           //proportional error 
     
    17511815//      S_dsm = S_Work 
    17521816         
    1753         NVAR gChi = root:DSM:gChi2Final         //chi^2 final 
    1754         NVAR gIter = root:DSM:gIterations               //total number of iterations 
     1817        NVAR gChi =  gChi2Final         //chi^2 final 
     1818        NVAR gIter = gIterations                //total number of iterations 
    17551819        gChi = chi2_new 
    17561820        gIter = Iter 
    17571821         
    1758         SVAR str = root:DSM:gIterStr 
     1822        SVAR str = gIterStr 
    17591823        sprintf str,"%d iterations required",iter 
    17601824         
     
    17651829Function DSM_RevertButtonProc(ctrlName) : ButtonControl 
    17661830        String ctrlName 
    1767  
     1831         
     1832        SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder         
     1833         
     1834         
    17681835        CleanUpJunk() 
    1769           
     1836 
     1837        SetDataFolder $(USANSFolder+":DSM") 
     1838 
    17701839        //reset the working waves to the original 
    1771         wave Q_exp_orig = root:DSM:Q_exp_orig 
    1772         wave I_exp_orig = root:DSM:I_exp_orig 
    1773         wave S_exp_orig = root:DSM:S_exp_orig 
    1774  
    1775         Duplicate/O Q_exp_orig root:DSM:Q_exp 
    1776         Duplicate/O I_exp_orig root:DSM:I_exp 
    1777         Duplicate/O S_exp_orig root:DSM:S_exp 
     1840        wave Q_exp_orig,I_exp_orig,S_exp_orig 
     1841 
     1842        Duplicate/O Q_exp_orig Q_exp 
     1843        Duplicate/O I_exp_orig I_exp 
     1844        Duplicate/O S_exp_orig S_exp 
    17781845        // kill the data folder 
    17791846        // re-initialize? 
    17801847 
     1848        SetDataFolder root: 
     1849         
    17811850        return(0) 
    17821851End 
Note: See TracChangeset for help on using the changeset viewer.