Skip to content

Commit 9e46ebd

Browse files
CHG: better handling of melt perturbation using macro
1 parent a181b42 commit 9e46ebd

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

src/c/analyses/MasstransportAnalysis.cpp

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include "../classes/Inputs/TransientInput.h"
77

88
#define FINITEELEMENT P1Enum
9+
//#define MELTPERTURBATION
910

1011
/*Model processing*/
1112
void MasstransportAnalysis::CreateConstraints(Constraints* constraints,IoModel* iomodel){/*{{{*/
@@ -668,7 +669,9 @@ ElementVector* MasstransportAnalysis::CreatePVectorCG(Element* element){/*{{{*/
668669

669670
Input* gmb_input = element->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(gmb_input);
670671
Input* fmb_input = element->GetInput(BasalforcingsFloatingiceMeltingRateEnum); _assert_(fmb_input);
671-
//Input* fmb_pert_input = element->GetInput(BasalforcingsPerturbationMeltingRateEnum); _assert_(fmb_pert_input);
672+
#ifdef MELTPERTURBATION
673+
Input* fmb_pert_input = element->GetInput(BasalforcingsPerturbationMeltingRateEnum); _assert_(fmb_pert_input);
674+
#endif
672675
Input* gllevelset_input = element->GetInput(MaskOceanLevelsetEnum); _assert_(gllevelset_input);
673676
Input* ms_input = element->GetInput(SmbMassBalanceEnum); _assert_(ms_input);
674677
Input* thickness_input = element->GetInput(ThicknessEnum); _assert_(thickness_input);
@@ -700,7 +703,9 @@ ElementVector* MasstransportAnalysis::CreatePVectorCG(Element* element){/*{{{*/
700703
ms_input->GetInputValue(&ms,gauss);
701704
gmb_input->GetInputValue(&gmb,gauss);
702705
fmb_input->GetInputValue(&fmb,gauss);
703-
//fmb_pert_input->GetInputValue(&fmb_pert,gauss);
706+
#ifdef MELTPERTURBATION
707+
fmb_pert_input->GetInputValue(&fmb_pert,gauss);
708+
#endif
704709
gllevelset_input->GetInputValue(&gllevelset,gauss);
705710
thickness_input->GetInputValue(&thickness,gauss);
706711

@@ -714,7 +719,10 @@ ElementVector* MasstransportAnalysis::CreatePVectorCG(Element* element){/*{{{*/
714719
}
715720
else if(melt_style==NoMeltOnPartiallyFloatingEnum){
716721
if (phi<0.00000001){
717-
mb=fmb;//+fmb_pert;
722+
mb=fmb;
723+
#ifdef MELTPERTURBATION
724+
mb += +fmb_pert;
725+
#endif
718726
}
719727
else mb=gmb;
720728
}

0 commit comments

Comments
 (0)