Changeset 24947


Ignore:
Timestamp:
06/01/20 14:48:19 (5 years ago)
Author:
Eric.Larour
Message:

CHG: cleanup the sea level rise core prototypes.

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

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp

    r24940 r24947  
    308308        parameters->AddObject(iomodel->CopyConstantObject("md.slr.abstol",SealevelriseAbstolEnum));
    309309        parameters->AddObject(iomodel->CopyConstantObject("md.slr.maxiter",SealevelriseMaxiterEnum));
    310         parameters->AddObject(iomodel->CopyConstantObject("md.slr.loop_increment",SealevelriseLoopIncrementEnum));
    311310        parameters->AddObject(iomodel->CopyConstantObject("md.slr.rigid",SealevelriseRigidEnum));
    312311        parameters->AddObject(iomodel->CopyConstantObject("md.slr.horiz",SealevelriseHorizEnum));
  • issm/trunk-jpl/src/c/classes/Elements/Element.h

    r24946 r24947  
    379379                virtual IssmDouble    OceanAverage(IssmDouble* Sg, SealevelMasks* masks)=0;
    380380                virtual void          SealevelriseMomentOfInertia(IssmDouble* dI_list,IssmDouble* Sg_old, SealevelMasks* masks)=0;
    381                 virtual void          SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic,SealevelMasks* masks,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea)=0;
     381                virtual void          SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic,SealevelMasks* masks,IssmDouble oceanarea)=0;
    382382                virtual void          SealevelriseGeometry(IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx, IssmDouble* yy, IssmDouble* zz)=0;
    383                 virtual void          SealevelriseNonEustatic(IssmDouble* Sgo, IssmDouble* Sg_old,SealevelMasks* masks,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius)=0;
    384                 virtual void          SealevelriseGeodetic(IssmDouble* Up, IssmDouble* North, IssmDouble* East, IssmDouble* Sg,SealevelMasks* masks,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz)=0;
     383                virtual void          SealevelriseNonEustatic(IssmDouble* Sgo, IssmDouble* Sg_old,SealevelMasks* mask)=0;
     384                virtual void          SealevelriseGeodetic(IssmDouble* Up, IssmDouble* North, IssmDouble* East, IssmDouble* Sg,SealevelMasks* masks)=0;
    385385                #endif
    386386
  • issm/trunk-jpl/src/c/classes/Elements/Penta.h

    r24946 r24947  
    216216                void    SealevelriseMomentOfInertia(IssmDouble* dI_list,IssmDouble* Sg_old, SealevelMasks* masks){_error_("not implemented yet!");};
    217217                void    SealevelriseGeometry(IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx, IssmDouble* yy, IssmDouble* zz){_error_("not implemented yet!");};
    218                 void    SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea){_error_("not implemented yet!");};
    219                 void    SealevelriseNonEustatic(IssmDouble* Sgo, IssmDouble* Sg_old, SealevelMasks* masks,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius){_error_("not implemented yet!");};
    220                 void    SealevelriseGeodetic(IssmDouble* Up, IssmDouble* North, IssmDouble* East, IssmDouble* Sg, SealevelMasks* masks,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz){_error_("not implemented yet!");};
     218                void    SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks,IssmDouble oceanarea){_error_("not implemented yet!");};
     219                void    SealevelriseNonEustatic(IssmDouble* Sgo, IssmDouble* Sg_old, SealevelMasks* masks){_error_("not implemented yet!");};
     220                void    SealevelriseGeodetic(IssmDouble* Up, IssmDouble* North, IssmDouble* East, IssmDouble* Sg, SealevelMasks* masks){_error_("not implemented yet!");};
    221221                #endif
    222222
  • issm/trunk-jpl/src/c/classes/Elements/Seg.h

    r24946 r24947  
    175175                void    SetSealevelMasks(SealevelMasks* masks){_error_("not implemented yet!");};
    176176                void    SealevelriseGeometry(IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx, IssmDouble* yy, IssmDouble* zz){_error_("not implemented yet!");};
    177                 void    SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea){_error_("not implemented yet!");};
    178                 void    SealevelriseNonEustatic(IssmDouble* Sgo,IssmDouble* Sg_old, SealevelMasks* masks,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius){_error_("not implemented yet!");};
    179                 void    SealevelriseGeodetic(IssmDouble* Up, IssmDouble* North, IssmDouble* East, IssmDouble* Sg, SealevelMasks* masks,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz){_error_("not implemented yet!");};
     177                void    SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks,IssmDouble oceanarea){_error_("not implemented yet!");};
     178                void    SealevelriseNonEustatic(IssmDouble* Sgo,IssmDouble* Sg_old, SealevelMasks* masks){_error_("not implemented yet!");};
     179                void    SealevelriseGeodetic(IssmDouble* Up, IssmDouble* North, IssmDouble* East, IssmDouble* Sg, SealevelMasks* masks){_error_("not implemented yet!");};
    180180                IssmDouble    OceanAverage(IssmDouble* Sg, SealevelMasks* masks){_error_("not implemented yet!");};
    181181#endif
  • issm/trunk-jpl/src/c/classes/Elements/Tetra.h

    r24946 r24947  
    181181                void    SealevelriseMomentOfInertia(IssmDouble* dI_list,IssmDouble* Sg_old, SealevelMasks* masks){_error_("not implemented yet!");};
    182182                void    SealevelriseGeometry(IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx, IssmDouble* yy, IssmDouble* zz){_error_("not implemented yet!");};
    183                 void    SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea){_error_("not implemented yet!");};
    184                 void    SealevelriseNonEustatic(IssmDouble* Sgo, IssmDouble* Sg_old, SealevelMasks* masks,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius){_error_("not implemented yet!");};
    185                 void    SealevelriseGeodetic(IssmDouble* Up ,IssmDouble* North, IssmDouble* East, IssmDouble* Sg, SealevelMasks* masks,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz){_error_("not implemented yet!");};
     183                void    SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks,IssmDouble oceanarea){_error_("not implemented yet!");};
     184                void    SealevelriseNonEustatic(IssmDouble* Sgo, IssmDouble* Sg_old, SealevelMasks* masks){_error_("not implemented yet!");};
     185                void    SealevelriseGeodetic(IssmDouble* Up ,IssmDouble* North, IssmDouble* East, IssmDouble* Sg, SealevelMasks* masks){_error_("not implemented yet!");};
    186186                IssmDouble    OceanAverage(IssmDouble* Sg, SealevelMasks* masks){_error_("not implemented yet!");};
    187187#endif
  • issm/trunk-jpl/src/c/classes/Elements/Tria.cpp

    r24946 r24947  
    57535753}
    57545754/*}}}*/
    5755 void    Tria::SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks, IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea){ /*{{{*/
     5755void    Tria::SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks, IssmDouble oceanarea){ /*{{{*/
    57565756
    57575757        /*Computational flags:*/
     
    57645764                /*ok, there is ocean in this element, we should compute eustatic loads for the ocean if we have requested
    57655765                 *bottom pressure fingerprints:*/
    5766                 if(bp_compute_fingerprints)this->SealevelriseEustaticBottomPressure(Sgi,peustatic,latitude,longitude,radius,oceanarea);
     5766                if(bp_compute_fingerprints)this->SealevelriseEustaticBottomPressure(Sgi,peustatic,oceanarea);
    57675767        }
    57685768        //if(!IsIceInElement()){
    57695769                /*there is ice in this eleemnt, let's compute the eustatic response for ice changes:*/
    5770                 this->SealevelriseEustaticIce(Sgi,peustatic,masks, latitude,longitude,radius,oceanarea);
     5770                this->SealevelriseEustaticIce(Sgi,peustatic,masks, oceanarea);
    57715771        //}
    57725772
    57735773}
    57745774/*}}}*/
    5775 void    Tria::SealevelriseEustaticIce(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks, IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea){ /*{{{*/
     5775void    Tria::SealevelriseEustaticIce(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks, IssmDouble oceanarea){ /*{{{*/
    57765776
    57775777        /*diverse:*/
     
    58975897}
    58985898/*}}}*/
    5899 void    Tria::SealevelriseEustaticBottomPressure(IssmDouble* Sgi,IssmDouble* peustatic, IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea){ /*{{{*/
     5899void    Tria::SealevelriseEustaticBottomPressure(IssmDouble* Sgi,IssmDouble* peustatic, IssmDouble oceanarea){ /*{{{*/
    59005900
    59015901        /*diverse:*/
     
    60106010        /*We do not need to add the bottom pressure component to the eustatic value: */
    60116011        eustatic += 0;
     6012        IssmDouble* latitude=NULL; //NOT GOING TO WORK!
     6013        IssmDouble* longitude=NULL; //NOT GOING TO WORK!
    60126014
    60136015        if(computeelastic | computerigid){
     
    60466048}
    60476049/*}}}*/
    6048 void    Tria::SealevelriseNonEustatic(IssmDouble* Sgo,IssmDouble* Sg_old, SealevelMasks* masks,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius){ /*{{{*/
     6050void    Tria::SealevelriseNonEustatic(IssmDouble* Sgo,IssmDouble* Sg_old, SealevelMasks* masks){ /*{{{*/
    60496051
    60506052        /*diverse:*/
     
    60906092}
    60916093/*}}}*/
    6092 void    Tria::SealevelriseGeodetic(IssmDouble* Up, IssmDouble* North ,IssmDouble* East,IssmDouble* Sg, SealevelMasks* masks, IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz){ /*{{{*/
     6094void    Tria::SealevelriseGeodetic(IssmDouble* Up, IssmDouble* North ,IssmDouble* East,IssmDouble* Sg, SealevelMasks* masks){ /*{{{*/
    60936095
    60946096        /*diverse:*/
  • issm/trunk-jpl/src/c/classes/Elements/Tria.h

    r24946 r24947  
    167167                void    SetSealevelMasks(SealevelMasks* masks);
    168168                void    SealevelriseGeometry(IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius, IssmDouble* xx, IssmDouble* yy, IssmDouble* zz);
    169                 void    SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic,SealevelMasks* masks, IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea);
    170                 void    SealevelriseEustaticIce(IssmDouble* Sgi, IssmDouble* peustatic,SealevelMasks* masks, IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea);
    171                 void    SealevelriseEustaticBottomPressure(IssmDouble* Sgi, IssmDouble* peustatic,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea);
    172                 void    SealevelriseNonEustatic(IssmDouble* Sgo,IssmDouble* Sg_old,SealevelMasks* masks, IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius);
    173                 void    SealevelriseGeodetic(IssmDouble* Up, IssmDouble* North, IssmDouble* East, IssmDouble* Sg,SealevelMasks* masks, IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble* xx,IssmDouble* yy,IssmDouble* zz);
     169                void    SealevelriseEustatic(IssmDouble* Sgi, IssmDouble* peustatic,SealevelMasks* masks, IssmDouble oceanarea);
     170                void    SealevelriseEustaticIce(IssmDouble* Sgi, IssmDouble* peustatic,SealevelMasks* masks, IssmDouble oceanarea);
     171                void    SealevelriseEustaticBottomPressure(IssmDouble* Sgi, IssmDouble* peustatic,IssmDouble oceanarea);
     172                void    SealevelriseNonEustatic(IssmDouble* Sgo,IssmDouble* Sg_old,SealevelMasks* masks);
     173                void    SealevelriseGeodetic(IssmDouble* Up, IssmDouble* North, IssmDouble* East, IssmDouble* Sg,SealevelMasks* masks);
    174174                #endif
    175175                /*}}}*/
  • issm/trunk-jpl/src/c/classes/FemModel.cpp

    r24946 r24947  
    46834683}
    46844684/*}}}*/
    4685 void FemModel::SealevelriseEustatic(Vector<IssmDouble>* pRSLgi, IssmDouble* poceanarea, IssmDouble* peustatic, SealevelMasks* masks, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius,int loop) { /*{{{*/
     4685void FemModel::SealevelriseEustatic(Vector<IssmDouble>* pRSLgi, IssmDouble* poceanarea, IssmDouble* peustatic, SealevelMasks* masks) { /*{{{*/
    46864686
    46874687        /*serialized vectors:*/
     
    47134713        for(int i=0;i<elements->Size();i++){
    47144714                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
    4715                 element->SealevelriseEustatic(RSLgi,&eustatic_cpu_e,masks, latitude,longitude,radius,oceanarea);
     4715                element->SealevelriseEustatic(RSLgi,&eustatic_cpu_e,masks, oceanarea);
    47164716                eustatic_cpu+=eustatic_cpu_e;
    47174717        }
     
    47364736}
    47374737/*}}}*/
    4738 void FemModel::SealevelriseNonEustatic(Vector<IssmDouble>* pRSLgo, Vector<IssmDouble>* pRSLg_old,  SealevelMasks* masks, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, bool verboseconvolution,int loop){/*{{{*/
     4738void FemModel::SealevelriseNonEustatic(Vector<IssmDouble>* pRSLgo, Vector<IssmDouble>* pRSLg_old,  SealevelMasks* masks, bool verboseconvolution){/*{{{*/
    47394739
    47404740        /*serialized vectors:*/
     
    47654765                for(int i=0;i<elements->Size();i++){
    47664766                        Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
    4767                         element->SealevelriseNonEustatic(RSLgo,RSLg_old,masks, latitude,longitude,radius);
     4767                        element->SealevelriseNonEustatic(RSLgo,RSLg_old,masks);
    47684768                }
    47694769        }
     
    48544854}
    48554855/*}}}*/
    4856 void FemModel::SealevelriseElastic(Vector<IssmDouble>* pUp, Vector<IssmDouble>* pNorth, Vector<IssmDouble>* pEast, Vector<IssmDouble>* pRSLg, SealevelMasks* masks, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, IssmDouble* xx, IssmDouble* yy, IssmDouble* zz,int loop){/*{{{*/
     4856void FemModel::SealevelriseElastic(Vector<IssmDouble>* pUp, Vector<IssmDouble>* pNorth, Vector<IssmDouble>* pEast, Vector<IssmDouble>* pRSLg, SealevelMasks* masks){/*{{{*/
    48574857
    48584858        /*serialized vectors:*/
     
    48764876        gsize = this->nodes->NumberOfDofs(GsetEnum);
    48774877        Up=xNewZeroInit<IssmDouble>(gsize);
    4878         North=xNewZeroInit<IssmDouble>(gsize);
    4879         East=xNewZeroInit<IssmDouble>(gsize);
     4878        if(horiz){
     4879                North=xNewZeroInit<IssmDouble>(gsize);
     4880                East=xNewZeroInit<IssmDouble>(gsize);
     4881        }
    48804882        indices=xNew<int>(gsize); for (int i=0;i<gsize;i++)indices[i]=i;
    48814883
     
    48834885        for(int i=0;i<elements->Size();i++){
    48844886                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
    4885                 element->SealevelriseGeodetic(Up,North,East,RSLg,masks, latitude,longitude,radius,xx,yy,zz);
     4887                element->SealevelriseGeodetic(Up,North,East,RSLg,masks);
    48864888        }
    48874889
     
    48974899        /*Free ressources:*/
    48984900        xDelete<IssmDouble>(Up);
    4899         xDelete<IssmDouble>(North);
    4900         xDelete<IssmDouble>(East);
     4901        if(horiz){
     4902                xDelete<IssmDouble>(North);
     4903                xDelete<IssmDouble>(East);
     4904        }
    49014905        xDelete<int>(indices);
    49024906        xDelete<IssmDouble>(RSLg);
  • issm/trunk-jpl/src/c/classes/FemModel.h

    r24946 r24947  
    163163                #endif
    164164                #ifdef _HAVE_SEALEVELRISE_
    165                 void SealevelriseEustatic(Vector<IssmDouble>* pSgi, IssmDouble* poceanarea, IssmDouble* peustatic, SealevelMasks* masks, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius,int loop);
     165                void SealevelriseEustatic(Vector<IssmDouble>* pSgi, IssmDouble* poceanarea, IssmDouble* peustatic, SealevelMasks* masks);
    166166                void SealevelriseGeometry(IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, IssmDouble* xx, IssmDouble* yy, IssmDouble* zz);
    167                 void SealevelriseNonEustatic(Vector<IssmDouble>* pSgo, Vector<IssmDouble>* pSg_old,  SealevelMasks* masks, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius,bool verboseconvolution,int loop);
     167                void SealevelriseNonEustatic(Vector<IssmDouble>* pSgo, Vector<IssmDouble>* pSg_old,  SealevelMasks* masks,bool verboseconvolution);
    168168                void SealevelriseRotationalFeedback(Vector<IssmDouble>* pRSLgo_rot, Vector<IssmDouble>* pRSLg_old, IssmDouble* pIxz, IssmDouble* pIyz, IssmDouble* pIzz, SealevelMasks* masks, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius);
    169                 void SealevelriseElastic(Vector<IssmDouble>* pUp, Vector<IssmDouble>* pNorth, Vector<IssmDouble>* pEast, Vector<IssmDouble>* pSg_old, SealevelMasks* masks, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, IssmDouble* xx, IssmDouble* yy, IssmDouble* zz,int loop);
     169                void SealevelriseElastic(Vector<IssmDouble>* pUp, Vector<IssmDouble>* pNorth, Vector<IssmDouble>* pEast, Vector<IssmDouble>* pSg_old, SealevelMasks* masks);
    170170                IssmDouble SealevelriseOceanAverage(Vector<IssmDouble>* Sg,SealevelMasks* masks, IssmDouble oceanarea);
    171171                #endif
  • issm/trunk-jpl/src/c/cores/sealevelrise_core.cpp

    r24940 r24947  
    337337        IssmDouble *longitude = NULL;
    338338        IssmDouble *radius    = NULL;
     339        IssmDouble *xx    = NULL;
     340        IssmDouble *yy    = NULL;
     341        IssmDouble *zz    = NULL;
     342        int  horiz;
    339343
    340344        /*Verbose: */
    341345        if(VerboseSolution()) _printf0_("         computing geometrical offsets into precomputed Green tables \n");
     346       
     347        femmodel->parameters->FindParam(&horiz,SealevelriseHorizEnum);
    342348
    343349        /*first, recover lat,long and radius vectors from vertices: */
    344350        VertexCoordinatesx(&latitude,&longitude,&radius,femmodel->vertices,spherical);
     351        if(horiz) VertexCoordinatesx(&xx,&yy,&zz,femmodel->vertices);
     352
    345353
    346354        /*call the FemModel geometry module: */
    347         femmodel->SealevelriseGeometry(latitude, longitude, radius);
     355        femmodel->SealevelriseGeometry(latitude, longitude, xx,yy,zz,radius);
    348356
    349357        /*Free ressources:*/
    350         xDelete<IssmDouble>(latitude);
     358        if(horiz){
     359                xDelete<IssmDouble>(xx);
     360                xDelete<IssmDouble>(yy);
     361                xDelete<IssmDouble>(zz);
     362        }
    351363        xDelete<IssmDouble>(longitude);
    352364        xDelete<IssmDouble>(radius);
     
    363375        /*parameters: */
    364376        int  gsize;
    365         bool spherical=true;
    366         IssmDouble *latitude  = NULL;
    367         IssmDouble *longitude = NULL;
    368         IssmDouble *radius    = NULL;
    369         int         loop;
    370377        IssmDouble oceanarea;
    371378
     
    375382        if(VerboseSolution()) _printf0_("         computing eustatic components on ice\n");
    376383
    377         /*recover parameters:*/
    378         femmodel->parameters->FindParam(&loop,SealevelriseLoopIncrementEnum);
    379 
    380         /*first, recover lat,long and radius vectors from vertices: */
    381         VertexCoordinatesx(&latitude,&longitude,&radius,femmodel->vertices,spherical);
    382 
     384       
    383385        /*Figure out size of g-set deflection vector and allocate solution vector: */
    384386        gsize = femmodel->nodes->NumberOfDofs(GsetEnum);
     
    388390
    389391        /*call the eustatic main module: */
    390         femmodel->SealevelriseEustatic(RSLgi,&oceanarea,&eustatic, masks, latitude, longitude, radius,loop); //this computes
     392        femmodel->SealevelriseEustatic(RSLgi,&oceanarea,&eustatic, masks); //this computes
    391393
    392394        /*we need to average RSLgi over the ocean: RHS term  4 in Eq.4 of Farrel and clarke. Only the elements can do that: */
     
    399401        /*save eustatic value for results: */
    400402        femmodel->results->AddResult(new GenericExternalResult<IssmDouble>(femmodel->results->Size()+1,SealevelRSLEustaticEnum,-eustatic));
    401 
    402         /*clean up and return:*/
    403         xDelete<IssmDouble>(latitude);
    404         xDelete<IssmDouble>(longitude);
    405         xDelete<IssmDouble>(radius);
    406403
    407404        /*Assign output pointers and return: */
     
    437434        IssmDouble           eustatic;
    438435        IssmDouble                      Ixz, Iyz, Izz;
    439         int                      loop;
    440436       
    441437        if(VerboseSolution()) _printf0_("         converging on ocean components\n");
     
    445441        femmodel->parameters->FindParam(&eps_rel,SealevelriseReltolEnum);
    446442        femmodel->parameters->FindParam(&eps_abs,SealevelriseAbstolEnum);
    447         femmodel->parameters->FindParam(&loop,SealevelriseLoopIncrementEnum);
    448443
    449444        /*computational flag: */
     
    478473
    479474                /*call the non eustatic module: */
    480                 femmodel->SealevelriseNonEustatic(RSLgo, RSLg_old,  masks, latitude,longitude, radius,verboseconvolution,loop);
     475                femmodel->SealevelriseNonEustatic(RSLgo, RSLg_old,  masks, verboseconvolution);
    481476
    482477                /*assemble solution vector: */
     
    552547        IssmDouble          *yy     = NULL;
    553548        IssmDouble          *zz     = NULL;
    554         int  loop;
    555549        int  horiz;
    556550       
     
    558552
    559553        /*retrieve some parameters:*/
    560         femmodel->parameters->FindParam(&loop,SealevelriseLoopIncrementEnum);
    561554        femmodel->parameters->FindParam(&horiz,SealevelriseHorizEnum);
    562555
     
    576569
    577570        /*call the elastic main modlule:*/
    578         femmodel->SealevelriseElastic(U_esa,U_north_esa,U_east_esa,RSLg, masks, latitude,longitude,radius,xx,yy,zz,loop,horiz);
     571        femmodel->SealevelriseElastic(U_esa,U_north_esa,U_east_esa,RSLg, masks);
    579572
    580573        /*Assign output pointers:*/
  • issm/trunk-jpl/src/c/shared/Enum/Enum.vim

    r24944 r24947  
    315315syn keyword cConstant SealevelriseHElasticEnum
    316316syn keyword cConstant SealevelriseHorizEnum
    317 syn keyword cConstant SealevelriseLoopIncrementEnum
    318317syn keyword cConstant SealevelriseMaxiterEnum
    319318syn keyword cConstant SealevelriseOceanAreaScalingEnum
     
    686685syn keyword cConstant SealevelriseIndicesEnum
    687686syn keyword cConstant SealevelriseGEnum
     687syn keyword cConstant SealevelriseGUEnum
     688syn keyword cConstant SealevelriseGEEnum
     689syn keyword cConstant SealevelriseGNEnum
    688690syn keyword cConstant SedimentHeadEnum
    689691syn keyword cConstant SedimentHeadOldEnum
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r24944 r24947  
    309309        SealevelriseHElasticEnum,
    310310        SealevelriseHorizEnum,
    311         SealevelriseLoopIncrementEnum,
    312311        SealevelriseMaxiterEnum,
    313312        SealevelriseOceanAreaScalingEnum,
     
    683682        SealevelriseIndicesEnum,
    684683        SealevelriseGEnum,
     684        SealevelriseGUEnum,
     685        SealevelriseGEEnum,
     686        SealevelriseGNEnum,
    685687        SedimentHeadEnum,
    686688        SedimentHeadOldEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r24944 r24947  
    317317                case SealevelriseHElasticEnum : return "SealevelriseHElastic";
    318318                case SealevelriseHorizEnum : return "SealevelriseHoriz";
    319                 case SealevelriseLoopIncrementEnum : return "SealevelriseLoopIncrement";
    320319                case SealevelriseMaxiterEnum : return "SealevelriseMaxiter";
    321320                case SealevelriseOceanAreaScalingEnum : return "SealevelriseOceanAreaScaling";
     
    688687                case SealevelriseIndicesEnum : return "SealevelriseIndices";
    689688                case SealevelriseGEnum : return "SealevelriseG";
     689                case SealevelriseGUEnum : return "SealevelriseGU";
     690                case SealevelriseGEEnum : return "SealevelriseGE";
     691                case SealevelriseGNEnum : return "SealevelriseGN";
    690692                case SedimentHeadEnum : return "SedimentHead";
    691693                case SedimentHeadOldEnum : return "SedimentHeadOld";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r24944 r24947  
    323323              else if (strcmp(name,"SealevelriseHElastic")==0) return SealevelriseHElasticEnum;
    324324              else if (strcmp(name,"SealevelriseHoriz")==0) return SealevelriseHorizEnum;
    325               else if (strcmp(name,"SealevelriseLoopIncrement")==0) return SealevelriseLoopIncrementEnum;
    326325              else if (strcmp(name,"SealevelriseMaxiter")==0) return SealevelriseMaxiterEnum;
    327326              else if (strcmp(name,"SealevelriseOceanAreaScaling")==0) return SealevelriseOceanAreaScalingEnum;
     
    383382              else if (strcmp(name,"SmbNumRequestedOutputs")==0) return SmbNumRequestedOutputsEnum;
    384383              else if (strcmp(name,"SmbPfac")==0) return SmbPfacEnum;
     384              else if (strcmp(name,"SmbRdl")==0) return SmbRdlEnum;
    385385         else stage=4;
    386386   }
    387387   if(stage==4){
    388               if (strcmp(name,"SmbRdl")==0) return SmbRdlEnum;
    389               else if (strcmp(name,"SmbRequestedOutputs")==0) return SmbRequestedOutputsEnum;
     388              if (strcmp(name,"SmbRequestedOutputs")==0) return SmbRequestedOutputsEnum;
    390389              else if (strcmp(name,"SmbRlaps")==0) return SmbRlapsEnum;
    391390              else if (strcmp(name,"SmbRlapslgm")==0) return SmbRlapslgmEnum;
     
    506505              else if (strcmp(name,"BedSlopeY")==0) return BedSlopeYEnum;
    507506              else if (strcmp(name,"CalvingCalvingrate")==0) return CalvingCalvingrateEnum;
     507              else if (strcmp(name,"CalvingHabFraction")==0) return CalvingHabFractionEnum;
    508508         else stage=5;
    509509   }
    510510   if(stage==5){
    511               if (strcmp(name,"CalvingHabFraction")==0) return CalvingHabFractionEnum;
    512               else if (strcmp(name,"CalvingMeltingrate")==0) return CalvingMeltingrateEnum;
     511              if (strcmp(name,"CalvingMeltingrate")==0) return CalvingMeltingrateEnum;
    513512              else if (strcmp(name,"CalvingStressThresholdFloatingice")==0) return CalvingStressThresholdFloatingiceEnum;
    514513              else if (strcmp(name,"CalvingStressThresholdGroundedice")==0) return CalvingStressThresholdGroundediceEnum;
     
    629628              else if (strcmp(name,"Ice")==0) return IceEnum;
    630629              else if (strcmp(name,"IceMaskNodeActivation")==0) return IceMaskNodeActivationEnum;
     630              else if (strcmp(name,"Input")==0) return InputEnum;
    631631         else stage=6;
    632632   }
    633633   if(stage==6){
    634               if (strcmp(name,"Input")==0) return InputEnum;
    635               else if (strcmp(name,"InversionCostFunctionsCoefficients")==0) return InversionCostFunctionsCoefficientsEnum;
     634              if (strcmp(name,"InversionCostFunctionsCoefficients")==0) return InversionCostFunctionsCoefficientsEnum;
    636635              else if (strcmp(name,"InversionSurfaceObs")==0) return InversionSurfaceObsEnum;
    637636              else if (strcmp(name,"InversionThicknessObs")==0) return InversionThicknessObsEnum;
     
    703702              else if (strcmp(name,"SealevelriseIndices")==0) return SealevelriseIndicesEnum;
    704703              else if (strcmp(name,"SealevelriseG")==0) return SealevelriseGEnum;
     704              else if (strcmp(name,"SealevelriseGU")==0) return SealevelriseGUEnum;
     705              else if (strcmp(name,"SealevelriseGE")==0) return SealevelriseGEEnum;
     706              else if (strcmp(name,"SealevelriseGN")==0) return SealevelriseGNEnum;
    705707              else if (strcmp(name,"SedimentHead")==0) return SedimentHeadEnum;
    706708              else if (strcmp(name,"SedimentHeadOld")==0) return SedimentHeadOldEnum;
     
    750752              else if (strcmp(name,"SmbGspini")==0) return SmbGspiniEnum;
    751753              else if (strcmp(name,"SmbHref")==0) return SmbHrefEnum;
    752               else if (strcmp(name,"SmbIsInitialized")==0) return SmbIsInitializedEnum;
    753               else if (strcmp(name,"SmbMAdd")==0) return SmbMAddEnum;
    754754         else stage=7;
    755755   }
    756756   if(stage==7){
    757               if (strcmp(name,"SmbMassBalanceClimate")==0) return SmbMassBalanceClimateEnum;
     757              if (strcmp(name,"SmbIsInitialized")==0) return SmbIsInitializedEnum;
     758              else if (strcmp(name,"SmbMAdd")==0) return SmbMAddEnum;
     759              else if (strcmp(name,"SmbMassBalanceClimate")==0) return SmbMassBalanceClimateEnum;
    758760              else if (strcmp(name,"SmbMassBalance")==0) return SmbMassBalanceEnum;
    759761              else if (strcmp(name,"SmbMassBalanceSubstep")==0) return SmbMassBalanceSubstepEnum;
     
    873875              else if (strcmp(name,"WeightsSurfaceObservation")==0) return WeightsSurfaceObservationEnum;
    874876              else if (strcmp(name,"Outputdefinition1")==0) return Outputdefinition1Enum;
    875               else if (strcmp(name,"Outputdefinition10")==0) return Outputdefinition10Enum;
    876               else if (strcmp(name,"Outputdefinition11")==0) return Outputdefinition11Enum;
    877877         else stage=8;
    878878   }
    879879   if(stage==8){
    880               if (strcmp(name,"Outputdefinition12")==0) return Outputdefinition12Enum;
     880              if (strcmp(name,"Outputdefinition10")==0) return Outputdefinition10Enum;
     881              else if (strcmp(name,"Outputdefinition11")==0) return Outputdefinition11Enum;
     882              else if (strcmp(name,"Outputdefinition12")==0) return Outputdefinition12Enum;
    881883              else if (strcmp(name,"Outputdefinition13")==0) return Outputdefinition13Enum;
    882884              else if (strcmp(name,"Outputdefinition14")==0) return Outputdefinition14Enum;
     
    996998              else if (strcmp(name,"BalancethicknessSpcthickness")==0) return BalancethicknessSpcthicknessEnum;
    997999              else if (strcmp(name,"BalancevelocityAnalysis")==0) return BalancevelocityAnalysisEnum;
    998               else if (strcmp(name,"BalancevelocitySolution")==0) return BalancevelocitySolutionEnum;
    999               else if (strcmp(name,"BasalforcingsIsmip6")==0) return BasalforcingsIsmip6Enum;
    10001000         else stage=9;
    10011001   }
    10021002   if(stage==9){
    1003               if (strcmp(name,"BasalforcingsPico")==0) return BasalforcingsPicoEnum;
     1003              if (strcmp(name,"BalancevelocitySolution")==0) return BalancevelocitySolutionEnum;
     1004              else if (strcmp(name,"BasalforcingsIsmip6")==0) return BasalforcingsIsmip6Enum;
     1005              else if (strcmp(name,"BasalforcingsPico")==0) return BasalforcingsPicoEnum;
    10041006              else if (strcmp(name,"BeckmannGoosseFloatingMeltRate")==0) return BeckmannGoosseFloatingMeltRateEnum;
    10051007              else if (strcmp(name,"BedSlopeSolution")==0) return BedSlopeSolutionEnum;
     
    11191121              else if (strcmp(name,"Hydrologydc")==0) return HydrologydcEnum;
    11201122              else if (strcmp(name,"Hydrologypism")==0) return HydrologypismEnum;
    1121               else if (strcmp(name,"Hydrologyshakti")==0) return HydrologyshaktiEnum;
    1122               else if (strcmp(name,"Hydrologyshreve")==0) return HydrologyshreveEnum;
    11231123         else stage=10;
    11241124   }
    11251125   if(stage==10){
    1126               if (strcmp(name,"IceMass")==0) return IceMassEnum;
     1126              if (strcmp(name,"Hydrologyshakti")==0) return HydrologyshaktiEnum;
     1127              else if (strcmp(name,"Hydrologyshreve")==0) return HydrologyshreveEnum;
     1128              else if (strcmp(name,"IceMass")==0) return IceMassEnum;
    11271129              else if (strcmp(name,"IceMassScaled")==0) return IceMassScaledEnum;
    11281130              else if (strcmp(name,"IceVolumeAboveFloatation")==0) return IceVolumeAboveFloatationEnum;
     
    12421244              else if (strcmp(name,"P2xP1")==0) return P2xP1Enum;
    12431245              else if (strcmp(name,"P2xP4")==0) return P2xP4Enum;
    1244               else if (strcmp(name,"Paterson")==0) return PatersonEnum;
    1245               else if (strcmp(name,"Pengrid")==0) return PengridEnum;
    12461246         else stage=11;
    12471247   }
    12481248   if(stage==11){
    1249               if (strcmp(name,"Penpair")==0) return PenpairEnum;
     1249              if (strcmp(name,"Paterson")==0) return PatersonEnum;
     1250              else if (strcmp(name,"Pengrid")==0) return PengridEnum;
     1251              else if (strcmp(name,"Penpair")==0) return PenpairEnum;
    12501252              else if (strcmp(name,"Penta")==0) return PentaEnum;
    12511253              else if (strcmp(name,"PentaInput")==0) return PentaInputEnum;
     
    13651367              else if (strcmp(name,"SubelementMigration4")==0) return SubelementMigration4Enum;
    13661368              else if (strcmp(name,"TimesteppingTimeAdapt")==0) return TimesteppingTimeAdaptEnum;
    1367               else if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum;
     1369         else stage=12;
     1370   }
     1371   if(stage==12){
     1372              if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum;
    13681373              else if (strcmp(name,"MaximumNumberOfDefinitions")==0) return MaximumNumberOfDefinitionsEnum;
    1369          else stage=12;
     1374         else stage=13;
    13701375   }
    13711376        /*If we reach this point, the string provided has not been found*/
Note: See TracChangeset for help on using the changeset viewer.