source:
issm/oecreview/Archive/24684-25833/ISSM-24943-24944.diff
Last change on this file was 25834, checked in by , 4 years ago | |
---|---|
File size: 21.1 KB |
-
../trunk-jpl/src/c/classes/FemModel.cpp
4744 4744 int* indices = NULL; 4745 4745 int gsize; 4746 4746 4747 bool computerigid = true; 4748 bool computeelastic= true; 4749 4750 /*recover computational flags: */ 4751 this->parameters->FindParam(&computerigid,SealevelriseRigidEnum); 4752 this->parameters->FindParam(&computeelastic,SealevelriseElasticEnum); 4753 4747 4754 /*Initialize temporary vector that will be used to sum eustatic components on all local elements, prior 4748 4755 * to assembly:*/ 4749 4756 gsize = this->nodes->NumberOfDofs(GsetEnum); … … 4753 4760 /*Serialize vectors from previous iteration:*/ 4754 4761 RSLg_old=pRSLg_old->ToMPISerial(); 4755 4762 4756 /*Call the sea level rise core: */ 4757 for(int i=0;i<elements->Size();i++){ 4758 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 4759 element->SealevelriseNonEustatic(RSLgo,RSLg_old,masks, latitude,longitude,radius); 4763 /*Call the sea level rise non-eustatic core only if required: */ 4764 if(computerigid | computeelastic){ 4765 for(int i=0;i<elements->Size();i++){ 4766 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 4767 element->SealevelriseNonEustatic(RSLgo,RSLg_old,masks, latitude,longitude,radius); 4768 } 4760 4769 } 4761 4770 pRSLgo->SetValues(gsize,indices,RSLgo,ADD_VAL); 4762 4771 pRSLgo->Assemble(); -
../trunk-jpl/src/c/classes/Elements/Tria.cpp
5583 5583 int gsize; 5584 5584 bool spherical=true; 5585 5585 IssmDouble llr_list[NUMVERTICES][3]; 5586 IssmDouble area ;5586 IssmDouble area,eartharea; 5587 5587 IssmDouble I; //change in ice thickness or water level(Farrel and Clarke, Equ. 4) 5588 IssmDouble rho ;5588 IssmDouble rho_earth; 5589 5589 IssmDouble late,longe,re; 5590 5590 IssmDouble lati,longi,ri; 5591 IssmDouble constant; 5591 5592 5593 IssmDouble* G=NULL; 5594 IssmDouble* G_elastic_precomputed=NULL; 5595 IssmDouble* G_rigid_precomputed=NULL; 5596 5592 5597 /*elastic green function:*/ 5593 5598 IssmDouble* indices=NULL; 5594 5599 int M; 5595 IssmDouble* dummypointer=NULL;5596 5600 5597 5601 /*Computational flags:*/ 5598 5602 bool computerigid = true; 5603 bool computeelastic = true; 5599 5604 5600 /*how many dofs are we working with here? */ 5605 /*recover parameters: */ 5606 rho_earth=FindParam(MaterialsEarthDensityEnum); 5607 this->parameters->FindParam(&computerigid,SealevelriseRigidEnum); 5608 this->parameters->FindParam(&computeelastic,SealevelriseElasticEnum); 5601 5609 this->parameters->FindParam(&gsize,MeshNumberofverticesEnum); 5610 this->parameters->FindParam(&eartharea,SealevelEarthAreaEnum); 5602 5611 5603 /*recover size of indexed tables:*/5612 /*recover precomputed green function kernels:*/ 5604 5613 DoubleVecParam* parameter = static_cast<DoubleVecParam*>(this->parameters->FindParamObject(SealevelriseGRigidEnum)); _assert_(parameter); 5605 parameter->GetParameterValueByPointer(& dummypointer,&M);5614 parameter->GetParameterValueByPointer(&G_rigid_precomputed,&M); 5606 5615 5616 parameter = static_cast<DoubleVecParam*>(this->parameters->FindParamObject(SealevelriseGElasticEnum)); _assert_(parameter); 5617 parameter->GetParameterValueByPointer(&G_elastic_precomputed,&M); 5618 5607 5619 /*allocate indices:*/ 5608 5620 indices=xNew<IssmDouble>(gsize); 5621 G=xNewZeroInit<IssmDouble>(gsize); 5622 5623 /*compute area:*/ 5624 area=GetAreaSpherical(); 5609 5625 5610 5626 /* Where is the centroid of this element?:{{{*/ 5611 5627 … … 5645 5661 late=late/180*PI; 5646 5662 longe=longe/180*PI; 5647 5663 /*}}}*/ 5648 5664 5665 constant=3/rho_earth*area/eartharea; 5666 5649 5667 for(int i=0;i<gsize;i++){ 5650 5668 IssmDouble alpha; 5651 5669 IssmDouble delPhi,delLambda; … … 5654 5672 lati=latitude[i]/180*PI; longi=longitude[i]/180*PI; 5655 5673 delPhi=fabs(lati-late); delLambda=fabs(longi-longe); 5656 5674 alpha=2.*asin(sqrt(pow(sin(delPhi/2),2)+cos(lati)*cos(late)*pow(sin(delLambda/2),2))); 5657 indices[i]=reCast<int,IssmDouble>(alpha/PI*reCast<IssmDouble,int>(M-1)); 5675 indices[i]=alpha/PI*reCast<IssmDouble,int>(M-1); 5676 5677 /*Rigid earth gravitational perturbation: */ 5678 if(computerigid){ 5679 G[i]+=G_rigid_precomputed[reCast<int,IssmDouble>(indices[i])]; 5680 } 5681 if(computeelastic){ 5682 G[i]+=G_elastic_precomputed[reCast<int,IssmDouble>(indices[i])]; 5683 } 5684 G[i]=G[i]*constant; 5658 5685 } 5659 5686 5660 5687 /*Add in inputs:*/ 5661 5688 this->inputs2->SetArrayInput(SealevelriseIndicesEnum,this->lid,indices,gsize); 5689 this->inputs2->SetArrayInput(SealevelriseGEnum,this->lid,G,gsize); 5690 this->inputs2->SetDoubleInput(AreaEnum,this->lid,area); 5662 5691 5663 /*Another quantity, area:*/ 5664 this->inputs2->SetDoubleInput(AreaEnum,this->lid,GetAreaSpherical()); 5692 /*Free allocations:*/ 5693 xDelete(indices); 5694 xDelete(G); 5665 5695 5666 5696 return; 5667 5697 } … … 5689 5719 void Tria::SealevelriseEustaticIce(IssmDouble* Sgi, IssmDouble* peustatic, SealevelMasks* masks, IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea){ /*{{{*/ 5690 5720 5691 5721 /*diverse:*/ 5692 int gsize,dummy; 5693 bool spherical=true; 5694 IssmDouble llr_list[NUMVERTICES][3]; 5695 IssmDouble area,eartharea; 5722 int gsize; 5723 IssmDouble area; 5724 IssmDouble phi=1.0; //WARNING: do not touch this, default is entire elemnt contributes eustatic 5696 5725 IssmDouble I; //change in ice thickness or water level(Farrel and Clarke, Equ. 4) 5697 IssmDouble rho;5698 IssmDouble late,longe,re;5699 IssmDouble lati,longi,ri;5700 5726 bool notfullygrounded=false; 5701 5727 5702 5728 /*elastic green function:*/ 5703 int index; 5704 IssmDouble* indices=NULL; 5705 IssmDouble* G_elastic_precomputed=NULL; 5706 IssmDouble* G_rigid_precomputed=NULL; 5707 int M; 5729 IssmDouble* G=NULL; 5708 5730 5709 5731 /*ice properties: */ 5710 5732 IssmDouble rho_ice,rho_water,rho_earth; … … 5722 5744 5723 5745 /*early return if we are not on an ice cap:*/ 5724 5746 if(!masks->isiceonly[this->lid]){ 5747 #ifdef _ISSM_DEBUG_ 5725 5748 constant=0; this->AddInput2(SealevelEustaticMaskEnum,&constant,P0Enum); 5749 #endif 5726 5750 *peustatic=0; //do not forget to assign this pointer, otherwise, global eustatic will be garbage! 5727 5751 return; 5728 5752 } … … 5729 5753 5730 5754 /*early return if we are fully floating:*/ 5731 5755 if (masks->isfullyfloating[this->lid]){ 5732 constant=0; this->AddInput2(SealevelEustaticMaskEnum,&constant,P0Enum); 5756 constant=0; 5757 #ifdef _ISSM_DEBUG_ 5758 this->AddInput2(SealevelEustaticMaskEnum,&constant,P0Enum); 5759 #endif 5733 5760 *peustatic=0; //do not forget to assign this pointer, otherwise, global eustatic will be garbage! 5734 5761 return; 5735 5762 } … … 5738 5765 if (masks->notfullygrounded[this->lid]) notfullygrounded=true; //used later on. 5739 5766 5740 5767 /*Inform mask: */ 5741 constant=1; this->AddInput2(SealevelEustaticMaskEnum,&constant,P0Enum); 5768 constant=1; 5769 #ifdef _ISSM_DEBUG_ 5770 this->AddInput2(SealevelEustaticMaskEnum,&constant,P0Enum); 5771 #endif 5742 5772 5743 5773 /*recover material parameters: */ 5744 5774 rho_ice=FindParam(MaterialsRhoIceEnum); 5745 5775 rho_water=FindParam(MaterialsRhoSeawaterEnum); 5746 rho_earth=FindParam(MaterialsEarthDensityEnum);5747 5776 5748 5777 /*recover love numbers and computational flags: */ 5749 this->parameters->FindParam(&computerigid,SealevelriseRigidEnum);5750 this->parameters->FindParam(&computeelastic,SealevelriseElasticEnum);5751 5778 this->parameters->FindParam(&scaleoceanarea,SealevelriseOceanAreaScalingEnum); 5752 5779 5753 /*re cover earth area:*/5754 this-> parameters->FindParam(&eartharea,SealevelEarthAreaEnum);5780 /*retrieve precomputed G:*/ 5781 this->inputs2->GetArrayPtr(SealevelriseGEnum,this->lid,&G,&gsize); 5755 5782 5756 /*recover precomputed green function kernels:*/5757 DoubleVecParam* parameter = static_cast<DoubleVecParam*>(this->parameters->FindParamObject(SealevelriseGRigidEnum)); _assert_(parameter);5758 parameter->GetParameterValueByPointer(&G_rigid_precomputed,&M);5759 5760 if(computeelastic){5761 parameter = static_cast<DoubleVecParam*>(this->parameters->FindParamObject(SealevelriseGElasticEnum)); _assert_(parameter);5762 parameter->GetParameterValueByPointer(&G_elastic_precomputed,&M);5763 }5764 5765 /*how many dofs are we working with here? */5766 this->parameters->FindParam(&gsize,MeshNumberofverticesEnum);5767 5768 /*retrieve indices:*/5769 if(computerigid){this->inputs2->GetArrayPtr(SealevelriseIndicesEnum,this->lid,&indices,&dummy); _assert_(dummy==gsize);}5770 5771 5783 /*Get area of element: precomputed in the sealevelrise_core_geometry:*/ 5772 5784 this->GetInput2Value(&area,AreaEnum); 5773 5785 5774 if(notfullygrounded){5775 IssmDouble phi=0;5786 /*factor to reduce area if we are not fully grounded:*/ 5787 if(notfullygrounded){ /*{{{*/ 5776 5788 IssmDouble xyz_list[NUMVERTICES][3]; 5777 5789 ::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES); 5778 5790 5779 5791 phi=this->GetGroundedPortion(&xyz_list[0][0]); //watch out, this only works because of the Thales theorem! We are in 3D, but this routine is inherently for 2D trias 5780 area*=phi; //scale our load by the fraction of grounded area.5781 5792 } 5793 /*}}}*/ 5782 5794 5783 5795 /*Compute ice thickness: */ 5784 5796 Input2* deltathickness_input=this->GetInput2(SealevelriseDeltathicknessEnum); 5785 5797 if (!deltathickness_input)_error_("delta thickness input needed to compute sea level rise!"); 5786 5798 5787 /*If we are fully grounded, take the average over the element: */5799 /*If we are fully grounded, take the average over the element: {{{*/ 5788 5800 if(!notfullygrounded)deltathickness_input->GetInputAverage(&I); 5789 5801 else{ 5790 5802 IssmDouble total_weight=0; … … 5809 5821 I=I/total_weight; 5810 5822 delete gauss; 5811 5823 } 5824 /*}}}*/ 5812 5825 5813 5826 /*Compute eustatic compoent:*/ 5814 5827 _assert_(oceanarea>0.); 5815 5828 if(scaleoceanarea) oceanarea=3.619e+14; // use true ocean area, m^2 5816 eustatic += rho_ice*area* I/(oceanarea*rho_water);5829 eustatic += rho_ice*area*phi*I/(oceanarea*rho_water); 5817 5830 5818 if(computeelastic | computerigid){ 5819 IssmDouble alpha; 5820 IssmDouble delPhi,delLambda; 5821 for(int i=0;i<gsize;i++){ 5831 /*convert from m to kg/m^2:*/ 5832 I=I*rho_ice*phi; 5822 5833 5823 IssmDouble G_elastic=0; //do not remove =0! 5834 /*convolve:*/ 5835 for(int i=0;i<gsize;i++) Sgi[i]+=G[i]*I; 5824 5836 5825 /*Compute alpha angle between centroid and current vertex and index into precomputed tables: */5826 /*lati=latitude[i]/180*PI; longi=longitude[i]/180*PI;5827 delPhi=fabs(lati-late); delLambda=fabs(longi-longe);5828 alpha=2.*asin(sqrt(pow(sin(delPhi/2),2.0)+cos(lati)*cos(late)*pow(sin(delLambda/2),2)));5829 index=reCast<int,IssmDouble>(alpha/PI*reCast<IssmDouble,int>(M-1));*/5830 index=reCast<int,IssmDouble>(indices[i]);5831 5832 //Elastic component (from Eq 17 in Adhikari et al, GMD 2015)5833 if(computeelastic) G_elastic += G_elastic_precomputed[index];5834 5835 /*Add all components to the Sgi or Sgo solution vectors:*/5836 Sgi[i]+=3*rho_ice/rho_earth*area/eartharea*I*(G_rigid_precomputed[index]+G_elastic);5837 }5838 }5839 5840 5837 /*Assign output pointer:*/ 5841 5838 _assert_(!xIsNan<IssmDouble>(eustatic)); 5842 _assert_(!xIsInf<IssmDouble>(eustatic));5843 5839 *peustatic=eustatic; 5844 5840 return; 5845 5841 } … … 5997 5993 5998 5994 /*diverse:*/ 5999 5995 int gsize,dummy; 6000 bool spherical=true;6001 IssmDouble llr_list[NUMVERTICES][3];6002 IssmDouble area,eartharea;6003 5996 IssmDouble S; //change in water water level(Farrel and Clarke, Equ. 4) 6004 IssmDouble late,longe;6005 IssmDouble lati,longi,ri;6006 IssmDouble minlong=400;6007 IssmDouble maxlong=-20;6008 5997 IssmDouble constant=0; 5998 IssmDouble rho_water; 5999 IssmDouble* G=NULL; 6009 6000 6010 /*precomputed elastic green functions:*/6011 IssmDouble* G_rigid_precomputed = NULL;6012 IssmDouble* G_elastic_precomputed = NULL;6013 int M;6014 int index;6015 IssmDouble* indices=NULL;6016 IssmDouble alpha;6017 IssmDouble delPhi,delLambda;6018 6019 6001 /*optimization:*/ 6020 6002 bool store_green_functions=false; 6003 6004 rho_water=FindParam(MaterialsRhoSeawaterEnum); 6021 6005 6022 /*ice properties: */6023 IssmDouble rho_ice,rho_water,rho_earth;6024 6025 /*Computational flags:*/6026 bool computerigid = true;6027 bool computeelastic= true;6028 6029 6006 /*early return if we are not on the ocean:*/ 6030 6007 if (!masks->isoceanin[this->lid]){ 6031 constant=0; this->AddInput2(SealevelEustaticOceanMaskEnum,&constant,P0Enum); 6008 constant=0; 6009 #ifdef _ISSM_DEBUG_ 6010 this->AddInput2(SealevelEustaticOceanMaskEnum,&constant,P0Enum); 6011 #endif 6032 6012 return; 6033 6013 } 6034 constant=1; this->AddInput2(SealevelEustaticOceanMaskEnum,&constant,P0Enum); 6014 constant=1; 6015 #ifdef _ISSM_DEBUG_ 6016 this->AddInput2(SealevelEustaticOceanMaskEnum,&constant,P0Enum); 6017 #endif 6035 6018 6036 /*recover computational flags: */6037 this->parameters->FindParam(&computerigid,SealevelriseRigidEnum);6038 this->parameters->FindParam(&computeelastic,SealevelriseElasticEnum);6039 6040 /*recover earth area: */6041 this->parameters->FindParam(&eartharea,SealevelEarthAreaEnum);6042 6043 /*early return if rigid or elastic not requested:*/6044 if(!computerigid && !computeelastic) return;6045 6046 /*recover material parameters: */6047 rho_water=FindParam(MaterialsRhoSeawaterEnum);6048 rho_earth=FindParam(MaterialsEarthDensityEnum);6049 6050 6019 /*how many dofs are we working with here? */ 6051 6020 this->parameters->FindParam(&gsize,MeshNumberofverticesEnum); 6021 6022 /*retrieve precomputed G:*/ 6023 this->inputs2->GetArrayPtr(SealevelriseGEnum,this->lid,&G,&dummy); _assert_(dummy==gsize); 6052 6024 6053 /*retrieve indices:*/6054 if(computerigid){this->inputs2->GetArrayPtr(SealevelriseIndicesEnum,this->lid,&indices,&dummy); _assert_(dummy==gsize);}6055 6056 6025 /*From Sg_old, recover water sea level rise:*/ 6057 6026 S=0; for(int i=0;i<NUMVERTICES;i++) S+=Sg_old[this->vertices[i]->Sid()]/NUMVERTICES; 6058 6027 6059 /* Get area of element: precomputed in the sealevelrise_core_geometry:*/6060 this->GetInput2Value(&area,AreaEnum);6028 /*convert to SI: */ 6029 S=S*rho_water; 6061 6030 6062 /*recover rigid and elastic green functions:*/ 6063 DoubleVecParam* parameter = static_cast<DoubleVecParam*>(this->parameters->FindParamObject(SealevelriseGRigidEnum)); _assert_(parameter); 6064 parameter->GetParameterValueByPointer(&G_rigid_precomputed,&M); 6031 for(int i=0;i<gsize;i++) Sgo[i]+=G[i]*S; 6065 6032 6066 if(computeelastic){6067 /*recover elastic green function:*/6068 parameter = static_cast<DoubleVecParam*>(this->parameters->FindParamObject(SealevelriseGElasticEnum)); _assert_(parameter);6069 parameter->GetParameterValueByPointer(&G_elastic_precomputed,&M);6070 }6071 6072 6073 for(int i=0;i<gsize;i++){6074 6075 /*Compute alpha angle between centroid and current vertex : */6076 /*lati=latitude[i]/180*PI; longi=longitude[i]/180*PI;6077 delPhi=fabs(lati-late); delLambda=fabs(longi-longe);6078 alpha=2.*asin(sqrt(pow(sin(delPhi/2),2.0)+cos(lati)*cos(late)*pow(sin(delLambda/2),2)));6079 index=reCast<int,IssmDouble>(alpha/PI*(M-1));*/6080 6081 index=reCast<int,IssmDouble>(indices[i]);6082 6083 /*Rigid earth gravitational perturbation: */6084 if(computerigid){6085 Sgo[i]+=3*rho_water/rho_earth*area/eartharea*S*G_rigid_precomputed[index];6086 }6087 6088 /*Elastic component (from Eq 17 in Adhikari et al, GMD 2015): */6089 if(computeelastic){6090 Sgo[i]+=3*rho_water/rho_earth*area/eartharea*S*G_elastic_precomputed[index];6091 }6092 }6093 6094 6095 6033 return; 6096 6034 } 6097 6035 /*}}}*/ -
../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
681 681 SealevelriseSpcthicknessEnum, 682 682 SealevelriseHydroRateEnum, 683 683 SealevelriseIndicesEnum, 684 SealevelriseGEnum, 684 685 SedimentHeadEnum, 685 686 SedimentHeadOldEnum, 686 687 SedimentHeadSubstepEnum, -
../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
686 686 case SealevelriseSpcthicknessEnum : return "SealevelriseSpcthickness"; 687 687 case SealevelriseHydroRateEnum : return "SealevelriseHydroRate"; 688 688 case SealevelriseIndicesEnum : return "SealevelriseIndices"; 689 case SealevelriseGEnum : return "SealevelriseG"; 689 690 case SedimentHeadEnum : return "SedimentHead"; 690 691 case SedimentHeadOldEnum : return "SedimentHeadOld"; 691 692 case SedimentHeadSubstepEnum : return "SedimentHeadSubstep"; -
../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
701 701 else if (strcmp(name,"SealevelriseSpcthickness")==0) return SealevelriseSpcthicknessEnum; 702 702 else if (strcmp(name,"SealevelriseHydroRate")==0) return SealevelriseHydroRateEnum; 703 703 else if (strcmp(name,"SealevelriseIndices")==0) return SealevelriseIndicesEnum; 704 else if (strcmp(name,"SealevelriseG")==0) return SealevelriseGEnum; 704 705 else if (strcmp(name,"SedimentHead")==0) return SedimentHeadEnum; 705 706 else if (strcmp(name,"SedimentHeadOld")==0) return SedimentHeadOldEnum; 706 707 else if (strcmp(name,"SedimentHeadSubstep")==0) return SedimentHeadSubstepEnum; … … 750 751 else if (strcmp(name,"SmbHref")==0) return SmbHrefEnum; 751 752 else if (strcmp(name,"SmbIsInitialized")==0) return SmbIsInitializedEnum; 752 753 else if (strcmp(name,"SmbMAdd")==0) return SmbMAddEnum; 753 else if (strcmp(name,"SmbMassBalanceClimate")==0) return SmbMassBalanceClimateEnum;754 754 else stage=7; 755 755 } 756 756 if(stage==7){ 757 if (strcmp(name,"SmbMassBalance")==0) return SmbMassBalanceEnum; 757 if (strcmp(name,"SmbMassBalanceClimate")==0) return SmbMassBalanceClimateEnum; 758 else if (strcmp(name,"SmbMassBalance")==0) return SmbMassBalanceEnum; 758 759 else if (strcmp(name,"SmbMassBalanceSubstep")==0) return SmbMassBalanceSubstepEnum; 759 760 else if (strcmp(name,"SmbMassBalanceTransient")==0) return SmbMassBalanceTransientEnum; 760 761 else if (strcmp(name,"SmbMeanLHF")==0) return SmbMeanLHFEnum; … … 873 874 else if (strcmp(name,"Outputdefinition1")==0) return Outputdefinition1Enum; 874 875 else if (strcmp(name,"Outputdefinition10")==0) return Outputdefinition10Enum; 875 876 else if (strcmp(name,"Outputdefinition11")==0) return Outputdefinition11Enum; 876 else if (strcmp(name,"Outputdefinition12")==0) return Outputdefinition12Enum;877 877 else stage=8; 878 878 } 879 879 if(stage==8){ 880 if (strcmp(name,"Outputdefinition13")==0) return Outputdefinition13Enum; 880 if (strcmp(name,"Outputdefinition12")==0) return Outputdefinition12Enum; 881 else if (strcmp(name,"Outputdefinition13")==0) return Outputdefinition13Enum; 881 882 else if (strcmp(name,"Outputdefinition14")==0) return Outputdefinition14Enum; 882 883 else if (strcmp(name,"Outputdefinition15")==0) return Outputdefinition15Enum; 883 884 else if (strcmp(name,"Outputdefinition16")==0) return Outputdefinition16Enum; … … 996 997 else if (strcmp(name,"BalancevelocityAnalysis")==0) return BalancevelocityAnalysisEnum; 997 998 else if (strcmp(name,"BalancevelocitySolution")==0) return BalancevelocitySolutionEnum; 998 999 else if (strcmp(name,"BasalforcingsIsmip6")==0) return BasalforcingsIsmip6Enum; 999 else if (strcmp(name,"BasalforcingsPico")==0) return BasalforcingsPicoEnum;1000 1000 else stage=9; 1001 1001 } 1002 1002 if(stage==9){ 1003 if (strcmp(name,"BeckmannGoosseFloatingMeltRate")==0) return BeckmannGoosseFloatingMeltRateEnum; 1003 if (strcmp(name,"BasalforcingsPico")==0) return BasalforcingsPicoEnum; 1004 else if (strcmp(name,"BeckmannGoosseFloatingMeltRate")==0) return BeckmannGoosseFloatingMeltRateEnum; 1004 1005 else if (strcmp(name,"BedSlopeSolution")==0) return BedSlopeSolutionEnum; 1005 1006 else if (strcmp(name,"BoolExternalResult")==0) return BoolExternalResultEnum; 1006 1007 else if (strcmp(name,"BoolInput")==0) return BoolInputEnum; … … 1119 1120 else if (strcmp(name,"Hydrologypism")==0) return HydrologypismEnum; 1120 1121 else if (strcmp(name,"Hydrologyshakti")==0) return HydrologyshaktiEnum; 1121 1122 else if (strcmp(name,"Hydrologyshreve")==0) return HydrologyshreveEnum; 1122 else if (strcmp(name,"IceMass")==0) return IceMassEnum;1123 1123 else stage=10; 1124 1124 } 1125 1125 if(stage==10){ 1126 if (strcmp(name,"IceMassScaled")==0) return IceMassScaledEnum; 1126 if (strcmp(name,"IceMass")==0) return IceMassEnum; 1127 else if (strcmp(name,"IceMassScaled")==0) return IceMassScaledEnum; 1127 1128 else if (strcmp(name,"IceVolumeAboveFloatation")==0) return IceVolumeAboveFloatationEnum; 1128 1129 else if (strcmp(name,"IceVolumeAboveFloatationScaled")==0) return IceVolumeAboveFloatationScaledEnum; 1129 1130 else if (strcmp(name,"IceVolume")==0) return IceVolumeEnum; … … 1242 1243 else if (strcmp(name,"P2xP4")==0) return P2xP4Enum; 1243 1244 else if (strcmp(name,"Paterson")==0) return PatersonEnum; 1244 1245 else if (strcmp(name,"Pengrid")==0) return PengridEnum; 1245 else if (strcmp(name,"Penpair")==0) return PenpairEnum;1246 1246 else stage=11; 1247 1247 } 1248 1248 if(stage==11){ 1249 if (strcmp(name,"Penta")==0) return PentaEnum; 1249 if (strcmp(name,"Penpair")==0) return PenpairEnum; 1250 else if (strcmp(name,"Penta")==0) return PentaEnum; 1250 1251 else if (strcmp(name,"PentaInput")==0) return PentaInputEnum; 1251 1252 else if (strcmp(name,"Profiler")==0) return ProfilerEnum; 1252 1253 else if (strcmp(name,"ProfilingCurrentFlops")==0) return ProfilingCurrentFlopsEnum; -
../trunk-jpl/src/c/shared/Enum/Enum.vim
684 684 syn keyword cConstant SealevelriseSpcthicknessEnum 685 685 syn keyword cConstant SealevelriseHydroRateEnum 686 686 syn keyword cConstant SealevelriseIndicesEnum 687 syn keyword cConstant SealevelriseGEnum 687 688 syn keyword cConstant SedimentHeadEnum 688 689 syn keyword cConstant SedimentHeadOldEnum 689 690 syn keyword cConstant SedimentHeadSubstepEnum
Note:
See TracBrowser
for help on using the repository browser.