Changeset 24481 for issm/trunk-jpl/src
- Timestamp:
- 12/18/19 14:04:15 (5 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp
r24469 r24481 2 2 #include "../toolkits/toolkits.h" 3 3 #include "../classes/classes.h" 4 #include "../classes/Inputs2/TransientInput2.h" 4 5 #include "../shared/shared.h" 5 6 #include "../modules/modules.h" … … 58 59 iomodel->FetchData(&dslmodel,"md.dsl.model"); 59 60 if (dslmodel==1){ 61 62 /*deal with global mean steric rate: */ 63 IssmDouble* str=NULL; 64 IssmDouble* times = NULL; 65 int M,N; 66 67 /*fetch str vector:*/ 68 iomodel->FetchData(&str,&M,&N,"md.dsl.global_average_thermosteric_sea_level_change"); _assert_(M==2); 69 70 //recover time vector: 71 times=xNew<IssmDouble>(N); 72 for(int t=0;t<N;t++) times[t] = str[N+t]; 73 74 /*create transient input: */ 75 inputs2->SetTransientInput(DslGlobalAverageThermostericSeaLevelChangeEnum,times,N); 76 TransientInput2* transientinput = inputs2->GetTransientInput(DslGlobalAverageThermostericSeaLevelChangeEnum); 77 78 79 for(int i=0;i<elements->Size();i++){ 80 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i)); 81 82 for(int t=0;t<N;t++){ 83 switch(element->ObjectEnum()){ 84 case TriaEnum: transientinput->AddTriaTimeInput( t,1,&element->lid,&str[t],P0Enum); break; 85 case PentaEnum: transientinput->AddPentaTimeInput(t,1,&element->lid,&str[t],P0Enum); break; 86 default: _error_("Not implemented yet"); 87 } 88 } 89 } 90 91 /*cleanup:*/ 92 xDelete<IssmDouble>(times); 93 iomodel->DeleteData(str,"md.dsl.global_average_thermosteric_sea_level_change"); 94 95 /*deal with dynamic sea level fields: */ 96 60 97 iomodel->FetchDataToInput(inputs2,elements,"md.dsl.sea_surface_height_change_above_geoid", DslSeaSurfaceHeightChangeAboveGeoidEnum); 61 98 iomodel->FetchDataToInput(inputs2,elements,"md.dsl.sea_water_pressure_change_at_sea_floor", DslSeaWaterPressureChangeAtSeaFloor); 99 100 //TransientInput2* transientinput=inputs2->SetDatasetTransientInput(DslGlobalAverageThermostericSeaLevelChangeEnum,counter, times,N); 62 101 } 63 102 else _error_("Dsl model " << dslmodel << " not implemented yet!"); … … 118 157 parameters->AddObject(iomodel->CopyConstantObject("md.slr.geodetic",SealevelriseGeodeticEnum)); 119 158 120 /*dsl model: */ 121 iomodel->FetchData(&dslmodel,"md.dsl.model"); 122 if (dslmodel==1){ 123 IssmDouble* temp=NULL; 124 int M,N; 125 bool interp; 126 iomodel->FindConstant(&interp,"md.timestepping.interp_forcings"); 127 iomodel->FetchData(&temp,&N,&M,"md.dsl.global_average_thermosteric_sea_level_change"); _assert_(N==2); 128 parameters->AddObject(new TransientParam(DslGlobalAverageThermostericSeaLevelChangeEnum,&temp[0],&temp[M],interp,M)); 129 iomodel->DeleteData(temp,"md.dsl.global_average_thermosteric_sea_level_change"); 130 } 131 else _error_("dslmodel " << dslmodel << " not supported yet"); 132 159 160 /*Deal with elasticity {{{*/ 133 161 iomodel->FetchData(&elastic,"md.slr.elastic"); 134 if(elastic){ 162 if(elastic){ 135 163 136 164 /*love numbers: */ … … 251 279 xDelete<IssmDouble>(H_elastic); 252 280 xDelete<IssmDouble>(H_elastic_local); 253 } 254 255 /*Transitions: */ 281 } /*}}}*/ 282 /*Transitions:{{{ */ 256 283 iomodel->FetchData(&transitions,&transitions_M,&transitions_N,&ntransitions,"md.slr.transitions"); 257 284 if(transitions){ … … 265 292 xDelete<int>(transitions_M); 266 293 xDelete<int>(transitions_N); 267 } 268 269 /*Requested outputs*/ 294 } /*}}}*/ 295 /*Requested outputs {{{*/ 270 296 iomodel->FindConstant(&requestedoutputs,&numoutputs,"md.slr.requested_outputs"); 271 297 if(numoutputs)parameters->AddObject(new StringArrayParam(SealevelriseRequestedOutputsEnum,requestedoutputs,numoutputs)); 272 298 iomodel->DeleteData(&requestedoutputs,numoutputs,"md.slr.requested_outputs"); 299 /*}}}*/ 273 300 274 301 }/*}}}*/ -
issm/trunk-jpl/src/c/classes/Elements/Element.h
r24469 r24481 372 372 #endif 373 373 #ifdef _HAVE_SEALEVELRISE_ 374 virtual void UpdateStericRate(int dslmodel)=0;375 virtual void UpdateDynamicRate(int dslmodel)=0;376 374 virtual IssmDouble GetArea3D(void)=0; 377 375 virtual IssmDouble GetAreaSpherical(void)=0; -
issm/trunk-jpl/src/c/classes/Elements/Penta.h
r24469 r24481 210 210 #endif 211 211 #ifdef _HAVE_SEALEVELRISE_ 212 void UpdateDynamicRate(int dslmodel){_error_("not implemented yet!");};213 void UpdateStericRate(int dslmodel){_error_("not implemented yet!");};214 212 IssmDouble OceanArea(void){_error_("not implemented yet!");}; 215 213 IssmDouble OceanAverage(IssmDouble* Sg){_error_("not implemented yet!");}; -
issm/trunk-jpl/src/c/classes/Elements/Seg.h
r24469 r24481 171 171 #endif 172 172 #ifdef _HAVE_SEALEVELRISE_ 173 void UpdateDynamicRate(int dslmodel){_error_("not implemented yet!");};174 void UpdateStericRate(int dslmodel){_error_("not implemented yet!");};175 173 void SealevelriseMomentOfInertia(IssmDouble* dI_list,IssmDouble* Sg_old,IssmDouble eartharea){_error_("not implemented yet!");}; 176 174 void SealevelriseEustatic(Vector<IssmDouble>* pSgi,IssmDouble* peustatic,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea,IssmDouble eartharea){_error_("not implemented yet!");}; -
issm/trunk-jpl/src/c/classes/Elements/Tetra.h
r24469 r24481 177 177 #endif 178 178 #ifdef _HAVE_SEALEVELRISE_ 179 void UpdateDynamicRate(int dslmodel){_error_("not implemented yet!");};180 void UpdateStericRate(int dslmodel){_error_("not implemented yet!");};181 179 void SealevelriseMomentOfInertia(IssmDouble* dI_list,IssmDouble* Sg_old,IssmDouble eartharea){_error_("not implemented yet!");}; 182 180 void SealevelriseEustatic(Vector<IssmDouble>* pSgi,IssmDouble* peustatic,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea,IssmDouble eartharea){_error_("not implemented yet!");}; -
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r24469 r24481 5436 5436 #endif 5437 5437 #ifdef _HAVE_SEALEVELRISE_ 5438 void Tria::UpdateDynamicRate(int dslmodel){ /*{{{*/5439 5440 if (dslmodel==1){5441 //do nothing for now5442 IssmDouble dslrate[3]={0,0,0};5443 this->AddInput2(DslDynamicRateEnum,&dslrate[0],P1Enum);5444 }5445 else if (dslmodel==2){5446 /*IssmDouble eof1[3],eof2[3],eof3[3],eof4[3];5447 IssmDouble steric_rate[3];5448 IssmDouble pc1,pc2,pc3,pc4;5449 5450 Element::GetInputListOnVertices(&eof1[0],SealevelriseModeleoftrendEof1Enum);5451 Element::GetInputListOnVertices(&eof2[0],SealevelriseModeleoftrendEof2Enum);5452 Element::GetInputListOnVertices(&eof3[0],SealevelriseModeleoftrendEof3Enum);5453 Element::GetInputListOnVertices(&eof4[0],SealevelriseModeleoftrendEof4Enum);5454 5455 Element::GetInputValue(&pc1,SealevelriseModeleoftrendPc1Enum);5456 Element::GetInputValue(&pc2,SealevelriseModeleoftrendPc2Enum);5457 Element::GetInputValue(&pc3,SealevelriseModeleoftrendPc3Enum);5458 Element::GetInputValue(&pc4,SealevelriseModeleoftrendPc4Enum);5459 5460 for (int i=0;i<4;i++)steric_rate[i]=pc1*eof1[i]+pc2*eof2[i]+pc3*eof3[i]+pc4*eof4[i];5461 5462 //upate input:5463 this->AddInput2(SealevelriseStericRateEnum,&steric_rate[0],P1Enum);5464 */5465 5466 }5467 else{5468 _error_("dslmodel " << dslmodel << " not supported yet!");5469 }5470 }5471 /*}}}*/5472 void Tria::UpdateStericRate(int dslmodel){ /*{{{*/5473 5474 IssmDouble dslrate = 0;5475 IssmDouble time;5476 if (dslmodel==1){5477 //grab value of GlobalAverageThermostericSeaLevelChange directly:5478 this->parameters->FindParam(&time,TimeEnum);5479 this->parameters->FindParam(&dslrate,DslGlobalAverageThermostericSeaLevelChangeEnum,time);5480 this->AddInput2(DslStericRateEnum,&dslrate,P0Enum);5481 }5482 else if (dslmodel==2){5483 /*IssmDouble eof1[3],eof2[3],eof3[3],eof4[3];5484 IssmDouble steric_rate[3];5485 IssmDouble pc1,pc2,pc3,pc4;5486 5487 Element::GetInputListOnVertices(&eof1[0],SealevelriseModeleoftrendEof1Enum);5488 Element::GetInputListOnVertices(&eof2[0],SealevelriseModeleoftrendEof2Enum);5489 Element::GetInputListOnVertices(&eof3[0],SealevelriseModeleoftrendEof3Enum);5490 Element::GetInputListOnVertices(&eof4[0],SealevelriseModeleoftrendEof4Enum);5491 5492 Element::GetInputValue(&pc1,SealevelriseModeleoftrendPc1Enum);5493 Element::GetInputValue(&pc2,SealevelriseModeleoftrendPc2Enum);5494 Element::GetInputValue(&pc3,SealevelriseModeleoftrendPc3Enum);5495 Element::GetInputValue(&pc4,SealevelriseModeleoftrendPc4Enum);5496 5497 for (int i=0;i<4;i++)steric_rate[i]=pc1*eof1[i]+pc2*eof2[i]+pc3*eof3[i]+pc4*eof4[i];5498 5499 //upate input:5500 this->AddInput2(SealevelriseStericRateEnum,&steric_rate[0],P1Enum);5501 */5502 }5503 else{5504 _error_("dslmodel " << dslmodel << " not supported yet!");5505 }5506 }5507 /*}}}*/5508 5438 IssmDouble Tria::OceanArea(void){ /*{{{*/ 5509 5439 -
issm/trunk-jpl/src/c/classes/Elements/Tria.h
r24469 r24481 163 163 #endif 164 164 #ifdef _HAVE_SEALEVELRISE_ 165 void UpdateDynamicRate(int dslmodel);166 void UpdateStericRate(int dslmodel);167 165 IssmDouble OceanArea(void); 168 166 IssmDouble OceanAverage(IssmDouble* Sg); -
issm/trunk-jpl/src/c/cores/sealevelrise_core.cpp
r24469 r24481 6 6 #include "../toolkits/toolkits.h" 7 7 #include "../classes/classes.h" 8 #include "../classes/Inputs2/TriaInput2.h" 9 #include "../classes/Inputs2/TransientInput2.h" 8 10 #include "../shared/shared.h" 9 11 #include "../modules/modules.h" … … 565 567 void GetDynamicRate(Vector<IssmDouble> ** pdynamic_rate_g, FemModel* femmodel){ /*{{{*/ 566 568 567 int dslmodel=0; 569 int dslmodel=-1; 570 IssmDouble time; 568 571 569 572 /*variables:*/ 570 573 Vector<IssmDouble> *dynamic_rate_g = NULL; 571 574 572 /*Update dynamic rates before retrieving them on Vertex SID set:*/575 /*Update steric rates before retrieving them on Vertex SID set:*/ 573 576 femmodel->parameters->FindParam(&dslmodel,DslModelEnum); 574 575 for(int el=0;el<femmodel->elements->Size();el++){ 576 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(el)); 577 element->UpdateDynamicRate(dslmodel); 578 } 577 femmodel->parameters->FindParam(&time,TimeEnum); 578 if(dslmodel==1){ 579 TransientInput2* transient_input = femmodel->inputs2->GetTransientInput(DslSeaSurfaceHeightChangeAboveGeoidEnum); 580 TriaInput2* tria_input=transient_input->GetTriaInput(time); 581 Input2* tria_input_copy=tria_input->copy(); 582 tria_input_copy->ChangeEnum(DslDynamicRateEnum); 583 femmodel->inputs2->AddInput(tria_input_copy); 584 } 585 else _error_("not implemented yet"); 579 586 580 587 GetVectorFromInputsx(&dynamic_rate_g,femmodel,DslDynamicRateEnum,VertexSIdEnum); … … 585 592 586 593 int dslmodel=-1; 594 IssmDouble time; 587 595 588 596 /*variables:*/ … … 591 599 /*Update steric rates before retrieving them on Vertex SID set:*/ 592 600 femmodel->parameters->FindParam(&dslmodel,DslModelEnum); 593 594 for(int el=0;el<femmodel->elements->Size();el++){ 595 Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(el)); 596 element->UpdateStericRate(dslmodel); 597 } 601 femmodel->parameters->FindParam(&time,TimeEnum); 602 if(dslmodel==1){ 603 TransientInput2* transient_input = femmodel->inputs2->GetTransientInput(DslGlobalAverageThermostericSeaLevelChangeEnum); 604 TriaInput2* tria_input=transient_input->GetTriaInput(time); 605 Input2* tria_input_copy=tria_input->copy(); 606 tria_input_copy->ChangeEnum(DslStericRateEnum); 607 femmodel->inputs2->AddInput(tria_input_copy); 608 } 609 else _error_("not implemented yet"); 610 598 611 GetVectorFromInputsx(&steric_rate_g,femmodel,DslStericRateEnum,VertexSIdEnum); 599 612 *psteric_rate_g=steric_rate_g; -
issm/trunk-jpl/src/c/shared/Enum/Enum.vim
r24479 r24481 129 129 syn keyword cConstant DomainDimensionEnum 130 130 syn keyword cConstant DomainTypeEnum 131 syn keyword cConstant DslGlobalAverageThermostericSeaLevelChangeEnum132 131 syn keyword cConstant DslModelEnum 133 132 syn keyword cConstant EarthIdEnum … … 521 520 syn keyword cConstant DrivingStressXEnum 522 521 syn keyword cConstant DrivingStressYEnum 522 syn keyword cConstant DslGlobalAverageThermostericSeaLevelChangeEnum 523 523 syn keyword cConstant DslSeaSurfaceHeightChangeAboveGeoidEnum 524 524 syn keyword cConstant DslStericRateEnum … … 1329 1329 syn keyword cType Cfsurfacesquare 1330 1330 syn keyword cType Channel 1331 syn keyword cType classes1332 1331 syn keyword cType Constraint 1333 1332 syn keyword cType Constraints … … 1336 1335 syn keyword cType ControlInput2 1337 1336 syn keyword cType Covertree 1337 syn keyword cType DataSetParam 1338 1338 syn keyword cType DatasetInput2 1339 syn keyword cType DataSetParam1340 1339 syn keyword cType Definition 1341 1340 syn keyword cType DependentObject … … 1349 1348 syn keyword cType ElementInput2 1350 1349 syn keyword cType ElementMatrix 1350 syn keyword cType ElementVector 1351 1351 syn keyword cType Elements 1352 syn keyword cType ElementVector1353 1352 syn keyword cType ExponentialVariogram 1354 1353 syn keyword cType ExternalResult … … 1357 1356 syn keyword cType Friction 1358 1357 syn keyword cType Gauss 1359 syn keyword cType GaussianVariogram1360 syn keyword cType gaussobjects1361 1358 syn keyword cType GaussPenta 1362 1359 syn keyword cType GaussSeg 1363 1360 syn keyword cType GaussTetra 1364 1361 syn keyword cType GaussTria 1362 syn keyword cType GaussianVariogram 1365 1363 syn keyword cType GenericExternalResult 1366 1364 syn keyword cType GenericOption … … 1377 1375 syn keyword cType IssmDirectApplicInterface 1378 1376 syn keyword cType IssmParallelDirectApplicInterface 1379 syn keyword cType krigingobjects1380 1377 syn keyword cType Load 1381 1378 syn keyword cType Loads … … 1388 1385 syn keyword cType Matice 1389 1386 syn keyword cType Matlitho 1390 syn keyword cType matrixobjects1391 1387 syn keyword cType MatrixParam 1392 1388 syn keyword cType Misfit … … 1401 1397 syn keyword cType Observations 1402 1398 syn keyword cType Option 1399 syn keyword cType OptionUtilities 1403 1400 syn keyword cType Options 1404 syn keyword cType OptionUtilities1405 1401 syn keyword cType Param 1406 1402 syn keyword cType Parameters … … 1416 1412 syn keyword cType Regionaloutput 1417 1413 syn keyword cType Results 1414 syn keyword cType RiftStruct 1418 1415 syn keyword cType Riftfront 1419 syn keyword cType RiftStruct1420 1416 syn keyword cType Seg 1421 1417 syn keyword cType SegInput2 1418 syn keyword cType SegRef 1422 1419 syn keyword cType Segment 1423 syn keyword cType SegRef1424 1420 syn keyword cType SpcDynamic 1425 1421 syn keyword cType SpcStatic … … 1440 1436 syn keyword cType Vertex 1441 1437 syn keyword cType Vertices 1438 syn keyword cType classes 1439 syn keyword cType gaussobjects 1440 syn keyword cType krigingobjects 1441 syn keyword cType matrixobjects 1442 1442 syn keyword cType AdjointBalancethickness2Analysis 1443 1443 syn keyword cType AdjointBalancethicknessAnalysis … … 1458 1458 syn keyword cType FreeSurfaceBaseAnalysis 1459 1459 syn keyword cType FreeSurfaceTopAnalysis 1460 syn keyword cType GLheightadvectionAnalysis 1460 1461 syn keyword cType GiaIvinsAnalysis 1461 syn keyword cType GLheightadvectionAnalysis1462 1462 syn keyword cType HydrologyDCEfficientAnalysis 1463 1463 syn keyword cType HydrologyDCInefficientAnalysis -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r24479 r24481 123 123 DomainDimensionEnum, 124 124 DomainTypeEnum, 125 DslGlobalAverageThermostericSeaLevelChangeEnum,126 125 DslModelEnum, 127 126 EarthIdEnum, … … 517 516 DrivingStressXEnum, 518 517 DrivingStressYEnum, 518 DslGlobalAverageThermostericSeaLevelChangeEnum, 519 519 DslSeaSurfaceHeightChangeAboveGeoidEnum, 520 520 DslSeaWaterPressureChangeAtSeaFloor, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r24479 r24481 131 131 case DomainDimensionEnum : return "DomainDimension"; 132 132 case DomainTypeEnum : return "DomainType"; 133 case DslGlobalAverageThermostericSeaLevelChangeEnum : return "DslGlobalAverageThermostericSeaLevelChange";134 133 case DslModelEnum : return "DslModel"; 135 134 case EarthIdEnum : return "EarthId"; … … 523 522 case DrivingStressXEnum : return "DrivingStressX"; 524 523 case DrivingStressYEnum : return "DrivingStressY"; 524 case DslGlobalAverageThermostericSeaLevelChangeEnum : return "DslGlobalAverageThermostericSeaLevelChange"; 525 525 case DslSeaSurfaceHeightChangeAboveGeoidEnum : return "DslSeaSurfaceHeightChangeAboveGeoid"; 526 526 case DslStericRateEnum : return "DslStericRate"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r24479 r24481 131 131 else if (strcmp(name,"DomainDimension")==0) return DomainDimensionEnum; 132 132 else if (strcmp(name,"DomainType")==0) return DomainTypeEnum; 133 else if (strcmp(name,"DslGlobalAverageThermostericSeaLevelChange")==0) return DslGlobalAverageThermostericSeaLevelChangeEnum;134 133 else if (strcmp(name,"DslModel")==0) return DslModelEnum; 135 134 else if (strcmp(name,"EarthId")==0) return EarthIdEnum; … … 137 136 else if (strcmp(name,"EsaHElastic")==0) return EsaHElasticEnum; 138 137 else if (strcmp(name,"EsaHemisphere")==0) return EsaHemisphereEnum; 138 else if (strcmp(name,"EsaRequestedOutputs")==0) return EsaRequestedOutputsEnum; 139 139 else stage=2; 140 140 } 141 141 if(stage==2){ 142 if (strcmp(name,"EsaRequestedOutputs")==0) return EsaRequestedOutputsEnum; 143 else if (strcmp(name,"EsaUElastic")==0) return EsaUElasticEnum; 142 if (strcmp(name,"EsaUElastic")==0) return EsaUElasticEnum; 144 143 else if (strcmp(name,"ExtrapolationVariable")==0) return ExtrapolationVariableEnum; 145 144 else if (strcmp(name,"FemModelComm")==0) return FemModelCommEnum; … … 260 259 else if (strcmp(name,"MaterialsLithosphereShearModulus")==0) return MaterialsLithosphereShearModulusEnum; 261 260 else if (strcmp(name,"MaterialsMantleDensity")==0) return MaterialsMantleDensityEnum; 261 else if (strcmp(name,"MaterialsMantleShearModulus")==0) return MaterialsMantleShearModulusEnum; 262 262 else stage=3; 263 263 } 264 264 if(stage==3){ 265 if (strcmp(name,"MaterialsMantleShearModulus")==0) return MaterialsMantleShearModulusEnum; 266 else if (strcmp(name,"MaterialsMeltingpoint")==0) return MaterialsMeltingpointEnum; 265 if (strcmp(name,"MaterialsMeltingpoint")==0) return MaterialsMeltingpointEnum; 267 266 else if (strcmp(name,"MaterialsMixedLayerCapacity")==0) return MaterialsMixedLayerCapacityEnum; 268 267 else if (strcmp(name,"MaterialsMuWater")==0) return MaterialsMuWaterEnum; … … 383 382 else if (strcmp(name,"SmbRunoffref")==0) return SmbRunoffrefEnum; 384 383 else if (strcmp(name,"SmbSealev")==0) return SmbSealevEnum; 384 else if (strcmp(name,"SmbStepsPerStep")==0) return SmbStepsPerStepEnum; 385 385 else stage=4; 386 386 } 387 387 if(stage==4){ 388 if (strcmp(name,"SmbStepsPerStep")==0) return SmbStepsPerStepEnum; 389 else if (strcmp(name,"SmbSwIdx")==0) return SmbSwIdxEnum; 388 if (strcmp(name,"SmbSwIdx")==0) return SmbSwIdxEnum; 390 389 else if (strcmp(name,"SmbT0dry")==0) return SmbT0dryEnum; 391 390 else if (strcmp(name,"SmbT0wet")==0) return SmbT0wetEnum; … … 506 505 else if (strcmp(name,"CalvingFluxLevelset")==0) return CalvingFluxLevelsetEnum; 507 506 else if (strcmp(name,"CalvingMeltingFluxLevelset")==0) return CalvingMeltingFluxLevelsetEnum; 507 else if (strcmp(name,"Converged")==0) return ConvergedEnum; 508 508 else stage=5; 509 509 } 510 510 if(stage==5){ 511 if (strcmp(name,"Converged")==0) return ConvergedEnum; 512 else if (strcmp(name,"CrevasseDepth")==0) return CrevasseDepthEnum; 511 if (strcmp(name,"CrevasseDepth")==0) return CrevasseDepthEnum; 513 512 else if (strcmp(name,"DamageD")==0) return DamageDEnum; 514 513 else if (strcmp(name,"DamageDOld")==0) return DamageDOldEnum; … … 535 534 else if (strcmp(name,"DrivingStressX")==0) return DrivingStressXEnum; 536 535 else if (strcmp(name,"DrivingStressY")==0) return DrivingStressYEnum; 536 else if (strcmp(name,"DslGlobalAverageThermostericSeaLevelChange")==0) return DslGlobalAverageThermostericSeaLevelChangeEnum; 537 537 else if (strcmp(name,"DslSeaSurfaceHeightChangeAboveGeoid")==0) return DslSeaSurfaceHeightChangeAboveGeoidEnum; 538 538 else if (strcmp(name,"DslStericRate")==0) return DslStericRateEnum; -
issm/trunk-jpl/src/m/classes/dsl.m
r24469 r24481 9 9 global_average_thermosteric_sea_level_change; %corresponds to zostoga field in CMIP5 archives. Specified as a temporally variable global rate (mm/yr) 10 10 sea_surface_height_change_above_geoid; %corresponds to zos field in CMIP5 archives. Spatial average is 0. Specified as a spatio-temporally variable rate (mm/yr) 11 sea_water_pressure_change_at_sea_floor; %corresponds to bpo field in CMIP5 archives. Specified as a spatio-temporally variable rate (in Pa/yr)11 sea_water_pressure_change_at_sea_floor; %corresponds to bpo field in CMIP5 archives. Specified as a spatio-temporally variable rate (in mm/yr equivalent, not in Pa/yr!) for each ensemble 12 12 13 13 end … … 38 38 %Early return 39 39 if ~ismember('SealevelriseAnalysis',analyses), return; end 40 md = checkfield(md,'fieldname','dsl.global_average_thermosteric_sea_level_change','NaN',1,'Inf',1); 40 41 md = checkfield(md,'fieldname','dsl.sea_surface_height_change_above_geoid','NaN',1,'Inf',1,'timeseries',1); 41 42 md = checkfield(md,'fieldname','dsl.sea_water_pressure_change_at_sea_floor','NaN',1,'Inf',1,'timeseries',1); … … 53 54 54 55 WriteData(fid,prefix,'name','md.dsl.model','data',1,'format','Integer'); 55 WriteData(fid,prefix,'object',self,'fieldname','global_average_thermosteric_sea_level_change','format','DoubleMat','mattype',1,'timeseries length',1+1,'yts',md.constants.yts,'scale',1e-3/md.constants.yts);56 WriteData(fid,prefix,'object',self,'fieldname','global_average_thermosteric_sea_level_change','format','DoubleMat','mattype',1,'timeseries',1,'timeserieslength',2,'yts',md.constants.yts,'scale',1e-3/md.constants.yts); 56 57 WriteData(fid,prefix,'object',self,'fieldname','sea_water_pressure_change_at_sea_floor','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1e-3/md.constants.yts); 57 WriteData(fid,prefix,'object',self,'fieldname','sea_surface_height_change_above_geoid','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts );58 WriteData(fid,prefix,'object',self,'fieldname','sea_surface_height_change_above_geoid','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1e-3/md.constants.yts); 58 59 59 60 end % }}}
Note:
See TracChangeset
for help on using the changeset viewer.