Changeset 24479


Ignore:
Timestamp:
12/18/19 11:11:43 (5 years ago)
Author:
Mathieu Morlighem
Message:

CHG: making overturning C in PICO spatially variable

Location:
issm/trunk-jpl/src
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/analyses/FreeSurfaceBaseAnalysis.cpp

    r24335 r24479  
    107107                case BasalforcingsPicoEnum:
    108108                        iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.basin_id",BasalforcingsPicoBasinIdEnum);
     109                        iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.overturning_coeff",BasalforcingsPicoOverturningCoeffEnum);
    109110                        break;
    110111                case BasalforcingsIsmip6Enum:
  • issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp

    r24433 r24479  
    180180                case BasalforcingsPicoEnum:
    181181                        iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.basin_id",BasalforcingsPicoBasinIdEnum);
     182                        iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.overturning_coeff",BasalforcingsPicoOverturningCoeffEnum);
    182183                        break;
    183184                case BasalforcingsIsmip6Enum:{
  • issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp

    r24459 r24479  
    799799                        case BasalforcingsPicoEnum:
    800800                                iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.basin_id",BasalforcingsPicoBasinIdEnum);
     801                                iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.overturning_coeff",BasalforcingsPicoOverturningCoeffEnum);
    801802                                break;
    802803                        case BasalforcingsIsmip6Enum:
  • issm/trunk-jpl/src/c/classes/Elements/Element.cpp

    r24464 r24479  
    25742574        this->parameters->FindParam(&num_basins, BasalforcingsPicoNumBasinsEnum);
    25752575        this->parameters->FindParam(&gamma_T,BasalforcingsPicoGammaTEnum);
    2576         this->parameters->FindParam(&overturning_coeff,BasalforcingsPicoOverturningCoeffEnum);
    25772576        this->parameters->FindParam(&maxbox,BasalforcingsPicoMaxboxcountEnum);
    25782577        this->GetInputValue(&basinid,BasalforcingsPicoBasinIdEnum);
    25792578        this->parameters->FindParam(&isplume, BasalforcingsPicoIsplumeEnum);
    2580         Input2* thickness_input=this->GetInput2(ThicknessEnum); _assert_(thickness_input);
     2579        Input2 *thickness_input    = this->GetInput2(ThicknessEnum);                        _assert_(thickness_input);
    25812580        _assert_(basinid<=num_basins);
    25822581
     
    26022601                IssmDouble      s1                              = soc_farocean/(nu*lambda);
    26032602                IssmDouble* overturnings        = xNew<IssmDouble>(NUM_VERTICES);
     2603                Input2 *overturningC_input = this->GetInput2(BasalforcingsPicoOverturningCoeffEnum); _assert_(overturningC_input);
    26042604
    26052605                /* Start looping on the number of verticies and calculate ocean vars */
     
    26082608                        gauss->GaussVertex(i);
    26092609                        thickness_input->GetInputValue(&thickness,gauss);
     2610                        overturningC_input->GetInputValue(&overturning_coeff,gauss);
    26102611                        pressure = (rhoi*earth_grav*1e-4)*thickness;
    26112612                        T_star   = a*soc_farocean+b-c*pressure-toc_farocean;
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp

    r24469 r24479  
    224224                        parameters->AddObject(iomodel->CopyConstantObject("md.basalforcings.num_basins",BasalforcingsPicoNumBasinsEnum));
    225225                        parameters->AddObject(iomodel->CopyConstantObject("md.basalforcings.maxboxcount",BasalforcingsPicoMaxboxcountEnum));
    226                         parameters->AddObject(iomodel->CopyConstantObject("md.basalforcings.overturning_coeff",BasalforcingsPicoOverturningCoeffEnum));
    227226                        parameters->AddObject(iomodel->CopyConstantObject("md.basalforcings.gamma_T",BasalforcingsPicoGammaTEnum));
    228227                        parameters->AddObject(iomodel->CopyConstantObject("md.basalforcings.isplume",BasalforcingsPicoIsplumeEnum));
  • issm/trunk-jpl/src/c/shared/Enum/Enum.vim

    r24469 r24479  
    9090syn keyword cConstant BasalforcingsPicoMaxboxcountEnum
    9191syn keyword cConstant BasalforcingsPicoNumBasinsEnum
    92 syn keyword cConstant BasalforcingsPicoOverturningCoeffEnum
    9392syn keyword cConstant BasalforcingsPlumeradiusEnum
    9493syn keyword cConstant BasalforcingsPlumexEnum
     
    470469syn keyword cConstant BasalforcingsPicoBasinIdEnum
    471470syn keyword cConstant BasalforcingsPicoBoxIdEnum
     471syn keyword cConstant BasalforcingsPicoOverturningCoeffEnum
    472472syn keyword cConstant BasalforcingsPicoSubShelfOceanOverturningEnum
    473473syn keyword cConstant BasalforcingsPicoSubShelfOceanSalinityEnum
     
    13291329syn keyword cType Cfsurfacesquare
    13301330syn keyword cType Channel
     1331syn keyword cType classes
    13311332syn keyword cType Constraint
    13321333syn keyword cType Constraints
     
    13351336syn keyword cType ControlInput2
    13361337syn keyword cType Covertree
     1338syn keyword cType DatasetInput2
    13371339syn keyword cType DataSetParam
    1338 syn keyword cType DatasetInput2
    13391340syn keyword cType Definition
    13401341syn keyword cType DependentObject
     
    13481349syn keyword cType ElementInput2
    13491350syn keyword cType ElementMatrix
     1351syn keyword cType Elements
    13501352syn keyword cType ElementVector
    1351 syn keyword cType Elements
    13521353syn keyword cType ExponentialVariogram
    13531354syn keyword cType ExternalResult
     
    13561357syn keyword cType Friction
    13571358syn keyword cType Gauss
     1359syn keyword cType GaussianVariogram
     1360syn keyword cType gaussobjects
    13581361syn keyword cType GaussPenta
    13591362syn keyword cType GaussSeg
    13601363syn keyword cType GaussTetra
    13611364syn keyword cType GaussTria
    1362 syn keyword cType GaussianVariogram
    13631365syn keyword cType GenericExternalResult
    13641366syn keyword cType GenericOption
     
    13751377syn keyword cType IssmDirectApplicInterface
    13761378syn keyword cType IssmParallelDirectApplicInterface
     1379syn keyword cType krigingobjects
    13771380syn keyword cType Load
    13781381syn keyword cType Loads
     
    13851388syn keyword cType Matice
    13861389syn keyword cType Matlitho
     1390syn keyword cType matrixobjects
    13871391syn keyword cType MatrixParam
    13881392syn keyword cType Misfit
     
    13971401syn keyword cType Observations
    13981402syn keyword cType Option
     1403syn keyword cType Options
    13991404syn keyword cType OptionUtilities
    1400 syn keyword cType Options
    14011405syn keyword cType Param
    14021406syn keyword cType Parameters
     
    14121416syn keyword cType Regionaloutput
    14131417syn keyword cType Results
     1418syn keyword cType Riftfront
    14141419syn keyword cType RiftStruct
    1415 syn keyword cType Riftfront
    14161420syn keyword cType Seg
    14171421syn keyword cType SegInput2
     1422syn keyword cType Segment
    14181423syn keyword cType SegRef
    1419 syn keyword cType Segment
    14201424syn keyword cType SpcDynamic
    14211425syn keyword cType SpcStatic
     
    14361440syn keyword cType Vertex
    14371441syn keyword cType Vertices
    1438 syn keyword cType classes
    1439 syn keyword cType gaussobjects
    1440 syn keyword cType krigingobjects
    1441 syn keyword cType matrixobjects
    14421442syn keyword cType AdjointBalancethickness2Analysis
    14431443syn keyword cType AdjointBalancethicknessAnalysis
     
    14581458syn keyword cType FreeSurfaceBaseAnalysis
    14591459syn keyword cType FreeSurfaceTopAnalysis
     1460syn keyword cType GiaIvinsAnalysis
    14601461syn keyword cType GLheightadvectionAnalysis
    1461 syn keyword cType GiaIvinsAnalysis
    14621462syn keyword cType HydrologyDCEfficientAnalysis
    14631463syn keyword cType HydrologyDCInefficientAnalysis
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r24469 r24479  
    8484        BasalforcingsPicoMaxboxcountEnum,
    8585        BasalforcingsPicoNumBasinsEnum,
    86         BasalforcingsPicoOverturningCoeffEnum,
    8786        BasalforcingsPlumeradiusEnum,
    8887        BasalforcingsPlumexEnum,
     
    466465        BasalforcingsPicoBasinIdEnum,
    467466        BasalforcingsPicoBoxIdEnum,
     467        BasalforcingsPicoOverturningCoeffEnum,
    468468        BasalforcingsPicoSubShelfOceanOverturningEnum,
    469469        BasalforcingsPicoSubShelfOceanSalinityEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r24469 r24479  
    9292                case BasalforcingsPicoMaxboxcountEnum : return "BasalforcingsPicoMaxboxcount";
    9393                case BasalforcingsPicoNumBasinsEnum : return "BasalforcingsPicoNumBasins";
    94                 case BasalforcingsPicoOverturningCoeffEnum : return "BasalforcingsPicoOverturningCoeff";
    9594                case BasalforcingsPlumeradiusEnum : return "BasalforcingsPlumeradius";
    9695                case BasalforcingsPlumexEnum : return "BasalforcingsPlumex";
     
    472471                case BasalforcingsPicoBasinIdEnum : return "BasalforcingsPicoBasinId";
    473472                case BasalforcingsPicoBoxIdEnum : return "BasalforcingsPicoBoxId";
     473                case BasalforcingsPicoOverturningCoeffEnum : return "BasalforcingsPicoOverturningCoeff";
    474474                case BasalforcingsPicoSubShelfOceanOverturningEnum : return "BasalforcingsPicoSubShelfOceanOverturning";
    475475                case BasalforcingsPicoSubShelfOceanSalinityEnum : return "BasalforcingsPicoSubShelfOceanSalinity";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r24469 r24479  
    9292              else if (strcmp(name,"BasalforcingsPicoMaxboxcount")==0) return BasalforcingsPicoMaxboxcountEnum;
    9393              else if (strcmp(name,"BasalforcingsPicoNumBasins")==0) return BasalforcingsPicoNumBasinsEnum;
    94               else if (strcmp(name,"BasalforcingsPicoOverturningCoeff")==0) return BasalforcingsPicoOverturningCoeffEnum;
    9594              else if (strcmp(name,"BasalforcingsPlumeradius")==0) return BasalforcingsPlumeradiusEnum;
    9695              else if (strcmp(name,"BasalforcingsPlumex")==0) return BasalforcingsPlumexEnum;
     
    137136              else if (strcmp(name,"EplZigZagCounter")==0) return EplZigZagCounterEnum;
    138137              else if (strcmp(name,"EsaHElastic")==0) return EsaHElasticEnum;
     138              else if (strcmp(name,"EsaHemisphere")==0) return EsaHemisphereEnum;
    139139         else stage=2;
    140140   }
    141141   if(stage==2){
    142               if (strcmp(name,"EsaHemisphere")==0) return EsaHemisphereEnum;
    143               else if (strcmp(name,"EsaRequestedOutputs")==0) return EsaRequestedOutputsEnum;
     142              if (strcmp(name,"EsaRequestedOutputs")==0) return EsaRequestedOutputsEnum;
    144143              else if (strcmp(name,"EsaUElastic")==0) return EsaUElasticEnum;
    145144              else if (strcmp(name,"ExtrapolationVariable")==0) return ExtrapolationVariableEnum;
     
    260259              else if (strcmp(name,"MaterialsLithosphereDensity")==0) return MaterialsLithosphereDensityEnum;
    261260              else if (strcmp(name,"MaterialsLithosphereShearModulus")==0) return MaterialsLithosphereShearModulusEnum;
     261              else if (strcmp(name,"MaterialsMantleDensity")==0) return MaterialsMantleDensityEnum;
    262262         else stage=3;
    263263   }
    264264   if(stage==3){
    265               if (strcmp(name,"MaterialsMantleDensity")==0) return MaterialsMantleDensityEnum;
    266               else if (strcmp(name,"MaterialsMantleShearModulus")==0) return MaterialsMantleShearModulusEnum;
     265              if (strcmp(name,"MaterialsMantleShearModulus")==0) return MaterialsMantleShearModulusEnum;
    267266              else if (strcmp(name,"MaterialsMeltingpoint")==0) return MaterialsMeltingpointEnum;
    268267              else if (strcmp(name,"MaterialsMixedLayerCapacity")==0) return MaterialsMixedLayerCapacityEnum;
     
    383382              else if (strcmp(name,"SmbRunoffgrad")==0) return SmbRunoffgradEnum;
    384383              else if (strcmp(name,"SmbRunoffref")==0) return SmbRunoffrefEnum;
     384              else if (strcmp(name,"SmbSealev")==0) return SmbSealevEnum;
    385385         else stage=4;
    386386   }
    387387   if(stage==4){
    388               if (strcmp(name,"SmbSealev")==0) return SmbSealevEnum;
    389               else if (strcmp(name,"SmbStepsPerStep")==0) return SmbStepsPerStepEnum;
     388              if (strcmp(name,"SmbStepsPerStep")==0) return SmbStepsPerStepEnum;
    390389              else if (strcmp(name,"SmbSwIdx")==0) return SmbSwIdxEnum;
    391390              else if (strcmp(name,"SmbT0dry")==0) return SmbT0dryEnum;
     
    481480              else if (strcmp(name,"BasalforcingsPicoBasinId")==0) return BasalforcingsPicoBasinIdEnum;
    482481              else if (strcmp(name,"BasalforcingsPicoBoxId")==0) return BasalforcingsPicoBoxIdEnum;
     482              else if (strcmp(name,"BasalforcingsPicoOverturningCoeff")==0) return BasalforcingsPicoOverturningCoeffEnum;
    483483              else if (strcmp(name,"BasalforcingsPicoSubShelfOceanOverturning")==0) return BasalforcingsPicoSubShelfOceanOverturningEnum;
    484484              else if (strcmp(name,"BasalforcingsPicoSubShelfOceanSalinity")==0) return BasalforcingsPicoSubShelfOceanSalinityEnum;
  • issm/trunk-jpl/src/m/classes/basalforcingspico.m

    r24010 r24479  
    99                basin_id                  = NaN;
    1010                maxboxcount               = 0;
    11                 overturning_coeff         = 0.;
     11                overturning_coeff         = NaN;
    1212                gamma_T                   = 0.;
    1313                farocean_temperature      = NaN;
     
    4040                   end
    4141                        if isnan(self.overturning_coeff)
    42                                 self.overturning_coeff = 1e6; %m^3/s
     42                                self.overturning_coeff = 1e6*ones(md.mesh.numberofvertices,1); %m^3/s
    4343                                disp('      no overturning strength set, setting value to 1e6');
    4444                        end
     
    6666                                md = checkfield(md,'fieldname','basalforcings.basin_id','Inf',1,'>=',0,'<=',md.basalforcings.num_basins,'size',[md.mesh.numberofelements 1]);
    6767                                md = checkfield(md,'fieldname','basalforcings.maxboxcount','numel',1,'NaN',1,'Inf',1,'>',0);
    68                                 md = checkfield(md,'fieldname','basalforcings.overturning_coeff','numel',1,'NaN',1,'Inf',1,'>',0);
     68                                if numel(self.overturning_coeff)==1
     69                                        md = checkfield(md,'fieldname','basalforcings.overturning_coeff','numel',1,'NaN',1,'Inf',1,'>',0);
     70                                else
     71                                        md = checkfield(md,'fieldname','basalforcings.overturning_coeff','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1,'>',0);
     72                                end
    6973                                md = checkfield(md,'fieldname','basalforcings.gamma_T','numel',1,'NaN',1,'Inf',1,'>',0);
    7074                                md = checkfield(md,'fieldname','basalforcings.farocean_temperature','NaN',1,'Inf',1,'size',[md.basalforcings.num_basins+1 NaN]);
     
    96100                        WriteData(fid,prefix,'object',self,'fieldname','num_basins','format','Integer');
    97101                        WriteData(fid,prefix,'object',self,'fieldname','maxboxcount','format','Integer');
    98                         WriteData(fid,prefix,'object',self,'fieldname','overturning_coeff','format','Double');
     102                        WriteData(fid,prefix,'object',self,'fieldname','overturning_coeff','format','DoubleMat','mattype',1);
    99103                        WriteData(fid,prefix,'object',self,'fieldname','gamma_T','format','Double');
    100104                        WriteData(fid,prefix,'object',self,'fieldname','farocean_temperature','format','DoubleMat','name','md.basalforcings.farocean_temperature','timeserieslength',md.basalforcings.num_basins+1,'yts',md.constants.yts);
Note: See TracChangeset for help on using the changeset viewer.