Changeset 23795


Ignore:
Timestamp:
03/13/19 12:45:31 (6 years ago)
Author:
tpelle
Message:

NEW: Initial ISMIP6 melt rate parameterization implimentation

Location:
issm/trunk-jpl
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/m4/analyses.m4

    r23108 r23795  
    1111
    1212dnl with-AdjointBalancethickness2{{{
    13 
    1413AC_ARG_WITH([AdjointBalancethickness2],
    15 
    1614        AS_HELP_STRING([--with-AdjointBalancethickness2 = YES], [compile with AdjointBalancethickness2 capabilities (default is yes)]),
    17 
    1815        [ADJOINTBALANCETHICKNESS2=$withval],[ADJOINTBALANCETHICKNESS2=yes])
    19 
    2016AC_MSG_CHECKING(for AdjointBalancethickness2 capability compilation)
    2117
    22 
    2318HAVE_ADJOINTBALANCETHICKNESS2=no
    24 
    2519if test "x$ADJOINTBALANCETHICKNESS2" = "xyes"; then
    26 
    2720        HAVE_ADJOINTBALANCETHICKNESS2=yes
    28 
    2921        AC_DEFINE([_HAVE_ADJOINTBALANCETHICKNESS2_],[1],[with AdjointBalancethickness2 capability])
    30 
    31 fi
    32 
     22fi
    3323AM_CONDITIONAL([ADJOINTBALANCETHICKNESS2], [test x$HAVE_ADJOINTBALANCETHICKNESS2 = xyes])
    34 
    3524AC_MSG_RESULT($HAVE_ADJOINTBALANCETHICKNESS2)
    36 
    3725dnl }}}
    3826dnl with-AdjointBalancethickness{{{
    39 
    4027AC_ARG_WITH([AdjointBalancethickness],
    41 
    4228        AS_HELP_STRING([--with-AdjointBalancethickness = YES], [compile with AdjointBalancethickness capabilities (default is yes)]),
    43 
    4429        [ADJOINTBALANCETHICKNESS=$withval],[ADJOINTBALANCETHICKNESS=yes])
    45 
    4630AC_MSG_CHECKING(for AdjointBalancethickness capability compilation)
    4731
    48 
    4932HAVE_ADJOINTBALANCETHICKNESS=no
    50 
    5133if test "x$ADJOINTBALANCETHICKNESS" = "xyes"; then
    52 
    5334        HAVE_ADJOINTBALANCETHICKNESS=yes
    54 
    5535        AC_DEFINE([_HAVE_ADJOINTBALANCETHICKNESS_],[1],[with AdjointBalancethickness capability])
    56 
    57 fi
    58 
     36fi
    5937AM_CONDITIONAL([ADJOINTBALANCETHICKNESS], [test x$HAVE_ADJOINTBALANCETHICKNESS = xyes])
    60 
    6138AC_MSG_RESULT($HAVE_ADJOINTBALANCETHICKNESS)
    62 
    6339dnl }}}
    6440dnl with-AdjointHoriz{{{
    65 
    6641AC_ARG_WITH([AdjointHoriz],
    67 
    6842        AS_HELP_STRING([--with-AdjointHoriz = YES], [compile with AdjointHoriz capabilities (default is yes)]),
    69 
    7043        [ADJOINTHORIZ=$withval],[ADJOINTHORIZ=yes])
    71 
    7244AC_MSG_CHECKING(for AdjointHoriz capability compilation)
    7345
    74 
    7546HAVE_ADJOINTHORIZ=no
    76 
    7747if test "x$ADJOINTHORIZ" = "xyes"; then
    78 
    7948        HAVE_ADJOINTHORIZ=yes
    80 
    8149        AC_DEFINE([_HAVE_ADJOINTHORIZ_],[1],[with AdjointHoriz capability])
    82 
    83 fi
    84 
     50fi
    8551AM_CONDITIONAL([ADJOINTHORIZ], [test x$HAVE_ADJOINTHORIZ = xyes])
    86 
    8752AC_MSG_RESULT($HAVE_ADJOINTHORIZ)
    88 
    8953dnl }}}
    9054dnl with-Balancethickness2{{{
    91 
    9255AC_ARG_WITH([Balancethickness2],
    93 
    9456        AS_HELP_STRING([--with-Balancethickness2 = YES], [compile with Balancethickness2 capabilities (default is yes)]),
    95 
    9657        [BALANCETHICKNESS2=$withval],[BALANCETHICKNESS2=yes])
    97 
    9858AC_MSG_CHECKING(for Balancethickness2 capability compilation)
    9959
    100 
    10160HAVE_BALANCETHICKNESS2=no
    102 
    10361if test "x$BALANCETHICKNESS2" = "xyes"; then
    104 
    10562        HAVE_BALANCETHICKNESS2=yes
    106 
    10763        AC_DEFINE([_HAVE_BALANCETHICKNESS2_],[1],[with Balancethickness2 capability])
    108 
    109 fi
    110 
     64fi
    11165AM_CONDITIONAL([BALANCETHICKNESS2], [test x$HAVE_BALANCETHICKNESS2 = xyes])
    112 
    11366AC_MSG_RESULT($HAVE_BALANCETHICKNESS2)
    114 
    11567dnl }}}
    11668dnl with-Balancethickness{{{
    117 
    11869AC_ARG_WITH([Balancethickness],
    119 
    12070        AS_HELP_STRING([--with-Balancethickness = YES], [compile with Balancethickness capabilities (default is yes)]),
    121 
    12271        [BALANCETHICKNESS=$withval],[BALANCETHICKNESS=yes])
    123 
    12472AC_MSG_CHECKING(for Balancethickness capability compilation)
    12573
    126 
    12774HAVE_BALANCETHICKNESS=no
    128 
    12975if test "x$BALANCETHICKNESS" = "xyes"; then
    130 
    13176        HAVE_BALANCETHICKNESS=yes
    132 
    13377        AC_DEFINE([_HAVE_BALANCETHICKNESS_],[1],[with Balancethickness capability])
    134 
    135 fi
    136 
     78fi
    13779AM_CONDITIONAL([BALANCETHICKNESS], [test x$HAVE_BALANCETHICKNESS = xyes])
    138 
    13980AC_MSG_RESULT($HAVE_BALANCETHICKNESS)
    140 
    14181dnl }}}
    14282dnl with-BalancethicknessSoft{{{
    143 
    14483AC_ARG_WITH([BalancethicknessSoft],
    145 
    14684        AS_HELP_STRING([--with-BalancethicknessSoft = YES], [compile with BalancethicknessSoft capabilities (default is yes)]),
    147 
    14885        [BALANCETHICKNESSSOFT=$withval],[BALANCETHICKNESSSOFT=yes])
    149 
    15086AC_MSG_CHECKING(for BalancethicknessSoft capability compilation)
    15187
    152 
    15388HAVE_BALANCETHICKNESSSOFT=no
    154 
    15589if test "x$BALANCETHICKNESSSOFT" = "xyes"; then
    156 
    15790        HAVE_BALANCETHICKNESSSOFT=yes
    158 
    15991        AC_DEFINE([_HAVE_BALANCETHICKNESSSOFT_],[1],[with BalancethicknessSoft capability])
    160 
    161 fi
    162 
     92fi
    16393AM_CONDITIONAL([BALANCETHICKNESSSOFT], [test x$HAVE_BALANCETHICKNESSSOFT = xyes])
    164 
    16594AC_MSG_RESULT($HAVE_BALANCETHICKNESSSOFT)
    166 
    16795dnl }}}
    16896dnl with-Balancevelocity{{{
    169 
    17097AC_ARG_WITH([Balancevelocity],
    171 
    17298        AS_HELP_STRING([--with-Balancevelocity = YES], [compile with Balancevelocity capabilities (default is yes)]),
    173 
    17499        [BALANCEVELOCITY=$withval],[BALANCEVELOCITY=yes])
    175 
    176100AC_MSG_CHECKING(for Balancevelocity capability compilation)
    177101
    178 
    179102HAVE_BALANCEVELOCITY=no
    180 
    181103if test "x$BALANCEVELOCITY" = "xyes"; then
    182 
    183104        HAVE_BALANCEVELOCITY=yes
    184 
    185105        AC_DEFINE([_HAVE_BALANCEVELOCITY_],[1],[with Balancevelocity capability])
    186 
    187 fi
    188 
     106fi
    189107AM_CONDITIONAL([BALANCEVELOCITY], [test x$HAVE_BALANCEVELOCITY = xyes])
    190 
    191108AC_MSG_RESULT($HAVE_BALANCEVELOCITY)
    192 
    193109dnl }}}
    194110dnl with-DamageEvolution{{{
    195 
    196111AC_ARG_WITH([DamageEvolution],
    197 
    198112        AS_HELP_STRING([--with-DamageEvolution = YES], [compile with DamageEvolution capabilities (default is yes)]),
    199 
    200113        [DAMAGEEVOLUTION=$withval],[DAMAGEEVOLUTION=yes])
    201 
    202114AC_MSG_CHECKING(for DamageEvolution capability compilation)
    203115
    204 
    205116HAVE_DAMAGEEVOLUTION=no
    206 
    207117if test "x$DAMAGEEVOLUTION" = "xyes"; then
    208 
    209118        HAVE_DAMAGEEVOLUTION=yes
    210 
    211119        AC_DEFINE([_HAVE_DAMAGEEVOLUTION_],[1],[with DamageEvolution capability])
    212 
    213 fi
    214 
     120fi
    215121AM_CONDITIONAL([DAMAGEEVOLUTION], [test x$HAVE_DAMAGEEVOLUTION = xyes])
    216 
    217122AC_MSG_RESULT($HAVE_DAMAGEEVOLUTION)
    218 
    219123dnl }}}
    220124dnl with-DepthAverage{{{
    221 
    222125AC_ARG_WITH([DepthAverage],
    223 
    224126        AS_HELP_STRING([--with-DepthAverage = YES], [compile with DepthAverage capabilities (default is yes)]),
    225 
    226127        [DEPTHAVERAGE=$withval],[DEPTHAVERAGE=yes])
    227 
    228128AC_MSG_CHECKING(for DepthAverage capability compilation)
    229129
    230 
    231130HAVE_DEPTHAVERAGE=no
    232 
    233131if test "x$DEPTHAVERAGE" = "xyes"; then
    234 
    235132        HAVE_DEPTHAVERAGE=yes
    236 
    237133        AC_DEFINE([_HAVE_DEPTHAVERAGE_],[1],[with DepthAverage capability])
    238 
    239 fi
    240 
     134fi
    241135AM_CONDITIONAL([DEPTHAVERAGE], [test x$HAVE_DEPTHAVERAGE = xyes])
    242 
    243136AC_MSG_RESULT($HAVE_DEPTHAVERAGE)
    244 
    245137dnl }}}
    246138dnl with-Enthalpy{{{
    247 
    248139AC_ARG_WITH([Enthalpy],
    249 
    250140        AS_HELP_STRING([--with-Enthalpy = YES], [compile with Enthalpy capabilities (default is yes)]),
    251 
    252141        [ENTHALPY=$withval],[ENTHALPY=yes])
    253 
    254142AC_MSG_CHECKING(for Enthalpy capability compilation)
    255143
    256 
    257144HAVE_ENTHALPY=no
    258 
    259145if test "x$ENTHALPY" = "xyes"; then
    260 
    261146        HAVE_ENTHALPY=yes
    262 
    263147        AC_DEFINE([_HAVE_ENTHALPY_],[1],[with Enthalpy capability])
    264 
    265 fi
    266 
     148fi
    267149AM_CONDITIONAL([ENTHALPY], [test x$HAVE_ENTHALPY = xyes])
    268 
    269150AC_MSG_RESULT($HAVE_ENTHALPY)
    270 
    271151dnl }}}
    272152dnl with-Esa{{{
    273 
    274153AC_ARG_WITH([Esa],
    275 
    276154        AS_HELP_STRING([--with-Esa = YES], [compile with Esa capabilities (default is yes)]),
    277 
    278155        [ESA=$withval],[ESA=yes])
    279 
    280156AC_MSG_CHECKING(for Esa capability compilation)
    281157
    282 
    283158HAVE_ESA=no
    284 
    285159if test "x$ESA" = "xyes"; then
    286 
    287160        HAVE_ESA=yes
    288 
    289161        AC_DEFINE([_HAVE_ESA_],[1],[with Esa capability])
    290 
    291 fi
    292 
     162fi
    293163AM_CONDITIONAL([ESA], [test x$HAVE_ESA = xyes])
    294 
    295164AC_MSG_RESULT($HAVE_ESA)
    296 
    297165dnl }}}
    298166dnl with-Extrapolation{{{
    299 
    300167AC_ARG_WITH([Extrapolation],
    301 
    302168        AS_HELP_STRING([--with-Extrapolation = YES], [compile with Extrapolation capabilities (default is yes)]),
    303 
    304169        [EXTRAPOLATION=$withval],[EXTRAPOLATION=yes])
    305 
    306170AC_MSG_CHECKING(for Extrapolation capability compilation)
    307171
    308 
    309172HAVE_EXTRAPOLATION=no
    310 
    311173if test "x$EXTRAPOLATION" = "xyes"; then
    312 
    313174        HAVE_EXTRAPOLATION=yes
    314 
    315175        AC_DEFINE([_HAVE_EXTRAPOLATION_],[1],[with Extrapolation capability])
    316 
    317 fi
    318 
     176fi
    319177AM_CONDITIONAL([EXTRAPOLATION], [test x$HAVE_EXTRAPOLATION = xyes])
    320 
    321178AC_MSG_RESULT($HAVE_EXTRAPOLATION)
    322 
    323179dnl }}}
    324180dnl with-ExtrudeFromBase{{{
    325 
    326181AC_ARG_WITH([ExtrudeFromBase],
    327 
    328182        AS_HELP_STRING([--with-ExtrudeFromBase = YES], [compile with ExtrudeFromBase capabilities (default is yes)]),
    329 
    330183        [EXTRUDEFROMBASE=$withval],[EXTRUDEFROMBASE=yes])
    331 
    332184AC_MSG_CHECKING(for ExtrudeFromBase capability compilation)
    333185
    334 
    335186HAVE_EXTRUDEFROMBASE=no
    336 
    337187if test "x$EXTRUDEFROMBASE" = "xyes"; then
    338 
    339188        HAVE_EXTRUDEFROMBASE=yes
    340 
    341189        AC_DEFINE([_HAVE_EXTRUDEFROMBASE_],[1],[with ExtrudeFromBase capability])
    342 
    343 fi
    344 
     190fi
    345191AM_CONDITIONAL([EXTRUDEFROMBASE], [test x$HAVE_EXTRUDEFROMBASE = xyes])
    346 
    347192AC_MSG_RESULT($HAVE_EXTRUDEFROMBASE)
    348 
    349193dnl }}}
    350194dnl with-ExtrudeFromTop{{{
    351 
    352195AC_ARG_WITH([ExtrudeFromTop],
    353 
    354196        AS_HELP_STRING([--with-ExtrudeFromTop = YES], [compile with ExtrudeFromTop capabilities (default is yes)]),
    355 
    356197        [EXTRUDEFROMTOP=$withval],[EXTRUDEFROMTOP=yes])
    357 
    358198AC_MSG_CHECKING(for ExtrudeFromTop capability compilation)
    359199
    360 
    361200HAVE_EXTRUDEFROMTOP=no
    362 
    363201if test "x$EXTRUDEFROMTOP" = "xyes"; then
    364 
    365202        HAVE_EXTRUDEFROMTOP=yes
    366 
    367203        AC_DEFINE([_HAVE_EXTRUDEFROMTOP_],[1],[with ExtrudeFromTop capability])
    368 
    369 fi
    370 
     204fi
    371205AM_CONDITIONAL([EXTRUDEFROMTOP], [test x$HAVE_EXTRUDEFROMTOP = xyes])
    372 
    373206AC_MSG_RESULT($HAVE_EXTRUDEFROMTOP)
    374 
    375207dnl }}}
    376208dnl with-FreeSurfaceBase{{{
    377 
    378209AC_ARG_WITH([FreeSurfaceBase],
    379 
    380210        AS_HELP_STRING([--with-FreeSurfaceBase = YES], [compile with FreeSurfaceBase capabilities (default is yes)]),
    381 
    382211        [FREESURFACEBASE=$withval],[FREESURFACEBASE=yes])
    383 
    384212AC_MSG_CHECKING(for FreeSurfaceBase capability compilation)
    385213
    386 
    387214HAVE_FREESURFACEBASE=no
    388 
    389215if test "x$FREESURFACEBASE" = "xyes"; then
    390 
    391216        HAVE_FREESURFACEBASE=yes
    392 
    393217        AC_DEFINE([_HAVE_FREESURFACEBASE_],[1],[with FreeSurfaceBase capability])
    394 
    395 fi
    396 
     218fi
    397219AM_CONDITIONAL([FREESURFACEBASE], [test x$HAVE_FREESURFACEBASE = xyes])
    398 
    399220AC_MSG_RESULT($HAVE_FREESURFACEBASE)
    400 
    401221dnl }}}
    402222dnl with-FreeSurfaceTop{{{
    403 
    404223AC_ARG_WITH([FreeSurfaceTop],
    405 
    406224        AS_HELP_STRING([--with-FreeSurfaceTop = YES], [compile with FreeSurfaceTop capabilities (default is yes)]),
    407 
    408225        [FREESURFACETOP=$withval],[FREESURFACETOP=yes])
    409 
    410226AC_MSG_CHECKING(for FreeSurfaceTop capability compilation)
    411227
    412 
    413228HAVE_FREESURFACETOP=no
    414 
    415229if test "x$FREESURFACETOP" = "xyes"; then
    416 
    417230        HAVE_FREESURFACETOP=yes
    418 
    419231        AC_DEFINE([_HAVE_FREESURFACETOP_],[1],[with FreeSurfaceTop capability])
    420 
    421 fi
    422 
     232fi
    423233AM_CONDITIONAL([FREESURFACETOP], [test x$HAVE_FREESURFACETOP = xyes])
    424 
    425234AC_MSG_RESULT($HAVE_FREESURFACETOP)
    426 
    427235dnl }}}
    428236dnl with-GLheightadvection{{{
    429 
    430237AC_ARG_WITH([GLheightadvection],
    431 
    432238        AS_HELP_STRING([--with-GLheightadvection = YES], [compile with GLheightadvection capabilities (default is yes)]),
    433 
    434239        [GLHEIGHTADVECTION=$withval],[GLHEIGHTADVECTION=yes])
    435 
    436240AC_MSG_CHECKING(for GLheightadvection capability compilation)
    437241
    438 
    439242HAVE_GLHEIGHTADVECTION=no
    440 
    441243if test "x$GLHEIGHTADVECTION" = "xyes"; then
    442 
    443244        HAVE_GLHEIGHTADVECTION=yes
    444 
    445245        AC_DEFINE([_HAVE_GLHEIGHTADVECTION_],[1],[with GLheightadvection capability])
    446 
    447 fi
    448 
     246fi
    449247AM_CONDITIONAL([GLHEIGHTADVECTION], [test x$HAVE_GLHEIGHTADVECTION = xyes])
    450 
    451248AC_MSG_RESULT($HAVE_GLHEIGHTADVECTION)
    452 
    453249dnl }}}
    454250dnl with-GiaIvins{{{
    455 
    456251AC_ARG_WITH([GiaIvins],
    457 
    458252        AS_HELP_STRING([--with-GiaIvins = YES], [compile with GiaIvins capabilities (default is yes)]),
    459 
    460253        [GIAIVINS=$withval],[GIAIVINS=yes])
    461 
    462254AC_MSG_CHECKING(for GiaIvins capability compilation)
    463255
    464 
    465256HAVE_GIAIVINS=no
    466 
    467257if test "x$GIAIVINS" = "xyes"; then
    468 
    469258        HAVE_GIAIVINS=yes
    470 
    471259        AC_DEFINE([_HAVE_GIAIVINS_],[1],[with GiaIvins capability])
    472 
    473 fi
    474 
     260fi
    475261AM_CONDITIONAL([GIAIVINS], [test x$HAVE_GIAIVINS = xyes])
    476 
    477262AC_MSG_RESULT($HAVE_GIAIVINS)
    478 
    479263dnl }}}
    480264dnl with-HydrologyDCEfficient{{{
    481 
    482265AC_ARG_WITH([HydrologyDCEfficient],
    483 
    484266        AS_HELP_STRING([--with-HydrologyDCEfficient = YES], [compile with HydrologyDCEfficient capabilities (default is yes)]),
    485 
    486267        [HYDROLOGYDCEFFICIENT=$withval],[HYDROLOGYDCEFFICIENT=yes])
    487 
    488268AC_MSG_CHECKING(for HydrologyDCEfficient capability compilation)
    489269
    490 
    491270HAVE_HYDROLOGYDCEFFICIENT=no
    492 
    493271if test "x$HYDROLOGYDCEFFICIENT" = "xyes"; then
    494 
    495272        HAVE_HYDROLOGYDCEFFICIENT=yes
    496 
    497273        AC_DEFINE([_HAVE_HYDROLOGYDCEFFICIENT_],[1],[with HydrologyDCEfficient capability])
    498 
    499 fi
    500 
     274fi
    501275AM_CONDITIONAL([HYDROLOGYDCEFFICIENT], [test x$HAVE_HYDROLOGYDCEFFICIENT = xyes])
    502 
    503276AC_MSG_RESULT($HAVE_HYDROLOGYDCEFFICIENT)
    504 
    505277dnl }}}
    506278dnl with-HydrologyDCInefficient{{{
    507 
    508279AC_ARG_WITH([HydrologyDCInefficient],
    509 
    510280        AS_HELP_STRING([--with-HydrologyDCInefficient = YES], [compile with HydrologyDCInefficient capabilities (default is yes)]),
    511 
    512281        [HYDROLOGYDCINEFFICIENT=$withval],[HYDROLOGYDCINEFFICIENT=yes])
    513 
    514282AC_MSG_CHECKING(for HydrologyDCInefficient capability compilation)
    515283
    516 
    517284HAVE_HYDROLOGYDCINEFFICIENT=no
    518 
    519285if test "x$HYDROLOGYDCINEFFICIENT" = "xyes"; then
    520 
    521286        HAVE_HYDROLOGYDCINEFFICIENT=yes
    522 
    523287        AC_DEFINE([_HAVE_HYDROLOGYDCINEFFICIENT_],[1],[with HydrologyDCInefficient capability])
    524 
    525 fi
    526 
     288fi
    527289AM_CONDITIONAL([HYDROLOGYDCINEFFICIENT], [test x$HAVE_HYDROLOGYDCINEFFICIENT = xyes])
    528 
    529290AC_MSG_RESULT($HAVE_HYDROLOGYDCINEFFICIENT)
    530 
    531291dnl }}}
    532292dnl with-HydrologyShreve{{{
    533 
    534293AC_ARG_WITH([HydrologyShreve],
    535 
    536294        AS_HELP_STRING([--with-HydrologyShreve = YES], [compile with HydrologyShreve capabilities (default is yes)]),
    537 
    538295        [HYDROLOGYSHREVE=$withval],[HYDROLOGYSHREVE=yes])
    539 
    540296AC_MSG_CHECKING(for HydrologyShreve capability compilation)
    541297
    542 
    543298HAVE_HYDROLOGYSHREVE=no
    544 
    545299if test "x$HYDROLOGYSHREVE" = "xyes"; then
    546 
    547300        HAVE_HYDROLOGYSHREVE=yes
    548 
    549301        AC_DEFINE([_HAVE_HYDROLOGYSHREVE_],[1],[with HydrologyShreve capability])
    550 
    551 fi
    552 
     302fi
    553303AM_CONDITIONAL([HYDROLOGYSHREVE], [test x$HAVE_HYDROLOGYSHREVE = xyes])
    554 
    555304AC_MSG_RESULT($HAVE_HYDROLOGYSHREVE)
    556 
    557305dnl }}}
    558306dnl with-HydrologyShakti{{{
    559 
    560307AC_ARG_WITH([HydrologyShakti],
    561 
    562308        AS_HELP_STRING([--with-HydrologyShakti = YES], [compile with HydrologyShakti capabilities (default is yes)]),
    563 
    564309        [HYDROLOGYSHAKTI=$withval],[HYDROLOGYSHAKTI=yes])
    565 
    566310AC_MSG_CHECKING(for HydrologyShakti capability compilation)
    567311
    568 
    569312HAVE_HYDROLOGYSHAKTI=no
    570 
    571313if test "x$HYDROLOGYSHAKTI" = "xyes"; then
    572 
    573314        HAVE_HYDROLOGYSHAKTI=yes
    574 
    575315        AC_DEFINE([_HAVE_HYDROLOGYSHAKTI_],[1],[with HydrologyShakti capability])
    576 
    577 fi
    578 
     316fi
    579317AM_CONDITIONAL([HYDROLOGYSHAKTI], [test x$HAVE_HYDROLOGYSHAKTI = xyes])
    580 
    581318AC_MSG_RESULT($HAVE_HYDROLOGYSHAKTI)
    582 
    583319dnl }}}
    584320dnl with-HydrologyPism{{{
    585 
    586321AC_ARG_WITH([HydrologyPism],
    587 
    588322        AS_HELP_STRING([--with-HydrologyPism = YES], [compile with HydrologyPism capabilities (default is yes)]),
    589 
    590323        [HYDROLOGYPISM=$withval],[HYDROLOGYPISM=yes])
    591 
    592324AC_MSG_CHECKING(for HydrologyPism capability compilation)
    593325
    594 
    595326HAVE_HYDROLOGYPISM=no
    596 
    597327if test "x$HYDROLOGYPISM" = "xyes"; then
    598 
    599328        HAVE_HYDROLOGYPISM=yes
    600 
    601329        AC_DEFINE([_HAVE_HYDROLOGYPISM_],[1],[with HydrologyPism capability])
    602 
    603 fi
    604 
     330fi
    605331AM_CONDITIONAL([HYDROLOGYPISM], [test x$HAVE_HYDROLOGYPISM = xyes])
    606 
    607332AC_MSG_RESULT($HAVE_HYDROLOGYPISM)
    608 
    609333dnl }}}
    610334dnl with-L2ProjectionBase{{{
    611 
    612335AC_ARG_WITH([L2ProjectionBase],
    613 
    614336        AS_HELP_STRING([--with-L2ProjectionBase = YES], [compile with L2ProjectionBase capabilities (default is yes)]),
    615 
    616337        [L2PROJECTIONBASE=$withval],[L2PROJECTIONBASE=yes])
    617 
    618338AC_MSG_CHECKING(for L2ProjectionBase capability compilation)
    619339
    620 
    621340HAVE_L2PROJECTIONBASE=no
    622 
    623341if test "x$L2PROJECTIONBASE" = "xyes"; then
    624 
    625342        HAVE_L2PROJECTIONBASE=yes
    626 
    627343        AC_DEFINE([_HAVE_L2PROJECTIONBASE_],[1],[with L2ProjectionBase capability])
    628 
    629 fi
    630 
     344fi
    631345AM_CONDITIONAL([L2PROJECTIONBASE], [test x$HAVE_L2PROJECTIONBASE = xyes])
    632 
    633346AC_MSG_RESULT($HAVE_L2PROJECTIONBASE)
    634 
    635347dnl }}}
    636348dnl with-L2ProjectionEPL{{{
    637 
    638349AC_ARG_WITH([L2ProjectionEPL],
    639 
    640350        AS_HELP_STRING([--with-L2ProjectionEPL = YES], [compile with L2ProjectionEPL capabilities (default is yes)]),
    641 
    642351        [L2PROJECTIONEPL=$withval],[L2PROJECTIONEPL=yes])
    643 
    644352AC_MSG_CHECKING(for L2ProjectionEPL capability compilation)
    645353
    646 
    647354HAVE_L2PROJECTIONEPL=no
    648 
    649355if test "x$L2PROJECTIONEPL" = "xyes"; then
    650 
    651356        HAVE_L2PROJECTIONEPL=yes
    652 
    653357        AC_DEFINE([_HAVE_L2PROJECTIONEPL_],[1],[with L2ProjectionEPL capability])
    654 
    655 fi
    656 
     358fi
    657359AM_CONDITIONAL([L2PROJECTIONEPL], [test x$HAVE_L2PROJECTIONEPL = xyes])
    658 
    659360AC_MSG_RESULT($HAVE_L2PROJECTIONEPL)
    660 
    661361dnl }}}
    662362dnl with-Levelset{{{
    663 
    664363AC_ARG_WITH([Levelset],
    665 
    666364        AS_HELP_STRING([--with-Levelset = YES], [compile with Levelset capabilities (default is yes)]),
    667 
    668365        [LEVELSET=$withval],[LEVELSET=yes])
    669 
    670366AC_MSG_CHECKING(for Levelset capability compilation)
    671367
    672 
    673368HAVE_LEVELSET=no
    674 
    675369if test "x$LEVELSET" = "xyes"; then
    676 
    677370        HAVE_LEVELSET=yes
    678 
    679371        AC_DEFINE([_HAVE_LEVELSET_],[1],[with Levelset capability])
    680 
    681 fi
    682 
     372fi
    683373AM_CONDITIONAL([LEVELSET], [test x$HAVE_LEVELSET = xyes])
    684 
    685374AC_MSG_RESULT($HAVE_LEVELSET)
    686 
    687375dnl }}}
    688376dnl with-Love{{{
    689 
    690377AC_ARG_WITH([Love],
    691 
    692378        AS_HELP_STRING([--with-Love = YES], [compile with Love capabilities (default is yes)]),
    693 
    694379        [LOVE=$withval],[LOVE=yes])
    695 
    696380AC_MSG_CHECKING(for Love capability compilation)
    697381
    698 
    699382HAVE_LOVE=no
    700 
    701383if test "x$LOVE" = "xyes"; then
    702 
    703384        HAVE_LOVE=yes
    704 
    705385        AC_DEFINE([_HAVE_LOVE_],[1],[with Love capability])
    706 
    707 fi
    708 
     386fi
    709387AM_CONDITIONAL([LOVE], [test x$HAVE_LOVE = xyes])
    710 
    711388AC_MSG_RESULT($HAVE_LOVE)
    712 
    713389dnl }}}
    714390dnl with-Masstransport{{{
    715 
    716391AC_ARG_WITH([Masstransport],
    717 
    718392        AS_HELP_STRING([--with-Masstransport = YES], [compile with Masstransport capabilities (default is yes)]),
    719 
    720393        [MASSTRANSPORT=$withval],[MASSTRANSPORT=yes])
    721 
    722394AC_MSG_CHECKING(for Masstransport capability compilation)
    723395
    724 
    725396HAVE_MASSTRANSPORT=no
    726 
    727397if test "x$MASSTRANSPORT" = "xyes"; then
    728 
    729398        HAVE_MASSTRANSPORT=yes
    730 
    731399        AC_DEFINE([_HAVE_MASSTRANSPORT_],[1],[with Masstransport capability])
    732 
    733 fi
    734 
     400fi
    735401AM_CONDITIONAL([MASSTRANSPORT], [test x$HAVE_MASSTRANSPORT = xyes])
    736 
    737402AC_MSG_RESULT($HAVE_MASSTRANSPORT)
    738 
    739403dnl }}}
    740404dnl with-Melting{{{
    741 
    742405AC_ARG_WITH([Melting],
    743 
    744406        AS_HELP_STRING([--with-Melting = YES], [compile with Melting capabilities (default is yes)]),
    745 
    746407        [MELTING=$withval],[MELTING=yes])
    747 
    748408AC_MSG_CHECKING(for Melting capability compilation)
    749409
    750 
    751410HAVE_MELTING=no
    752 
    753411if test "x$MELTING" = "xyes"; then
    754 
    755412        HAVE_MELTING=yes
    756 
    757413        AC_DEFINE([_HAVE_MELTING_],[1],[with Melting capability])
    758 
    759 fi
    760 
     414fi
    761415AM_CONDITIONAL([MELTING], [test x$HAVE_MELTING = xyes])
    762 
    763416AC_MSG_RESULT($HAVE_MELTING)
    764 
    765417dnl }}}
    766418dnl with-Sealevelrise{{{
    767 
    768419AC_ARG_WITH([Sealevelrise],
    769 
    770420        AS_HELP_STRING([--with-Sealevelrise = YES], [compile with Sealevelrise capabilities (default is yes)]),
    771 
    772421        [SEALEVELRISE=$withval],[SEALEVELRISE=yes])
    773 
    774422AC_MSG_CHECKING(for Sealevelrise capability compilation)
    775423
    776 
    777424HAVE_SEALEVELRISE=no
    778 
    779425if test "x$SEALEVELRISE" = "xyes"; then
    780 
    781426        HAVE_SEALEVELRISE=yes
    782 
    783427        AC_DEFINE([_HAVE_SEALEVELRISE_],[1],[with Sealevelrise capability])
    784 
    785 fi
    786 
     428fi
    787429AM_CONDITIONAL([SEALEVELRISE], [test x$HAVE_SEALEVELRISE = xyes])
    788 
    789430AC_MSG_RESULT($HAVE_SEALEVELRISE)
    790 
    791431dnl }}}
    792432dnl with-Smb{{{
    793 
    794433AC_ARG_WITH([Smb],
    795 
    796434        AS_HELP_STRING([--with-Smb = YES], [compile with Smb capabilities (default is yes)]),
    797 
    798435        [SMB=$withval],[SMB=yes])
    799 
    800436AC_MSG_CHECKING(for Smb capability compilation)
    801437
    802 
    803438HAVE_SMB=no
    804 
    805439if test "x$SMB" = "xyes"; then
    806 
    807440        HAVE_SMB=yes
    808 
    809441        AC_DEFINE([_HAVE_SMB_],[1],[with Smb capability])
    810 
    811 fi
    812 
     442fi
    813443AM_CONDITIONAL([SMB], [test x$HAVE_SMB = xyes])
    814 
    815444AC_MSG_RESULT($HAVE_SMB)
    816 
    817445dnl }}}
    818446dnl with-Smooth{{{
    819 
    820447AC_ARG_WITH([Smooth],
    821 
    822448        AS_HELP_STRING([--with-Smooth = YES], [compile with Smooth capabilities (default is yes)]),
    823 
    824449        [SMOOTH=$withval],[SMOOTH=yes])
    825 
    826450AC_MSG_CHECKING(for Smooth capability compilation)
    827451
    828 
    829452HAVE_SMOOTH=no
    830 
    831453if test "x$SMOOTH" = "xyes"; then
    832 
    833454        HAVE_SMOOTH=yes
    834 
    835455        AC_DEFINE([_HAVE_SMOOTH_],[1],[with Smooth capability])
    836 
    837 fi
    838 
     456fi
    839457AM_CONDITIONAL([SMOOTH], [test x$HAVE_SMOOTH = xyes])
    840 
    841458AC_MSG_RESULT($HAVE_SMOOTH)
    842 
    843459dnl }}}
    844460dnl with-Stressbalance{{{
    845 
    846461AC_ARG_WITH([Stressbalance],
    847 
    848462        AS_HELP_STRING([--with-Stressbalance = YES], [compile with Stressbalance capabilities (default is yes)]),
    849 
    850463        [STRESSBALANCE=$withval],[STRESSBALANCE=yes])
    851 
    852464AC_MSG_CHECKING(for Stressbalance capability compilation)
    853465
    854 
    855466HAVE_STRESSBALANCE=no
    856 
    857467if test "x$STRESSBALANCE" = "xyes"; then
    858 
    859468        HAVE_STRESSBALANCE=yes
    860 
    861469        AC_DEFINE([_HAVE_STRESSBALANCE_],[1],[with Stressbalance capability])
    862 
    863 fi
    864 
     470fi
    865471AM_CONDITIONAL([STRESSBALANCE], [test x$HAVE_STRESSBALANCE = xyes])
    866 
    867472AC_MSG_RESULT($HAVE_STRESSBALANCE)
    868 
    869473dnl }}}
    870474dnl with-StressbalanceSIA{{{
    871 
    872475AC_ARG_WITH([StressbalanceSIA],
    873 
    874476        AS_HELP_STRING([--with-StressbalanceSIA = YES], [compile with StressbalanceSIA capabilities (default is yes)]),
    875 
    876477        [STRESSBALANCESIA=$withval],[STRESSBALANCESIA=yes])
    877 
    878478AC_MSG_CHECKING(for StressbalanceSIA capability compilation)
    879479
    880 
    881480HAVE_STRESSBALANCESIA=no
    882 
    883481if test "x$STRESSBALANCESIA" = "xyes"; then
    884 
    885482        HAVE_STRESSBALANCESIA=yes
    886 
    887483        AC_DEFINE([_HAVE_STRESSBALANCESIA_],[1],[with StressbalanceSIA capability])
    888 
    889 fi
    890 
     484fi
    891485AM_CONDITIONAL([STRESSBALANCESIA], [test x$HAVE_STRESSBALANCESIA = xyes])
    892 
    893486AC_MSG_RESULT($HAVE_STRESSBALANCESIA)
    894 
    895487dnl }}}
    896488dnl with-StressbalanceVertical{{{
    897 
    898489AC_ARG_WITH([StressbalanceVertical],
    899 
    900490        AS_HELP_STRING([--with-StressbalanceVertical = YES], [compile with StressbalanceVertical capabilities (default is yes)]),
    901 
    902491        [STRESSBALANCEVERTICAL=$withval],[STRESSBALANCEVERTICAL=yes])
    903 
    904492AC_MSG_CHECKING(for StressbalanceVertical capability compilation)
    905493
    906 
    907494HAVE_STRESSBALANCEVERTICAL=no
    908 
    909495if test "x$STRESSBALANCEVERTICAL" = "xyes"; then
    910 
    911496        HAVE_STRESSBALANCEVERTICAL=yes
    912 
    913497        AC_DEFINE([_HAVE_STRESSBALANCEVERTICAL_],[1],[with StressbalanceVertical capability])
    914 
    915 fi
    916 
     498fi
    917499AM_CONDITIONAL([STRESSBALANCEVERTICAL], [test x$HAVE_STRESSBALANCEVERTICAL = xyes])
    918 
    919500AC_MSG_RESULT($HAVE_STRESSBALANCEVERTICAL)
    920 
    921501dnl }}}
    922502dnl with-Thermal{{{
    923 
    924503AC_ARG_WITH([Thermal],
    925 
    926504        AS_HELP_STRING([--with-Thermal = YES], [compile with Thermal capabilities (default is yes)]),
    927 
    928505        [THERMAL=$withval],[THERMAL=yes])
    929 
    930506AC_MSG_CHECKING(for Thermal capability compilation)
    931507
    932 
    933508HAVE_THERMAL=no
    934 
    935509if test "x$THERMAL" = "xyes"; then
    936 
    937510        HAVE_THERMAL=yes
    938 
    939511        AC_DEFINE([_HAVE_THERMAL_],[1],[with Thermal capability])
    940 
    941 fi
    942 
     512fi
    943513AM_CONDITIONAL([THERMAL], [test x$HAVE_THERMAL = xyes])
    944 
    945514AC_MSG_RESULT($HAVE_THERMAL)
    946 
    947515dnl }}}
    948516dnl with-UzawaPressure{{{
    949 
    950517AC_ARG_WITH([UzawaPressure],
    951 
    952518        AS_HELP_STRING([--with-UzawaPressure = YES], [compile with UzawaPressure capabilities (default is yes)]),
    953 
    954519        [UZAWAPRESSURE=$withval],[UZAWAPRESSURE=yes])
    955 
    956520AC_MSG_CHECKING(for UzawaPressure capability compilation)
    957521
    958 
    959522HAVE_UZAWAPRESSURE=no
    960 
    961523if test "x$UZAWAPRESSURE" = "xyes"; then
    962 
    963524        HAVE_UZAWAPRESSURE=yes
    964 
    965525        AC_DEFINE([_HAVE_UZAWAPRESSURE_],[1],[with UzawaPressure capability])
    966 
    967 fi
    968 
     526fi
    969527AM_CONDITIONAL([UZAWAPRESSURE], [test x$HAVE_UZAWAPRESSURE = xyes])
    970 
    971528AC_MSG_RESULT($HAVE_UZAWAPRESSURE)
    972 
    973529dnl }}}
    974530
  • issm/trunk-jpl/src/c/analyses/FreeSurfaceBaseAnalysis.cpp

    r23585 r23795  
    107107                case BasalforcingsPicoEnum:
    108108                        iomodel->FetchDataToInput(elements,"md.basalforcings.basin_id",BasalforcingsPicoBasinIdEnum);
     109                        break;
     110                case BasalforcingsIsmip6Enum:
     111                        iomodel->FetchDataToInput(elements,"md.basalforcings.basin_id",BasalforcingsIsmp6BasinIdEnum);
    109112                        break;
    110113                default:
  • issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp

    r23782 r23795  
    181181                case BasalforcingsIsmip6Enum:{
    182182                        //iomodel->FetchDataToInput(elements,"md.basalforcings.tf",BasalforcingsIsmp6TfEnum);
     183                        iomodel->FetchDataToInput(elements,"md.basalforcings.basin_id",BasalforcingsIsmp6BasinIdEnum);
    183184                        IssmDouble** array3d = NULL;
    184185                        int* Ms = NULL;
  • issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp

    r23758 r23795  
    783783                                iomodel->FetchDataToInput(elements,"md.basalforcings.basin_id",BasalforcingsPicoBasinIdEnum);
    784784                                break;
     785                        case BasalforcingsIsmip6Enum:
     786                                iomodel->FetchDataToInput(elements,"md.basalforcings.basin_id",BasalforcingsIsmp6BasinIdEnum);
     787                                break;
    785788                        default:
    786789                                _error_("Basal forcing model "<<EnumToStringx(basalforcing_model)<<" not supported yet");
  • issm/trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp

    r23644 r23795  
    135135                        iomodel->FetchDataToInput(elements,"md.basalforcings.basin_id",BasalforcingsPicoBasinIdEnum);
    136136                        break;
     137                case BasalforcingsIsmip6Enum:
     138                        iomodel->FetchDataToInput(elements,"md.basalforcings.basin_id",BasalforcingsIsmp6BasinIdEnum);
     139                        break;
     140
    137141                default:
    138142                        _error_("Basal forcing model "<<EnumToStringx(basalforcing_model)<<" not supported yet");
  • issm/trunk-jpl/src/c/classes/Elements/Element.h

    r23652 r23795  
    252252                virtual bool       IsFaceOnBoundary(void)=0;
    253253                virtual bool       IsIcefront(void)=0;
     254                virtual void       Ismip6FloatingiceMeltingRate(void)=0;
    254255                virtual bool       IsNodeOnShelfFromFlags(IssmDouble* flags)=0;
    255256                virtual bool       IsOnBase()=0;
  • issm/trunk-jpl/src/c/classes/Elements/Penta.h

    r23674 r23795  
    9393                IssmDouble     IceVolume(bool scaled);
    9494                IssmDouble     IceVolumeAboveFloatation(bool scaled);
     95                void                            Ismip6FloatingiceMeltingRate(void){_error_("not implemented yet");};
    9596                void           InputDepthAverageAtBase(int enum_type,int average_enum_type);
    9697                void             InputExtrude(int enum_type,int start);
  • issm/trunk-jpl/src/c/classes/Elements/Seg.h

    r23644 r23795  
    8888                bool        IsFaceOnBoundary(void){_error_("not implemented yet");};
    8989                bool               IsIcefront(void);
     90                void               Ismip6FloatingiceMeltingRate(void){_error_("not implemented yet");};
    9091                bool        IsNodeOnShelfFromFlags(IssmDouble* flags){_error_("not implemented yet");};
    9192                bool        IsOnBase(){_error_("not implemented yet");};
  • issm/trunk-jpl/src/c/classes/Elements/Tetra.h

    r23644 r23795  
    8888                IssmDouble  IceVolume(bool scaled){_error_("not implemented yet");};
    8989                IssmDouble  IceVolumeAboveFloatation(bool scaled){_error_("not implemented yet");};
     90                void                    Ismip6FloatingiceMeltingRate(void){_error_("not implemented yet");};
    9091                bool        IsFaceOnBoundary(void){_error_("not implemented yet");};
    9192                bool               IsIcefront(void);
  • issm/trunk-jpl/src/c/classes/Elements/Tria.cpp

    r23672 r23795  
    22732273                values[i]=solution[doflist[i]];
    22742274                if(xIsNan<IssmDouble>(values[i])) _error_("NaN found in solution vector");
    2275                 if(xIsInf<IssmDouble>(values[i])) _error_("Inf found in solution vector");
     2275                if(xIsInf<IssmDouble>(values[i])) _error_("Inf found in solution vector, ID = " << this->Sid());
    22762276        }
    22772277
     
    24032403        return isicefront;
    24042404}/*}}}*/
     2405void       Tria::Ismip6FloatingiceMeltingRate(void){/*{{{*/
     2406
     2407        if(!this->IsIceInElement() || !this->IsFloating()) return;
     2408
     2409        int         basinid,num_basins,M,N;
     2410        IssmDouble  tf,gamma0,base,delta_t_basin,mean_tf_basin,absval;
     2411        IssmDouble  basalmeltrate[NUMVERTICES];
     2412        IssmDouble* delta_t = NULL;
     2413        IssmDouble* mean_tf = NULL;
     2414        IssmDouble* depths  = NULL;
     2415
     2416        /*Get variables*/
     2417        IssmDouble rhoi     = this->FindParam(MaterialsRhoIceEnum);
     2418        IssmDouble rhow     = this->FindParam(MaterialsRhoSeawaterEnum)+5;
     2419        IssmDouble lf       = this->FindParam(MaterialsLatentheatEnum);
     2420        IssmDouble cp       = this->FindParam(MaterialsMixedLayerCapacityEnum);
     2421
     2422        /* Get parameters and inputs */
     2423        this->inputs->GetInputValue(&basinid,BasalforcingsIsmp6BasinIdEnum);
     2424        this->parameters->FindParam(&num_basins,BasalforcingsIsmp6NumBasinsEnum);
     2425        this->parameters->FindParam(&gamma0,BasalforcingsIsmp6Gamma0Enum);
     2426        this->parameters->FindParam(&delta_t,&M,BasalforcingsIsmp6DeltaTEnum);    _assert_(M==num_basins);
     2427        this->parameters->FindParam(&mean_tf,&N,BasalforcingsIsmp6AverageTfEnum); _assert_(N==num_basins);
     2428        Input* tf_input=this->GetInput(BasalforcingsIsmp6TfShelfEnum);            _assert_(tf_input);
     2429        delta_t_basin = delta_t[basinid]; mean_tf_basin = mean_tf[basinid];
     2430
     2431   /* Compute melt rate */
     2432   Gauss* gauss=this->NewGauss();
     2433        for(int i=0;i<NUMVERTICES;i++){
     2434                gauss->GaussVertex(i);
     2435                tf_input->GetInputValue(&tf,gauss);
     2436                absval = mean_tf_basin+delta_t_basin;
     2437                if (absval<0) {absval = -1.*absval;}
     2438                basalmeltrate[i] = gamma0*pow((rhow*cp)/(rhoi*lf),2)*(tf+delta_t_basin)*absval;
     2439        }
     2440
     2441        cout << "meltrate = " << basalmeltrate[0] << endl;
     2442
     2443        /*Return basal melt rate*/
     2444        this->AddInput(BasalforcingsFloatingiceMeltingRateEnum,basalmeltrate,P1Enum);
     2445        _error_("STOP HERE");
     2446
     2447        /*Cleanup and return*/
     2448        delete gauss;
     2449        xDelete<IssmDouble>(delta_t);
     2450        xDelete<IssmDouble>(mean_tf);
     2451        xDelete<IssmDouble>(depths);
     2452
     2453        _error_("not implemented yet");
     2454
     2455        }/*}}}*/
    24052456bool       Tria::IsNodeOnShelfFromFlags(IssmDouble* flags){/*{{{*/
    24062457
     
    31513202        /*Define arrays*/
    31523203        IssmDouble basalmeltrates_shelf[NUMVERTICES];  //Basal melt-rate
    3153         //IssmDouble slope[NUMVERTICES];                 //Basal slope
    31543204
    31553205        /*Polynomial coefficients*/
     
    31903240                baseslopey_input->GetInputValue(&slopey,gauss);
    31913241
    3192                 /*Compute ice shelf base slope*/
    3193                 alpha = sqrt(slopex*slopex + slopey*slopey);
    3194 
     3242                /*Compute ice shelf base slope (radians)*/
     3243                alpha = atan(sqrt(slopex*slopex + slopey*slopey));
     3244                if(alpha>=M_PI) alpha = M_PI - 0.001;               //ensure sin(alpha) > 0 for meltrate calculations
     3245       
    31953246                /*Make necessary conversions*/
    31963247                Toc = Toc-273.15;
    3197                 alpha = atan(alpha);         
    3198                 if(zgl>z_base) zgl=z_base-10;
     3248           if(zgl>z_base) zgl=z_base;
    31993249
    32003250                /*Low bound for Toc to ensure X_hat is between 0 and 1*/
     
    32223272                basalmeltrates_shelf[i] = (M*M_hat)/yts;                                     //Basal melt-rate (m/s)
    32233273        }
    3224    /*Save computed melt-rate*/
     3274         
     3275        /*Save computed melt-rate*/
    32253276   this->AddInput(BasalforcingsFloatingiceMeltingRateEnum,basalmeltrates_shelf,P1Enum);
    32263277
  • issm/trunk-jpl/src/c/classes/Elements/Tria.h

    r23652 r23795  
    9595                IssmDouble  IceVolume(bool scaled);
    9696                IssmDouble  IceVolumeAboveFloatation(bool scaled);
     97                void        Ismip6FloatingiceMeltingRate(void);
    9798                void        InputDepthAverageAtBase(int enum_type,int average_enum_type);
    9899                void        InputExtrude(int enum_type,int start){_error_("not implemented"); /*For penta only*/};
  • issm/trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.cpp

    r23782 r23795  
    7373void FloatingiceMeltingRateIsmip6x(FemModel* femmodel){/*{{{*/
    7474
     75
     76        int         num_basins, basinid;
     77        IssmDouble  area, tf, base, time;
     78        IssmDouble  tf_test[3];
     79
     80   femmodel->parameters->FindParam(&num_basins,BasalforcingsIsmp6NumBasinsEnum);
     81
     82   IssmDouble* tf_weighted_avg     = xNewZeroInit<IssmDouble>(num_basins);
     83        IssmDouble* tf_weighted_avg_cpu = xNewZeroInit<IssmDouble>(num_basins);
     84   IssmDouble* areas_summed        = xNewZeroInit<IssmDouble>(num_basins);
     85   IssmDouble* areas_summed_cpu    = xNewZeroInit<IssmDouble>(num_basins);
     86
     87        /*Find and save TF at each ice shelf point*/
     88        //      element->parameters->FindParam(&time,TimeEnum);
     89        //      Input* tf_input = element->GetInput(BasalforcingsIsmp6TfEnum); _assert_(tf_input);
     90        //      tf_input->Echo();
     91        //      Input* base_input = element->GetInput(BaseEnum);               _assert_(base_input);
     92        //      Gauss* gauss=element->NewGauss(1); gauss->GaussPoint(0);
     93        //      base_input->GetInputValue(&base,gauss);
     94        //      //tf_input->GetInputValue(&tf,gauss,BasalforcingsIsmp6TfEnum);
     95
     96        /*TEST: Set tf=2 for all ice shelf elements*/
    7597        for(int i=0;i<femmodel->elements->Size();i++){
    7698                Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i));
    77                 Input* temp = element->GetInput(BasalforcingsIsmp6TfEnum);
    78                 _assert_(temp);
    79                 temp->Echo();
    80                 _error_("not implemented yet");
    81                 //element->MismipFloatingiceMeltingRate();
     99                if(!element->IsIceInElement() || !element->IsFloating()) continue;
     100                for(int k=0;k<3;k++) {tf_test[k] = 2.;}
     101                element->AddInput(BasalforcingsIsmp6TfShelfEnum,tf_test,P1Enum);
     102        }
     103
     104        /*Compute sums of tf*area and shelf-area per cpu*/
     105        for(int i=0;i<femmodel->elements->Size();i++){
     106                Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i));
     107                if(!element->IsIceInElement() || !element->IsFloating()) continue;
     108                Input* tf_input=element->GetInput(BasalforcingsIsmp6TfShelfEnum); _assert_(tf_input);
     109                element->inputs->GetInputValue(&basinid,BasalforcingsIsmp6BasinIdEnum);
     110                Gauss* gauss=element->NewGauss(1); gauss->GaussPoint(0);
     111                tf_input->GetInputValue(&tf,gauss);
     112                delete gauss;
     113                area=element->GetHorizontalSurfaceArea();
     114                tf_weighted_avg[basinid]+=tf*area;
     115                areas_summed[basinid]   +=area;
     116        }
     117
     118        /*Syncronize across cpus*/
     119        ISSM_MPI_Allreduce(tf_weighted_avg,tf_weighted_avg_cpu,num_basins,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,IssmComm::GetComm());
     120        ISSM_MPI_Allreduce(areas_summed,areas_summed_cpu,num_basins,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,IssmComm::GetComm());
     121
     122        /*Compute weighted means and save*/
     123        for(int k=0;k<num_basins;k++){tf_weighted_avg_cpu[k] = tf_weighted_avg_cpu[k]/areas_summed_cpu[k];}
     124        femmodel->parameters->AddObject(new DoubleVecParam(BasalforcingsIsmp6AverageTfEnum,tf_weighted_avg_cpu,num_basins));
     125
     126        /*Cleanup and return */
     127        xDelete<IssmDouble>(tf_weighted_avg);
     128        xDelete<IssmDouble>(tf_weighted_avg_cpu);
     129        xDelete<IssmDouble>(areas_summed);
     130        xDelete<IssmDouble>(areas_summed_cpu);
     131
     132   /*Compute meltrates*/
     133        for(int i=0;i<femmodel->elements->Size();i++){
     134                Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i));
     135                element->Ismip6FloatingiceMeltingRate();
    82136        }
    83137}
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp

    r23782 r23795  
    210210                        break;
    211211                case BasalforcingsPicoEnum:
    212                                 iomodel->FindConstant(&interp,"md.timestepping.interp_forcings");
    213                                 parameters->AddObject(iomodel->CopyConstantObject("md.basalforcings.num_basins",BasalforcingsPicoNumBasinsEnum));
    214                                 parameters->AddObject(iomodel->CopyConstantObject("md.basalforcings.maxboxcount",BasalforcingsPicoMaxboxcountEnum));
    215                                 parameters->AddObject(iomodel->CopyConstantObject("md.basalforcings.overturning_coeff",BasalforcingsPicoOverturningCoeffEnum));
    216                                 parameters->AddObject(iomodel->CopyConstantObject("md.basalforcings.gamma_T",BasalforcingsPicoGammaTEnum));
    217                                 parameters->AddObject(iomodel->CopyConstantObject("md.basalforcings.isplume",BasalforcingsPicoIsplumeEnum));
    218                                 iomodel->FetchData(&transparam,&M,&N,"md.basalforcings.farocean_temperature");
    219                                 _assert_(M>=1 && N>=1);
    220                                 parameters->AddObject(new TransientArrayParam(BasalforcingsPicoFarOceantemperatureEnum,transparam,&transparam[N*(M-1)],interp,N,M));
    221                                 xDelete<IssmDouble>(transparam);
    222                                 iomodel->FetchData(&transparam,&M,&N,"md.basalforcings.farocean_salinity");
    223                                 _assert_(M>=1 && N>=1);
    224                                 parameters->AddObject(new TransientArrayParam(BasalforcingsPicoFarOceansalinityEnum,transparam,&transparam[N*(M-1)],interp,N,M));
    225                                 xDelete<IssmDouble>(transparam);
     212                        iomodel->FindConstant(&interp,"md.timestepping.interp_forcings");
     213                        parameters->AddObject(iomodel->CopyConstantObject("md.basalforcings.num_basins",BasalforcingsPicoNumBasinsEnum));
     214                        parameters->AddObject(iomodel->CopyConstantObject("md.basalforcings.maxboxcount",BasalforcingsPicoMaxboxcountEnum));
     215                        parameters->AddObject(iomodel->CopyConstantObject("md.basalforcings.overturning_coeff",BasalforcingsPicoOverturningCoeffEnum));
     216                        parameters->AddObject(iomodel->CopyConstantObject("md.basalforcings.gamma_T",BasalforcingsPicoGammaTEnum));
     217                        parameters->AddObject(iomodel->CopyConstantObject("md.basalforcings.isplume",BasalforcingsPicoIsplumeEnum));
     218                        iomodel->FetchData(&transparam,&M,&N,"md.basalforcings.farocean_temperature");
     219                        _assert_(M>=1 && N>=1);
     220                        parameters->AddObject(new TransientArrayParam(BasalforcingsPicoFarOceantemperatureEnum,transparam,&transparam[N*(M-1)],interp,N,M));
     221                        xDelete<IssmDouble>(transparam);
     222                        iomodel->FetchData(&transparam,&M,&N,"md.basalforcings.farocean_salinity");
     223                        _assert_(M>=1 && N>=1);
     224                        parameters->AddObject(new TransientArrayParam(BasalforcingsPicoFarOceansalinityEnum,transparam,&transparam[N*(M-1)],interp,N,M));
     225                        xDelete<IssmDouble>(transparam);
     226                        break;
    226227                case BasalforcingsIsmip6Enum:
    227                                 iomodel->FindConstant(&interp,"md.timestepping.interp_forcings");
    228                                 printf("-------------- file: CreateParameters.cpp line: %i\n",__LINE__);
    229                                 printf("== WARNING: needs to be implemented\n");
     228                        parameters->AddObject(iomodel->CopyConstantObject("md.basalforcings.num_basins",BasalforcingsIsmp6NumBasinsEnum));
     229                        parameters->AddObject(iomodel->CopyConstantObject("md.basalforcings.gamma_0",BasalforcingsIsmp6Gamma0Enum));
     230                        iomodel->FindConstant(&temp_n,"md.basalforcings.num_basins");
     231                        iomodel->FetchData(&transparam,NULL,&M,"md.basalforcings.delta_t");
     232                        parameters->AddObject(new DoubleVecParam(BasalforcingsIsmp6DeltaTEnum,transparam,temp_n));
     233                        xDelete<IssmDouble>(transparam);
     234                        iomodel->FetchData(&transparam,NULL,NULL,"md.basalforcings.tf_depths");
     235                        parameters->AddObject(new DoubleVecParam(BasalforcingsIsmp6TfDepthsEnum,transparam,3));
     236                        xDelete<IssmDouble>(transparam);
    230237                        break;
    231238                default:
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r23782 r23795  
    6363        BasalforcingsDtbgEnum,
    6464        BasalforcingsEnum,
     65   BasalforcingsIsmp6BasinAreaEnum,
     66   BasalforcingsIsmp6DeltaTEnum,
     67   BasalforcingsIsmp6Gamma0Enum,
     68   BasalforcingsIsmp6NumBasinsEnum,
     69   BasalforcingsIsmp6TfDepthsEnum,
     70        BasalforcingsIsmp6AverageTfEnum,
    6571        BasalforcingsLowercrustheatEnum,
    6672        BasalforcingsMantleconductivityEnum,
     
    437443        BasalforcingsGroundediceMeltingRateEnum,
    438444        BasalforcingsIsmp6TfEnum,
     445        BasalforcingsIsmp6TfShelfEnum,
     446        BasalforcingsIsmp6BasinIdEnum,
    439447        BasalforcingsPicoBasinIdEnum,
    440448        BasalforcingsPicoBoxIdEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r23782 r23795  
    7171                case BasalforcingsDtbgEnum : return "BasalforcingsDtbg";
    7272                case BasalforcingsEnum : return "Basalforcings";
     73                case BasalforcingsIsmp6BasinAreaEnum : return "BasalforcingsIsmp6BasinArea";
     74                case BasalforcingsIsmp6DeltaTEnum : return "BasalforcingsIsmp6DeltaT";
     75                case BasalforcingsIsmp6Gamma0Enum : return "BasalforcingsIsmp6Gamma0";
     76                case BasalforcingsIsmp6NumBasinsEnum : return "BasalforcingsIsmp6NumBasins";
     77                case BasalforcingsIsmp6TfDepthsEnum : return "BasalforcingsIsmp6TfDepths";
     78                case BasalforcingsIsmp6AverageTfEnum : return "BasalforcingsIsmp6AverageTf";
    7379                case BasalforcingsLowercrustheatEnum : return "BasalforcingsLowercrustheat";
    7480                case BasalforcingsMantleconductivityEnum : return "BasalforcingsMantleconductivity";
     
    443449                case BasalforcingsGroundediceMeltingRateEnum : return "BasalforcingsGroundediceMeltingRate";
    444450                case BasalforcingsIsmp6TfEnum : return "BasalforcingsIsmp6Tf";
     451                case BasalforcingsIsmp6TfShelfEnum : return "BasalforcingsIsmp6TfShelf";
     452                case BasalforcingsIsmp6BasinIdEnum : return "BasalforcingsIsmp6BasinId";
    445453                case BasalforcingsPicoBasinIdEnum : return "BasalforcingsPicoBasinId";
    446454                case BasalforcingsPicoBoxIdEnum : return "BasalforcingsPicoBoxId";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r23782 r23795  
    7171              else if (strcmp(name,"BasalforcingsDtbg")==0) return BasalforcingsDtbgEnum;
    7272              else if (strcmp(name,"Basalforcings")==0) return BasalforcingsEnum;
     73              else if (strcmp(name,"BasalforcingsIsmp6BasinArea")==0) return BasalforcingsIsmp6BasinAreaEnum;
     74              else if (strcmp(name,"BasalforcingsIsmp6DeltaT")==0) return BasalforcingsIsmp6DeltaTEnum;
     75              else if (strcmp(name,"BasalforcingsIsmp6Gamma0")==0) return BasalforcingsIsmp6Gamma0Enum;
     76              else if (strcmp(name,"BasalforcingsIsmp6NumBasins")==0) return BasalforcingsIsmp6NumBasinsEnum;
     77              else if (strcmp(name,"BasalforcingsIsmp6TfDepths")==0) return BasalforcingsIsmp6TfDepthsEnum;
     78              else if (strcmp(name,"BasalforcingsIsmp6AverageTf")==0) return BasalforcingsIsmp6AverageTfEnum;
    7379              else if (strcmp(name,"BasalforcingsLowercrustheat")==0) return BasalforcingsLowercrustheatEnum;
    7480              else if (strcmp(name,"BasalforcingsMantleconductivity")==0) return BasalforcingsMantleconductivityEnum;
     
    131137              else if (strcmp(name,"FlowequationIsFS")==0) return FlowequationIsFSEnum;
    132138              else if (strcmp(name,"FlowequationIsHO")==0) return FlowequationIsHOEnum;
    133               else if (strcmp(name,"FlowequationIsL1L2")==0) return FlowequationIsL1L2Enum;
     139         else stage=2;
     140   }
     141   if(stage==2){
     142              if (strcmp(name,"FlowequationIsL1L2")==0) return FlowequationIsL1L2Enum;
    134143              else if (strcmp(name,"FlowequationIsSIA")==0) return FlowequationIsSIAEnum;
    135144              else if (strcmp(name,"FlowequationIsSSA")==0) return FlowequationIsSSAEnum;
     
    137146              else if (strcmp(name,"FrictionF")==0) return FrictionFEnum;
    138147              else if (strcmp(name,"FrictionGamma")==0) return FrictionGammaEnum;
    139          else stage=2;
    140    }
    141    if(stage==2){
    142               if (strcmp(name,"FrictionLaw")==0) return FrictionLawEnum;
     148              else if (strcmp(name,"FrictionLaw")==0) return FrictionLawEnum;
    143149              else if (strcmp(name,"FrictionPseudoplasticityExponent")==0) return FrictionPseudoplasticityExponentEnum;
    144150              else if (strcmp(name,"FrictionThresholdSpeed")==0) return FrictionThresholdSpeedEnum;
     
    254260              else if (strcmp(name,"MaterialsThermalconductivity")==0) return MaterialsThermalconductivityEnum;
    255261              else if (strcmp(name,"MaterialsThermalExchangeVelocity")==0) return MaterialsThermalExchangeVelocityEnum;
    256               else if (strcmp(name,"MeltingOffset")==0) return MeltingOffsetEnum;
     262         else stage=3;
     263   }
     264   if(stage==3){
     265              if (strcmp(name,"MeltingOffset")==0) return MeltingOffsetEnum;
    257266              else if (strcmp(name,"MeshAverageVertexConnectivity")==0) return MeshAverageVertexConnectivityEnum;
    258267              else if (strcmp(name,"MeshElementtype")==0) return MeshElementtypeEnum;
     
    260269              else if (strcmp(name,"MeshNumberofvertices")==0) return MeshNumberofverticesEnum;
    261270              else if (strcmp(name,"ModelId")==0) return ModelIdEnum;
    262          else stage=3;
    263    }
    264    if(stage==3){
    265               if (strcmp(name,"Nodes")==0) return NodesEnum;
     271              else if (strcmp(name,"Nodes")==0) return NodesEnum;
    266272              else if (strcmp(name,"NumModels")==0) return NumModelsEnum;
    267273              else if (strcmp(name,"OceanGridNx")==0) return OceanGridNxEnum;
     
    377383              else if (strcmp(name,"SteadystateNumRequestedOutputs")==0) return SteadystateNumRequestedOutputsEnum;
    378384              else if (strcmp(name,"SteadystateReltol")==0) return SteadystateReltolEnum;
    379               else if (strcmp(name,"SteadystateRequestedOutputs")==0) return SteadystateRequestedOutputsEnum;
     385         else stage=4;
     386   }
     387   if(stage==4){
     388              if (strcmp(name,"SteadystateRequestedOutputs")==0) return SteadystateRequestedOutputsEnum;
    380389              else if (strcmp(name,"Step")==0) return StepEnum;
    381390              else if (strcmp(name,"StressbalanceAbstol")==0) return StressbalanceAbstolEnum;
     
    383392              else if (strcmp(name,"StressbalanceIsnewton")==0) return StressbalanceIsnewtonEnum;
    384393              else if (strcmp(name,"StressbalanceMaxiter")==0) return StressbalanceMaxiterEnum;
    385          else stage=4;
    386    }
    387    if(stage==4){
    388               if (strcmp(name,"StressbalanceNumRequestedOutputs")==0) return StressbalanceNumRequestedOutputsEnum;
     394              else if (strcmp(name,"StressbalanceNumRequestedOutputs")==0) return StressbalanceNumRequestedOutputsEnum;
    389395              else if (strcmp(name,"StressbalancePenaltyFactor")==0) return StressbalancePenaltyFactorEnum;
    390396              else if (strcmp(name,"StressbalanceReltol")==0) return StressbalanceReltolEnum;
     
    452458              else if (strcmp(name,"BasalforcingsGroundediceMeltingRate")==0) return BasalforcingsGroundediceMeltingRateEnum;
    453459              else if (strcmp(name,"BasalforcingsIsmp6Tf")==0) return BasalforcingsIsmp6TfEnum;
     460              else if (strcmp(name,"BasalforcingsIsmp6TfShelf")==0) return BasalforcingsIsmp6TfShelfEnum;
     461              else if (strcmp(name,"BasalforcingsIsmp6BasinId")==0) return BasalforcingsIsmp6BasinIdEnum;
    454462              else if (strcmp(name,"BasalforcingsPicoBasinId")==0) return BasalforcingsPicoBasinIdEnum;
    455463              else if (strcmp(name,"BasalforcingsPicoBoxId")==0) return BasalforcingsPicoBoxIdEnum;
     
    498506              else if (strcmp(name,"EplHeadOld")==0) return EplHeadOldEnum;
    499507              else if (strcmp(name,"EplHeadSlopeX")==0) return EplHeadSlopeXEnum;
    500               else if (strcmp(name,"EplHeadSlopeY")==0) return EplHeadSlopeYEnum;
     508         else stage=5;
     509   }
     510   if(stage==5){
     511              if (strcmp(name,"EplHeadSlopeY")==0) return EplHeadSlopeYEnum;
    501512              else if (strcmp(name,"EsaDeltathickness")==0) return EsaDeltathicknessEnum;
    502513              else if (strcmp(name,"EsaEmotion")==0) return EsaEmotionEnum;
     
    506517              else if (strcmp(name,"EsaYmotion")==0) return EsaYmotionEnum;
    507518              else if (strcmp(name,"EtaDiff")==0) return EtaDiffEnum;
    508          else stage=5;
    509    }
    510    if(stage==5){
    511               if (strcmp(name,"FrictionAs")==0) return FrictionAsEnum;
     519              else if (strcmp(name,"FrictionAs")==0) return FrictionAsEnum;
    512520              else if (strcmp(name,"FrictionC")==0) return FrictionCEnum;
    513521              else if (strcmp(name,"FrictionCoefficientcoulomb")==0) return FrictionCoefficientcoulombEnum;
     
    621629              else if (strcmp(name,"SmbC")==0) return SmbCEnum;
    622630              else if (strcmp(name,"SmbDailysnowfall")==0) return SmbDailysnowfallEnum;
    623               else if (strcmp(name,"SmbDailyrainfall")==0) return SmbDailyrainfallEnum;
     631         else stage=6;
     632   }
     633   if(stage==6){
     634              if (strcmp(name,"SmbDailyrainfall")==0) return SmbDailyrainfallEnum;
    624635              else if (strcmp(name,"SmbDailydsradiation")==0) return SmbDailydsradiationEnum;
    625636              else if (strcmp(name,"SmbDailydlradiation")==0) return SmbDailydlradiationEnum;
     
    629640              else if (strcmp(name,"SmbDailyairhumidity")==0) return SmbDailyairhumidityEnum;
    630641              else if (strcmp(name,"SmbDailytemperature")==0) return SmbDailytemperatureEnum;
    631          else stage=6;
    632    }
    633    if(stage==6){
    634               if (strcmp(name,"SmbD")==0) return SmbDEnum;
     642              else if (strcmp(name,"SmbD")==0) return SmbDEnum;
    635643              else if (strcmp(name,"SmbDini")==0) return SmbDiniEnum;
    636644              else if (strcmp(name,"SmbDlwrf")==0) return SmbDlwrfEnum;
     
    744752              else if (strcmp(name,"WaterColumnOld")==0) return WaterColumnOldEnum;
    745753              else if (strcmp(name,"WaterfractionDrainage")==0) return WaterfractionDrainageEnum;
    746               else if (strcmp(name,"WaterfractionDrainageIntegrated")==0) return WaterfractionDrainageIntegratedEnum;
     754         else stage=7;
     755   }
     756   if(stage==7){
     757              if (strcmp(name,"WaterfractionDrainageIntegrated")==0) return WaterfractionDrainageIntegratedEnum;
    747758              else if (strcmp(name,"Waterfraction")==0) return WaterfractionEnum;
    748759              else if (strcmp(name,"Waterheight")==0) return WaterheightEnum;
     
    752763              else if (strcmp(name,"AdaptiveTimestepping")==0) return AdaptiveTimesteppingEnum;
    753764              else if (strcmp(name,"AdjointBalancethickness2Analysis")==0) return AdjointBalancethickness2AnalysisEnum;
    754          else stage=7;
    755    }
    756    if(stage==7){
    757               if (strcmp(name,"AdjointBalancethicknessAnalysis")==0) return AdjointBalancethicknessAnalysisEnum;
     765              else if (strcmp(name,"AdjointBalancethicknessAnalysis")==0) return AdjointBalancethicknessAnalysisEnum;
    758766              else if (strcmp(name,"AdjointHorizAnalysis")==0) return AdjointHorizAnalysisEnum;
    759767              else if (strcmp(name,"Adjointp")==0) return AdjointpEnum;
     
    867875              else if (strcmp(name,"GaussSeg")==0) return GaussSegEnum;
    868876              else if (strcmp(name,"GaussTetra")==0) return GaussTetraEnum;
    869               else if (strcmp(name,"GaussTria")==0) return GaussTriaEnum;
     877         else stage=8;
     878   }
     879   if(stage==8){
     880              if (strcmp(name,"GaussTria")==0) return GaussTriaEnum;
    870881              else if (strcmp(name,"GenericOption")==0) return GenericOptionEnum;
    871882              else if (strcmp(name,"GenericParam")==0) return GenericParamEnum;
     
    875886              else if (strcmp(name,"Gradient1")==0) return Gradient1Enum;
    876887              else if (strcmp(name,"Gradient2")==0) return Gradient2Enum;
    877          else stage=8;
    878    }
    879    if(stage==8){
    880               if (strcmp(name,"Gradient3")==0) return Gradient3Enum;
     888              else if (strcmp(name,"Gradient3")==0) return Gradient3Enum;
    881889              else if (strcmp(name,"GroundedArea")==0) return GroundedAreaEnum;
    882890              else if (strcmp(name,"GroundedAreaScaled")==0) return GroundedAreaScaledEnum;
     
    990998              else if (strcmp(name,"None")==0) return NoneEnum;
    991999              else if (strcmp(name,"Numberedcostfunction")==0) return NumberedcostfunctionEnum;
    992               else if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum;
     1000         else stage=9;
     1001   }
     1002   if(stage==9){
     1003              if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum;
    9931004              else if (strcmp(name,"OldGradient")==0) return OldGradientEnum;
    9941005              else if (strcmp(name,"OneLayerP4z")==0) return OneLayerP4zEnum;
     
    9981009              else if (strcmp(name,"Outputdefinition10")==0) return Outputdefinition10Enum;
    9991010              else if (strcmp(name,"Outputdefinition11")==0) return Outputdefinition11Enum;
    1000          else stage=9;
    1001    }
    1002    if(stage==9){
    1003               if (strcmp(name,"Outputdefinition12")==0) return Outputdefinition12Enum;
     1011              else if (strcmp(name,"Outputdefinition12")==0) return Outputdefinition12Enum;
    10041012              else if (strcmp(name,"Outputdefinition13")==0) return Outputdefinition13Enum;
    10051013              else if (strcmp(name,"Outputdefinition14")==0) return Outputdefinition14Enum;
     
    11131121              else if (strcmp(name,"P2xP4")==0) return P2xP4Enum;
    11141122              else if (strcmp(name,"Paterson")==0) return PatersonEnum;
    1115               else if (strcmp(name,"Pengrid")==0) return PengridEnum;
     1123         else stage=10;
     1124   }
     1125   if(stage==10){
     1126              if (strcmp(name,"Pengrid")==0) return PengridEnum;
    11161127              else if (strcmp(name,"Penpair")==0) return PenpairEnum;
    11171128              else if (strcmp(name,"Penta")==0) return PentaEnum;
     
    11211132              else if (strcmp(name,"ProfilingCurrentMem")==0) return ProfilingCurrentMemEnum;
    11221133              else if (strcmp(name,"ProfilingSolutionTime")==0) return ProfilingSolutionTimeEnum;
    1123          else stage=10;
    1124    }
    1125    if(stage==10){
    1126               if (strcmp(name,"Regionaloutput")==0) return RegionaloutputEnum;
     1134              else if (strcmp(name,"Regionaloutput")==0) return RegionaloutputEnum;
    11271135              else if (strcmp(name,"Regular")==0) return RegularEnum;
    11281136              else if (strcmp(name,"Riftfront")==0) return RiftfrontEnum;
     
    12361244              else if (strcmp(name,"SealevelObs")==0) return SealevelObsEnum;
    12371245              else if (strcmp(name,"SealevelWeights")==0) return SealevelWeightsEnum;
    1238               else if (strcmp(name,"StrainRate")==0) return StrainRateEnum;
     1246         else stage=11;
     1247   }
     1248   if(stage==11){
     1249              if (strcmp(name,"StrainRate")==0) return StrainRateEnum;
    12391250              else if (strcmp(name,"StressbalanceViscosityOvershoot")==0) return StressbalanceViscosityOvershootEnum;
    12401251              else if (strcmp(name,"StressTensor")==0) return StressTensorEnum;
     
    12431254              else if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum;
    12441255              else if (strcmp(name,"MaximumNumberOfDefinitions")==0) return MaximumNumberOfDefinitionsEnum;
    1245          else stage=11;
     1256         else stage=12;
    12461257   }
    12471258        /*If we reach this point, the string provided has not been found*/
Note: See TracChangeset for help on using the changeset viewer.