Changeset 18667
- Timestamp:
- 10/23/14 07:11:42 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp
r18665 r18667 933 933 934 934 /* Intermediaries */ 935 bool converged; 935 936 const int dim=3; 936 937 int i,is,state; 937 938 int vertexdown,vertexup,numvertices,numsegments; 938 const int enthalpy_enum=EnthalpyEnum;939 int enthalpy_enum; 939 940 IssmDouble vec_heatflux[dim],normal_base[dim],d1enthalpy[dim],d1pressure[dim]; 940 941 IssmDouble basalfriction,alpha2,geothermalflux,heatflux; … … 949 950 element->GetVerticesCoordinates(&xyz_list); 950 951 element->GetVerticesCoordinatesBase(&xyz_list_base); 952 element->GetInputValue(&converged,ConvergedEnum); 953 element->FindParam(&dt,TimesteppingTimeStepEnum); 954 element->FindParam(&yts, ConstantsYtsEnum); 955 956 if(dt==0. && !converged) enthalpy_enum=EnthalpyPicardEnum; 957 else enthalpy_enum=EnthalpyEnum; 958 951 959 IssmDouble latentheat = element->GetMaterialParameter(MaterialsLatentheatEnum); 952 960 IssmDouble rho_ice = element->GetMaterialParameter(MaterialsRhoIceEnum); 953 961 IssmDouble rho_water = element->GetMaterialParameter(MaterialsRhoFreshwaterEnum); 954 962 IssmDouble beta = element->GetMaterialParameter(MaterialsBetaEnum); 955 IssmDouble kappa = EnthalpyDiffusionParameterVolume(element, EnthalpyEnum); _assert_(kappa>=0.);963 IssmDouble kappa = EnthalpyDiffusionParameterVolume(element,enthalpy_enum); _assert_(kappa>=0.); 956 964 IssmDouble kappa_mix; 957 965 … … 1002 1010 case 3: 1003 1011 // temperate, thin melting base: set spc 1004 //enthalpies[vertexdown]=element->PureIceEnthalpy(pressures[vertexdown]);1012 enthalpies[vertexdown]=element->PureIceEnthalpy(pressures[vertexdown]); 1005 1013 enthalpy_input->GetInputDerivativeValue(&d1enthalpy[0],xyz_list,gauss); 1006 1014 for(i=0;i<3;i++) vec_heatflux[i]=-kappa*d1enthalpy[i]; … … 1033 1041 1034 1042 /******** UPDATE MELTINGRATES AND WATERCOLUMN **************//*{{{*/ 1035 element->FindParam(&dt,TimesteppingTimeStepEnum);1036 element->FindParam(&yts, ConstantsYtsEnum);1037 1043 for(is=0;is<numsegments;is++){ 1038 1044 vertexdown = pairindices[is*2+0]; … … 1062 1068 1063 1069 /*feed updated variables back into model*/ 1064 element->AddInput(EnthalpyEnum,enthalpies,P1Enum); //TODO: distinguis for steadystate and transient run 1065 element->AddInput(WatercolumnEnum,watercolumns,P1Enum); 1070 if(dt!=0.){ 1071 element->AddInput(enthalpy_enum,enthalpies,P1Enum); //TODO: distinguis for steadystate and transient run 1072 element->AddInput(WatercolumnEnum,watercolumns,P1Enum); 1073 } 1066 1074 element->AddInput(BasalforcingsGroundediceMeltingRateEnum,basalmeltingrates,P1Enum); 1067 1075
Note:
See TracChangeset
for help on using the changeset viewer.