Changeset 214


Ignore:
Timestamp:
05/04/09 13:36:35 (16 years ago)
Author:
Eric.Larour
Message:

Handle NaN in input

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/io/SerialFetchData.cpp

    r1 r214  
    6767        }
    6868        else if (strcmp(data_type,"Matrix")==0){
    69                 if(mxIsEmpty(mxdata)){
     69                if(mxIsEmpty(mxdata) ){
    7070                        /*Nothing to pick up. Just initialize matrix pointer to NULL: */
    7171                        outmatrix_rows=0;
     
    7676                else if (mxIsDouble(mxdata) ){
    7777
    78                         /*Look at the sub_type: do we want a double* matrix (Mat) or a petsc matrix (PM)?*/
    79                         if (sub_data_type && strcmp(sub_data_type,"Mat")==0){
    80                                 /*Convert matlab matrix to double* matrix: */
    81                                 MatlabMatrixToDoubleMatrix(&outmatrix,&outmatrix_rows,&outmatrix_cols,mxdata);
     78                        /*Check mxdata is not pointing to NaN: */
     79                        if (mxIsNaN(*(mxGetPr(mxdata)))){
     80                                outmatrix_rows=0;
     81                                outmatrix_cols=0;
     82                                outmatrix=NULL;
    8283                                petsc=0;
    8384                        }
    8485                        else{
    85                                 /*Convert matlab matrix to petsc matrix: */
    86                                 MatlabMatrixToPetscMatrix(&outpetscmatrix,&outmatrix_rows,&outmatrix_cols,mxdata);
    87                                 petsc=1;
     86
     87                                /*Look at the sub_type: do we want a double* matrix (Mat) or a petsc matrix (PM)?*/
     88                                if (sub_data_type && strcmp(sub_data_type,"Mat")==0){
     89                                        /*Convert matlab matrix to double* matrix: */
     90                                        MatlabMatrixToDoubleMatrix(&outmatrix,&outmatrix_rows,&outmatrix_cols,mxdata);
     91                                        petsc=0;
     92                                }
     93                                else{
     94                                        /*Convert matlab matrix to petsc matrix: */
     95                                        MatlabMatrixToPetscMatrix(&outpetscmatrix,&outmatrix_rows,&outmatrix_cols,mxdata);
     96                                        petsc=1;
     97                                }
    8898                        }
    8999                }
Note: See TracChangeset for help on using the changeset viewer.