Changeset 19392


Ignore:
Timestamp:
06/05/15 05:14:41 (10 years ago)
Author:
cborstad
Message:

BUG: some fixes in case model fields are NaN when collapse is called for a python model

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/classes/model.py

    r19257 r19392  
    670670                if not numpy.isnan(md.inversion.vel_obs).all(): md.inversion.vel_obs=project2d(md,md.inversion.vel_obs,md.mesh.numberoflayers)
    671671                if not numpy.isnan(md.inversion.cost_functions_coefficients).all(): md.inversion.cost_functions_coefficients=project2d(md,md.inversion.cost_functions_coefficients,md.mesh.numberoflayers)
    672                 if md.inversion.min_parameters.size>1: md.inversion.min_parameters=project2d(md,md.inversion.min_parameters,md.mesh.numberoflayers)
    673                 if md.inversion.max_parameters.size>1: md.inversion.max_parameters=project2d(md,md.inversion.max_parameters,md.mesh.numberoflayers)
     672                if isinstance(md.inversion.min_parameters,numpy.ndarray):
     673                    if md.inversion.min_parameters.size>1: md.inversion.min_parameters=project2d(md,md.inversion.min_parameters,md.mesh.numberoflayers)
     674                if isinstance(md.inversion.max_parameters,numpy.ndarray):
     675                    if md.inversion.max_parameters.size>1: md.inversion.max_parameters=project2d(md,md.inversion.max_parameters,md.mesh.numberoflayers)
    674676                if not numpy.isnan(md.surfaceforcings.mass_balance).all():
    675677                        md.surfaceforcings.mass_balance=project2d(md,md.surfaceforcings.mass_balance,md.mesh.numberoflayers)
     
    703705                # Hydrologydc variables
    704706                if hasattr(md.hydrology,'hydrologydc'):
    705                         md.hydrology.spcsediment_head=project2d(md,md.hydrology.spcsediment_head,1)
    706                         md.hydrology.mask_eplactive_node=project2d(md,md.hydrology.mask_eplactive_node,1)
    707                         md.hydrology.sediment_transmitivity=project2d(md,md.hydrology.sediment_transmitivity,1)
    708                         md.hydrology.basal_moulin_input=project2d(md,md.hydrology.basal_moulin_input,1)
    709                 if md.hydrology.isefficientlayer == 1:
     707                    md.hydrology.spcsediment_head=project2d(md,md.hydrology.spcsediment_head,1)
     708                    md.hydrology.mask_eplactive_node=project2d(md,md.hydrology.mask_eplactive_node,1)
     709                    md.hydrology.sediment_transmitivity=project2d(md,md.hydrology.sediment_transmitivity,1)
     710                    md.hydrology.basal_moulin_input=project2d(md,md.hydrology.basal_moulin_input,1)
     711                    if md.hydrology.isefficientlayer == 1:
    710712                        md.hydrology.spcepl_head=project2d(md,md.hydrology.spcepl_head,1)
    711713
     
    744746                md.geometry.thickness=project2d(md,md.geometry.thickness,1)
    745747                md.geometry.base=project2d(md,md.geometry.base,1)
    746                 md.geometry.bed=project2d(md,md.geometry.bed,1)
     748                if isinstance(md.geometry.bed,numpy.ndarray):
     749                    md.geometry.bed=project2d(md,md.geometry.bed,1)
    747750                md.mask.groundedice_levelset=project2d(md,md.mask.groundedice_levelset,1)
    748751                md.mask.ice_levelset=project2d(md,md.mask.ice_levelset,1)
    749752
    750753                #lat long
    751                 if md.mesh.lat.size==md.mesh.numberofvertices:  md.mesh.lat=project2d(md,md.mesh.lat,1)
    752                 if md.mesh.long.size==md.mesh.numberofvertices: md.mesh.long=project2d(md,md.mesh.long,1)
     754                if isinstance(md.mesh.lat,numpy.ndarray):
     755                    if md.mesh.lat.size==md.mesh.numberofvertices:  md.mesh.lat=project2d(md,md.mesh.lat,1)
     756                if isinstance(md.mesh.long,numpy.ndarray):
     757                    if md.mesh.long.size==md.mesh.numberofvertices: md.mesh.long=project2d(md,md.mesh.long,1)
    753758
    754759                #Initialize with the 2d mesh
Note: See TracChangeset for help on using the changeset viewer.