Salome HOME
Fix crash in Interpolate if the field is float
[modules/med.git] / src / MEDCalc / cmp / MEDDataManager_i.cxx
index 756b529b9f6fb0fc186352c1e119d116611fe471..cb4127df578c15dcf0a760993127efea2a5bf988 100644 (file)
@@ -722,6 +722,16 @@ MEDCouplingFieldDouble * MEDDataManager_i::getFieldDouble(const MEDCALC::FieldHa
                 fieldHandler->iteration,
                 fieldHandler->order));
   MCAuto<MEDCouplingFieldDouble> myField(DynamicCast<MEDCouplingField,MEDCouplingFieldDouble>(myFieldTmpp));
+
+  // trying float field
+  if (!myField){
+    MCAuto<MEDCouplingFieldFloat> myFieldFloat(DynamicCast<MEDCouplingField,MEDCouplingFieldFloat>(myFieldTmpp));
+    if (myFieldFloat){
+      myField = myFieldFloat->convertToDblField();
+      LOG("getFieldDouble: field "<<fieldHandler->fieldname<<" was read as float and converted to double.");
+    }
+  }
+
   myField->setMesh(myMesh);
   _fieldDoubleMap[fieldHandler->id] = myField.retn();
   return myField;