Changeset 14743


Ignore:
Timestamp:
04/24/13 12:27:35 (12 years ago)
Author:
Mathieu Morlighem
Message:

BUG: shielded pdd parameters within if(ispdd), because some parameters are not marshalled by default

Location:
issm/trunk-jpl/src/c
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/objects/Materials/Matpar.cpp

    r14735 r14743  
    2525Matpar::Matpar(int matpar_mid, IoModel* iomodel){
    2626
    27         int hydrology_model;
     27        bool ispdd;
     28        int  hydrology_model;
    2829        iomodel->Constant(&hydrology_model,HydrologyEnum);
     30        iomodel->Constant(&ispdd,SurfaceforcingsIspddEnum);
    2931
    3032        this->mid = matpar_mid;
     
    4244        iomodel->Constant(&this->thermal_exchange_velocity,MaterialsThermalExchangeVelocityEnum);
    4345        iomodel->Constant(&this->g,ConstantsGEnum);
    44         iomodel->Constant(&this->desfac,SurfaceforcingsDesfacEnum);
    45         iomodel->Constant(&this->s0p,SurfaceforcingsS0pEnum);
     46
     47        if(ispdd){
     48                iomodel->Constant(&this->desfac,SurfaceforcingsDesfacEnum);
     49                iomodel->Constant(&this->s0p,SurfaceforcingsS0pEnum);
     50        }
    4651
    4752        if(hydrology_model==HydrologyshreveEnum){
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp

    r14735 r14743  
    2424        Parameters *parameters       = NULL;
    2525        IssmDouble *requestedoutputs = NULL;
    26         bool        isdelta18o;
     26        bool        ispdd,isdelta18o;
    2727
    2828        /*parameters for mass flux: {{{*/
     
    103103        parameters->AddObject(iomodel->CopyConstantObject(InversionTaoEnum));
    104104        parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIspddEnum));
    105         parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsDesfacEnum));
    106         parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsS0pEnum));
    107105        parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIsdelta18oEnum));
    108106        parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIssmbgradientsEnum));
    109107
    110         iomodel->Constant(&isdelta18o,SurfaceforcingsIsdelta18oEnum);
    111         if(isdelta18o){
    112                 IssmDouble *temp = NULL;
    113                 IssmDouble  yts;
    114                 int         N,M;
    115 
    116                 iomodel->Constant(&yts,ConstantsYtsEnum);
    117 
    118                 iomodel->FetchData(&temp,&N,&M,SurfaceforcingsDelta18oEnum); _assert_(N==2);
    119                 for(i=0;i<M;i++) temp[M+i]=yts*temp[M+i];
    120                 parameters->AddObject(new TransientParam(SurfaceforcingsDelta18oEnum,&temp[0],&temp[M],M));
    121                 iomodel->DeleteData(temp,SurfaceforcingsDelta18oEnum);
    122 
    123                 iomodel->FetchData(&temp,&N,&M,SurfaceforcingsDelta18oSurfaceEnum); _assert_(N==2);
    124                 for(i=0;i<M;i++) temp[M+i]=yts*temp[M+i];
    125                 parameters->AddObject(new TransientParam(SurfaceforcingsDelta18oSurfaceEnum,&temp[0],&temp[M],M));
    126                 iomodel->DeleteData(temp,SurfaceforcingsDelta18oSurfaceEnum);
     108        iomodel->Constant(&ispdd,SurfaceforcingsIspddEnum);
     109        if(ispdd){
     110
     111                parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsDesfacEnum));
     112                parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsS0pEnum));
     113
     114                iomodel->Constant(&isdelta18o,SurfaceforcingsIsdelta18oEnum);
     115                if(isdelta18o){
     116                        IssmDouble *temp = NULL;
     117                        IssmDouble  yts;
     118                        int         N,M;
     119
     120                        iomodel->Constant(&yts,ConstantsYtsEnum);
     121
     122                        iomodel->FetchData(&temp,&N,&M,SurfaceforcingsDelta18oEnum); _assert_(N==2);
     123                        for(i=0;i<M;i++) temp[M+i]=yts*temp[M+i];
     124                        parameters->AddObject(new TransientParam(SurfaceforcingsDelta18oEnum,&temp[0],&temp[M],M));
     125                        iomodel->DeleteData(temp,SurfaceforcingsDelta18oEnum);
     126
     127                        iomodel->FetchData(&temp,&N,&M,SurfaceforcingsDelta18oSurfaceEnum); _assert_(N==2);
     128                        for(i=0;i<M;i++) temp[M+i]=yts*temp[M+i];
     129                        parameters->AddObject(new TransientParam(SurfaceforcingsDelta18oSurfaceEnum,&temp[0],&temp[M],M));
     130                        iomodel->DeleteData(temp,SurfaceforcingsDelta18oSurfaceEnum);
     131                }
    127132        }
    128133
Note: See TracChangeset for help on using the changeset viewer.