Ignore:
Timestamp:
10/10/17 08:23:38 (8 years ago)
Author:
Eric.Larour
Message:

CHG: divers bug fixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/branches/trunk-larour-NatGeoScience2016/src/c/analyses/SealevelriseAnalysis.cpp

    r22155 r22159  
    3838        iomodel->FetchData(&geodetic,"md.slr.geodetic");
    3939        if (geodetic){
    40                 iomodel->FetchDataToInput(elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum);
    41                 iomodel->FetchDataToInput(elements,"md.mask.land_levelset",MaskLandLevelsetEnum);
     40                char* masktype=NULL;
     41                iomodel->FetchData(&masktype,"md.mask.type");
     42                if (strcmp(masktype,"maskpsl")==0){
     43                        iomodel->FetchDataToInput(elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum);
     44                        iomodel->FetchDataToInput(elements,"md.mask.land_levelset",MaskLandLevelsetEnum);
     45                }
     46                xDelete<char>(masktype);
    4247        }
    4348        iomodel->FetchDataToInput(elements,"md.slr.deltathickness",SealevelriseDeltathicknessEnum);
     
    4651        iomodel->FetchDataToInput(elements,"md.geometry.bed",BedEnum);
    4752
    48         /*Initialize cumdeltalthickness input: unfortunately, we don't have femmodel, so we need to iterate on
    49          *elements, otherwise we would have used InputUpdateFromConstantx: */
     53        /*Initialize cumdeltalthickness and sealevel rise rate input: unfortunately, we don't have femmodel, so we
     54         * need to iterate on elements, otherwise we would have used InputUpdateFromConstantx: */
    5055        counter=0;
    5156        for(int i=0;i<iomodel->numberofelements;i++){
     
    5358                        Element* element=(Element*)elements->GetObjectByOffset(counter);
    5459                        element->InputUpdateFromConstant(0.0,SealevelriseCumDeltathicknessEnum);
     60                        element->InputUpdateFromConstant(0.0,SealevelRateEnum);
     61                        element->InputUpdateFromConstant(0.0,SealevelUmotionRateEnum);
    5562                        counter++;
    5663                }
     
    269276}/*}}}*/
    270277void           SealevelriseAnalysis::InputUpdateFromSolution(IssmDouble* solution,Element* element){/*{{{*/
    271        
    272         IssmDouble *deltaS  = NULL;
    273         IssmDouble *S  = NULL;
    274         int*        sidlist = NULL;
    275         int         numvertices;
    276        
    277         numvertices= element->GetNumberOfVertices();
    278         sidlist=xNew<int>(numvertices);
    279        
    280         element->GetVerticesSidList(sidlist);
    281 
    282         deltaS = xNew<IssmDouble>(numvertices);
    283         for(int i=0;i<numvertices;i++){
    284                 deltaS[i]=solution[sidlist[i]];
    285         }
    286 
    287         S = xNew<IssmDouble>(numvertices);
    288         element->GetInputListOnVertices(S,SealevelEnum,0);
    289 
    290         /*Add deltaS to S:*/
    291         for (int i=0;i<numvertices;i++)S[i]+=deltaS[i];
    292 
    293         /*Add S back into inputs: */
    294         element->AddInput(SealevelEnum,S,P1Enum);
    295 
    296         /*Free ressources:*/
    297         xDelete<int>(sidlist);
    298         xDelete<IssmDouble>(deltaS);
    299         xDelete<IssmDouble>(S);
     278        _error_("not implemeneted yet!");
    300279
    301280}/*}}}*/
Note: See TracChangeset for help on using the changeset viewer.