Index: ../trunk-jpl/src/c/modules/modules.h =================================================================== --- ../trunk-jpl/src/c/modules/modules.h (revision 19046) +++ ../trunk-jpl/src/c/modules/modules.h (revision 19047) @@ -11,6 +11,7 @@ #include "./Bamgx/Bamgx.h" #include "./BamgConvertMeshx/BamgConvertMeshx.h" #include "./BamgTriangulatex/BamgTriangulatex.h" +#include "./Calvingx/Calvingx.h" #include "./Chacox/Chacox.h" #include "./ConfigureObjectsx/ConfigureObjectsx.h" #include "./ContourToMeshx/ContourToMeshx.h" Index: ../trunk-jpl/src/c/modules/Calvingx/Calvingx.h =================================================================== --- ../trunk-jpl/src/c/modules/Calvingx/Calvingx.h (revision 0) +++ ../trunk-jpl/src/c/modules/Calvingx/Calvingx.h (revision 19047) @@ -0,0 +1,10 @@ +#ifndef _CALVINGX_H +#define _CALVINGX_H + +#include "../../classes/classes.h" +#include "../../analyses/analyses.h" + +/* local prototypes: */ +void Calvingx(FemModel* femmodel); + +#endif Index: ../trunk-jpl/src/c/modules/Calvingx/Calvingx.cpp =================================================================== --- ../trunk-jpl/src/c/modules/Calvingx/Calvingx.cpp (revision 0) +++ ../trunk-jpl/src/c/modules/Calvingx/Calvingx.cpp (revision 19047) @@ -0,0 +1,38 @@ +/*!\file Calvingx + * \brief: compute inverse method gradient + */ + +#include "./Calvingx.h" +#include "../../shared/shared.h" +#include "../../toolkits/toolkits.h" + +void Calvingx(FemModel* femmodel){ + + /*Recover Calving law Enum*/ + int calvinglaw; + femmodel->parameters->FindParam(&calvinglaw,CalvingLawEnum); + + /*Calculate calving rate*/ + switch(calvinglaw){ + case DefaultCalvingEnum: + break; + case CalvingLevermannEnum: + if(VerboseModule()) _printf0_(" computing Levermann's calving rate\n"); + femmodel->StrainRateparallelx(); + femmodel->StrainRateperpendicularx(); + femmodel->CalvingRateLevermannx(); + break; + case CalvingPiEnum: + if(VerboseModule()) _printf0_(" computing Pi's calving rate\n"); + femmodel->StrainRateparallelx(); + femmodel->DeviatoricStressx(); + femmodel->CalvingRatePix(); + break; + case CalvingDevEnum: + femmodel->CalvingRateDevx(); + femmodel->ElementOperationx(&Element::CalvingRateDev); + break; + default: + _error_("Caving law "<parameters->FindParam(&ishydrology,TransientIshydrologyEnum); femmodel->parameters->FindParam(&isFS,FlowequationIsFSEnum); femmodel->parameters->FindParam(&iscalving,TransientIscalvingEnum); - femmodel->parameters->FindParam(&calvinglaw,CalvingLawEnum); if(isgroundingline) femmodel->parameters->FindParam(&groundingline_migration,GroundinglineMigrationEnum); femmodel->parameters->FindParam(&numoutputs,TransientNumRequestedOutputsEnum); if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,TransientRequestedOutputsEnum); @@ -102,30 +101,7 @@ } if(islevelset){ - if(iscalving){ - switch(calvinglaw){ - case DefaultCalvingEnum: - break; - case CalvingLevermannEnum: - if(VerboseSolution()) _printf0_(" computing Levermann's calving rate\n"); - femmodel->StrainRateparallelx(); - femmodel->StrainRateperpendicularx(); - femmodel->CalvingRateLevermannx(); - break; - case CalvingPiEnum: - if(VerboseSolution()) _printf0_(" computing Pi's calving rate\n"); - femmodel->StrainRateparallelx(); - femmodel->DeviatoricStressx(); - femmodel->CalvingRatePix(); - break; - case CalvingDevEnum: - femmodel->CalvingRateDevx(); - femmodel->ElementOperationx(&Element::CalvingRateDev); - break; - default: - _error_("Caving law "<