Changeset 15128
- Timestamp:
- 05/28/13 14:15:24 (12 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 1 deleted
- 72 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/Makefile.am
r15091 r15128 199 199 ./shared/Numerics/extrema.cpp\ 200 200 ./shared/Numerics/XZvectorsToCoordinateSystem.cpp\ 201 ./shared/Numerics/UnitConversion.cpp\202 201 ./shared/Numerics/OptArgs.h\ 203 202 ./shared/Numerics/OptPars.h\ -
issm/trunk-jpl/src/c/classes/ElementResults/BoolElementResult.cpp
r15104 r15128 92 92 } 93 93 /*}}}*/ 94 /*FUNCTION BoolElementResult::ProcessUnits{{{*/95 void BoolElementResult::ProcessUnits(Parameters* parameters){96 // no op97 }98 /*}}}*/99 94 /*FUNCTION BoolElementResult::NumberOfNodalValues{{{*/ 100 95 int BoolElementResult::NumberOfNodalValues(void){ -
issm/trunk-jpl/src/c/classes/ElementResults/BoolElementResult.h
r15012 r15128 37 37 IssmDouble GetTime(void){return time;}; 38 38 int GetStep(void){return step;}; 39 void ProcessUnits(Parameters* parameters);40 39 int NumberOfNodalValues(void); 41 40 void PatchFill(int row, Patch* patch); -
issm/trunk-jpl/src/c/classes/ElementResults/DoubleElementResult.cpp
r15104 r15128 92 92 } 93 93 /*}}}*/ 94 /*FUNCTION DoubleElementResult::ProcessUnits{{{*/95 void DoubleElementResult::ProcessUnits(Parameters* parameters){96 97 this->value=UnitConversion(this->value,IuToExtEnum,this->enum_type);98 99 }100 /*}}}*/101 94 /*FUNCTION DoubleElementResult::NumberOfNodalValues{{{*/ 102 95 int DoubleElementResult::NumberOfNodalValues(void){ -
issm/trunk-jpl/src/c/classes/ElementResults/DoubleElementResult.h
r15012 r15128 37 37 IssmDouble GetTime(void){return time;}; 38 38 int GetStep(void){return step;}; 39 void ProcessUnits(Parameters* parameters);40 39 int NumberOfNodalValues(void); 41 40 void PatchFill(int row, Patch* patch); -
issm/trunk-jpl/src/c/classes/ElementResults/ElementResult.h
r15067 r15128 19 19 virtual IssmDouble GetTime(void)=0; 20 20 virtual int GetStep(void)=0; 21 virtual void ProcessUnits(Parameters* parameters)=0;22 21 virtual int NumberOfNodalValues(void)=0; 23 22 virtual void PatchFill(int row, Patch* patch)=0; -
issm/trunk-jpl/src/c/classes/ElementResults/PentaP1ElementResult.cpp
r15104 r15128 103 103 } 104 104 /*}}}*/ 105 /*FUNCTION PentaP1ElementResult::ProcessUnits{{{*/106 void PentaP1ElementResult::ProcessUnits(Parameters* parameters){107 108 UnitConversion(this->values,6,IuToExtEnum,this->enum_type);109 110 }111 /*}}}*/112 105 /*FUNCTION PentaP1ElementResult::NumberOfNodalValues{{{*/ 113 106 int PentaP1ElementResult::NumberOfNodalValues(void){ -
issm/trunk-jpl/src/c/classes/ElementResults/PentaP1ElementResult.h
r15012 r15128 36 36 IssmDouble GetTime(void){return time;}; 37 37 int GetStep(void){return step;}; 38 void ProcessUnits(Parameters* parameters);39 38 int NumberOfNodalValues(void); 40 39 void PatchFill(int row, Patch* patch); -
issm/trunk-jpl/src/c/classes/ElementResults/TriaP1ElementResult.cpp
r15104 r15128 91 91 } 92 92 /*}}}*/ 93 /*FUNCTION TriaP1ElementResult::ProcessUnits{{{*/94 void TriaP1ElementResult::ProcessUnits(Parameters* parameters){95 96 UnitConversion(this->values,3,IuToExtEnum,this->enum_type);97 98 }99 /*}}}*/100 93 /*FUNCTION TriaP1ElementResult::NumberOfNodalValues{{{*/ 101 94 int TriaP1ElementResult::NumberOfNodalValues(void){ -
issm/trunk-jpl/src/c/classes/ElementResults/TriaP1ElementResult.h
r15012 r15128 35 35 IssmDouble GetTime(void){return time;}; 36 36 int GetStep(void){return step;}; 37 void ProcessUnits(Parameters* parameters);38 37 int NumberOfNodalValues(void); 39 38 void PatchFill(int row, Patch* patch); -
issm/trunk-jpl/src/c/classes/Elements/Element.h
r15082 r15128 69 69 virtual void InputCreate(IssmDouble scalar,int name,int code)=0; 70 70 virtual void InputCreate(IssmDouble* vector, int index,IoModel* iomodel,int M,int N,int vector_type,int vector_enum,int code)=0; 71 virtual void ProcessResultsUnits(void)=0;72 71 virtual void RequestedOutput(int output_enum,int step,IssmDouble time)=0; 73 72 -
issm/trunk-jpl/src/c/classes/Elements/Elements.cpp
r15051 r15128 50 50 } 51 51 52 }53 /*}}}*/54 /*FUNCTION Elements::ProcessResultsUnits{{{*/55 void Elements::ProcessResultsUnits(void){56 57 //Process results to be output in the correct units58 for(int i=0;i<this->Size();i++){59 Element* element=dynamic_cast<Element*>(this->GetObjectByOffset(i));60 element->ProcessResultsUnits();61 }62 52 } 63 53 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Elements/Elements.h
r15067 r15128 28 28 void DeleteResults(void); 29 29 int MaxNumNodes(void); 30 void ProcessResultsUnits(void);31 30 void SetCurrentConfiguration(Elements* elements,Loads* loads, Nodes* nodes, Vertices* vertices, Materials* materials,Parameters* parameters); 32 31 void ToResults(Results* results,Parameters* parameters); -
issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
r15104 r15128 1433 1433 for(i=0;i<6;i++)nodeinputs[i]=(IssmDouble)vector[penta_vertex_ids[i]-1]; 1434 1434 1435 /*process units: */1436 UnitConversion(&nodeinputs[0], 6 ,ExtToIuEnum, vector_enum);1437 1438 1435 /*create static input: */ 1439 1436 this->inputs->AddInput(new PentaP1Input(vector_enum,nodeinputs)); … … 1448 1445 nodeinputs[i]=(IssmDouble)vector[N*row+t]; 1449 1446 } 1450 1451 /*process units: */1452 UnitConversion(&nodeinputs[0], 6 ,ExtToIuEnum, vector_enum);1453 1447 1454 1448 /*time? :*/ … … 2595 2589 } 2596 2590 } 2597 }2598 }2599 /*}}}*/2600 /*FUNCTION Penta::ProcessResultsUnits{{{*/2601 void Penta::ProcessResultsUnits(void){2602 2603 int i;2604 2605 for(i=0;i<this->results->Size();i++){2606 ElementResult* elementresult=(ElementResult*)this->results->GetObjectByOffset(i);2607 elementresult->ProcessUnits(this->parameters);2608 2591 } 2609 2592 } … … 3288 3271 IssmDouble minvel=this->inputs->Min(VelEnum); 3289 3272 3290 /*process units if requested: */3291 if(process_units) minvel=UnitConversion(minvel,IuToExtEnum,VelEnum);3292 3293 3273 /*Assign output pointers:*/ 3294 3274 *pminvel=minvel; … … 3301 3281 IssmDouble minvx=this->inputs->Min(VxEnum); 3302 3282 3303 /*process units if requested: */3304 if(process_units) minvx=UnitConversion(minvx,IuToExtEnum,VxEnum);3305 3306 3283 /*Assign output pointers:*/ 3307 3284 *pminvx=minvx; … … 3314 3291 IssmDouble minvy=this->inputs->Min(VyEnum); 3315 3292 3316 /*process units if requested: */3317 if(process_units) minvy=UnitConversion(minvy,IuToExtEnum,VyEnum);3318 3319 3293 /*Assign output pointers:*/ 3320 3294 *pminvy=minvy; … … 3326 3300 /*Get minimum:*/ 3327 3301 IssmDouble minvz=this->inputs->Min(VzEnum); 3328 3329 /*process units if requested: */3330 if(process_units) minvz=UnitConversion(minvz,IuToExtEnum,VzEnum);3331 3302 3332 3303 /*Assign output pointers:*/ … … 3364 3335 IssmDouble maxabsvx=this->inputs->MaxAbs(VxEnum); 3365 3336 3366 /*process units if requested: */3367 if(process_units) maxabsvx=UnitConversion(maxabsvx,IuToExtEnum,VxEnum);3368 3369 3337 /*Assign output pointers:*/ 3370 3338 *pmaxabsvx=maxabsvx; … … 3377 3345 IssmDouble maxabsvy=this->inputs->MaxAbs(VyEnum); 3378 3346 3379 /*process units if requested: */3380 if(process_units) maxabsvy=UnitConversion(maxabsvy,IuToExtEnum,VyEnum);3381 3382 3347 /*Assign output pointers:*/ 3383 3348 *pmaxabsvy=maxabsvy; … … 3390 3355 IssmDouble maxabsvz=this->inputs->MaxAbs(VzEnum); 3391 3356 3392 /*process units if requested: */3393 if(process_units) maxabsvz=UnitConversion(maxabsvz,IuToExtEnum,VyEnum);3394 3395 3357 /*Assign output pointers:*/ 3396 3358 *pmaxabsvz=maxabsvz; … … 3403 3365 IssmDouble maxvel=this->inputs->Max(VelEnum); 3404 3366 3405 /*process units if requested: */3406 if(process_units) maxvel=UnitConversion(maxvel,IuToExtEnum,VelEnum);3407 3408 3367 /*Assign output pointers:*/ 3409 3368 *pmaxvel=maxvel; … … 3417 3376 IssmDouble maxvx=this->inputs->Max(VxEnum); 3418 3377 3419 /*process units if requested: */3420 if(process_units) maxvx=UnitConversion(maxvx,IuToExtEnum,VxEnum);3421 3422 3378 /*Assign output pointers:*/ 3423 3379 *pmaxvx=maxvx; … … 3430 3386 IssmDouble maxvy=this->inputs->Max(VyEnum); 3431 3387 3432 /*process units if requested: */3433 if(process_units) maxvy=UnitConversion(maxvy,IuToExtEnum,VyEnum);3434 3435 3388 /*Assign output pointers:*/ 3436 3389 *pmaxvy=maxvy; … … 3442 3395 /*Get maximum:*/ 3443 3396 IssmDouble maxvz=this->inputs->Max(VzEnum); 3444 3445 /*process units if requested: */3446 if(process_units) maxvz=UnitConversion(maxvz,IuToExtEnum,VzEnum);3447 3397 3448 3398 /*Assign output pointers:*/ … … 3470 3420 vel_input->GetInputAverage(&vel); 3471 3421 3472 /*process units if requested: */3473 if(process_units) vel=UnitConversion(vel,IuToExtEnum,VelEnum);3474 3475 3422 /*Assign output pointers:*/ 3476 3423 *presponse=vel; … … 3508 3455 smb_input->GetInputAverage(&smb); 3509 3456 Total_Smb=rho_ice*base*smb;// smb on element in kg s-1 3510 3511 /*Process units: */3512 Total_Smb=UnitConversion(Total_Smb,IuToExtEnum,TotalSmbEnum);// smb on element in GigaTon yr-13513 3457 3514 3458 /*Return: */ -
issm/trunk-jpl/src/c/classes/Elements/Penta.h
r15082 r15128 113 113 void PatchSize(int* pnumrows, int* pnumvertices,int* pnumnodes); 114 114 void PositiveDegreeDay(IssmDouble* pdds,IssmDouble* pds,IssmDouble signorm); 115 void ProcessResultsUnits(void);116 115 void ResetCoordinateSystem(void); 117 116 void SmbGradients(); -
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r15106 r15128 2059 2059 for(i=0;i<3;i++)nodeinputs[i]=(IssmDouble)vector[tria_vertex_ids[i]-1]; 2060 2060 2061 /*process units: */2062 UnitConversion(&nodeinputs[0], 3 ,ExtToIuEnum, vector_enum);2063 2064 2061 /*create static input: */ 2065 2062 this->inputs->AddInput(new TriaP1Input(vector_enum,nodeinputs)); … … 2074 2071 nodeinputs[i]=(IssmDouble)vector[N*row+t]; 2075 2072 } 2076 2077 /*process units: */2078 UnitConversion(&nodeinputs[0], 3 ,ExtToIuEnum, vector_enum);2079 2073 2080 2074 /*time? :*/ … … 2524 2518 } 2525 2519 /*}}}*/ 2526 /*FUNCTION Tria::ProcessResultsUnits{{{*/2527 void Tria::ProcessResultsUnits(void){2528 2529 int i;2530 2531 for(i=0;i<this->results->Size();i++){2532 ElementResult* elementresult=(ElementResult*)this->results->GetObjectByOffset(i);2533 elementresult->ProcessUnits(this->parameters);2534 }2535 }2536 /*}}}*/2537 2520 /*FUNCTION Tria::RequestedOutput{{{*/ 2538 2521 void Tria::RequestedOutput(int output_enum,int step,IssmDouble time){ … … 2944 2927 ); 2945 2928 2946 /*Process units: */2947 mass_flux=UnitConversion(mass_flux,IuToExtEnum,MassFluxEnum);2948 2949 2929 /*clean up and return:*/ 2950 2930 delete gauss_1; … … 2959 2939 IssmDouble maxabsvx=this->inputs->MaxAbs(VxEnum); 2960 2940 2961 /*process units if requested: */2962 if(process_units) maxabsvx=UnitConversion(maxabsvx,IuToExtEnum,VxEnum);2963 2964 2941 /*Assign output pointers:*/ 2965 2942 *pmaxabsvx=maxabsvx; … … 2972 2949 IssmDouble maxabsvy=this->inputs->MaxAbs(VyEnum); 2973 2950 2974 /*process units if requested: */2975 if(process_units) maxabsvy=UnitConversion(maxabsvy,IuToExtEnum,VyEnum);2976 2977 2951 /*Assign output pointers:*/ 2978 2952 *pmaxabsvy=maxabsvy; … … 2985 2959 IssmDouble maxabsvz=this->inputs->MaxAbs(VzEnum); 2986 2960 2987 /*process units if requested: */2988 if(process_units) maxabsvz=UnitConversion(maxabsvz,IuToExtEnum,VyEnum);2989 2990 2961 /*Assign output pointers:*/ 2991 2962 *pmaxabsvz=maxabsvz; … … 2998 2969 IssmDouble maxvel=this->inputs->Max(VelEnum); 2999 2970 3000 /*process units if requested: */3001 if(process_units) maxvel=UnitConversion(maxvel,IuToExtEnum,VelEnum);3002 3003 2971 /*Assign output pointers:*/ 3004 2972 *pmaxvel=maxvel; … … 3011 2979 IssmDouble maxvx=this->inputs->Max(VxEnum); 3012 2980 3013 /*process units if requested: */3014 if(process_units) maxvx=UnitConversion(maxvx,IuToExtEnum,VxEnum);3015 3016 2981 /*Assign output pointers:*/ 3017 2982 *pmaxvx=maxvx; … … 3024 2989 IssmDouble maxvy=this->inputs->Max(VyEnum); 3025 2990 3026 /*process units if requested: */3027 if(process_units) maxvy=UnitConversion(maxvy,IuToExtEnum,VyEnum);3028 3029 2991 /*Assign output pointers:*/ 3030 2992 *pmaxvy=maxvy; … … 3038 3000 IssmDouble maxvz=this->inputs->Max(VzEnum); 3039 3001 3040 /*process units if requested: */3041 if(process_units) maxvz=UnitConversion(maxvz,IuToExtEnum,VzEnum);3042 3043 3002 /*Assign output pointers:*/ 3044 3003 *pmaxvz=maxvz; … … 3051 3010 IssmDouble minvel=this->inputs->Min(VelEnum); 3052 3011 3053 /*process units if requested: */3054 if(process_units) minvel=UnitConversion(minvel,IuToExtEnum,VelEnum);3055 3056 3012 /*Assign output pointers:*/ 3057 3013 *pminvel=minvel; … … 3064 3020 IssmDouble minvx=this->inputs->Min(VxEnum); 3065 3021 3066 /*process units if requested: */3067 if(process_units) minvx=UnitConversion(minvx,IuToExtEnum,VxEnum);3068 3069 3022 /*Assign output pointers:*/ 3070 3023 *pminvx=minvx; … … 3077 3030 IssmDouble minvy=this->inputs->Min(VyEnum); 3078 3031 3079 /*process units if requested: */3080 if(process_units) minvy=UnitConversion(minvy,IuToExtEnum,VyEnum);3081 3082 3032 /*Assign output pointers:*/ 3083 3033 *pminvy=minvy; … … 3089 3039 /*Get minimum:*/ 3090 3040 IssmDouble minvz=this->inputs->Min(VzEnum); 3091 3092 /*process units if requested: */3093 if(process_units) minvz=UnitConversion(minvz,IuToExtEnum,VzEnum);3094 3041 3095 3042 /*Assign output pointers:*/ … … 3116 3063 vel_input->GetInputAverage(&vel); 3117 3064 3118 /*process units if requested: */3119 if(process_units) vel=UnitConversion(vel,IuToExtEnum,VelEnum);3120 3121 3065 /*Assign output pointers:*/ 3122 3066 *presponse=vel;} … … 3152 3096 smb_input->GetInputAverage(&smb); // average smb on element in m ice s-1 3153 3097 Total_Smb=rho_ice*base*smb; // smb on element in kg s-1 3154 3155 /*Process units: */3156 Total_Smb=UnitConversion(Total_Smb,IuToExtEnum,TotalSmbEnum); // smb on element in GigaTon yr-13157 3098 3158 3099 /*Return: */ … … 4711 4652 misfit=1/S*sqrt( pow(vx-vxobs,2) + pow(vy-vyobs,2)); 4712 4653 4713 if(process_units)UnitConversion(misfit,IuToExtEnum,SurfaceAverageVelMisfitEnum);4714 4715 4654 /*Add to cost function*/ 4716 4655 Jelem+=misfit*weight*Jdet*gauss->weight; … … 4772 4711 obs_velocity_mag=sqrt(pow(vxobs,2)+pow(vyobs,2))+epsvel; 4773 4712 misfit=4*pow(meanvel,2)*pow(log(velocity_mag/obs_velocity_mag),2); 4774 4775 if(process_units)UnitConversion(misfit,IuToExtEnum,SurfaceLogVelMisfitEnum);4776 4713 4777 4714 /*Add to cost function*/ … … 4836 4773 pow(log((fabs(vy)+epsvel)/(fabs(vyobs)+epsvel)),2) ); 4837 4774 4838 if(process_units)UnitConversion(misfit,IuToExtEnum,SurfaceLogVxVyMisfitEnum);4839 4775 4840 4776 /*Add to cost function*/ … … 4893 4829 */ 4894 4830 misfit=0.5*( pow(vx-vxobs,2) + pow(vy-vyobs,2) ); 4895 4896 if(process_units)UnitConversion(misfit,IuToExtEnum,SurfaceAverageVelMisfitEnum);4897 4831 4898 4832 /*Add to cost function*/ … … 4956 4890 scaley=pow(meanvel/(vyobs+epsvel),2); if(vyobs==0)scaley=0; 4957 4891 misfit=0.5*(scalex*pow((vx-vxobs),2)+scaley*pow((vy-vyobs),2)); 4958 if(process_units)UnitConversion(misfit,IuToExtEnum,SurfaceRelVelMisfitEnum);4959 4892 4960 4893 /*Add to cost function*/ -
issm/trunk-jpl/src/c/classes/Elements/Tria.h
r15082 r15128 113 113 void PatchFill(int* pcount, Patch* patch); 114 114 void PatchSize(int* pnumrows, int* pnumvertices,int* pnumnodes); 115 void ProcessResultsUnits(void);116 115 void ResetCoordinateSystem(void){_error_("not implemented yet");}; 117 116 void SmbGradients(); -
issm/trunk-jpl/src/c/classes/Inputs/PentaP1Input.cpp
r15104 r15128 337 337 /*First, copy values, to process units if requested: */ 338 338 for(i=0;i<numnodes;i++)valuescopy[i]=this->values[i]; 339 340 /*Process units if requested: */341 if(process_units)UnitConversion(&valuescopy[0],numnodes,IuToExtEnum,enum_type);342 339 343 340 /*Now, figure out minimum of valuescopy: */ -
issm/trunk-jpl/src/c/classes/Inputs/TriaP1Input.cpp
r15104 r15128 229 229 for(i=0;i<numnodes;i++)valuescopy[i]=this->values[i]; 230 230 231 /*Process units if requested: */232 if(process_units)UnitConversion(&valuescopy[0],numnodes,IuToExtEnum,enum_type);233 234 231 /*Now, figure out minimum of valuescopy: */ 235 232 squaremin=pow(valuescopy[0],2); -
issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp
r15104 r15128 78 78 iomodel->Constant(&this->mantle_shear_modulus,MaterialsMantleShearModulusEnum); 79 79 iomodel->Constant(&this->mantle_density,MaterialsMantleDensityEnum); 80 81 /*Unit conversion: */82 this->UnitConversion();83 80 84 81 this->inputs=NULL; /*not used here*/ … … 458 455 } 459 456 /*}}}*/ 460 /*FUNCTION Matpar::UnitConversion {{{*/461 void Matpar::UnitConversion(void){462 463 /*convert units of fields that were allocated using the Ext unit system, into the Iu unit system: */464 ::UnitConversion(&this->lithosphere_density,1,ExtToIuEnum,MaterialsLithosphereDensityEnum);465 ::UnitConversion(&this->mantle_density,1,ExtToIuEnum,MaterialsMantleDensityEnum);466 467 }468 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Materials/Matpar.h
r15015 r15128 136 136 IssmDouble GetDesFac(); 137 137 IssmDouble GetS0p(); 138 void UnitConversion(void);139 138 /*}}}*/ 140 139 -
issm/trunk-jpl/src/c/classes/Params/BoolParam.cpp
r15104 r15128 72 72 } 73 73 /*}}}*/ 74 /*FUNCTION BoolParam::UnitConversion{{{*/75 void BoolParam::UnitConversion(int direction_enum){76 /*do nothing, no unit conversion*/77 }78 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Params/BoolParam.h
r15012 r15128 68 68 void SetValue(FILE* fid){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a FILE");} 69 69 void SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");} 70 void UnitConversion(int direction_enum);71 70 72 71 void GetParameterName(char**pname); -
issm/trunk-jpl/src/c/classes/Params/DataSetParam.cpp
r15104 r15128 73 73 } 74 74 /*}}}*/ 75 /*FUNCTION DataSetParam::UnitConversion{{{*/76 void DataSetParam::UnitConversion(int direction_enum){77 /*do nothing, no unit conversion*/78 }79 /*}}}*/80 75 /*FUNCTION DataSetParam::GetParameterValue{{{*/ 81 76 void DataSetParam::GetParameterValue(DataSet** pdataset){ -
issm/trunk-jpl/src/c/classes/Params/DataSetParam.h
r15012 r15128 69 69 void SetValue(DataSet* dataset){_error_("DataSet param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a DataSet yet");} 70 70 void SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("DataSet param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold an array of matrices");} 71 void UnitConversion(int direction_enum);72 71 73 72 void GetParameterName(char**pname); -
issm/trunk-jpl/src/c/classes/Params/DoubleMatArrayParam.cpp
r15104 r15128 226 226 } 227 227 /*}}}*/ 228 /*FUNCTION DoubleMatArrayParam::UnitConversion{{{*/229 void DoubleMatArrayParam::UnitConversion(int direction_enum){230 /*go through all matrices and convert: */231 for (int i=0;i<this->M;i++){232 IssmDouble* matrix=this->array[i];233 int m=this->mdim_array[i];234 int n=this->ndim_array[i];235 ::UnitConversion(matrix,m*n,direction_enum,this->enum_type);236 }237 238 }239 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Params/DoubleMatArrayParam.h
r15012 r15128 71 71 void SetValue(FILE* fid){_error_("Bool param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a FILE");} 72 72 void SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array); 73 void UnitConversion(int direction_enum);74 73 75 74 void GetParameterName(char**pname); -
issm/trunk-jpl/src/c/classes/Params/DoubleMatParam.cpp
r15104 r15128 119 119 } 120 120 /*}}}*/ 121 /*FUNCTION DoubleMatParam::UnitConversion{{{*/122 void DoubleMatParam::UnitConversion(int direction_enum){123 ::UnitConversion(this->value,this->M*this->N,direction_enum,this->enum_type);124 }125 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Params/DoubleMatParam.h
r15012 r15128 70 70 void SetValue(FILE* fid){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a FILE");} 71 71 void SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");} 72 void UnitConversion(int direction_enum);73 72 74 73 void GetParameterName(char**pname); -
issm/trunk-jpl/src/c/classes/Params/DoubleParam.cpp
r15104 r15128 99 99 } 100 100 /*}}}*/ 101 /*FUNCTION DoubleParam::UnitConversion{{{*/102 void DoubleParam::UnitConversion(int direction_enum){103 ::UnitConversion(&this->value,1,direction_enum,this->enum_type);104 }105 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Params/DoubleParam.h
r15012 r15128 69 69 void SetValue(FILE* fid){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a FILE");} 70 70 void SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");} 71 void UnitConversion(int direction_enum);72 71 73 72 void GetParameterName(char**pname); -
issm/trunk-jpl/src/c/classes/Params/DoubleTransientMatParam.cpp
r15012 r15128 19 19 } 20 20 /*}}}*/ 21 /*FUNCTION DoubleTransientMatParam::UnitConversion{{{*/22 void DoubleTransientMatParam::UnitConversion(int direction_enum){23 ::UnitConversion(this->value,(this->M-1)*this->N,direction_enum,this->enum_type);24 }25 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Params/DoubleTransientMatParam.h
r15012 r15128 24 24 DoubleTransientMatParam(int enum_type,IssmDouble* value,int M,int N); 25 25 /*}}}*/ 26 /*Param vritual function definitions: {{{*/27 void UnitConversion(int direction_enum);28 /*}}}*/29 26 }; 30 27 #endif /* _DOUBLETRANSIENTMATPARAM_H */ -
issm/trunk-jpl/src/c/classes/Params/DoubleVecParam.cpp
r15104 r15128 133 133 } 134 134 /*}}}*/ 135 /*FUNCTION DoubleVecParam::UnitConversion{{{*/136 void DoubleVecParam::UnitConversion(int direction_enum){137 ::UnitConversion(this->values,this->M,direction_enum,this->enum_type);138 }139 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Params/DoubleVecParam.h
r15012 r15128 69 69 void SetValue(FILE* fid){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a FILE");} 70 70 void SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");} 71 void UnitConversion(int direction_enum);72 71 73 72 void GetParameterName(char**pname); -
issm/trunk-jpl/src/c/classes/Params/FileParam.cpp
r15104 r15128 72 72 } 73 73 /*}}}*/ 74 /*FUNCTION FileParam::UnitConversion{{{*/75 void FileParam::UnitConversion(int direction_enum){76 /*do nothing, no unit conversion*/77 }78 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Params/FileParam.h
r15012 r15128 68 68 void SetValue(FILE* fid){_error_("File param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a FILE");} 69 69 void SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("File param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold an array of matrices");} 70 void UnitConversion(int direction_enum);71 70 72 71 void GetParameterName(char**pname); -
issm/trunk-jpl/src/c/classes/Params/GenericParam.h
r15104 r15128 90 90 void SetValue(FILE* fid){_error_("Param "<< EnumToStringx(myEnumVal) << " cannot hold a FILE");} 91 91 void SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Param "<< EnumToStringx(myEnumVal) << " cannot hold an array of matrices");} 92 void UnitConversion(int direction_enum) {/* nothing useful here either */};93 92 94 93 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Params/IntMatParam.cpp
r15104 r15128 114 114 } 115 115 /*}}}*/ 116 /*FUNCTION IntMatParam::UnitConversion{{{*/117 void IntMatParam::UnitConversion(int direction_enum){118 /*do nothing, no unit conversion*/119 }120 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Params/IntMatParam.h
r15012 r15128 70 70 void SetValue(FILE* fid){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a FILE");} 71 71 void SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");} 72 void UnitConversion(int direction_enum);73 72 74 73 void GetParameterName(char**pname); -
issm/trunk-jpl/src/c/classes/Params/IntParam.cpp
r15104 r15128 72 72 } 73 73 /*}}}*/ 74 /*FUNCTION IntParam::UnitConversion{{{*/75 void IntParam::UnitConversion(int direction_enum){76 /*do nothing, no unit conversion*/77 }78 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Params/IntParam.h
r15012 r15128 69 69 void SetValue(FILE* fid){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a FILE");} 70 70 void SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");} 71 void UnitConversion(int direction_enum);72 71 73 72 void GetParameterName(char**pname); -
issm/trunk-jpl/src/c/classes/Params/IntVecParam.cpp
r15104 r15128 130 130 } 131 131 /*}}}*/ 132 /*FUNCTION IntVecParam::UnitConversion{{{*/133 void IntVecParam::UnitConversion(int direction_enum){134 /*do nothing, no unit conversion*/135 }136 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Params/IntVecParam.h
r15012 r15128 70 70 void SetValue(FILE* fid){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a FILE");} 71 71 void SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");} 72 void UnitConversion(int direction_enum);73 72 74 73 void GetParameterName(char**pname); -
issm/trunk-jpl/src/c/classes/Params/MatrixParam.cpp
r15104 r15128 99 99 } 100 100 /*}}}*/ 101 /*FUNCTION MatrixParam::UnitConversion{{{*/102 void MatrixParam::UnitConversion(int direction_enum){103 /*do nothing, no unit conversion*/104 }105 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Params/MatrixParam.h
r15012 r15128 69 69 void SetValue(FILE* fid){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a FILE");} 70 70 void SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");} 71 void UnitConversion(int direction_enum);72 71 73 72 void GetParameterName(char**pname); -
issm/trunk-jpl/src/c/classes/Params/Param.h
r15067 r15128 55 55 virtual void SetValue(FILE* fid)=0; 56 56 virtual void SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array)=0; 57 virtual void UnitConversion(int direction_enum)=0;58 57 virtual void GetParameterName(char**pname)=0; 59 58 }; -
issm/trunk-jpl/src/c/classes/Params/Parameters.cpp
r15037 r15128 472 472 if(param) param->SetValue(fid); //already exists, just set it. 473 473 else this->AddObject(new FileParam(enum_type,fid)); //just add the new parameter. 474 }475 /*}}}*/476 /*FUNCTION Parameters::UnitConversion(int direction_enum);{{{*/477 void Parameters::UnitConversion(int direction_enum){478 479 vector<Object*>::iterator object;480 Param* param=NULL;481 482 for ( object=objects.begin() ; object < objects.end(); object++ ){483 param=dynamic_cast<Param*>(*object);484 param->UnitConversion(direction_enum);485 }486 487 474 } 488 475 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Params/Parameters.h
r15067 r15128 52 52 void SetParam(Matrix<IssmDouble>* mat,int enum_type); 53 53 void SetParam(FILE* fid,int enum_type); 54 void UnitConversion(int direction_enum);55 54 56 55 Object* FindParamObject(int enum_type); -
issm/trunk-jpl/src/c/classes/Params/StringArrayParam.cpp
r15104 r15128 162 162 } 163 163 /*}}}*/ 164 /*FUNCTION StringArrayParam::UnitConversion{{{*/165 void StringArrayParam::UnitConversion(int direction_enum){166 /*do nothing, no unit conversion*/167 }168 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Params/StringArrayParam.h
r15012 r15128 70 70 void SetValue(FILE* fid){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a FILE");} 71 71 void SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");} 72 void UnitConversion(int direction_enum);73 72 74 73 void GetParameterName(char**pname); -
issm/trunk-jpl/src/c/classes/Params/StringParam.cpp
r15104 r15128 103 103 } 104 104 /*}}}*/ 105 /*FUNCTION StringParam::UnitConversion{{{*/106 void StringParam::UnitConversion(int direction_enum){107 /*do nothing, no unit conversion*/108 }109 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Params/StringParam.h
r15012 r15128 69 69 void SetValue(FILE* fid){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a FILE");} 70 70 void SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");} 71 void UnitConversion(int direction_enum);72 71 73 72 void GetParameterName(char**pname); -
issm/trunk-jpl/src/c/classes/Params/TransientParam.cpp
r15104 r15128 132 132 } 133 133 /*}}}*/ 134 /*FUNCTION TransientParam::UnitConversion{{{*/135 void TransientParam::UnitConversion(int direction_enum){136 ::UnitConversion(this->values,this->N,direction_enum,this->enum_type);137 }138 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Params/TransientParam.h
r15012 r15128 70 70 void SetValue(FILE* fid){_error_("Parameter " <<EnumToStringx(enum_type) << " cannot hold a FILE");} 71 71 void SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Parameter " <<EnumToStringx(enum_type) << " cannot hold an array of matrices");} 72 void UnitConversion(int direction_enum);73 72 74 73 void GetParameterName(char**pname); -
issm/trunk-jpl/src/c/classes/Params/VectorParam.cpp
r15104 r15128 103 103 } 104 104 /*}}}*/ 105 /*FUNCTION VectorParam::UnitConversion{{{*/106 void VectorParam::UnitConversion(int direction_enum){107 /*do nothing, no unit conversion*/108 }109 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Params/VectorParam.h
r15012 r15128 69 69 void SetValue(FILE* fid){_error_("Vector of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot hold a FILE");} 70 70 void SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");} 71 void UnitConversion(int direction_enum);72 71 73 72 void GetParameterName(char**pname); -
issm/trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp
r14999 r15128 66 66 times[j]=IssmDoublevector[(M-1)*N+j]; 67 67 } 68 /*unit conversion: */69 UnitConversion(times,N,ExtToIuEnum,TimeEnum);70 68 71 69 /*Create constraints from x,y,z: */ -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
r15000 r15128 246 246 #endif 247 247 248 /*Go through all parameters, and convert units to SI: */249 parameters->UnitConversion(ExtToIuEnum);250 251 248 /*Assign output pointer: */ 252 249 *pparameters=parameters; -
issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp
r15000 r15128 88 88 timesx[j]=spcvx[(Mx-1)*Nx+j]; 89 89 } 90 /*unit conversion: */91 UnitConversion(timesx,Nx,ExtToIuEnum,TimeEnum);92 90 /*figure out times: */ 93 91 timesy=xNew<IssmDouble>(Ny); … … 95 93 timesy[j]=spcvy[(My-1)*Ny+j]; 96 94 } 97 /*unit conversion: */98 UnitConversion(timesy,Ny,ExtToIuEnum,TimeEnum);99 95 /*figure out times: */ 100 96 timesz=xNew<IssmDouble>(Nz); … … 102 98 timesz[j]=spcvz[(Mz-1)*Nz+j]; 103 99 } 104 /*unit conversion: */105 UnitConversion(timesz,Nz,ExtToIuEnum,TimeEnum);106 100 107 101 /*Create spcs from x,y,z, as well as the spc values on those spcs: */ -
issm/trunk-jpl/src/c/modules/ModelProcessorx/Enthalpy/CreateConstraintsEnthalpy.cpp
r15000 r15128 75 75 times[j]=spcvector[(M-1)*N+j]; 76 76 } 77 /*unit conversion: */78 UnitConversion(times,N,ExtToIuEnum,TimeEnum);79 77 80 78 /*Create constraints from x,y,z: */ -
issm/trunk-jpl/src/c/modules/OutputResultsx/OutputResultsx.cpp
r15000 r15128 38 38 39 39 /*We have results inside our elements, loads, etc ... Get them out of there, into the results dataset: */ 40 elements->ProcessResultsUnits();41 40 elements->ToResults(results,parameters); 42 41 elements->DeleteResults(); -
issm/trunk-jpl/src/c/shared/Numerics/CMakeLists.txt
r15082 r15128 11 11 $ENV{ISSM_DIR}/src/c/shared/Numerics/isnan.cpp 12 12 $ENV{ISSM_DIR}/src/c/shared/Numerics/OptionsFromAnalysis.cpp 13 $ENV{ISSM_DIR}/src/c/shared/Numerics/UnitConversion.cpp14 13 $ENV{ISSM_DIR}/src/c/shared/Numerics/Verbosity.cpp 15 14 $ENV{ISSM_DIR}/src/c/shared/Numerics/XZvectorsToCoordinateSystem.cpp PARENT_SCOPE) -
issm/trunk-jpl/src/c/shared/Numerics/numerics.h
r14998 r15128 35 35 void OptimalSearch(IssmDouble *psearch_scalar,IssmDouble*pJ,OptPars*optpars,IssmDouble (*f)(IssmDouble,OptArgs*), OptArgs*optargs); 36 36 void cross(IssmDouble *result,IssmDouble*vector1,IssmDouble*vector2); 37 void UnitConversion(IssmDouble *values, int numvalues,int direction_enum, int type_enum);38 IssmDouble UnitConversion(IssmDouble value, int direction_enum, int type_enum);39 37 void XZvectorsToCoordinateSystem(IssmDouble *T,IssmDouble*xzvectors); 40 38 int cubic(IssmDouble a, IssmDouble b, IssmDouble c, IssmDouble d, double X[3], int *num); -
issm/trunk-jpl/src/m/classes/basalforcings.m
r14640 r15128 44 44 end % }}} 45 45 function marshall(obj,fid) % {{{ 46 WriteData(fid,'object',obj,'fieldname','melting_rate','format','DoubleMat','mattype',1); 47 WriteData(fid,'object',obj,'fieldname','melting_rate_correction','format','DoubleMat','mattype',1); 46 47 yts=365.0*24.0*3600.0; 48 49 WriteData(fid,'object',obj,'fieldname','melting_rate','format','DoubleMat','mattype',1,'scale',1./yts); 50 WriteData(fid,'object',obj,'fieldname','melting_rate_correction','format','DoubleMat','mattype',1,'scale',1./yts); 48 51 WriteData(fid,'object',obj,'fieldname','geothermalflux','format','DoubleMat','mattype',1); 49 52 end % }}} -
issm/trunk-jpl/src/m/classes/basalforcings.py
r14640 r15128 47 47 # }}} 48 48 def marshall(self,fid): # {{{ 49 WriteData(fid,'object',self,'fieldname','melting_rate','format','DoubleMat','mattype',1) 50 WriteData(fid,'object',self,'fieldname','melting_rate_correction','format','DoubleMat','mattype',1) 49 50 yts=365.0*24.0*3600.0 51 52 WriteData(fid,'object',self,'fieldname','melting_rate','format','DoubleMat','mattype',1,'scale',1./yts) 53 WriteData(fid,'object',self,'fieldname','melting_rate_correction','format','DoubleMat','mattype',1,'scale',1./yts) 51 54 WriteData(fid,'object',self,'fieldname','geothermalflux','format','DoubleMat','mattype',1) 52 55 # }}} -
issm/trunk-jpl/src/m/classes/initialization.m
r14771 r15128 91 91 end % }}} 92 92 function marshall(obj,fid) % {{{ 93 WriteData(fid,'data',obj.vx,'format','DoubleMat','mattype',1,'enum',VxEnum); 94 WriteData(fid,'data',obj.vy,'format','DoubleMat','mattype',1,'enum',VyEnum); 95 WriteData(fid,'data',obj.vz,'format','DoubleMat','mattype',1,'enum',VzEnum); 93 94 yts=365.0*24.0*3600.0; 95 96 WriteData(fid,'data',obj.vx,'format','DoubleMat','mattype',1,'enum',VxEnum,'scale',1./yts); 97 WriteData(fid,'data',obj.vy,'format','DoubleMat','mattype',1,'enum',VyEnum,'scale',1./yts); 98 WriteData(fid,'data',obj.vz,'format','DoubleMat','mattype',1,'enum',VzEnum,'scale',1./yts); 96 99 WriteData(fid,'data',obj.pressure,'format','DoubleMat','mattype',1,'enum',PressureEnum); 97 100 WriteData(fid,'data',obj.temperature,'format','DoubleMat','mattype',1,'enum',TemperatureEnum); -
issm/trunk-jpl/src/m/classes/initialization.py
r14771 r15128 74 74 # }}} 75 75 def marshall(self,fid): # {{{ 76 WriteData(fid,'data',self.vx,'format','DoubleMat','mattype',1,'enum',VxEnum()) 77 WriteData(fid,'data',self.vy,'format','DoubleMat','mattype',1,'enum',VyEnum()) 78 WriteData(fid,'data',self.vz,'format','DoubleMat','mattype',1,'enum',VzEnum()) 76 77 yts=365.0*24.0*3600.0 78 79 WriteData(fid,'data',self.vx,'format','DoubleMat','mattype',1,'enum',VxEnum(),'scale',1./yts) 80 WriteData(fid,'data',self.vy,'format','DoubleMat','mattype',1,'enum',VyEnum(),'scale',1./yts) 81 WriteData(fid,'data',self.vz,'format','DoubleMat','mattype',1,'enum',VzEnum(),'scale',1./yts) 79 82 WriteData(fid,'data',self.pressure,'format','DoubleMat','mattype',1,'enum',PressureEnum()) 80 83 WriteData(fid,'data',self.temperature,'format','DoubleMat','mattype',1,'enum',TemperatureEnum()) -
issm/trunk-jpl/src/m/classes/surfaceforcings.m
r14764 r15128 101 101 end % }}} 102 102 function marshall(obj,fid) % {{{ 103 WriteData(fid,'object',obj,'fieldname','precipitation','format','DoubleMat','mattype',1); 104 WriteData(fid,'object',obj,'fieldname','mass_balance','format','DoubleMat','mattype',1); 103 104 yts=365.0*24.0*3600.0; 105 106 WriteData(fid,'object',obj,'fieldname','precipitation','format','DoubleMat','mattype',1,'scale',1./yts); 107 WriteData(fid,'object',obj,'fieldname','mass_balance','format','DoubleMat','mattype',1,'scale',1./yts); 105 108 WriteData(fid,'object',obj,'fieldname','ispdd','format','Boolean'); 106 109 WriteData(fid,'object',obj,'fieldname','isdelta18o','format','Boolean'); … … 122 125 if obj.issmbgradients, 123 126 WriteData(fid,'object',obj,'fieldname','href','format','DoubleMat','mattype',1); 124 WriteData(fid,'object',obj,'fieldname','smbref','format','DoubleMat','mattype',1 );125 WriteData(fid,'object',obj,'fieldname','b_pos','format','DoubleMat','mattype',1 );126 WriteData(fid,'object',obj,'fieldname','b_neg','format','DoubleMat','mattype',1 );127 WriteData(fid,'object',obj,'fieldname','smbref','format','DoubleMat','mattype',1,'scale',1./yts); 128 WriteData(fid,'object',obj,'fieldname','b_pos','format','DoubleMat','mattype',1,'scale',1./yts); 129 WriteData(fid,'object',obj,'fieldname','b_neg','format','DoubleMat','mattype',1,'scale',1./yts); 127 130 end 128 131 -
issm/trunk-jpl/src/m/classes/surfaceforcings.py
r14764 r15128 101 101 # }}} 102 102 def marshall(self,fid): # {{{ 103 WriteData(fid,'object',self,'fieldname','precipitation','format','DoubleMat','mattype',1) 104 WriteData(fid,'object',self,'fieldname','mass_balance','format','DoubleMat','mattype',1) 103 104 yts=365.0*24.0*3600.0 105 106 WriteData(fid,'object',self,'fieldname','precipitation','format','DoubleMat','mattype',1,'scale',1./yts) 107 WriteData(fid,'object',self,'fieldname','mass_balance','format','DoubleMat','mattype',1,'scale',1./yts) 105 108 WriteData(fid,'object',self,'fieldname','ispdd','format','Boolean') 106 109 WriteData(fid,'object',self,'fieldname','isdelta18o','format','Boolean') … … 123 126 if self.issmbgradients: 124 127 WriteData(fid,'object',self,'fieldname','href','format','DoubleMat','mattype',1) 125 WriteData(fid,'object',self,'fieldname','smbref','format','DoubleMat','mattype',1 )126 WriteData(fid,'object',self,'fieldname','b_pos','format','DoubleMat','mattype',1 )127 WriteData(fid,'object',self,'fieldname','b_neg','format','DoubleMat','mattype',1 )128 WriteData(fid,'object',self,'fieldname','smbref','format','DoubleMat','mattype',1,'scale',1./yts) 129 WriteData(fid,'object',self,'fieldname','b_pos','format','DoubleMat','mattype',1,'scale',1./yts) 130 WriteData(fid,'object',self,'fieldname','b_neg','format','DoubleMat','mattype',1,'scale',1./yts) 128 131 # }}} -
issm/trunk-jpl/src/m/solve/parseresultsfromdisk.m
r15127 r15128 177 177 if strcmp(fieldname,'BalancethicknessThickeningRate'), 178 178 field = field*yts; 179 elseif strcmp(fieldname,'Time'), 180 field = field/yts; 181 elseif strcmp(fieldname,'HydrologyWaterVx'), 182 field = field*yts; 183 elseif strcmp(fieldname,'HydrologyWaterVy'), 184 field = field*yts; 185 elseif strcmp(fieldname,'Vx'), 186 field = field*yts; 187 elseif strcmp(fieldname,'Vy'), 188 field = field*yts; 189 elseif strcmp(fieldname,'Vz'), 190 field = field*yts; 191 elseif strcmp(fieldname,'Vel'), 192 field = field*yts; 193 elseif strcmp(fieldname,'BasalforcingsMeltingRate'), 194 field = field*yts; 195 elseif strcmp(fieldname,'TotalSmb'), 196 field = field*10.^12/yts; %(GigaTon/year) 197 elseif strcmp(fieldname,'SurfaceforcingsMassBalance'), 198 field = field*yts; 179 199 end 180 200 -
issm/trunk-jpl/src/m/solve/parseresultsfromdisk.py
r15127 r15128 191 191 if strcmp(fieldname,'BalancethicknessThickeningRate'): 192 192 field = field*yts 193 elif strcmp(fieldname,'Time'): 194 field = field/yts 195 elif strcmp(fieldname,'HydrologyWaterVx'): 196 field = field*yts 197 elif strcmp(fieldname,'HydrologyWaterVy'): 198 field = field*yts 199 elif strcmp(fieldname,'Vx'): 200 field = field*yts 201 elif strcmp(fieldname,'Vy'): 202 field = field*yts 203 elif strcmp(fieldname,'Vz'): 204 field = field*yts 205 elif strcmp(fieldname,'Vel'): 206 field = field*yts 207 elif strcmp(fieldname,'BasalforcingsMeltingRate'): 208 field = field*yts 209 elif strcmp(fieldname,'TotalSmb'): 210 field = field*10.**12./yts #(GigaTon/year) 211 elif strcmp(fieldname,'SurfaceforcingsMassBalance'): 212 field = field*yts 193 213 194 214 result=OrderedDict()
Note:
See TracChangeset
for help on using the changeset viewer.