Changeset 25139
- Timestamp:
- 06/24/20 17:34:21 (5 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/EsaAnalysis.cpp
r25118 r25139 73 73 74 74 /*love numbers: */ 75 iomodel->FetchData(&love_h,&nl,NULL,"md. esa.love_h");76 iomodel->FetchData(&love_l,&nl,NULL,"md. esa.love_l");75 iomodel->FetchData(&love_h,&nl,NULL,"md.solidearth.love.h"); 76 iomodel->FetchData(&love_l,&nl,NULL,"md.solidearth.love.l"); 77 77 78 78 /*compute elastic green function for a range of angles*/ -
issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp
r25118 r25139 281 281 IssmDouble* love_k=NULL; 282 282 IssmDouble* love_l=NULL; 283 IssmDouble* love_th=NULL; 284 IssmDouble* love_tk=NULL; 285 IssmDouble* love_tl=NULL; 283 286 int dslmodel=0; 284 287 … … 345 348 /*Deal with elasticity {{{*/ 346 349 /*love numbers: */ 347 iomodel->FetchData(&love model,"md.solidearth.love.model");348 i f(lovemodel==1){349 iomodel->FetchData(&love_h,&nl,NULL,"md.solidearth.love.h");350 iomodel->FetchData(&love_k,&nl,NULL,"md.solidearth.love.k");351 iomodel->FetchData(&love_l,&nl,NULL,"md.solidearth.love.l");352 parameters->AddObject(iomodel->CopyConstantObject("md.solidearth.love.th",TidalLoveHEnum));353 parameters->AddObject(iomodel->CopyConstantObject("md.solidearth.love.tk",TidalLoveKEnum));354 parameters->AddObject(iomodel->CopyConstantObject("md.solidearth.love.tk2secular",TidalLoveK2SecularEnum)); 355 }356 else{357 parameters->AddObject(iomodel->CopyConstantObject("md.solidearth.love.h",TidalLoveHEnum));358 parameters->AddObject(iomodel->CopyConstantObject("md.solidearth.love.k",TidalLoveKEnum));359 parameters->AddObject(iomodel->CopyConstantObject("md.solidearth.love.k2secular",TidalLoveK2SecularEnum));360 }350 iomodel->FetchData(&love_h,&nl,NULL,"md.solidearth.love.h"); 351 iomodel->FetchData(&love_k,&nl,NULL,"md.solidearth.love.k"); 352 iomodel->FetchData(&love_l,&nl,NULL,"md.solidearth.love.l"); 353 iomodel->FetchData(&love_th,&nl,NULL,"md.solidearth.love.th"); 354 iomodel->FetchData(&love_tk,&nl,NULL,"md.solidearth.love.tk"); 355 iomodel->FetchData(&love_tl,&nl,NULL,"md.solidearth.love.tl"); 356 parameters->AddObject(iomodel->CopyConstantObject("md.solidearth.love.tk2secular",TidalLoveK2SecularEnum)); 357 358 parameters->AddObject(new DoubleMatParam(LoadLoveHEnum,love_h,nl,1)); 359 parameters->AddObject(new DoubleMatParam(LoadLoveKEnum,love_k,nl,1)); 360 parameters->AddObject(new DoubleMatParam(LoadLoveLEnum,love_l,nl,1)); 361 parameters->AddObject(new DoubleMatParam(TidalLoveHEnum,love_th,nl,1)); 362 parameters->AddObject(new DoubleMatParam(TidalLoveKEnum,love_tk,nl,1)); 363 parameters->AddObject(new DoubleMatParam(TidalLoveLEnum,love_tl,nl,1)); 361 364 362 365 /*compute elastic green function for a range of angles*/ … … 474 477 xDelete<IssmDouble>(love_k); 475 478 xDelete<IssmDouble>(love_l); 479 xDelete<IssmDouble>(love_th); 480 xDelete<IssmDouble>(love_tk); 481 xDelete<IssmDouble>(love_tl); 476 482 xDelete<IssmDouble>(G_rigid); 477 483 xDelete<IssmDouble>(G_rigid_local); -
issm/trunk-jpl/src/c/classes/FemModel.cpp
r25118 r25139 4794 4794 bool spherical=true; 4795 4795 IssmDouble* RSLg_old=NULL; 4796 IssmDouble tide_love_h, tide_love_k, fluid_love, moi_e, moi_p, omega, g; 4797 IssmDouble load_love_k2 = -0.30922675; //degree 2 load Love number 4796 IssmDouble* tide_love_h = NULL; 4797 IssmDouble* tide_love_k = NULL; 4798 IssmDouble* load_love_k = NULL; 4799 IssmDouble tide_love_k2secular; 4800 IssmDouble moi_e, moi_p, omega, g; 4798 4801 IssmDouble m1, m2, m3; 4799 4802 IssmDouble lati, longi, radi, value; … … 4824 4827 4825 4828 /*pull out some useful parameters: */ 4826 parameters->FindParam(&tide_love_h,TidalLoveHEnum); 4827 parameters->FindParam(&tide_love_k,TidalLoveKEnum); 4828 parameters->FindParam(&fluid_love,TidalLoveK2SecularEnum); 4829 parameters->FindParam(&load_love_k,NULL,NULL,LoadLoveKEnum); 4830 parameters->FindParam(&tide_love_h,NULL,NULL,TidalLoveHEnum); 4831 parameters->FindParam(&tide_love_k,NULL,NULL,TidalLoveKEnum); 4832 parameters->FindParam(&tide_love_k2secular,TidalLoveK2SecularEnum); 4829 4833 parameters->FindParam(&moi_e,RotationalEquatorialMoiEnum); 4830 4834 parameters->FindParam(&moi_p,RotationalPolarMoiEnum); … … 4832 4836 4833 4837 /*compute perturbation terms for angular velocity vector: */ 4834 m1 = 1/(1-tide_love_k /fluid_love) * (1+load_love_k2)/(moi_p-moi_e) * moi_list[0];4835 m2 = 1/(1-tide_love_k /fluid_love) * (1+load_love_k2)/(moi_p-moi_e) * moi_list[1];4836 m3 = -(1+load_love_k 2)/moi_p * moi_list[2]; // term associated with fluid number (3-order-of-magnitude smaller) is negelected4838 m1 = 1/(1-tide_love_k[2]/tide_love_k2secular) * (1+load_love_k[2])/(moi_p-moi_e) * moi_list[0]; 4839 m2 = 1/(1-tide_love_k[2]/tide_love_k2secular) * (1+load_love_k[2])/(moi_p-moi_e) * moi_list[1]; 4840 m3 = -(1+load_love_k[2])/moi_p * moi_list[2]; // term associated with fluid number (3-order-of-magnitude smaller) is negelected 4837 4841 4838 4842 /*recover lat,long and radius vectors from vertices: */ … … 4853 4857 4854 4858 /*only first order terms are considered now: */ 4855 value=((1.0+tide_love_k -tide_love_h)/9.81)*pow(omega*radi,2.0)*4859 value=((1.0+tide_love_k[2]-tide_love_h[2])/9.81)*pow(omega*radi,2.0)* 4856 4860 (-m3/6.0 + 0.5*m3*cos(2.0*lati) - 0.5*sin(2.*lati)*(m1*cos(longi)+m2*sin(longi))); 4857 4861 … … 4868 4872 xDelete<IssmDouble>(latitude); 4869 4873 xDelete<IssmDouble>(longitude); 4874 xDelete<IssmDouble>(tide_love_h); 4875 xDelete<IssmDouble>(tide_love_k); 4876 xDelete<IssmDouble>(load_love_k); 4877 4870 4878 xDelete<IssmDouble>(radius); 4871 4879 -
issm/trunk-jpl/src/c/shared/Enum/Enum.vim
r25118 r25139 315 315 syn keyword cConstant SealevelriseGeometryDoneEnum 316 316 syn keyword cConstant RotationalEquatorialMoiEnum 317 syn keyword cConstant TidalLoveHEnum 318 syn keyword cConstant TidalLoveKEnum 319 syn keyword cConstant TidalLoveLEnum 317 320 syn keyword cConstant TidalLoveK2SecularEnum 321 syn keyword cConstant LoadLoveHEnum 322 syn keyword cConstant LoadLoveKEnum 323 syn keyword cConstant LoadLoveLEnum 318 324 syn keyword cConstant SealevelriseGRigidEnum 319 325 syn keyword cConstant SealevelriseGElasticEnum … … 330 336 syn keyword cConstant SolidearthSettingsRotationEnum 331 337 syn keyword cConstant SealevelriseRunCountEnum 332 syn keyword cConstant TidalLoveHEnum333 syn keyword cConstant TidalLoveKEnum334 338 syn keyword cConstant SealevelriseTransitionsEnum 335 339 syn keyword cConstant SealevelriseUElasticEnum -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r25118 r25139 309 309 SealevelriseGeometryDoneEnum, 310 310 RotationalEquatorialMoiEnum, 311 TidalLoveHEnum, 312 TidalLoveKEnum, 313 TidalLoveLEnum, 311 314 TidalLoveK2SecularEnum, 315 LoadLoveHEnum, 316 LoadLoveKEnum, 317 LoadLoveLEnum, 312 318 SealevelriseGRigidEnum, 313 319 SealevelriseGElasticEnum, … … 324 330 SolidearthSettingsRotationEnum, 325 331 SealevelriseRunCountEnum, 326 TidalLoveHEnum,327 TidalLoveKEnum,328 332 SealevelriseTransitionsEnum, 329 333 SealevelriseUElasticEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r25118 r25139 317 317 case SealevelriseGeometryDoneEnum : return "SealevelriseGeometryDone"; 318 318 case RotationalEquatorialMoiEnum : return "RotationalEquatorialMoi"; 319 case TidalLoveHEnum : return "TidalLoveH"; 320 case TidalLoveKEnum : return "TidalLoveK"; 321 case TidalLoveLEnum : return "TidalLoveL"; 319 322 case TidalLoveK2SecularEnum : return "TidalLoveK2Secular"; 323 case LoadLoveHEnum : return "LoadLoveH"; 324 case LoadLoveKEnum : return "LoadLoveK"; 325 case LoadLoveLEnum : return "LoadLoveL"; 320 326 case SealevelriseGRigidEnum : return "SealevelriseGRigid"; 321 327 case SealevelriseGElasticEnum : return "SealevelriseGElastic"; … … 332 338 case SolidearthSettingsRotationEnum : return "SolidearthSettingsRotation"; 333 339 case SealevelriseRunCountEnum : return "SealevelriseRunCount"; 334 case TidalLoveHEnum : return "TidalLoveH";335 case TidalLoveKEnum : return "TidalLoveK";336 340 case SealevelriseTransitionsEnum : return "SealevelriseTransitions"; 337 341 case SealevelriseUElasticEnum : return "SealevelriseUElastic"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r25118 r25139 323 323 else if (strcmp(name,"SealevelriseGeometryDone")==0) return SealevelriseGeometryDoneEnum; 324 324 else if (strcmp(name,"RotationalEquatorialMoi")==0) return RotationalEquatorialMoiEnum; 325 else if (strcmp(name,"TidalLoveH")==0) return TidalLoveHEnum; 326 else if (strcmp(name,"TidalLoveK")==0) return TidalLoveKEnum; 327 else if (strcmp(name,"TidalLoveL")==0) return TidalLoveLEnum; 325 328 else if (strcmp(name,"TidalLoveK2Secular")==0) return TidalLoveK2SecularEnum; 329 else if (strcmp(name,"LoadLoveH")==0) return LoadLoveHEnum; 330 else if (strcmp(name,"LoadLoveK")==0) return LoadLoveKEnum; 331 else if (strcmp(name,"LoadLoveL")==0) return LoadLoveLEnum; 326 332 else if (strcmp(name,"SealevelriseGRigid")==0) return SealevelriseGRigidEnum; 327 333 else if (strcmp(name,"SealevelriseGElastic")==0) return SealevelriseGElasticEnum; … … 338 344 else if (strcmp(name,"SolidearthSettingsRotation")==0) return SolidearthSettingsRotationEnum; 339 345 else if (strcmp(name,"SealevelriseRunCount")==0) return SealevelriseRunCountEnum; 340 else if (strcmp(name,"TidalLoveH")==0) return TidalLoveHEnum;341 else if (strcmp(name,"TidalLoveK")==0) return TidalLoveKEnum;342 346 else if (strcmp(name,"SealevelriseTransitions")==0) return SealevelriseTransitionsEnum; 343 347 else if (strcmp(name,"SealevelriseUElastic")==0) return SealevelriseUElasticEnum; … … 379 383 else if (strcmp(name,"SmbIsgraingrowth")==0) return SmbIsgraingrowthEnum; 380 384 else if (strcmp(name,"SmbIsmelt")==0) return SmbIsmeltEnum; 381 else if (strcmp(name,"SmbIsmungsm")==0) return SmbIsmungsmEnum; 385 else stage=4; 386 } 387 if(stage==4){ 388 if (strcmp(name,"SmbIsmungsm")==0) return SmbIsmungsmEnum; 382 389 else if (strcmp(name,"SmbIsprecipscaled")==0) return SmbIsprecipscaledEnum; 383 390 else if (strcmp(name,"SmbIssetpddfac")==0) return SmbIssetpddfacEnum; 384 391 else if (strcmp(name,"SmbIsshortwave")==0) return SmbIsshortwaveEnum; 385 else stage=4; 386 } 387 if(stage==4){ 388 if (strcmp(name,"SmbIstemperaturescaled")==0) return SmbIstemperaturescaledEnum; 392 else if (strcmp(name,"SmbIstemperaturescaled")==0) return SmbIstemperaturescaledEnum; 389 393 else if (strcmp(name,"SmbIsthermal")==0) return SmbIsthermalEnum; 390 394 else if (strcmp(name,"SmbIsturbulentflux")==0) return SmbIsturbulentfluxEnum; … … 502 506 else if (strcmp(name,"BasalforcingsPicoSubShelfOceanTemp")==0) return BasalforcingsPicoSubShelfOceanTempEnum; 503 507 else if (strcmp(name,"BasalStressx")==0) return BasalStressxEnum; 504 else if (strcmp(name,"BasalStressy")==0) return BasalStressyEnum; 508 else stage=5; 509 } 510 if(stage==5){ 511 if (strcmp(name,"BasalStressy")==0) return BasalStressyEnum; 505 512 else if (strcmp(name,"BasalStress")==0) return BasalStressEnum; 506 513 else if (strcmp(name,"Base")==0) return BaseEnum; 507 514 else if (strcmp(name,"BaseOld")==0) return BaseOldEnum; 508 else stage=5; 509 } 510 if(stage==5){ 511 if (strcmp(name,"BaseSlopeX")==0) return BaseSlopeXEnum; 515 else if (strcmp(name,"BaseSlopeX")==0) return BaseSlopeXEnum; 512 516 else if (strcmp(name,"BaseSlopeY")==0) return BaseSlopeYEnum; 513 517 else if (strcmp(name,"Bed")==0) return BedEnum; … … 625 629 else if (strcmp(name,"HydrologyDrainageRate")==0) return HydrologyDrainageRateEnum; 626 630 else if (strcmp(name,"HydrologyEnglacialInput")==0) return HydrologyEnglacialInputEnum; 627 else if (strcmp(name,"HydrologyGapHeight")==0) return HydrologyGapHeightEnum; 631 else stage=6; 632 } 633 if(stage==6){ 634 if (strcmp(name,"HydrologyGapHeight")==0) return HydrologyGapHeightEnum; 628 635 else if (strcmp(name,"HydrologyHead")==0) return HydrologyHeadEnum; 629 636 else if (strcmp(name,"HydrologyHeadOld")==0) return HydrologyHeadOldEnum; 630 637 else if (strcmp(name,"HydrologyMoulinInput")==0) return HydrologyMoulinInputEnum; 631 else stage=6; 632 } 633 if(stage==6){ 634 if (strcmp(name,"HydrologyNeumannflux")==0) return HydrologyNeumannfluxEnum; 638 else if (strcmp(name,"HydrologyNeumannflux")==0) return HydrologyNeumannfluxEnum; 635 639 else if (strcmp(name,"HydrologyReynolds")==0) return HydrologyReynoldsEnum; 636 640 else if (strcmp(name,"HydrologySheetConductivity")==0) return HydrologySheetConductivityEnum; … … 748 752 else if (strcmp(name,"SmbDzini")==0) return SmbDziniEnum; 749 753 else if (strcmp(name,"SmbEAir")==0) return SmbEAirEnum; 750 else if (strcmp(name,"SmbEC")==0) return SmbECEnum; 754 else stage=7; 755 } 756 if(stage==7){ 757 if (strcmp(name,"SmbEC")==0) return SmbECEnum; 751 758 else if (strcmp(name,"SmbECDt")==0) return SmbECDtEnum; 752 759 else if (strcmp(name,"SmbECini")==0) return SmbECiniEnum; 753 760 else if (strcmp(name,"SmbEla")==0) return SmbElaEnum; 754 else stage=7; 755 } 756 if(stage==7){ 757 if (strcmp(name,"SmbEvaporation")==0) return SmbEvaporationEnum; 761 else if (strcmp(name,"SmbEvaporation")==0) return SmbEvaporationEnum; 758 762 else if (strcmp(name,"SmbFAC")==0) return SmbFACEnum; 759 763 else if (strcmp(name,"SmbGdn")==0) return SmbGdnEnum; … … 871 875 else if (strcmp(name,"Vz")==0) return VzEnum; 872 876 else if (strcmp(name,"VzFS")==0) return VzFSEnum; 873 else if (strcmp(name,"VzHO")==0) return VzHOEnum; 877 else stage=8; 878 } 879 if(stage==8){ 880 if (strcmp(name,"VzHO")==0) return VzHOEnum; 874 881 else if (strcmp(name,"VzMesh")==0) return VzMeshEnum; 875 882 else if (strcmp(name,"VzSSA")==0) return VzSSAEnum; 876 883 else if (strcmp(name,"WaterColumnOld")==0) return WaterColumnOldEnum; 877 else stage=8; 878 } 879 if(stage==8){ 880 if (strcmp(name,"Watercolumn")==0) return WatercolumnEnum; 884 else if (strcmp(name,"Watercolumn")==0) return WatercolumnEnum; 881 885 else if (strcmp(name,"WaterfractionDrainage")==0) return WaterfractionDrainageEnum; 882 886 else if (strcmp(name,"WaterfractionDrainageIntegrated")==0) return WaterfractionDrainageIntegratedEnum; … … 994 998 else if (strcmp(name,"AmrNeopz")==0) return AmrNeopzEnum; 995 999 else if (strcmp(name,"AndroidFrictionCoefficient")==0) return AndroidFrictionCoefficientEnum; 996 else if (strcmp(name,"Arrhenius")==0) return ArrheniusEnum; 1000 else stage=9; 1001 } 1002 if(stage==9){ 1003 if (strcmp(name,"Arrhenius")==0) return ArrheniusEnum; 997 1004 else if (strcmp(name,"AutodiffJacobian")==0) return AutodiffJacobianEnum; 998 1005 else if (strcmp(name,"Balancethickness2Analysis")==0) return Balancethickness2AnalysisEnum; 999 1006 else if (strcmp(name,"Balancethickness2Solution")==0) return Balancethickness2SolutionEnum; 1000 else stage=9; 1001 } 1002 if(stage==9){ 1003 if (strcmp(name,"BalancethicknessAnalysis")==0) return BalancethicknessAnalysisEnum; 1007 else if (strcmp(name,"BalancethicknessAnalysis")==0) return BalancethicknessAnalysisEnum; 1004 1008 else if (strcmp(name,"BalancethicknessApparentMassbalance")==0) return BalancethicknessApparentMassbalanceEnum; 1005 1009 else if (strcmp(name,"BalancethicknessSoftAnalysis")==0) return BalancethicknessSoftAnalysisEnum; … … 1117 1121 else if (strcmp(name,"HOApproximation")==0) return HOApproximationEnum; 1118 1122 else if (strcmp(name,"HOFSApproximation")==0) return HOFSApproximationEnum; 1119 else if (strcmp(name,"Hook")==0) return HookEnum; 1123 else stage=10; 1124 } 1125 if(stage==10){ 1126 if (strcmp(name,"Hook")==0) return HookEnum; 1120 1127 else if (strcmp(name,"HydrologyDCEfficientAnalysis")==0) return HydrologyDCEfficientAnalysisEnum; 1121 1128 else if (strcmp(name,"HydrologyDCInefficientAnalysis")==0) return HydrologyDCInefficientAnalysisEnum; 1122 1129 else if (strcmp(name,"HydrologyGlaDSAnalysis")==0) return HydrologyGlaDSAnalysisEnum; 1123 else stage=10; 1124 } 1125 if(stage==10){ 1126 if (strcmp(name,"HydrologyGlaDS")==0) return HydrologyGlaDSEnum; 1130 else if (strcmp(name,"HydrologyGlaDS")==0) return HydrologyGlaDSEnum; 1127 1131 else if (strcmp(name,"HydrologyPismAnalysis")==0) return HydrologyPismAnalysisEnum; 1128 1132 else if (strcmp(name,"HydrologyShaktiAnalysis")==0) return HydrologyShaktiAnalysisEnum; … … 1240 1244 else if (strcmp(name,"P1DG")==0) return P1DGEnum; 1241 1245 else if (strcmp(name,"P1P1")==0) return P1P1Enum; 1242 else if (strcmp(name,"P1P1GLS")==0) return P1P1GLSEnum; 1246 else stage=11; 1247 } 1248 if(stage==11){ 1249 if (strcmp(name,"P1P1GLS")==0) return P1P1GLSEnum; 1243 1250 else if (strcmp(name,"P1bubble")==0) return P1bubbleEnum; 1244 1251 else if (strcmp(name,"P1bubblecondensed")==0) return P1bubblecondensedEnum; 1245 1252 else if (strcmp(name,"P1xP2")==0) return P1xP2Enum; 1246 else stage=11; 1247 } 1248 if(stage==11){ 1249 if (strcmp(name,"P1xP3")==0) return P1xP3Enum; 1253 else if (strcmp(name,"P1xP3")==0) return P1xP3Enum; 1250 1254 else if (strcmp(name,"P1xP4")==0) return P1xP4Enum; 1251 1255 else if (strcmp(name,"P2")==0) return P2Enum; … … 1363 1367 else if (strcmp(name,"CalvingdevCoeff")==0) return CalvingdevCoeffEnum; 1364 1368 else if (strcmp(name,"DeviatoricStress")==0) return DeviatoricStressEnum; 1365 else if (strcmp(name,"EtaAbsGradient")==0) return EtaAbsGradientEnum; 1369 else stage=12; 1370 } 1371 if(stage==12){ 1372 if (strcmp(name,"EtaAbsGradient")==0) return EtaAbsGradientEnum; 1366 1373 else if (strcmp(name,"MeshZ")==0) return MeshZEnum; 1367 1374 else if (strcmp(name,"NearestInterp")==0) return NearestInterpEnum; 1368 1375 else if (strcmp(name,"OutputdefinitionList")==0) return OutputdefinitionListEnum; 1369 else stage=12; 1370 } 1371 if(stage==12){ 1372 if (strcmp(name,"SealevelObs")==0) return SealevelObsEnum; 1376 else if (strcmp(name,"SealevelObs")==0) return SealevelObsEnum; 1373 1377 else if (strcmp(name,"SealevelWeights")==0) return SealevelWeightsEnum; 1374 1378 else if (strcmp(name,"StrainRate")==0) return StrainRateEnum;
Note:
See TracChangeset
for help on using the changeset viewer.