Changeset 18001
- Timestamp:
- 05/14/14 14:39:55 (11 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp
r17946 r18001 115 115 case SMBhenningEnum: 116 116 iomodel->FetchDataToInput(elements,SurfaceforcingsSmbrefEnum,0.); 117 break; 118 case SMBcomponentsEnum: 119 iomodel->FetchDataToInput(elements,SurfaceforcingsAccumulationEnum,0.); 120 iomodel->FetchDataToInput(elements,SurfaceforcingsEvaporationEnum,0.); 121 iomodel->FetchDataToInput(elements,SurfaceforcingsRunoffEnum,0.); 122 break; 123 case SMBmeltcomponentsEnum: 124 iomodel->FetchDataToInput(elements,SurfaceforcingsAccumulationEnum,0.); 125 iomodel->FetchDataToInput(elements,SurfaceforcingsEvaporationEnum,0.); 126 iomodel->FetchDataToInput(elements,SurfaceforcingsMeltEnum,0.); 127 iomodel->FetchDataToInput(elements,SurfaceforcingsRefreezeEnum,0.); 117 128 break; 118 129 default: -
issm/trunk-jpl/src/c/classes/Elements/Element.h
r17976 r18001 228 228 virtual void PositiveDegreeDay(IssmDouble* pdds,IssmDouble* pds,IssmDouble signorm)=0; 229 229 virtual void Delta18oParameterization(void)=0; 230 virtual void SmbGradients(void)=0;231 230 virtual Element* SpawnBasalElement(void)=0; 232 231 virtual Element* SpawnTopElement(void)=0; -
issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
r17982 r18001 2001 2001 2002 2002 return tria; 2003 }2004 /*}}}*/2005 void Penta::SmbGradients(void){/*{{{*/2006 2007 int i;2008 2009 // input2010 IssmDouble h[NUMVERTICES]; // ice thickness (m)2011 IssmDouble s[NUMVERTICES]; // surface elevation (m)2012 IssmDouble b_pos[NUMVERTICES]; // Hs-SMB relation parameter2013 IssmDouble b_neg[NUMVERTICES]; // Hs-SMB relation paremeter2014 IssmDouble Href[NUMVERTICES]; // reference elevation from which deviations are used to calculate the SMB adjustment2015 IssmDouble Smbref[NUMVERTICES]; // reference SMB to which deviations are added2016 IssmDouble rho_water; // density of fresh water2017 IssmDouble rho_ice; // density of ice2018 2019 // output2020 IssmDouble smb[NUMVERTICES]; // surface mass balance (m/yr ice)2021 2022 /*Recover SmbGradients*/2023 GetInputListOnVertices(&Href[0],SurfaceforcingsHrefEnum);2024 GetInputListOnVertices(&Smbref[0],SurfaceforcingsSmbrefEnum);2025 GetInputListOnVertices(&b_pos[0],SurfaceforcingsBPosEnum);2026 GetInputListOnVertices(&b_neg[0],SurfaceforcingsBNegEnum);2027 2028 /*Recover surface elevatio at vertices: */2029 GetInputListOnVertices(&h[0],ThicknessEnum);2030 GetInputListOnVertices(&s[0],SurfaceEnum);2031 2032 /*Get material parameters :*/2033 rho_ice=matpar->GetRhoIce();2034 rho_water=matpar->GetRhoFreshwater();2035 2036 // loop over all vertices2037 for(i=0;i<NUMVERTICES;i++){2038 if(Smbref[i]>0){2039 smb[i]=Smbref[i]+b_pos[i]*(s[i]-Href[i]);2040 }2041 else{2042 smb[i]=Smbref[i]+b_neg[i]*(s[i]-Href[i]);2043 }2044 smb[i]=smb[i]/rho_ice; // SMB in m/y ice2045 } //end of the loop over the vertices2046 /*Update inputs*/2047 this->inputs->AddInput(new PentaInput(SurfaceforcingsMassBalanceEnum,&smb[0],P1Enum));2048 2003 } 2049 2004 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Elements/Penta.h
r17976 r18001 95 95 void ReduceMatrices(ElementMatrix* Ke,ElementVector* pe); 96 96 void ResetFSBasalBoundaryCondition(void); 97 void SmbGradients();98 97 void SetTemporaryElementType(int element_type_in); 99 98 Element* SpawnBasalElement(void); -
issm/trunk-jpl/src/c/classes/Elements/Seg.h
r17976 r18001 136 136 void ReduceMatrices(ElementMatrix* Ke,ElementVector* pe){_error_("not implemented yet");}; 137 137 void SetTemporaryElementType(int element_type_in){_error_("not implemented yet");}; 138 void SmbGradients(){_error_("not implemented yet");};139 138 IssmDouble SurfaceArea(void){_error_("not implemented yet");}; 140 139 void Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finitelement){_error_("not implemented yet");}; -
issm/trunk-jpl/src/c/classes/Elements/Tetra.h
r17976 r18001 140 140 void ReduceMatrices(ElementMatrix* Ke,ElementVector* pe); 141 141 void SetTemporaryElementType(int element_type_in){_error_("not implemented yet");}; 142 void SmbGradients(){_error_("not implemented yet");};143 142 IssmDouble SurfaceArea(void){_error_("not implemented yet");}; 144 143 void Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finitelement); -
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r17976 r18001 1717 1717 1718 1718 _error_("not implemented yet"); 1719 }1720 /*}}}*/1721 void Tria::SmbGradients(void){/*{{{*/1722 1723 int i;1724 1725 // input1726 IssmDouble h[NUMVERTICES]; // ice thickness (m)1727 IssmDouble s[NUMVERTICES]; // surface elevation (m)1728 IssmDouble b_pos[NUMVERTICES]; // Hs-SMB relation parameter1729 IssmDouble b_neg[NUMVERTICES]; // Hs-SMB relation paremeter1730 IssmDouble Href[NUMVERTICES]; // reference elevation from which deviations are used to calculate the SMB adjustment1731 IssmDouble Smbref[NUMVERTICES]; // reference SMB to which deviations are added1732 IssmDouble rho_water; // density of fresh water1733 IssmDouble rho_ice; // density of ice1734 1735 // output1736 IssmDouble smb[NUMVERTICES]; // surface mass balance (m/yr ice)1737 1738 /*Recover SmbGradients*/1739 GetInputListOnVertices(&Href[0],SurfaceforcingsHrefEnum);1740 GetInputListOnVertices(&Smbref[0],SurfaceforcingsSmbrefEnum);1741 GetInputListOnVertices(&b_pos[0],SurfaceforcingsBPosEnum);1742 GetInputListOnVertices(&b_neg[0],SurfaceforcingsBNegEnum);1743 1744 /*Recover surface elevatio at vertices: */1745 GetInputListOnVertices(&h[0],ThicknessEnum);1746 GetInputListOnVertices(&s[0],SurfaceEnum);1747 1748 /*Get material parameters :*/1749 rho_ice=matpar->GetRhoIce();1750 rho_water=matpar->GetRhoFreshwater();1751 1752 // loop over all vertices1753 for(i=0;i<NUMVERTICES;i++){1754 if(Smbref[i]>0){1755 smb[i]=Smbref[i]+b_pos[i]*(s[i]-Href[i]);1756 }1757 else{1758 smb[i]=Smbref[i]+b_neg[i]*(s[i]-Href[i]);1759 }1760 smb[i]=smb[i]/rho_ice; // SMB in m/y ice1761 } //end of the loop over the vertices1762 /*Update inputs*/1763 this->inputs->AddInput(new TriaInput(SurfaceforcingsMassBalanceEnum,&smb[0],P1Enum));1764 1719 } 1765 1720 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Elements/Tria.h
r17976 r18001 93 93 void ReduceMatrices(ElementMatrix* Ke,ElementVector* pe); 94 94 void ResetFSBasalBoundaryCondition(void); 95 void SmbGradients();96 95 Element* SpawnBasalElement(void); 97 96 Element* SpawnTopElement(void); -
issm/trunk-jpl/src/c/classes/Inputs/TransientInput.cpp
r17514 r18001 520 520 int found; 521 521 int offset; 522 bool interp; 523 524 /*First, recover interp bool: */ 525 this->parameters->FindParam(&interp,TimesteppingInterpForcingsEnum); 522 526 523 527 Input *input = NULL; … … 535 539 input=(Input*)((Input*)this->inputs->GetObjectByOffset(0))->copy(); 536 540 } 537 else if(offset==(this->numtimesteps-1) ){541 else if(offset==(this->numtimesteps-1) || !interp){ 538 542 /*get values for the last time: */ 539 543 _assert_(intime>=this->timesteps[offset]); 540 544 input=(Input*)((Input*)this->inputs->GetObjectByOffset(offset))->copy(); 541 545 } 542 else {546 else { 543 547 /*get values between two times [offset:offset+1[, Interpolate linearly*/ 544 548 _assert_(intime>=this->timesteps[offset] && intime<this->timesteps[offset+1]); -
issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp
r17946 r18001 54 54 break; 55 55 case SMBhenningEnum: 56 /*Nothing to add*/ 57 break; 58 case SMBcomponentsEnum: 59 /*Nothing to add*/ 60 break; 61 case SMBmeltcomponentsEnum: 56 62 /*Nothing to add*/ 57 63 break; -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
r17924 r18001 53 53 parameters->AddObject(iomodel->CopyConstantObject(TimesteppingTimeStepEnum)); 54 54 parameters->AddObject(iomodel->CopyConstantObject(TimesteppingCflCoefficientEnum)); 55 parameters->AddObject(iomodel->CopyConstantObject(TimesteppingInterpForcingsEnum)); 55 56 parameters->AddObject(iomodel->CopyConstantObject(SettingsLowmemEnum)); 56 57 parameters->AddObject(iomodel->CopyConstantObject(DebugProfilingEnum)); … … 123 124 /*Nothing to add to parameters*/ 124 125 break; 126 case SMBcomponentsEnum: 127 /*Nothing to add to parameters*/ 128 break; 129 case SMBmeltcomponentsEnum: 130 /*Nothing to add to parameters*/ 131 break; 125 132 default: 126 133 _error_("Surface mass balance model "<<EnumToStringx(smb_model)<<" not supported yet"); -
issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp
r17403 r18001 38 38 SmbHenningx(femmodel); 39 39 break; 40 case SMBcomponentsEnum: 41 if(VerboseSolution())_printf_(" call smb Components module\n"); 42 SmbComponentsx(femmodel); 43 break; 44 case SMBmeltcomponentsEnum: 45 if(VerboseSolution())_printf_(" call smb Melt Components module\n"); 46 SmbMeltComponentsx(femmodel); 47 break; 40 48 default: 41 49 _error_("Surface mass balance model "<<EnumToStringx(smb_model)<<" not supported yet"); … … 50 58 // INPUT: surface elevation (m): hd(NA) 51 59 // OUTPUT: mass-balance (m/yr ice): agd(NA) 52 53 for(int i=0;i<femmodel->elements->Size();i++){ 54 Element* element=dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i)); 55 element->SmbGradients(); 60 int v; 61 IssmDouble rho_water; // density of fresh water 62 IssmDouble rho_ice; // density of ice 63 64 /*Loop over all the elements of this partition*/ 65 for(int i=0;i<femmodel->elements->Size();i++){ 66 Element* element=dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i)); 67 68 /*Allocate all arrays*/ 69 int numvertices = element->GetNumberOfVertices(); 70 IssmDouble* Href = xNew<IssmDouble>(numvertices); // reference elevation from which deviations are used to calculate the SMB adjustment 71 IssmDouble* Smbref = xNew<IssmDouble>(numvertices); // reference SMB to which deviations are added 72 IssmDouble* b_pos = xNew<IssmDouble>(numvertices); // Hs-SMB relation parameter 73 IssmDouble* b_neg = xNew<IssmDouble>(numvertices); // Hs-SMB relation paremeter 74 IssmDouble* h = xNew<IssmDouble>(numvertices); // ice thickness (m) 75 IssmDouble* s = xNew<IssmDouble>(numvertices); // surface elevation (m) 76 IssmDouble* smb = xNew<IssmDouble>(numvertices); 77 78 /*Recover SmbGradients*/ 79 element->GetInputListOnVertices(Href,SurfaceforcingsHrefEnum); 80 element->GetInputListOnVertices(Smbref,SurfaceforcingsSmbrefEnum); 81 element->GetInputListOnVertices(b_pos,SurfaceforcingsBPosEnum); 82 element->GetInputListOnVertices(b_neg,SurfaceforcingsBNegEnum); 83 84 /*Recover surface elevatio at vertices: */ 85 element->GetInputListOnVertices(h,ThicknessEnum); 86 element->GetInputListOnVertices(s,SurfaceEnum); 87 88 /*Get material parameters :*/ 89 rho_ice=element->matpar->GetRhoIce(); 90 rho_water=element->matpar->GetRhoFreshwater(); 91 92 // loop over all vertices 93 for(v=0;v<numvertices;v++){ 94 if(Smbref[v]>0){ 95 smb[v]=Smbref[v]+b_pos[v]*(s[v]-Href[v]); 96 } 97 else{ 98 smb[v]=Smbref[v]+b_neg[v]*(s[v]-Href[v]); 99 } 100 smb[v]=smb[v]/rho_ice; // SMB in m/y ice 101 } //end of the loop over the vertices 102 103 /*Add input to element and Free memory*/ 104 element->AddInput(SurfaceforcingsMassBalanceEnum,smb,P1Enum); 105 xDelete<IssmDouble>(Href); 106 xDelete<IssmDouble>(Smbref); 107 xDelete<IssmDouble>(b_pos); 108 xDelete<IssmDouble>(b_neg); 109 xDelete<IssmDouble>(h); 110 xDelete<IssmDouble>(s); 111 xDelete<IssmDouble>(smb); 56 112 } 57 113 … … 227 283 228 284 }/*}}}*/ 285 void SmbComponentsx(FemModel* femmodel){/*{{{*/ 286 287 // void SmbComponentsx(acc,evap,runoff,ni){ 288 // INPUT parameters: ni: working size of arrays 289 // INPUT: surface accumulation (m/yr water equivalent): acc 290 // surface evaporation (m/yr water equivalent): evap 291 // surface runoff (m/yr water equivalent): runoff 292 // OUTPUT: mass-balance (m/yr ice): agd(NA) 293 int v; 294 295 /*Loop over all the elements of this partition*/ 296 for(int i=0;i<femmodel->elements->Size();i++){ 297 Element* element=dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i)); 298 299 /*Allocate all arrays*/ 300 int numvertices = element->GetNumberOfVertices(); 301 IssmDouble* acc = xNew<IssmDouble>(numvertices); 302 IssmDouble* evap = xNew<IssmDouble>(numvertices); 303 IssmDouble* runoff = xNew<IssmDouble>(numvertices); 304 IssmDouble* smb = xNew<IssmDouble>(numvertices); 305 306 /*Recover Smb Components*/ 307 element->GetInputListOnVertices(acc,SurfaceforcingsAccumulationEnum); 308 element->GetInputListOnVertices(evap,SurfaceforcingsEvaporationEnum); 309 element->GetInputListOnVertices(runoff,SurfaceforcingsRunoffEnum); 310 311 // loop over all vertices 312 for(v=0;v<numvertices;v++){ 313 smb[v]=acc[v]-evap[v]-runoff[v]; 314 } //end of the loop over the vertices 315 316 /*Add input to element and Free memory*/ 317 element->AddInput(SurfaceforcingsMassBalanceEnum,smb,P1Enum); 318 xDelete<IssmDouble>(acc); 319 xDelete<IssmDouble>(evap); 320 xDelete<IssmDouble>(runoff); 321 xDelete<IssmDouble>(smb); 322 } 323 324 }/*}}}*/ 325 void SmbMeltComponentsx(FemModel* femmodel){/*{{{*/ 326 327 // void SmbMeltComponentsx(acc,evap,melt,refreeze,ni){ 328 // INPUT parameters: ni: working size of arrays 329 // INPUT: surface accumulation (m/yr water equivalent): acc 330 // surface evaporation (m/yr water equivalent): evap 331 // surface melt (m/yr water equivalent): melt 332 // refreeze of surface melt (m/yr water equivalent): refreeze 333 // OUTPUT: mass-balance (m/yr ice): agd(NA) 334 int v; 335 336 /*Loop over all the elements of this partition*/ 337 for(int i=0;i<femmodel->elements->Size();i++){ 338 Element* element=dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i)); 339 340 /*Allocate all arrays*/ 341 int numvertices = element->GetNumberOfVertices(); 342 IssmDouble* acc = xNew<IssmDouble>(numvertices); 343 IssmDouble* evap = xNew<IssmDouble>(numvertices); 344 IssmDouble* melt = xNew<IssmDouble>(numvertices); 345 IssmDouble* refreeze = xNew<IssmDouble>(numvertices); 346 IssmDouble* smb = xNew<IssmDouble>(numvertices); 347 348 /*Recover Smb Components*/ 349 element->GetInputListOnVertices(acc,SurfaceforcingsAccumulationEnum); 350 element->GetInputListOnVertices(evap,SurfaceforcingsEvaporationEnum); 351 element->GetInputListOnVertices(melt,SurfaceforcingsMeltEnum); 352 element->GetInputListOnVertices(refreeze,SurfaceforcingsRefreezeEnum); 353 354 // loop over all vertices 355 for(v=0;v<numvertices;v++){ 356 smb[v]=acc[v]-evap[v]-melt[v]+refreeze[v]; 357 } //end of the loop over the vertices 358 359 /*Add input to element and Free memory*/ 360 element->AddInput(SurfaceforcingsMassBalanceEnum,smb,P1Enum); 361 xDelete<IssmDouble>(acc); 362 xDelete<IssmDouble>(evap); 363 xDelete<IssmDouble>(melt); 364 xDelete<IssmDouble>(refreeze); 365 xDelete<IssmDouble>(smb); 366 } 367 368 }/*}}}*/ -
issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.h
r17085 r18001 14 14 void PositiveDegreeDayx(FemModel* femmodel); 15 15 void SmbHenningx(FemModel* femmodel); 16 void SmbComponentsx(FemModel* femmodel); 17 void SmbMeltComponentsx(FemModel* femmodel); 16 18 17 19 #endif /* _SurfaceMassBalancex_H*/ -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r17984 r18001 324 324 SurfaceforcingsBNegEnum, 325 325 SMBhenningEnum, 326 SMBcomponentsEnum, 327 SurfaceforcingsAccumulationEnum, 328 SurfaceforcingsEvaporationEnum, 329 SurfaceforcingsRunoffEnum, 330 SMBmeltcomponentsEnum, 331 SurfaceforcingsMeltEnum, 332 SurfaceforcingsRefreezeEnum, 326 333 /*TO BE REMOVED*/ 327 334 SurfaceforcingsIspddEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r17984 r18001 330 330 case SurfaceforcingsBNegEnum : return "SurfaceforcingsBNeg"; 331 331 case SMBhenningEnum : return "SMBhenning"; 332 case SMBcomponentsEnum : return "SMBcomponents"; 333 case SurfaceforcingsAccumulationEnum : return "SurfaceforcingsAccumulation"; 334 case SurfaceforcingsEvaporationEnum : return "SurfaceforcingsEvaporation"; 335 case SurfaceforcingsRunoffEnum : return "SurfaceforcingsRunoff"; 336 case SMBmeltcomponentsEnum : return "SMBmeltcomponents"; 337 case SurfaceforcingsMeltEnum : return "SurfaceforcingsMelt"; 338 case SurfaceforcingsRefreezeEnum : return "SurfaceforcingsRefreeze"; 332 339 case SurfaceforcingsIspddEnum : return "SurfaceforcingsIspdd"; 333 340 case SurfaceforcingsIssmbgradientsEnum : return "SurfaceforcingsIssmbgradients"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r17984 r18001 336 336 else if (strcmp(name,"SurfaceforcingsBNeg")==0) return SurfaceforcingsBNegEnum; 337 337 else if (strcmp(name,"SMBhenning")==0) return SMBhenningEnum; 338 else if (strcmp(name,"SMBcomponents")==0) return SMBcomponentsEnum; 339 else if (strcmp(name,"SurfaceforcingsAccumulation")==0) return SurfaceforcingsAccumulationEnum; 340 else if (strcmp(name,"SurfaceforcingsEvaporation")==0) return SurfaceforcingsEvaporationEnum; 341 else if (strcmp(name,"SurfaceforcingsRunoff")==0) return SurfaceforcingsRunoffEnum; 342 else if (strcmp(name,"SMBmeltcomponents")==0) return SMBmeltcomponentsEnum; 343 else if (strcmp(name,"SurfaceforcingsMelt")==0) return SurfaceforcingsMeltEnum; 344 else if (strcmp(name,"SurfaceforcingsRefreeze")==0) return SurfaceforcingsRefreezeEnum; 338 345 else if (strcmp(name,"SurfaceforcingsIspdd")==0) return SurfaceforcingsIspddEnum; 339 346 else if (strcmp(name,"SurfaceforcingsIssmbgradients")==0) return SurfaceforcingsIssmbgradientsEnum; … … 376 383 else if (strcmp(name,"FreeSurfaceTopAnalysis")==0) return FreeSurfaceTopAnalysisEnum; 377 384 else if (strcmp(name,"SurfaceNormalVelocity")==0) return SurfaceNormalVelocityEnum; 378 else if (strcmp(name,"ExtrudeFromBaseAnalysis")==0) return ExtrudeFromBaseAnalysisEnum; 385 else stage=4; 386 } 387 if(stage==4){ 388 if (strcmp(name,"ExtrudeFromBaseAnalysis")==0) return ExtrudeFromBaseAnalysisEnum; 379 389 else if (strcmp(name,"ExtrudeFromTopAnalysis")==0) return ExtrudeFromTopAnalysisEnum; 380 390 else if (strcmp(name,"DepthAverageAnalysis")==0) return DepthAverageAnalysisEnum; … … 383 393 else if (strcmp(name,"SmoothedSurfaceSlopeXAnalysis")==0) return SmoothedSurfaceSlopeXAnalysisEnum; 384 394 else if (strcmp(name,"SmoothedSurfaceSlopeYAnalysis")==0) return SmoothedSurfaceSlopeYAnalysisEnum; 385 else stage=4; 386 } 387 if(stage==4){ 388 if (strcmp(name,"ThermalAnalysis")==0) return ThermalAnalysisEnum; 395 else if (strcmp(name,"ThermalAnalysis")==0) return ThermalAnalysisEnum; 389 396 else if (strcmp(name,"ThermalSolution")==0) return ThermalSolutionEnum; 390 397 else if (strcmp(name,"TransientSolution")==0) return TransientSolutionEnum; … … 499 506 else if (strcmp(name,"Pressure")==0) return PressureEnum; 500 507 else if (strcmp(name,"PressurePicard")==0) return PressurePicardEnum; 501 else if (strcmp(name,"QmuPressure")==0) return QmuPressureEnum; 508 else stage=5; 509 } 510 if(stage==5){ 511 if (strcmp(name,"QmuPressure")==0) return QmuPressureEnum; 502 512 else if (strcmp(name,"QmuVx")==0) return QmuVxEnum; 503 513 else if (strcmp(name,"QmuVy")==0) return QmuVyEnum; … … 506 516 else if (strcmp(name,"QmuBase")==0) return QmuBaseEnum; 507 517 else if (strcmp(name,"QmuSurface")==0) return QmuSurfaceEnum; 508 else stage=5; 509 } 510 if(stage==5){ 511 if (strcmp(name,"QmuMelting")==0) return QmuMeltingEnum; 518 else if (strcmp(name,"QmuMelting")==0) return QmuMeltingEnum; 512 519 else if (strcmp(name,"QmuVxMesh")==0) return QmuVxMeshEnum; 513 520 else if (strcmp(name,"QmuVyMesh")==0) return QmuVyMeshEnum; … … 622 629 else if (strcmp(name,"MisfitObservationEnum")==0) return MisfitObservationEnumEnum; 623 630 else if (strcmp(name,"MisfitTimeinterpolation")==0) return MisfitTimeinterpolationEnum; 624 else if (strcmp(name,"MisfitWeights")==0) return MisfitWeightsEnum; 631 else stage=6; 632 } 633 if(stage==6){ 634 if (strcmp(name,"MisfitWeights")==0) return MisfitWeightsEnum; 625 635 else if (strcmp(name,"MisfitWeightsEnum")==0) return MisfitWeightsEnumEnum; 626 636 else if (strcmp(name,"SurfaceObservation")==0) return SurfaceObservationEnum; … … 629 639 else if (strcmp(name,"MaxVel")==0) return MaxVelEnum; 630 640 else if (strcmp(name,"MinVx")==0) return MinVxEnum; 631 else stage=6; 632 } 633 if(stage==6){ 634 if (strcmp(name,"MaxVx")==0) return MaxVxEnum; 641 else if (strcmp(name,"MaxVx")==0) return MaxVxEnum; 635 642 else if (strcmp(name,"MaxAbsVx")==0) return MaxAbsVxEnum; 636 643 else if (strcmp(name,"MinVy")==0) return MinVyEnum;
Note:
See TracChangeset
for help on using the changeset viewer.