Changeset 21908
- Timestamp:
- 08/01/17 16:22:36 (8 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/EsaAnalysis.cpp
r21272 r21908 80 80 U_elastic_local[i-lower_row]= (love_h[nl-1])/2.0/sin(alpha/2.0); 81 81 H_elastic_local[i-lower_row]= 0; 82 IssmDouble Pn,Pn1,Pn2; 83 IssmDouble Pn_p,Pn_p1,Pn_p2; 82 //IssmDouble Pn,Pn1,Pn2; 83 //IssmDouble Pn_p,Pn_p1,Pn_p2; 84 IssmDouble Pn = 0.; 85 IssmDouble Pn1 = 0.; 86 IssmDouble Pn2 = 0.; 87 IssmDouble Pn_p = 0.; 88 IssmDouble Pn_p1 = 0.; 89 IssmDouble Pn_p2 = 0.; 90 84 91 for (int n=0;n<nl;n++) { 85 92 IssmDouble deltalove_U; -
issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp
r21752 r21908 127 127 U_elastic_local[i-lower_row]= (love_h[nl-1])/2.0/sin(alpha/2.0); 128 128 H_elastic_local[i-lower_row]= 0; 129 IssmDouble Pn,Pn1,Pn2; 130 IssmDouble Pn_p,Pn_p1,Pn_p2; 129 IssmDouble Pn = 0.; 130 IssmDouble Pn1 = 0.; 131 IssmDouble Pn2 = 0.; 132 IssmDouble Pn_p = 0.; 133 IssmDouble Pn_p1 = 0.; 134 IssmDouble Pn_p2 = 0.; 135 131 136 for (int n=0;n<nl;n++) { 132 137 IssmDouble deltalove_G; -
issm/trunk-jpl/src/c/classes/FemModel.cpp
r21861 r21908 3920 3920 } 3921 3921 /*}}}*/ 3922 void FemModel::SealevelriseRotationalFeedback(Vector<IssmDouble>* pSgo_rot, Vector<IssmDouble>* pSg_old, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius){/*{{{*/3922 void FemModel::SealevelriseRotationalFeedback(Vector<IssmDouble>* pSgo_rot, Vector<IssmDouble>* pSg_old, IssmDouble* pIxz, IssmDouble* pIyz, IssmDouble* pIzz, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius){/*{{{*/ 3923 3923 3924 3924 /*serialized vectors:*/ … … 3996 3996 pSgo_rot->Assemble(); 3997 3997 3998 /*Assign output pointers:*/ 3999 *pIxz=moi_list[0]; 4000 *pIyz=moi_list[1]; 4001 *pIzz=moi_list[2]; 4002 3998 4003 /*Free ressources:*/ 3999 4004 xDelete<IssmDouble>(Sg_old); -
issm/trunk-jpl/src/c/classes/FemModel.h
r21861 r21908 137 137 void SealevelriseEustatic(Vector<IssmDouble>* pSgi, IssmDouble* peustatic, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius); 138 138 void SealevelriseNonEustatic(Vector<IssmDouble>* pSgo, Vector<IssmDouble>* pSg_old, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius,bool verboseconvolution); 139 void SealevelriseRotationalFeedback(Vector<IssmDouble>* pSgo_rot, Vector<IssmDouble>* pSg_old, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius);139 void SealevelriseRotationalFeedback(Vector<IssmDouble>* pSgo_rot, Vector<IssmDouble>* pSg_old, IssmDouble* pIxz, IssmDouble* pIyz, IssmDouble* pIzz, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius); 140 140 void SealevelriseGeodetic(Vector<IssmDouble>* pUp, Vector<IssmDouble>* pNorth, Vector<IssmDouble>* pEast, Vector<IssmDouble>* pSg_old, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, IssmDouble* xx, IssmDouble* yy, IssmDouble* zz); 141 141 IssmDouble SealevelriseOceanAverage(Vector<IssmDouble>* Sg); -
issm/trunk-jpl/src/c/cores/sealevelrise_core.cpp
r21760 r21908 83 83 Sg=sealevelrise_core_noneustatic(femmodel,Sg_eustatic); //ocean loading tems (2nd and 5th terms on the RHS of Farrel and Clark) 84 84 85 86 87 85 /*compute other geodetic signatures, such as absolute sea level chagne, components of 3-D crustal motion: */ 88 86 /*Initialize:*/ -
issm/trunk-jpl/src/c/cores/sealevelrise_core_noneustatic.cpp
r21344 r21908 37 37 IssmDouble *radius = NULL; 38 38 IssmDouble eustatic; 39 IssmDouble Ixz; 40 IssmDouble Iyz; 41 IssmDouble Izz; 39 42 40 43 /*Recover some parameters: */ … … 83 86 /*call rotational feedback module: */ 84 87 Sgo_rot = new Vector<IssmDouble>(gsize); Sgo_rot->Assemble(); 85 femmodel->SealevelriseRotationalFeedback(Sgo_rot,Sg_old, latitude,longitude,radius);88 femmodel->SealevelriseRotationalFeedback(Sgo_rot,Sg_old,&Ixz,&Iyz,&Izz,latitude,longitude,radius); 86 89 Sgo_rot->Assemble(); 87 90 91 /*save changes in inertia tensor as results: */ 92 femmodel->results->AddResult(new GenericExternalResult<IssmDouble>(femmodel->results->Size()+1,SealevelInertiaTensorXZEnum,Ixz)); 93 femmodel->results->AddResult(new GenericExternalResult<IssmDouble>(femmodel->results->Size()+1,SealevelInertiaTensorYZEnum,Iyz)); 94 femmodel->results->AddResult(new GenericExternalResult<IssmDouble>(femmodel->results->Size()+1,SealevelInertiaTensorZZEnum,Izz)); 95 88 96 Sgo->AXPY(Sgo_rot,1); 97 delete Sgo_rot; 89 98 } 90 99 … … 93 102 94 103 /*Sg is the sum of the eustatic term, and the ocean terms: */ 95 Sg_eustatic->Copy(Sg); Sg->AXPY(Sgo,1); 104 Sg_eustatic->Copy(Sg); Sg->AXPY(Sgo,1); delete Sgo; 96 105 Sg->Shift(-Sgo_oceanaverage); 97 106 … … 112 121 /*some minor verbosing adjustment:*/ 113 122 if(count>1)verboseconvolution=false; 114 115 123 } 116 124 if(VerboseConvergence()) _printf0_("\n total number of iterations: " << count-1 << "\n"); -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r21852 r21908 795 795 SealevelAbsoluteEnum, 796 796 SealevelEustaticEnum, 797 SealevelInertiaTensorXZEnum, 798 SealevelInertiaTensorYZEnum, 799 SealevelInertiaTensorZZEnum, 797 800 SealevelObsEnum, 798 801 SealevelWeightsEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r21852 r21908 775 775 case SealevelAbsoluteEnum : return "SealevelAbsolute"; 776 776 case SealevelEustaticEnum : return "SealevelEustatic"; 777 case SealevelInertiaTensorXZEnum : return "SealevelInertiaTensorXZ"; 778 case SealevelInertiaTensorYZEnum : return "SealevelInertiaTensorYZ"; 779 case SealevelInertiaTensorZZEnum : return "SealevelInertiaTensorZZ"; 777 780 case SealevelObsEnum : return "SealevelObs"; 778 781 case SealevelWeightsEnum : return "SealevelWeights"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r21852 r21908 793 793 else if (strcmp(name,"SealevelAbsolute")==0) return SealevelAbsoluteEnum; 794 794 else if (strcmp(name,"SealevelEustatic")==0) return SealevelEustaticEnum; 795 else if (strcmp(name,"SealevelInertiaTensorXZ")==0) return SealevelInertiaTensorXZEnum; 796 else if (strcmp(name,"SealevelInertiaTensorYZ")==0) return SealevelInertiaTensorYZEnum; 797 else if (strcmp(name,"SealevelInertiaTensorZZ")==0) return SealevelInertiaTensorZZEnum; 795 798 else if (strcmp(name,"SealevelObs")==0) return SealevelObsEnum; 796 799 else if (strcmp(name,"SealevelWeights")==0) return SealevelWeightsEnum; … … 872 875 else if (strcmp(name,"Matenhancedice")==0) return MatenhancediceEnum; 873 876 else if (strcmp(name,"Matestar")==0) return MatestarEnum; 874 else if (strcmp(name,"Matpar")==0) return MatparEnum;875 else if (strcmp(name,"Node")==0) return NodeEnum;876 else if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum;877 877 else stage=8; 878 878 } 879 879 if(stage==8){ 880 if (strcmp(name,"Neumannflux")==0) return NeumannfluxEnum; 880 if (strcmp(name,"Matpar")==0) return MatparEnum; 881 else if (strcmp(name,"Node")==0) return NodeEnum; 882 else if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum; 883 else if (strcmp(name,"Neumannflux")==0) return NeumannfluxEnum; 881 884 else if (strcmp(name,"Param")==0) return ParamEnum; 882 885 else if (strcmp(name,"Moulin")==0) return MoulinEnum; … … 995 998 else if (strcmp(name,"MaxAbsVz")==0) return MaxAbsVzEnum; 996 999 else if (strcmp(name,"FloatingArea")==0) return FloatingAreaEnum; 997 else if (strcmp(name,"GroundedArea")==0) return GroundedAreaEnum;998 else if (strcmp(name,"IceMass")==0) return IceMassEnum;999 else if (strcmp(name,"IceVolume")==0) return IceVolumeEnum;1000 1000 else stage=9; 1001 1001 } 1002 1002 if(stage==9){ 1003 if (strcmp(name,"IceVolumeAboveFloatation")==0) return IceVolumeAboveFloatationEnum; 1003 if (strcmp(name,"GroundedArea")==0) return GroundedAreaEnum; 1004 else if (strcmp(name,"IceMass")==0) return IceMassEnum; 1005 else if (strcmp(name,"IceVolume")==0) return IceVolumeEnum; 1006 else if (strcmp(name,"IceVolumeAboveFloatation")==0) return IceVolumeAboveFloatationEnum; 1004 1007 else if (strcmp(name,"TotalFloatingBmb")==0) return TotalFloatingBmbEnum; 1005 1008 else if (strcmp(name,"TotalGroundedBmb")==0) return TotalGroundedBmbEnum;
Note:
See TracChangeset
for help on using the changeset viewer.