Ignore:
Timestamp:
Aug 31, 2012, 11:44:55 AM (12 years ago)
Author:
sommeria
Message:

bugs repaired in proj_field

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/calc_field_interp.m

    r521 r533  
    6060for ilist=1:numel(Operation)
    6161    if ~check_skipped(ilist)
    62     nbvar=numel(ListVarName);
    63     switch Operator{ilist}
    64         case 'vec'
    65             if exist('XI','var')
    66                 VarVal{nbvar+1}=F.(UName{ilist})(XI,YI);
    67                 VarVal{nbvar+2}=F.(VName{ilist})(XI,YI);
    68             else
    69                 VarVal{nbvar+1}=Data.(UName{ilist});
    70                 VarVal{nbvar+2}=Data.(VName{ilist});
    71             end
    72             ListVarName{nbvar+1}=UName{ilist};
    73             ListVarName{nbvar+2}=VName{ilist};
    74             VarAttribute{nbvar+1}.Role='vector_x';
    75             VarAttribute{nbvar+2}.Role='vector_y';
    76         case 'norm'
    77             if exist('XI','var')
    78                 U2=F.(UName{ilist})(XI,YI).*F.(UName{ilist})(XI,YI);
    79                 V2=F.(VName{ilist})(XI,YI).*F.(VName{ilist})(XI,YI);
    80             else
    81                 U2=Data.(UName{ilist}).*Data.(UName{ilist});
    82                 V2=Data.(VName{ilist}).*Data.(VName{ilist});
    83             end
    84             VarVal{nbvar+1}=sqrt(U2+V2);
    85             ListVarName{nbvar+1}='norm';
    86             VarAttribute{nbvar+1}.Role='scalar';
    87         otherwise
    88             if ~isempty(Operation{ilist})
     62        nbvar=numel(ListVarName);
     63        switch Operator{ilist}
     64            case 'vec'
    8965                if exist('XI','var')
    90                     VarVal{nbvar+1}=F.(Operation{ilist})(XI,YI);
     66                    VarVal{nbvar+1}=F.(UName{ilist})(XI,YI);
     67                    VarVal{nbvar+2}=F.(VName{ilist})(XI,YI);
    9168                else
    92                     VarVal{nbvar+1}= Data.(Operation{ilist});
     69                    VarVal{nbvar+1}=Data.(UName{ilist});
     70                    VarVal{nbvar+2}=Data.(VName{ilist});
    9371                end
    94                 ListVarName{nbvar+1}=Operation{ilist};
     72                ListVarName{nbvar+1}=UName{ilist};
     73                ListVarName{nbvar+2}=VName{ilist};
     74                VarAttribute{nbvar+1}.Role='vector_x';
     75                VarAttribute{nbvar+2}.Role='vector_y';
     76            case 'norm'
     77                if exist('XI','var')
     78                    U2=F.(UName{ilist})(XI,YI).*F.(UName{ilist})(XI,YI);
     79                    V2=F.(VName{ilist})(XI,YI).*F.(VName{ilist})(XI,YI);
     80                else
     81                    U2=Data.(UName{ilist}).*Data.(UName{ilist});
     82                    V2=Data.(VName{ilist}).*Data.(VName{ilist});
     83                end
     84                VarVal{nbvar+1}=sqrt(U2+V2);
     85                ListVarName{nbvar+1}='norm';
    9586                VarAttribute{nbvar+1}.Role='scalar';
    96             end
    97     end
     87            otherwise
     88                if ~isempty(Operation{ilist})
     89                    if exist('XI','var')
     90                        VarVal{nbvar+1}=F.(Operation{ilist})(XI,YI);
     91                    else
     92                        VarVal{nbvar+1}= Data.(Operation{ilist});
     93                    end
     94                    ListVarName{nbvar+1}=Operation{ilist};
     95                    VarAttribute{nbvar+1}.Role='scalar';
     96                end
     97        end
    9898    end
    9999end
    100100% put an error flag to indicate NaN data
    101101if exist('XI','var')
    102 nbvar=numel(ListVarName);
    103 ListVarName{nbvar+1}='FF';
    104 VarVal{nbvar+1}=isnan(VarVal{nbvar});
    105 VarAttribute{nbvar+1}.Role='errorflag';
     102    nbvar=numel(ListVarName);
     103    ListVarName{nbvar+1}='FF';
     104    VarVal{nbvar+1}=isnan(VarVal{nbvar});
     105    VarAttribute{nbvar+1}.Role='errorflag';
    106106end
    107107
Note: See TracChangeset for help on using the changeset viewer.