Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 155974 | Differences between
and this patch

Collapse All | Expand All

(-)MED_SRC_3.2.2/adm_local/unix/config_files/check_Med2.m4 (-2 / +79 lines)
Lines 69-80 Link Here
69
69
70
dnl check med2 header
70
dnl check med2 header
71
71
72
f77int="F77INT32"
73
case  $host_os in
74
   irix5.* | irix6.* | osf4.* | osf5.* | linux*  )
75
76
        linux64="true"
77
        expr "$host_os" : 'linux' >/dev/null && test ! x"$host_cpu" = x"x86_64" && linux64="false"
78
	if test ! x"$linux64" = "xfalse" ; then
79
	  echo "$as_me:$LINENO: checking for 64bits integers size in F77/F90" >&5
80
echo $ECHO_N "checking for 64bits integers size in F77/F90... $ECHO_C" >&6
81
	  # Check whether --enable-int64 or --disable-int64 was given.
82
if test "${enable_int64+set}" = set; then
83
  enableval="$enable_int64"
84
85
fi;
86
	  case "X-$enable_int64" in
87
	    X-no)
88
	     echo "$as_me:$LINENO: result: \"disabled\"" >&5
89
echo "${ECHO_T}\"disabled\"" >&6
90
	     SUFFIXES="_32"
91
	     ;;
92
	    *)
93
	     echo "$as_me:$LINENO: result: \"enabled\"" >&5
94
echo "${ECHO_T}\"enabled\"" >&6
95
	     SUFFIXES=""
96
	     f77int="F77INT64"
97
	     ;;
98
	  esac
99
	fi
100
     ;;
101
   *)
102
     ;;
103
esac
104
105
case $host_os in
106
    linux*)
107
        test x"$linux64" = x"true" && \
108
          MACHINE="PCLINUX64${SUFFIXES}" || \
109
	MACHINE=PCLINUX
110
	;;
111
    hpux*)
112
	MACHINE=HP9000
113
	;;
114
    aix4.*)
115
	MACHINE=RS6000
116
	host_os_novers=aix4.x
117
	;;
118
    irix5.*)
119
	MACHINE="IRIX64${SUFFIXES}"
120
	host_os_novers=irix5.x
121
	;;
122
    irix6.*)
123
	MACHINE="IRIX64${SUFFIXES}"
124
	host_os_novers=irix6.x
125
	;;
126
    osf4.*)
127
	MACHINE="OSF1${SUFFIXES}"
128
	host_os_novers=osf4.x
129
	;;
130
    osf5.*)
131
	MACHINE="OSF1${SUFFIXES}"
132
	 host_os_novers=osf5.x
133
	 ;;
134
    solaris2.*)
135
	MACHINE=SUN4SOL2
136
	 host_os_novers=solaris2.x
137
	 ;;
138
    uxpv*)
139
	MACHINE=VPP5000
140
	 ;;
141
    *)
142
	MACHINE=
143
	 host_os_novers=$host_os
144
	 ;;
145
esac
146
72
CPPFLAGS_old="$CPPFLAGS"
147
CPPFLAGS_old="$CPPFLAGS"
73
dnl we must test system : linux = -DPCLINUX
148
dnl we must test system : linux = -DPCLINUX
74
dnl we must test system : Alpha-OSF = -DOSF1
149
dnl we must test system : Alpha-OSF = -DOSF1
75
case $host_os in
150
case $host_os in
76
   linux*)
151
   linux*)
77
      CPPFLAGS="$CPPFLAGS -DPCLINUX $LOCAL_INCLUDES"
152
      CPPFLAGS="$CPPFLAGS -D$MACHINE $LOCAL_INCLUDES"
153
dnl      CPPFLAGS="$CPPFLAGS -DPCLINUX $LOCAL_INCLUDES"
78
      ;;
154
      ;;
79
   osf*)
155
   osf*)
80
      CPPFLAGS="$CPPFLAGS -DOSF1 $LOCAL_INCLUDES"
156
      CPPFLAGS="$CPPFLAGS -DOSF1 $LOCAL_INCLUDES"
Lines 99-105 Link Here
99
then
175
then
100
case $host_os in
176
case $host_os in
101
   linux*)
177
   linux*)
102
        MED2_INCLUDES="-DPCLINUX $LOCAL_INCLUDES"
178
      MED2_INCLUDES="-D$MACHINE $LOCAL_INCLUDES"
179
dnl      MED2_INCLUDES="-DPCLINUX $LOCAL_INCLUDES"
103
      ;;
180
      ;;
104
   osf*)
181
   osf*)
105
      MED2_INCLUDES="-DOSF1 $LOCAL_INCLUDES"
182
      MED2_INCLUDES="-DOSF1 $LOCAL_INCLUDES"
(-)MED_SRC_3.2.2/idl/MED.idl (+14 lines)
Lines 651-656 Link Here
651
      raises (SALOME::SALOME_Exception);
651
      raises (SALOME::SALOME_Exception);
652
652
653
    /*!
653
    /*!
654
      If the method %isOnAllElements() returns False, this method returns an array which
655
     contains all numbers of given %medGeometryElement.
656
657
      Numbering is from file, ie numbers are bounded by 1 and
658
      MESH::getNumberOfElement(entity,MED_ALL_ELEMENTS) and not by 1 and
659
      MESH::getNumberOfElement(entity,geomElement).
660
661
      \note
662
      If %SUPPORT is defined on MED_NODE, use MED_NONE %medGeometryElement type.
663
    */
664
    SALOME_MED::long_array getNumberFromFile(in medGeometryElement geomElement)
665
      raises (SALOME::SALOME_Exception);
666
667
    /*!
654
      Idem SALOME::Sender getNumber(in medGeometryElement geomElement) but returning Sender.\n
668
      Idem SALOME::Sender getNumber(in medGeometryElement geomElement) but returning Sender.\n
655
      It could be used in a Client code using the MED Client classes.
669
      It could be used in a Client code using the MED Client classes.
656
     */
670
     */
(-)MED_SRC_3.2.2/src/MED/Med_Gen_i.cxx (-79 / +137 lines)
Lines 409-415 Link Here
409
// Creation du champ
409
// Creation du champ
410
410
411
	FIELD_ * myField;
411
	FIELD_ * myField;
412
        MED * mymed = new MED(MED_DRIVER,fileName) ;
412
	MED * mymed;
413
	try
414
	{
415
	  mymed = new MED(MED_DRIVER,fileName) ;
416
	} 
417
	catch (const std::exception & ex)
418
	{
419
	  MESSAGE("Exception Interceptee : ");
420
	  SCRUTE(ex.what());
421
	  THROW_SALOME_CORBA_EXCEPTION("Unable to find this file ",SALOME::BAD_PARAM);
422
	}
423
	
413
	try
424
	try
414
	{
425
	{
415
		deque<string> fieldsNames = mymed->getFieldNames() ;
426
		deque<string> fieldsNames = mymed->getFieldNames() ;
Lines 553-559 Link Here
553
    else
564
    else
554
      // temporary file
565
      // temporary file
555
      return make_pair
566
      return make_pair
556
        ( isSave ? SALOMEDS_Tool::GetTmpDir() : theURL,
567
        ( //isSave ? SALOMEDS_Tool::GetTmpDir() : theURL,
568
         SALOMEDS_Tool::GetTmpDir(),
557
          "tmp.med" );
569
          "tmp.med" );
558
  }
570
  }
559
571
Lines 600-621 Link Here
600
      SALOMEDS_Tool::RemoveTemporaryFiles(aPath.c_str(), aSeq.in(), true);
612
      SALOMEDS_Tool::RemoveTemporaryFiles(aPath.c_str(), aSeq.in(), true);
601
    }
613
    }
602
614
603
    SALOMEDS::SObject_var aMedMeshFather = theStudy->FindObject("MEDMESH");
615
    // First save fields and their meshes and then not saved meshes
604
    if (!CORBA::is_nil(aMedMeshFather)) {
605
      SALOMEDS::ChildIterator_var anIter = theStudy->NewChildIterator(aMedMeshFather);
606
      anIter->InitEx(1);
607
      for(; anIter->More(); anIter->Next()) {
608
        SALOMEDS::SObject_var aSO = anIter->Value();
609
        SALOME_MED::MESH_var myMesh = SALOME_MED::MESH::_narrow( aSO->GetObject() );
610
        if (! CORBA::is_nil(myMesh)) {
611
          long driverId = myMesh->addDriver(SALOME_MED::MED_DRIVER,
612
                                            aFile.c_str(),
613
                                            myMesh->getName());
614
          myMesh->write(driverId,"");
615
        }
616
      }
617
    }
618
616
617
    set< CORBA::Long > savedMeshIDs;
619
    SALOMEDS::SObject_var aMedFieldFather = theStudy->FindObject("MEDFIELD");
618
    SALOMEDS::SObject_var aMedFieldFather = theStudy->FindObject("MEDFIELD");
620
    if (!CORBA::is_nil(aMedFieldFather)) {
619
    if (!CORBA::is_nil(aMedFieldFather)) {
621
      SALOMEDS::ChildIterator_var anIter = theStudy->NewChildIterator(aMedFieldFather);
620
      SALOMEDS::ChildIterator_var anIter = theStudy->NewChildIterator(aMedFieldFather);
Lines 628-636 Link Here
628
                                             aFile.c_str(),
627
                                             aFile.c_str(),
629
                                             myField->getName());
628
                                             myField->getName());
630
          myField->write(driverId,"");
629
          myField->write(driverId,"");
630
          // save mesh
631
          SALOME_MED::SUPPORT_var sup = myField->getSupport();
632
          if ( !sup->_is_nil() ) {
633
            SALOME_MED::MESH_var mesh = sup->getMesh();
634
            if ( !mesh->_is_nil() ) {
635
              CORBA::Long corbaID = mesh->getCorbaIndex();
636
              if ( savedMeshIDs.find( corbaID ) == savedMeshIDs.end() ) {
637
                long driverId = mesh->addDriver(SALOME_MED::MED_DRIVER,
638
                                                aFile.c_str(),
639
                                                mesh->getName());
640
                mesh->write(driverId,"");
641
                savedMeshIDs.insert( corbaID );
642
              }
643
            }
644
          }
631
        }
645
        }
632
      }
646
      }
633
    }
647
    }
648
649
    SALOMEDS::SObject_var aMedMeshFather = theStudy->FindObject("MEDMESH");
650
    if (!CORBA::is_nil(aMedMeshFather)) {
651
      SALOMEDS::ChildIterator_var anIter = theStudy->NewChildIterator(aMedMeshFather);
652
      anIter->InitEx(1);
653
      for(; anIter->More(); anIter->Next()) {
654
        SALOMEDS::SObject_var aSO = anIter->Value();
655
        SALOME_MED::MESH_var myMesh = SALOME_MED::MESH::_narrow( aSO->GetObject() );
656
        if (! CORBA::is_nil(myMesh)) {
657
          CORBA::Long corbaID = myMesh->getCorbaIndex();
658
          if ( savedMeshIDs.find( corbaID ) == savedMeshIDs.end() ) {
659
            long driverId = myMesh->addDriver(SALOME_MED::MED_DRIVER,
660
                                              aFile.c_str(),
661
                                              myMesh->getName());
662
            myMesh->write(driverId,"");
663
            savedMeshIDs.insert( corbaID );
664
          }
665
        }
666
      }
667
    }
668
634
    if ( isAscii )
669
    if ( isAscii )
635
      HDFascii::ConvertFromHDFToASCII( aFile.c_str(), true);
670
      HDFascii::ConvertFromHDFToASCII( aFile.c_str(), true);
636
671
Lines 646-655 Link Here
646
    // Return the created byte stream
681
    // Return the created byte stream
647
    END_OF(LOC);
682
    END_OF(LOC);
648
    return aStreamFile._retn();
683
    return aStreamFile._retn();
649
  }
684
685
  } // end of saveStudy()
686
687
  //================================================================================
688
  /*!
689
   * \brief Load study contents
690
    * \param theStudy - 
691
    * \param theURL - 
692
    * \param isMultiFile - 
693
    * \param isASCII - 
694
    * \retval char* - 
695
   */
696
  //================================================================================
697
698
  void loadStudy(SALOMEDS::Study_ptr theStudy,
699
                 const SALOMEDS::TMPFile& theStream,
700
                 const char*         theURL,
701
                 CORBA::Boolean      isMultiFile,
702
                 CORBA::Boolean      isASCII)
703
  {
704
    // Get a temporary directory for a file
705
//     TCollection_AsciiString aTmpDir =
706
//       isMultiFile ? (char*)theURL : (char*)SALOMEDS_Tool::GetTmpDir().c_str();
707
    //_saveFileName = CORBA::string_dup(aTmpDir.ToCString());
708
//     SALOMEDS::ListOfFileNames_var aSeq =
709
//       SALOMEDS_Tool::PutStreamToFiles(theStream, aTmpDir.ToCString(), isMultiFile);
710
711
    // Get file name
712
    pair<string,string> aDir_aFileName = getPersistanceDirAndFileName
713
      (theStudy, theURL, isMultiFile, RESTORE);
714
    string& aPath     = aDir_aFileName.first;
715
    string& aBaseName = aDir_aFileName.second;
716
    string aFile      = aPath + aBaseName;
717
718
    SALOMEDS::ListOfFileNames_var aSeq =
719
      SALOMEDS_Tool::PutStreamToFiles(theStream, aPath.c_str(), isMultiFile);
720
721
    string aASCIIPath, aASCIIFile;
722
    if (isASCII)
723
    {
724
      aASCIIPath = HDFascii::ConvertFromASCIIToHDF(aFile.c_str());
725
      aASCIIFile = "hdf_from_ascii.hdf";
726
      aFile = aASCIIPath + aASCIIFile;
727
    }
728
    MED_i* myMedI = new MED_i();
729
730
    // Read all meshes with supports and all fields
731
    try
732
    {
733
//      cout << "-----------------Filename " << aFile << endl;
734
      myMedI->initWithFieldType( theStudy, MED_DRIVER, aFile, true );
735
736
      // publishing must be done by initWithFieldType according to <persistence> flag
737
      SALOME_MED::MED_ptr myMedIOR = myMedI->_this() ;
738
      myMedI->addInStudy(theStudy,myMedIOR, 0);
739
    }
740
    catch (const std::exception & ex)
741
    {
742
      MESSAGE("Exception Interceptee : ");
743
      SCRUTE(ex.what());
744
      THROW_SALOME_CORBA_EXCEPTION("Unable to read a hdf file",SALOME::BAD_PARAM);
745
    };
746
747
    // Remove tmp files
748
    //SALOMEDS::ListOfFileNames_var aSeq = new SALOMEDS::ListOfFileNames;
749
    if (!isMultiFile) {
750
      aSeq->length(1);
751
      aSeq[0]=CORBA::string_dup(aBaseName.c_str());
752
//      cout << "-----------------Remove " << aPath<< ", "<<aBaseName << endl;
753
      SALOMEDS_Tool::RemoveTemporaryFiles(aPath.c_str(), aSeq.in(), true);
754
    }
755
    if (isASCII)
756
    {
757
      aSeq->length(1);
758
      aSeq[0] = CORBA::string_dup(aASCIIFile.c_str());
759
//      cout << "-----------------Remove " << aASCIIPath<< ", "<<aASCIIFile << endl;
760
      SALOMEDS_Tool::RemoveTemporaryFiles(aASCIIPath.c_str(), aSeq, true);
761
    }
762
763
  } // end loadStudy()
650
764
651
} // no name namespace
765
} // no name namespace
652
766
767
653
//================================================================================
768
//================================================================================
654
/*!
769
/*!
655
 * \brief Save data published under MED component
770
 * \brief Save data published under MED component
Lines 697-708 Link Here
697
  const char* LOC = "Med_Gen_i::Load";
812
  const char* LOC = "Med_Gen_i::Load";
698
  BEGIN_OF(LOC);
813
  BEGIN_OF(LOC);
699
814
700
  // Get a temporary directory for a file
815
  loadStudy ( theComponent->GetStudy(), theStream, theURL, isMultiFile, NON_ASCII );
701
  TCollection_AsciiString aTmpDir =
816
702
    (isMultiFile)?TCollection_AsciiString((char*)theURL):(char*)SALOMEDS_Tool::GetTmpDir().c_str();
703
  _saveFileName = CORBA::string_dup(aTmpDir.ToCString());
704
  SALOMEDS::ListOfFileNames_var aSeq =
705
    SALOMEDS_Tool::PutStreamToFiles(theStream, aTmpDir.ToCString(), isMultiFile);
706
  return true;
817
  return true;
707
}
818
}
708
819
Lines 710-716 Link Here
710
				    const SALOMEDS::TMPFile& theStream,
821
				    const SALOMEDS::TMPFile& theStream,
711
				    const char* theURL,
822
				    const char* theURL,
712
				    bool isMultiFile) {
823
				    bool isMultiFile) {
713
  return Load(theComponent, theStream, theURL, isMultiFile);
824
  loadStudy ( theComponent->GetStudy(), theStream, theURL, isMultiFile, ASCII );
825
  return true;
714
}
826
}
715
827
716
//=============================================================================
828
//=============================================================================
Lines 840-899 Link Here
840
  const char * LOC = "Med_Gen_i::LocalPersistentIDToIOR" ;
952
  const char * LOC = "Med_Gen_i::LocalPersistentIDToIOR" ;
841
  BEGIN_OF(LOC) ;
953
  BEGIN_OF(LOC) ;
842
954
843
  bool isMesh, isField;
844
  isMesh = isField = false;
845
846
  if (strcmp(aLocalPersistentID, "_MED Objet Med + /OBJ_MED/") == 0) // MED
847
  {
848
    // Get file name
849
    pair<string,string> aDir_aFileName = getPersistanceDirAndFileName
850
      (theSObject->GetStudy(), _saveFileName.c_str(), isMultiFile, RESTORE);
851
    string& aPath     = aDir_aFileName.first;
852
    string& aBaseName = aDir_aFileName.second;
853
    string aFile      = aPath + aBaseName;
854
855
    string aASCIIPath, aASCIIFile;
856
    if (isASCII)
857
    {
858
      aASCIIPath = HDFascii::ConvertFromASCIIToHDF(aFile.c_str());
859
      aASCIIFile = "hdf_from_ascii.hdf";
860
      aFile = aASCIIPath + aASCIIFile;
861
    }
862
    MED_i* myMedI = new MED_i();
863
864
    // Read all meshes with supports and all fields
865
    try
866
    {
867
//      cout << "-----------------Filename " << aFile << endl;
868
      myMedI->initWithFieldType( theSObject->GetStudy(), MED_DRIVER, aFile, true );
869
    }
870
    catch (const std::exception & ex)
871
    {
872
      MESSAGE("Exception Interceptee : ");
873
      SCRUTE(ex.what());
874
      THROW_SALOME_CORBA_EXCEPTION("Unable to read a hdf file",SALOME::BAD_PARAM);
875
    };
876
877
    // Remove tmp files
878
    SALOMEDS::ListOfFileNames_var aSeq = new SALOMEDS::ListOfFileNames;
879
    if (!isMultiFile) {
880
      aSeq->length(1);
881
      aSeq[0]=CORBA::string_dup(aBaseName.c_str());
882
//      cout << "-----------------Remove " << aPath<< ", "<<aBaseName << endl;
883
      SALOMEDS_Tool::RemoveTemporaryFiles(aPath.c_str(), aSeq.in(), true);
884
    }
885
    if (isASCII)
886
    {
887
      aSeq->length(1);
888
      aSeq[0] = CORBA::string_dup(aASCIIFile.c_str());
889
//      cout << "-----------------Remove " << aASCIIPath<< ", "<<aASCIIFile << endl;
890
      SALOMEDS_Tool::RemoveTemporaryFiles(aASCIIPath.c_str(), aSeq, true);
891
    }
892
893
    SALOME_MED::MED_ptr myMedIOR = myMedI->_this();
894
    return(CORBA::string_dup(_orb->object_to_string(myMedIOR)));
895
  }
896
897
  return (CORBA::string_dup( theSObject->GetIOR() )); // is loaded along with MED
955
  return (CORBA::string_dup( theSObject->GetIOR() )); // is loaded along with MED
898
}
956
}
899
957
(-)MED_SRC_3.2.2/src/MEDMEM/MEDMEM_Connectivity.cxx (-7 / +7 lines)
Lines 379-385 Link Here
379
	  if (_polyhedronNodal != (POLYHEDRONARRAY*) NULL)
379
	  if (_polyhedronNodal != (POLYHEDRONARRAY*) NULL)
380
	    delete _polyhedronNodal;
380
	    delete _polyhedronNodal;
381
	  _polyhedronNodal = new POLYHEDRONARRAY(NumberOfPolyhedron,NumberOfFaces,ConnectivitySize);
381
	  _polyhedronNodal = new POLYHEDRONARRAY(NumberOfPolyhedron,NumberOfFaces,ConnectivitySize);
382
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
382
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
383
          int i ;
383
          int i ;
384
          MED_EN::med_int * tmp_PolyhedronIndex = new med_int[NumberOfPolyhedron+1] ;
384
          MED_EN::med_int * tmp_PolyhedronIndex = new med_int[NumberOfPolyhedron+1] ;
385
          for ( i = 0 ; i < NumberOfPolyhedron+1 ; i++ )
385
          for ( i = 0 ; i < NumberOfPolyhedron+1 ; i++ )
Lines 793-799 Link Here
793
	  ((CONNECTIVITY *)(this))->calculateNodalConnectivity();
793
	  ((CONNECTIVITY *)(this))->calculateNodalConnectivity();
794
	  if (_polyhedronNodal != (POLYHEDRONARRAY*) NULL) {
794
	  if (_polyhedronNodal != (POLYHEDRONARRAY*) NULL) {
795
//CCRT
795
//CCRT
796
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
796
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
797
            int i ;
797
            int i ;
798
            const MED_EN::med_int * tmp_PolyhedronConnectivity = _polyhedronNodal->getNodes();
798
            const MED_EN::med_int * tmp_PolyhedronConnectivity = _polyhedronNodal->getNodes();
799
            int * PolyhedronConnectivity = new int[_polyhedronNodal->getNumberOfNodes()] ;
799
            int * PolyhedronConnectivity = new int[_polyhedronNodal->getNumberOfNodes()] ;
Lines 834-840 Link Here
834
      //      calculateNodalConnectivity();
834
      //      calculateNodalConnectivity();
835
      if (_polyhedronNodal != (POLYHEDRONARRAY*) NULL) {
835
      if (_polyhedronNodal != (POLYHEDRONARRAY*) NULL) {
836
//CCRT
836
//CCRT
837
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
837
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
838
            int i ;
838
            int i ;
839
            const MED_EN::med_int * tmp_PolyhedronFacesIndex = _polyhedronNodal->getFacesIndex();
839
            const MED_EN::med_int * tmp_PolyhedronFacesIndex = _polyhedronNodal->getFacesIndex();
840
            int * PolyhedronFacesIndex = new int[_polyhedronNodal->getNumberOfFaces()+1] ;
840
            int * PolyhedronFacesIndex = new int[_polyhedronNodal->getNumberOfFaces()+1] ;
Lines 867-873 Link Here
867
	  //	  calculateNodalConnectivity();
867
	  //	  calculateNodalConnectivity();
868
	  if (_polyhedronNodal != (POLYHEDRONARRAY*) NULL) {
868
	  if (_polyhedronNodal != (POLYHEDRONARRAY*) NULL) {
869
//CCRT
869
//CCRT
870
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
870
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
871
            int i ;
871
            int i ;
872
            const MED_EN::med_int * tmp_PolyhedronIndex = _polyhedronNodal->getPolyhedronIndex();
872
            const MED_EN::med_int * tmp_PolyhedronIndex = _polyhedronNodal->getPolyhedronIndex();
873
            int * PolyhedronIndex = new int[_polyhedronNodal->getNumberOfPolyhedron()+1] ;
873
            int * PolyhedronIndex = new int[_polyhedronNodal->getNumberOfPolyhedron()+1] ;
Lines 1621-1627 Link Here
1621
	    {
1621
	    {
1622
	      int myFaceNumberOfNodes = myPolyhedra.getFacesIndex()[j+1]-myPolyhedra.getFacesIndex()[j];
1622
	      int myFaceNumberOfNodes = myPolyhedra.getFacesIndex()[j+1]-myPolyhedra.getFacesIndex()[j];
1623
//CCRT
1623
//CCRT
1624
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
1624
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
1625
              int ii ;
1625
              int ii ;
1626
              const med_int * Nodes = myPolyhedra.getNodes() ;
1626
              const med_int * Nodes = myPolyhedra.getNodes() ;
1627
              int * tmp_Nodes = new int[myPolyhedra.getNumberOfNodes()] ;
1627
              int * tmp_Nodes = new int[myPolyhedra.getNumberOfNodes()] ;
Lines 1629-1635 Link Here
1629
                 tmp_Nodes[ii] = Nodes[ii] ;
1629
                 tmp_Nodes[ii] = Nodes[ii] ;
1630
              const med_int * FacesIndex = myPolyhedra.getFacesIndex() ;
1630
              const med_int * FacesIndex = myPolyhedra.getFacesIndex() ;
1631
              int * tmp_FacesIndex = new int[myPolyhedra.getNumberOfFaces()+1] ;
1631
              int * tmp_FacesIndex = new int[myPolyhedra.getNumberOfFaces()+1] ;
1632
              for ( ii = 0 ; ii < myPolyhedra.getNumberOfNodes() ; ii++ )
1632
              for ( ii = 0 ; ii < myPolyhedra.getNumberOfFaces() ; ii++ )
1633
                 tmp_FacesIndex[ii] = FacesIndex[ii] ;
1633
                 tmp_FacesIndex[ii] = FacesIndex[ii] ;
1634
//CCRT : copy of Nodes
1634
//CCRT : copy of Nodes
1635
	      MEDMODULUSARRAY face_poly(myFaceNumberOfNodes,tmp_Nodes + tmp_FacesIndex[j]-1);
1635
	      MEDMODULUSARRAY face_poly(myFaceNumberOfNodes,tmp_Nodes + tmp_FacesIndex[j]-1);
Lines 1704-1710 Link Here
1704
1704
1705
      if (getNumberOfPolyhedron() > 0)
1705
      if (getNumberOfPolyhedron() > 0)
1706
	{
1706
	{
1707
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
1707
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
1708
          int * tmp_PolyhedronIndex = new int[getNumberOfPolyhedron()+1] ;
1708
          int * tmp_PolyhedronIndex = new int[getNumberOfPolyhedron()+1] ;
1709
          const MED_EN::med_int * PolyhedronIndex = _polyhedronNodal->getPolyhedronIndex() ;
1709
          const MED_EN::med_int * PolyhedronIndex = _polyhedronNodal->getPolyhedronIndex() ;
1710
          int ii ;
1710
          int ii ;
(-)MED_SRC_3.2.2/src/MEDMEM/MEDMEM_MedFieldDriver21.hxx (-7 / +13 lines)
Lines 441-446 Link Here
441
					 (med_2_1::med_entite_maillage) entityCurrent,
441
					 (med_2_1::med_entite_maillage) entityCurrent,
442
					 (med_2_1::med_geometrie_element)  *currentGeometry,
442
					 (med_2_1::med_geometrie_element)  *currentGeometry,
443
					 j,maa,&ngauss,&numdt,dtunit,&dt,&numo);
443
					 j,maa,&ngauss,&numdt,dtunit,&dt,&numo);
444
	
445
	MED_FIELD_DRIVER<T>::_ptrField->setTime(dt); // PAL12664
444
446
445
	// 	    ret = med_2_2::MEDpasdetempsInfo(id, const_cast <char*> ( fieldName.c_str() ),
447
	// 	    ret = med_2_2::MEDpasdetempsInfo(id, const_cast <char*> ( fieldName.c_str() ),
446
	// 				    (med_2_1::med_entite_maillage)   (*currentEntity).first,
448
	// 				    (med_2_1::med_entite_maillage)   (*currentEntity).first,
Lines 773-779 Link Here
773
  // Pour tester les profils aussi ?
775
  // Pour tester les profils aussi ?
774
  vector< MED_EN::medGeometryElement >  meshGeoType;
776
  vector< MED_EN::medGeometryElement >  meshGeoType;
775
  vector< int >  meshNbOfElOfType;
777
  vector< int >  meshNbOfElOfType;
776
  getMeshGeometricType(id,meshName,mySupport->getEntity(),meshGeoType,meshNbOfElOfType);
778
  MED_FIELD_DRIVER21<T>::getMeshGeometricType(id,meshName,mySupport->getEntity(),meshGeoType,meshNbOfElOfType);
777
  vector<MED_EN::medGeometryElement> supGeoType(mySupport->getTypes(),
779
  vector<MED_EN::medGeometryElement> supGeoType(mySupport->getTypes(),
778
                                                mySupport->getTypes()+mySupport->getNumberOfTypes());
780
                                                mySupport->getTypes()+mySupport->getNumberOfTypes());
779
  vector < int > supNbOfElOfType(mySupport->getNumberOfElements(),
781
  vector < int > supNbOfElOfType(mySupport->getNumberOfElements(),
Lines 855-861 Link Here
855
    MED_FIELD_DRIVER<T>::_ptrField->_numberOfValues+=mySupport->getNumberOfElements(Types[i]); // Ne doit pas prendre en compte les points de Gauss
857
    MED_FIELD_DRIVER<T>::_ptrField->_numberOfValues+=mySupport->getNumberOfElements(Types[i]); // Ne doit pas prendre en compte les points de Gauss
856
858
857
    med_2_1::med_err ret;
859
    med_2_1::med_err ret;
858
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
860
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64) || defined(PCLINUX64_32)
859
    int lgth2=NumberOfValues[i]*numberOfComponents;
861
    int lgth2=NumberOfValues[i]*numberOfComponents;
860
    if(MED_FIELD_DRIVER<T>::_ptrField->getValueType()==MED_EN::MED_INT32)
862
    if(MED_FIELD_DRIVER<T>::_ptrField->getValueType()==MED_EN::MED_INT32)
861
      {
863
      {
Lines 1060-1066 Link Here
1060
    }
1062
    }
1061
  }
1063
  }
1062
      
1064
      
1063
  END_OF(LOC);
1065
  //  END_OF(LOC);
1064
}
1066
}
1065
1067
1066
template <class T> void MED_FIELD_RDONLY_DRIVER21<T>::write( void ) const
1068
template <class T> void MED_FIELD_RDONLY_DRIVER21<T>::write( void ) const
Lines 1102-1108 Link Here
1102
      string   component_unit(component_count*MED_TAILLE_PNOM21,' ') ;
1104
      string   component_unit(component_count*MED_TAILLE_PNOM21,' ') ;
1103
1105
1104
      const string * listcomponent_name=MED_FIELD_DRIVER<T>::_ptrField->getComponentsNames() ;
1106
      const string * listcomponent_name=MED_FIELD_DRIVER<T>::_ptrField->getComponentsNames() ;
1105
      const string * listcomponent_unit=MED_FIELD_DRIVER<T>::_ptrField->getMEDComponentsUnits() ;
1107
      const string * listcomponent_unit=MED_FIELD_DRIVER<T>::_ptrField->getMEDComponentsUnits();
1108
      if ( ! listcomponent_name || ! listcomponent_unit )
1109
        throw MEDEXCEPTION(LOCALIZED(STRING(LOC) <<" Udefined components of FIELD : "
1110
                                     << MED_FIELD_DRIVER<T>::_ptrField->getName() << "."));
1111
1106
      int length ;
1112
      int length ;
1107
      for (int i=0; i < component_count ; i++) {
1113
      for (int i=0; i < component_count ; i++) {
1108
	length = min(MED_TAILLE_PNOM21,(int)listcomponent_name[i].size());
1114
	length = min(MED_TAILLE_PNOM21,(int)listcomponent_name[i].size());
Lines 1250-1259 Link Here
1250
	cout<<"==================> nom unit lu       = "<<chaunit<<endl;
1256
	cout<<"==================> nom unit lu       = "<<chaunit<<endl;
1251
	cout<<"==================> valeur de med_2_1::MED_REEL64 = "<<med_2_1::MED_REEL64<<endl;
1257
	cout<<"==================> valeur de med_2_1::MED_REEL64 = "<<med_2_1::MED_REEL64<<endl;
1252
*/	
1258
*/	
1253
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
1259
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64) || defined(PCLINUX64_32)
1254
	if(_ptrField->getValueType()==MED_EN::MED_INT32)
1260
	if(MED_FIELD_DRIVER<T>::_ptrField->getValueType()==MED_EN::MED_INT32)
1255
	  {
1261
	  {
1256
	    int lgth2=_ptrField->getNumberOfValues();
1262
	    int lgth2=MED_FIELD_DRIVER<T>::_ptrField->getNumberOfValues();
1257
	    med_2_1::med_int *temp=new med_2_1::med_int[lgth2];
1263
	    med_2_1::med_int *temp=new med_2_1::med_int[lgth2];
1258
	    for(int i2=0;i2<lgth2;i2++)
1264
	    for(int i2=0;i2<lgth2;i2++)
1259
	      temp[i2]=(int)(value[i2]);
1265
	      temp[i2]=(int)(value[i2]);
(-)MED_SRC_3.2.2/src/MEDMEM/MEDMEM_MedFieldDriver22.hxx (-13 / +35 lines)
Lines 496-502 Link Here
496
					  (med_2_2::med_geometrie_element)  *currentGeometry,
496
					  (med_2_2::med_geometrie_element)  *currentGeometry,
497
					  j, &ngauss,  &numdt,  &numo, dtunit, &dt,
497
					  j, &ngauss,  &numdt,  &numo, dtunit, &dt,
498
					  maa, &local, &nmaa);
498
					  maa, &local, &nmaa);
499
499
		
500
	MED_FIELD_DRIVER<T>::_ptrField->setTime(dt); // PAL12664
501
	
500
	if ( ndt == numdt && numo == od ) {
502
	if ( ndt == numdt && numo == od ) {
501
	  alreadyFoundPdtIt = true;
503
	  alreadyFoundPdtIt = true;
502
504
Lines 840-847 Link Here
840
				   <<") differs from FIELD object type (" <<
842
				   <<") differs from FIELD object type (" <<
841
				   MED_FIELD_DRIVER<T>::_ptrField->_valueType << ")" )) ;
843
				   MED_FIELD_DRIVER<T>::_ptrField->_valueType << ")" )) ;
842
    }
844
    }
843
#if defined(IRIX64) || defined(OSF1) ||defined(VPP5000)
845
#if defined(IRIX64) || defined(OSF1) ||defined(VPP5000) || defined(PCLINUX64)
844
    if (_ptrField->_valueType==MED_EN::MED_INT32 )
846
    if (MED_FIELD_DRIVER<T>::_ptrField->_valueType==MED_EN::MED_INT32 )
845
      needConversionToInt64=true;
847
      needConversionToInt64=true;
846
#endif
848
#endif
847
    break;
849
    break;
Lines 892-898 Link Here
892
				 << meshName << "|" ));
894
				 << meshName << "|" ));
893
  }
895
  }
894
896
895
896
  MED_EN::medEntityMesh entityType = mySupport->getEntity();
897
  MED_EN::medEntityMesh entityType = mySupport->getEntity();
897
  //Si un SUPPORT était donné, récupère son nom, sa description et
898
  //Si un SUPPORT était donné, récupère son nom, sa description et
898
  //	 le pointeur du maillage associé
899
  //	 le pointeur du maillage associé
Lines 1003-1009 Link Here
1003
    meshNbOfElOfType  = MESHnbOfElOfType;
1004
    meshNbOfElOfType  = MESHnbOfElOfType;
1004
  }
1005
  }
1005
1006
1006
1007
  // Test si le Support du Champ repose ou non sur toutes les entités géométriques
1007
  // Test si le Support du Champ repose ou non sur toutes les entités géométriques
1008
  // du maillage associé et positionne ou non l'attribut onAll du SUPPORT.
1008
  // du maillage associé et positionne ou non l'attribut onAll du SUPPORT.
1009
  // Il ne s'agit pas de la gestion des profils
1009
  // Il ne s'agit pas de la gestion des profils
Lines 1065-1078 Link Here
1065
  // du SUPPORT
1065
  // du SUPPORT
1066
  int profilSizeC = 0;
1066
  int profilSizeC = 0;
1067
  vector < int   >        profilSize    (NumberOfTypes,0);
1067
  vector < int   >        profilSize    (NumberOfTypes,0);
1068
  vector < vector<int>  > profilList    (NumberOfTypes);
1068
  vector < vector<MED_EN::med_int>  > profilList    (NumberOfTypes);      // IPAL13481
1069
  vector < vector<MED_EN::med_int>  > profilListFromFile (NumberOfTypes); // IPAL13481
1069
  vector < string >       profilNameList(NumberOfTypes);
1070
  vector < string >       profilNameList(NumberOfTypes);
1070
  char * profilName = new char[MED_TAILLE_NOM+1];
1071
  char * profilName = new char[MED_TAILLE_NOM+1];
1071
1072
1072
  MESSAGE ("NumberOfTypes      : "<< NumberOfTypes);
1073
  MESSAGE ("NumberOfTypes      : "<< NumberOfTypes);
1073
  MED_FIELD_DRIVER<T>::_ptrField->_numberOfValues=0 ;
1074
  MED_FIELD_DRIVER<T>::_ptrField->_numberOfValues=0 ;
1074
1075
1075
1076
  for (int typeNo=0; typeNo<NumberOfTypes; typeNo++) {
1076
  for (int typeNo=0; typeNo<NumberOfTypes; typeNo++) {
1077
1077
1078
    int numberOfValuesWc= nbOfElOfType[typeNo]*numberOfGaussPoint[typeNo+1]*numberOfComponents;
1078
    int numberOfValuesWc= nbOfElOfType[typeNo]*numberOfGaussPoint[typeNo+1]*numberOfComponents;
Lines 1117-1123 Link Here
1117
1117
1118
      if (needConversionToDouble || needConversionToInt64 ) {
1118
      if (needConversionToDouble || needConversionToInt64 ) {
1119
1119
1120
      if (needConversionToInt64 )  //utiliser un trait
1120
      if (needConversionToInt64 ) //utiliser un trait
1121
	for(int i=0;i<numberOfValuesWc;++i)
1121
	for(int i=0;i<numberOfValuesWc;++i)
1122
	  myValues[index+i]=(int)(myValuesTmp[i]);
1122
	  myValues[index+i]=(int)(myValuesTmp[i]);
1123
      else
1123
      else
Lines 1148-1153 Link Here
1148
	MED_FIELD_DRIVER<T>::_fieldNum = MED_INVALID ; // we have not found right field, so reset the field number
1148
	MED_FIELD_DRIVER<T>::_fieldNum = MED_INVALID ; // we have not found right field, so reset the field number
1149
	throw MEDEXCEPTION( LOCALIZED( STRING(LOC) <<": ERROR while reading values")) ;
1149
	throw MEDEXCEPTION( LOCALIZED( STRING(LOC) <<": ERROR while reading values")) ;
1150
      }
1150
      }
1151
1151
    index += numberOfValuesWc;
1152
    index += numberOfValuesWc;
1152
    // Le support prend en compte le nombre de valeurs lié aux profils
1153
    // Le support prend en compte le nombre de valeurs lié aux profils
1153
    MED_FIELD_DRIVER<T>::_ptrField->_numberOfValues+=
1154
    MED_FIELD_DRIVER<T>::_ptrField->_numberOfValues+=
Lines 1183-1188 Link Here
1183
	}
1184
	}
1184
//	cout << *MED_FIELD_DRIVER<T>::_ptrField->_gaussModel[types[typeNo]] << endl;
1185
//	cout << *MED_FIELD_DRIVER<T>::_ptrField->_gaussModel[types[typeNo]] << endl;
1185
	delete [] refcoo;delete [] gscoo; delete [] wg;
1186
	delete [] refcoo;delete [] gscoo; delete [] wg;
1187
1186
    }
1188
    }
1187
    delete[] gaussModelName ;
1189
    delete[] gaussModelName ;
1188
1190
Lines 1195-1201 Link Here
1195
1197
1196
      profilSize[typeNo]=pflSize;
1198
      profilSize[typeNo]=pflSize;
1197
      profilList[typeNo].resize(pflSize);
1199
      profilList[typeNo].resize(pflSize);
1198
      ret = med_2_2::MEDprofilLire(id,&profilList[typeNo][0],profilName); // cf item 16 Effective STL
1200
      profilListFromFile[typeNo].resize(pflSize);
1201
      ret = med_2_2::MEDprofilLire(id,&profilList[typeNo][0],profilName); // cf item 16 Effective STL // IPAL13481
1202
      profilListFromFile[typeNo] = profilList[typeNo];
1199
      profilNameList[typeNo]=string(profilName);
1203
      profilNameList[typeNo]=string(profilName);
1200
    }
1204
    }
1201
  }
1205
  }
Lines 1267-1277 Link Here
1267
    for( int typeNo=0; typeNo < NumberOfTypes; typeNo++ )
1271
    for( int typeNo=0; typeNo < NumberOfTypes; typeNo++ )
1268
      index[typeNo+1]=index[typeNo]+profilSize[typeNo];
1272
      index[typeNo+1]=index[typeNo]+profilSize[typeNo];
1269
    skyLine->setIndex(&index[0]);
1273
    skyLine->setIndex(&index[0]);
1270
    for (int i=1; i <= profilList.size() ; i++)
1274
    for (int i=1; i <= profilList.size() ; i++) {
1271
      skyLine->setI(i,&profilList[i-1][0]);
1275
      vector<int> aTmp(profilList[i-1].size()); // IPAL13481
1276
      for (int j=0; j < profilList[i-1].size(); j++)
1277
	aTmp[j] = (int) profilList[i-1][j];
1278
      skyLine->setI(i,&aTmp[0]);
1279
      //skyLine->setI(i,&profilList[i-1][0]);
1280
    }
1281
1282
    MEDSKYLINEARRAY * skyLineFromFile = new MEDSKYLINEARRAY(profilListFromFile.size(), profilSizeC );
1283
    skyLineFromFile->setIndex(&index[0]);
1284
    for (int i=1; i <= profilListFromFile.size() ; i++) {
1285
      vector<int> aTmp(profilListFromFile[i-1].size()); // IPAL13481
1286
      for (int j=0; j < profilListFromFile[i-1].size(); j++)
1287
	aTmp[j] = (int) profilListFromFile[i-1][j];
1288
      skyLineFromFile->setI(i,&aTmp[0]);
1289
      //skyLineFromFile->setI(i,&profilListFromFile[i-1][0]);
1290
    }
1272
1291
1273
    mySupport->setAll(false);
1292
    mySupport->setAll(false);
1274
    mySupport->setpartial(skyLine,true);
1293
    mySupport->setpartial(skyLine,true);
1294
    mySupport->setpartial_fromfile(skyLineFromFile,true);
1275
    mySupport->setProfilNames(profilNameList);
1295
    mySupport->setProfilNames(profilNameList);
1276
//    cout << "Valeurs du skyline du SUPPORT partiel crée : " << *skyLine << endl;
1296
//    cout << "Valeurs du skyline du SUPPORT partiel crée : " << *skyLine << endl;
1277
  }
1297
  }
Lines 1319-1325 Link Here
1319
1339
1320
  MED_FIELD_DRIVER<T>::_ptrField->_support=mySupport; //Prévenir l'utilisateur ?
1340
  MED_FIELD_DRIVER<T>::_ptrField->_support=mySupport; //Prévenir l'utilisateur ?
1321
1341
1322
1323
  END_OF(LOC);
1342
  END_OF(LOC);
1324
}
1343
}
1325
1344
Lines 1411-1416 Link Here
1411
1430
1412
  const string * listcomponent_name=MED_FIELD_DRIVER<T>::_ptrField->getComponentsNames() ;
1431
  const string * listcomponent_name=MED_FIELD_DRIVER<T>::_ptrField->getComponentsNames() ;
1413
  const string * listcomponent_unit=MED_FIELD_DRIVER<T>::_ptrField->getMEDComponentsUnits() ;
1432
  const string * listcomponent_unit=MED_FIELD_DRIVER<T>::_ptrField->getMEDComponentsUnits() ;
1433
  if ( ! listcomponent_name || ! listcomponent_unit )
1434
    throw MEDEXCEPTION(LOCALIZED(STRING(LOC) <<" Udefined components of FIELD : "
1435
				 << fieldName << "."));
1414
  int length ;
1436
  int length ;
1415
  for (int i=0; i < component_count ; i++) {
1437
  for (int i=0; i < component_count ; i++) {
1416
    length = min(MED_TAILLE_PNOM22,(int)listcomponent_name[i].size());
1438
    length = min(MED_TAILLE_PNOM22,(int)listcomponent_name[i].size());
Lines 1608-1614 Link Here
1608
      // différents et est défini sur tous les éléments d'un type géométrique
1630
      // différents et est défini sur tous les éléments d'un type géométrique
1609
      // mais pas de l'autre, il existe tout de même des profils sur les deux types géométriques.
1631
      // mais pas de l'autre, il existe tout de même des profils sur les deux types géométriques.
1610
      // Ce n'est pas le cas en MEDFICHIER.
1632
      // Ce n'est pas le cas en MEDFICHIER.
1611
      vector<int> profil(&number[index-1],&(number[index-1])+numberOfElements);
1633
      vector<MED_EN::med_int/*int*/> profil(&number[index-1],&(number[index-1])+numberOfElements);
1612
1634
1613
      // Trouve l'index du type géométrique dans la liste des types géométriques du maillage
1635
      // Trouve l'index du type géométrique dans la liste des types géométriques du maillage
1614
      // correspondant au type géométrique du champ en cours de traitement
1636
      // correspondant au type géométrique du champ en cours de traitement
(-)MED_SRC_3.2.2/src/MEDMEM/MEDMEM_MedMeshDriver21.cxx (-23 / +23 lines)
Lines 519-525 Link Here
519
        // INFOS(LOC<<"WARNING - WARNING - WARNING - WARNING - WARNING - WARNING - WARNING - WARNING");
519
        // INFOS(LOC<<"WARNING - WARNING - WARNING - WARNING - WARNING - WARNING - WARNING - WARNING");
520
	MESSAGE(LOC<<"MED_MESH_RDONLY_DRIVER::getNoeuds() : Nodes have numbers, we DO TAKE care of them !");
520
	MESSAGE(LOC<<"MED_MESH_RDONLY_DRIVER::getNoeuds() : Nodes have numbers, we DO TAKE care of them !");
521
	_ptrMesh->_coordinate->_nodeNumber.set(NumberOfNodes) ; 
521
	_ptrMesh->_coordinate->_nodeNumber.set(NumberOfNodes) ; 
522
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
522
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
523
	for(med_2_1::med_int i2=0;i2<NumberOfNodes;i2++)
523
	for(med_2_1::med_int i2=0;i2<NumberOfNodes;i2++)
524
	  _ptrMesh->_coordinate->_nodeNumber[i2]=(int)(tmp_node_number[i2]);
524
	  _ptrMesh->_coordinate->_nodeNumber[i2]=(int)(tmp_node_number[i2]);
525
#else
525
#else
Lines 1290-1296 Link Here
1290
	// node 
1290
	// node 
1291
	int NumberOfNodes =  _ptrMesh->getNumberOfNodes() ;
1291
	int NumberOfNodes =  _ptrMesh->getNumberOfNodes() ;
1292
	MEDArrayNodeFamily = new int[ NumberOfNodes ];
1292
	MEDArrayNodeFamily = new int[ NumberOfNodes ];
1293
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
1293
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
1294
	med_2_1::med_int* MEDArrayNodeFamily2 = new med_2_1::med_int[ NumberOfNodes ];
1294
	med_2_1::med_int* MEDArrayNodeFamily2 = new med_2_1::med_int[ NumberOfNodes ];
1295
	err = med_2_1::MEDfamGridLire (_medIdt,
1295
	err = med_2_1::MEDfamGridLire (_medIdt,
1296
				      const_cast <char *> (_ptrMesh->_name.c_str()),
1296
				      const_cast <char *> (_ptrMesh->_name.c_str()),
Lines 1329-1339 Link Here
1329
1329
1330
    for (int i=0;i<NumberOfFamilies;i++) {
1330
    for (int i=0;i<NumberOfFamilies;i++) {
1331
      
1331
      
1332
      med_2_1::med_int NumberOfAttributes = MEDnFam(_medIdt,const_cast <char *> (_meshName.c_str()),i+1,med_2_1::MED_ATTR) ;
1332
      med_2_1::med_int NumberOfAttributes = med_2_1::MEDnFam(_medIdt,const_cast <char *> (_meshName.c_str()),i+1,med_2_1::MED_ATTR) ;
1333
      if (NumberOfAttributes < 0) 
1333
      if (NumberOfAttributes < 0) 
1334
	throw MEDEXCEPTION("MED_MESH_RDONLY_DRIVER21::getFAMILY() : NumberOfAttributes" );
1334
	throw MEDEXCEPTION("MED_MESH_RDONLY_DRIVER21::getFAMILY() : NumberOfAttributes" );
1335
    
1335
    
1336
      med_2_1::med_int NumberOfGroups = MEDnFam(_medIdt,const_cast <char *> (_meshName.c_str()),i+1,med_2_1::MED_GROUPE) ;
1336
      med_2_1::med_int NumberOfGroups = med_2_1::MEDnFam(_medIdt,const_cast <char *> (_meshName.c_str()),i+1,med_2_1::MED_GROUPE) ;
1337
      if (NumberOfGroups < 0)
1337
      if (NumberOfGroups < 0)
1338
	throw MEDEXCEPTION("MED_MESH_RDONLY_DRIVER21::getFAMILY() : NumberOfGroups" );
1338
	throw MEDEXCEPTION("MED_MESH_RDONLY_DRIVER21::getFAMILY() : NumberOfGroups" );
1339
      
1339
      
Lines 1343-1349 Link Here
1343
      int *  AttributesValues     = new int[NumberOfAttributes] ;
1343
      int *  AttributesValues     = new int[NumberOfAttributes] ;
1344
      string AttributesDescription(MED_TAILLE_DESC*NumberOfAttributes,' ') ;
1344
      string AttributesDescription(MED_TAILLE_DESC*NumberOfAttributes,' ') ;
1345
      string GroupsNames(MED_TAILLE_LNOM*NumberOfGroups+1,'\0') ;
1345
      string GroupsNames(MED_TAILLE_LNOM*NumberOfGroups+1,'\0') ;
1346
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
1346
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
1347
      med_2_1::med_int tmp_NumberOfAttributes=NumberOfAttributes;
1347
      med_2_1::med_int tmp_NumberOfAttributes=NumberOfAttributes;
1348
      med_2_1::med_int *  AttributesIdentifier2 = new med_2_1::med_int[NumberOfAttributes] ;
1348
      med_2_1::med_int *  AttributesIdentifier2 = new med_2_1::med_int[NumberOfAttributes] ;
1349
      med_2_1::med_int *  AttributesValues2     = new med_2_1::med_int[NumberOfAttributes] ;
1349
      med_2_1::med_int *  AttributesValues2     = new med_2_1::med_int[NumberOfAttributes] ;
Lines 1460-1466 Link Here
1460
  BEGIN_OF(LOC);
1460
  BEGIN_OF(LOC);
1461
  if (_status==MED_OPENED) {
1461
  if (_status==MED_OPENED) {
1462
    int err = 0 ;
1462
    int err = 0 ;
1463
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
1463
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
1464
    int lgth=_ptrMesh->getNumberOfNodes();
1464
    int lgth=_ptrMesh->getNumberOfNodes();
1465
    med_2_1::med_int *temp=new med_2_1::med_int[lgth];
1465
    med_2_1::med_int *temp=new med_2_1::med_int[lgth];
1466
    err = MEDfamLire(_medIdt,(const_cast <char *> (_ptrMesh->_name.c_str())), 
1466
    err = MEDfamLire(_medIdt,(const_cast <char *> (_ptrMesh->_name.c_str())), 
Lines 1498-1504 Link Here
1498
    int i, err = 0 ;
1498
    int i, err = 0 ;
1499
    for (i=0;i<Connectivity->_numberOfTypes;i++)	{
1499
    for (i=0;i<Connectivity->_numberOfTypes;i++)	{
1500
      int NumberOfCell = Connectivity->_count[i+1]-Connectivity->_count[i] ;
1500
      int NumberOfCell = Connectivity->_count[i+1]-Connectivity->_count[i] ;
1501
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
1501
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
1502
      const medGeometryElement * myTypes = _ptrMesh->getTypes(entity);
1502
      const medGeometryElement * myTypes = _ptrMesh->getTypes(entity);
1503
      int lgthI=_ptrMesh->getNumberOfElements(entity,myTypes[i]);
1503
      int lgthI=_ptrMesh->getNumberOfElements(entity,myTypes[i]);
1504
      med_2_1::med_int *temp=new med_2_1::med_int[lgthI];
1504
      med_2_1::med_int *temp=new med_2_1::med_int[lgthI];
Lines 1519-1525 Link Here
1519
      // provisoire : si les faces ou les aretes sont des mailles !!!
1519
      // provisoire : si les faces ou les aretes sont des mailles !!!
1520
      if (err != MED_VALID) {
1520
      if (err != MED_VALID) {
1521
	MESSAGE(LOC<<"search face/edge family on cell !!!");
1521
	MESSAGE(LOC<<"search face/edge family on cell !!!");
1522
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
1522
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
1523
	int lgthI=_ptrMesh->getNumberOfElements(entity,myTypes[i]);
1523
	int lgthI=_ptrMesh->getNumberOfElements(entity,myTypes[i]);
1524
	med_2_1::med_int *temp=new med_2_1::med_int[lgthI];
1524
	med_2_1::med_int *temp=new med_2_1::med_int[lgthI];
1525
	err=MEDfamLire(_medIdt,const_cast <char *> (_ptrMesh->_name.c_str()),
1525
	err=MEDfamLire(_medIdt,const_cast <char *> (_ptrMesh->_name.c_str()),
Lines 1883-1889 Link Here
1883
1883
1884
1884
1885
      if (_ptrMesh->_arePresentOptionnalNodesNumbers==1) {
1885
      if (_ptrMesh->_arePresentOptionnalNodesNumbers==1) {
1886
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
1886
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
1887
	int lgth=_ptrMesh->_coordinate->getNumberOfNodes();
1887
	int lgth=_ptrMesh->_coordinate->getNumberOfNodes();
1888
	med_2_1::med_int *temp=new med_2_1::med_int[lgth];
1888
	med_2_1::med_int *temp=new med_2_1::med_int[lgth];
1889
	for(int i2=0;i2<lgth;i2++)
1889
	for(int i2=0;i2<lgth;i2++)
Lines 1984-1990 Link Here
1984
// 		}
1984
// 		}
1985
1985
1986
      //////////////////////////////////////////////////////////////////////////////////////
1986
      //////////////////////////////////////////////////////////////////////////////////////
1987
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
1987
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
1988
      int lgth=numberOfElements*(numberOfNodes+multi);
1988
      int lgth=numberOfElements*(numberOfNodes+multi);
1989
      med_2_1::med_int *temp=new med_2_1::med_int[lgth];
1989
      med_2_1::med_int *temp=new med_2_1::med_int[lgth];
1990
      for(int i2=0;i2<lgth;i2++)
1990
      for(int i2=0;i2<lgth;i2++)
Lines 2021-2027 Link Here
2021
      const int * connectivity = _ptrMesh->getConnectivity(MED_EN::MED_FULL_INTERLACE, MED_DESCENDING, entity, types[i]); 
2021
      const int * connectivity = _ptrMesh->getConnectivity(MED_EN::MED_FULL_INTERLACE, MED_DESCENDING, entity, types[i]); 
2022
      
2022
      
2023
      // Pour l'instant la class utilise le multi.....
2023
      // Pour l'instant la class utilise le multi.....
2024
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
2024
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
2025
      int lgth=_ptrMesh->getConnectivityLength(MED_EN::MED_FULL_INTERLACE, MED_DESCENDING, entity, types[i]);
2025
      int lgth=_ptrMesh->getConnectivityLength(MED_EN::MED_FULL_INTERLACE, MED_DESCENDING, entity, types[i]);
2026
      med_2_1::med_int *temp=new med_2_1::med_int[lgth];
2026
      med_2_1::med_int *temp=new med_2_1::med_int[lgth];
2027
      for(int i2=0;i2<lgth;i2++)
2027
      for(int i2=0;i2<lgth;i2++)
Lines 2113-2119 Link Here
2113
      SCRUTE(MEDArrayNodeFamily[j]);
2113
      SCRUTE(MEDArrayNodeFamily[j]);
2114
    }
2114
    }
2115
    if ( !_ptrMesh->getIsAGrid() ){
2115
    if ( !_ptrMesh->getIsAGrid() ){
2116
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
2116
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
2117
      int lgth=NumberOfNodes;
2117
      int lgth=NumberOfNodes;
2118
      med_2_1::med_int *temp=new med_2_1::med_int[lgth];
2118
      med_2_1::med_int *temp=new med_2_1::med_int[lgth];
2119
      for(int i2=0;i2<lgth;i2++)
2119
      for(int i2=0;i2<lgth;i2++)
Lines 2131-2137 Link Here
2131
#endif
2131
#endif
2132
    }
2132
    }
2133
    else{
2133
    else{
2134
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
2134
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
2135
      int lgth=NumberOfNodes;
2135
      int lgth=NumberOfNodes;
2136
      med_2_1::med_int *temp=new med_2_1::med_int[lgth];
2136
      med_2_1::med_int *temp=new med_2_1::med_int[lgth];
2137
      for(int i2=0;i2<lgth;i2++)
2137
      for(int i2=0;i2<lgth;i2++)
Lines 2207-2220 Link Here
2207
      }
2207
      }
2208
2208
2209
      const int * typeCount = _ptrMesh->getGlobalNumberingIndex(entity) ;
2209
      const int * typeCount = _ptrMesh->getGlobalNumberingIndex(entity) ;
2210
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
2210
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
2211
	int lgth=NumberOfElements;
2211
	int lgth=NumberOfElements;
2212
	med_2_1::med_int *temp=new med_2_1::med_int[lgth];
2212
	med_2_1::med_int *temp=new med_2_1::med_int[lgth];
2213
	for(int i2=0;i2<lgth;i2++)
2213
	for(int i2=0;i2<lgth;i2++)
2214
	  temp[i2]=(med_2_1::med_int) (MEDArrayFamily[i2]);
2214
	  temp[i2]=(med_2_1::med_int) (MEDArrayFamily[i2]);
2215
#endif
2215
#endif
2216
      for (int i=0; i<numberOfTypes; i++) {
2216
      for (int i=0; i<numberOfTypes; i++) {
2217
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
2217
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
2218
	err = MEDfamEcr(_medIdt, const_cast <char *> ( _meshName.c_str() ),
2218
	err = MEDfamEcr(_medIdt, const_cast <char *> ( _meshName.c_str() ),
2219
			temp+typeCount[i]-1,typeCount[i+1]-typeCount[i],
2219
			temp+typeCount[i]-1,typeCount[i+1]-typeCount[i],
2220
			med_2_1::MED_REMP ,
2220
			med_2_1::MED_REMP ,
Lines 2235-2241 Link Here
2235
				       << "| cells of geometric type |" << geoNames[ types[i]] <<"|in mesh |"      
2235
				       << "| cells of geometric type |" << geoNames[ types[i]] <<"|in mesh |"      
2236
				       << _ptrMesh->_name.c_str() << "|" ));   
2236
				       << _ptrMesh->_name.c_str() << "|" ));   
2237
      }
2237
      }
2238
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
2238
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
2239
      delete [] temp;
2239
      delete [] temp;
2240
#endif
2240
#endif
2241
      delete[] MEDArrayFamily ;
2241
      delete[] MEDArrayFamily ;
Lines 2293-2299 Link Here
2293
      }
2293
      }
2294
2294
2295
      const int * typeCount = _ptrMesh->getGlobalNumberingIndex(entity) ;
2295
      const int * typeCount = _ptrMesh->getGlobalNumberingIndex(entity) ;
2296
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
2296
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
2297
	int lgth=numberOfElements;
2297
	int lgth=numberOfElements;
2298
	med_2_1::med_int *temp=new med_2_1::med_int[lgth];
2298
	med_2_1::med_int *temp=new med_2_1::med_int[lgth];
2299
	for(int i2=0;i2<lgth;i2++)
2299
	for(int i2=0;i2<lgth;i2++)
Lines 2302-2308 Link Here
2302
      for (int i=0; i<numberOfTypes; i++) {
2302
      for (int i=0; i<numberOfTypes; i++) {
2303
2303
2304
	int typeNumberOfElements = typeCount[i+1] - typeCount[i] ;
2304
	int typeNumberOfElements = typeCount[i+1] - typeCount[i] ;
2305
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
2305
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
2306
	err = MEDfamEcr(_medIdt, const_cast <char *> ( _meshName.c_str() ),
2306
	err = MEDfamEcr(_medIdt, const_cast <char *> ( _meshName.c_str() ),
2307
			temp+typeCount[i]-1, typeNumberOfElements,
2307
			temp+typeCount[i]-1, typeNumberOfElements,
2308
			med_2_1::MED_REMP ,
2308
			med_2_1::MED_REMP ,
Lines 2320-2326 Link Here
2320
				       << "| faces of geometric type |" << geoNames[types[i]] <<"|in mesh |"      
2320
				       << "| faces of geometric type |" << geoNames[types[i]] <<"|in mesh |"      
2321
				       << _ptrMesh->_name.c_str() << "|" ));   
2321
				       << _ptrMesh->_name.c_str() << "|" ));   
2322
      }
2322
      }
2323
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
2323
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
2324
      delete [] temp;
2324
      delete [] temp;
2325
#endif
2325
#endif
2326
      delete[] familyArray ;
2326
      delete[] familyArray ;
Lines 2378-2384 Link Here
2378
      }
2378
      }
2379
2379
2380
      const int * typeCount = _ptrMesh->getGlobalNumberingIndex(entity) ;
2380
      const int * typeCount = _ptrMesh->getGlobalNumberingIndex(entity) ;
2381
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
2381
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
2382
	int lgth=numberOfElements;
2382
	int lgth=numberOfElements;
2383
	med_2_1::med_int *temp=new med_2_1::med_int[lgth];
2383
	med_2_1::med_int *temp=new med_2_1::med_int[lgth];
2384
	for(int i2=0;i2<lgth;i2++)
2384
	for(int i2=0;i2<lgth;i2++)
Lines 2387-2393 Link Here
2387
      for (int i=0; i<numberOfTypes; i++) {
2387
      for (int i=0; i<numberOfTypes; i++) {
2388
2388
2389
	int typeNumberOfElements = typeCount[i+1] - typeCount[i] ;
2389
	int typeNumberOfElements = typeCount[i+1] - typeCount[i] ;
2390
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
2390
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
2391
	err = MEDfamEcr(_medIdt, const_cast <char *> ( _meshName.c_str() ),
2391
	err = MEDfamEcr(_medIdt, const_cast <char *> ( _meshName.c_str() ),
2392
			temp+typeCount[i]-1, typeNumberOfElements,
2392
			temp+typeCount[i]-1, typeNumberOfElements,
2393
			med_2_1::MED_REMP ,
2393
			med_2_1::MED_REMP ,
Lines 2405-2411 Link Here
2405
				       << "| edges of geometric type |" << geoNames[types[i]] <<"|in mesh |"      
2405
				       << "| edges of geometric type |" << geoNames[types[i]] <<"|in mesh |"      
2406
				       << _ptrMesh->_name.c_str() << "|" ));   
2406
				       << _ptrMesh->_name.c_str() << "|" ));   
2407
      }
2407
      }
2408
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
2408
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
2409
      delete [] temp;
2409
      delete [] temp;
2410
#endif
2410
#endif
2411
      delete[] familyArray ;
2411
      delete[] familyArray ;
Lines 2491-2497 Link Here
2491
      MESSAGE(LOC<<"attributesDescriptions.c_str() : "<<attributesDescriptions.c_str());
2491
      MESSAGE(LOC<<"attributesDescriptions.c_str() : "<<attributesDescriptions.c_str());
2492
      MESSAGE(LOC<<"numberOfGroups : "<<numberOfGroups);
2492
      MESSAGE(LOC<<"numberOfGroups : "<<numberOfGroups);
2493
      MESSAGE(LOC<<"groupsNames.c_str() : "<<groupsNames.c_str());
2493
      MESSAGE(LOC<<"groupsNames.c_str() : "<<groupsNames.c_str());
2494
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
2494
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
2495
      int lgth=families[i]->getNumberOfAttributes();
2495
      int lgth=families[i]->getNumberOfAttributes();
2496
      med_2_1::med_int *  AttributesIdentifier2 = new med_2_1::med_int[lgth] ;
2496
      med_2_1::med_int *  AttributesIdentifier2 = new med_2_1::med_int[lgth] ;
2497
      med_2_1::med_int *  AttributesValues2     = new med_2_1::med_int[lgth] ;
2497
      med_2_1::med_int *  AttributesValues2     = new med_2_1::med_int[lgth] ;
(-)MED_SRC_3.2.2/src/MEDMEM/MEDMEM_MedMeshDriver22.cxx (-27 / +29 lines)
Lines 633-639 Link Here
633
        // INFOS(LOC<<"WARNING - WARNING - WARNING - WARNING - WARNING - WARNING - WARNING - WARNING");
633
        // INFOS(LOC<<"WARNING - WARNING - WARNING - WARNING - WARNING - WARNING - WARNING - WARNING");
634
	MESSAGE(LOC<<"MED_MESH_RDONLY_DRIVER::getNoeuds() : Nodes have numbers, we DO TAKE care of them !");
634
	MESSAGE(LOC<<"MED_MESH_RDONLY_DRIVER::getNoeuds() : Nodes have numbers, we DO TAKE care of them !");
635
	_ptrMesh->_coordinate->_nodeNumber.set(NumberOfNodes) ; 
635
	_ptrMesh->_coordinate->_nodeNumber.set(NumberOfNodes) ; 
636
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
636
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
637
	for(med_2_2::med_int i2=0;i2<NumberOfNodes;i2++)
637
	for(med_2_2::med_int i2=0;i2<NumberOfNodes;i2++)
638
	  _ptrMesh->_coordinate->_nodeNumber[i2]=(int)(tmp_node_number[i2]);
638
	  _ptrMesh->_coordinate->_nodeNumber[i2]=(int)(tmp_node_number[i2]);
639
#else
639
#else
Lines 1395-1401 Link Here
1395
      
1395
      
1396
	  if (Connectivity->_entityDimension == 2) {// 2D mesh : polygons in Connectivity
1396
	  if (Connectivity->_entityDimension == 2) {// 2D mesh : polygons in Connectivity
1397
//CCRT
1397
//CCRT
1398
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
1398
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
1399
	    int* tmp_PolygonsConnectivity = new int[ConnectivitySize];
1399
	    int* tmp_PolygonsConnectivity = new int[ConnectivitySize];
1400
            int i ;
1400
            int i ;
1401
            for ( i = 0 ; i < ConnectivitySize ; i++ )
1401
            for ( i = 0 ; i < ConnectivitySize ; i++ )
Lines 1414-1420 Link Here
1414
	    {
1414
	    {
1415
	      if (Connectivity->_constituent == NULL) // 3D mesh : polygons in Connectivity->_constituent
1415
	      if (Connectivity->_constituent == NULL) // 3D mesh : polygons in Connectivity->_constituent
1416
		Connectivity->_constituent = new CONNECTIVITY(MED_FACE);
1416
		Connectivity->_constituent = new CONNECTIVITY(MED_FACE);
1417
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
1417
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
1418
	      int* tmp_PolygonsConnectivity = new int[ConnectivitySize];
1418
	      int* tmp_PolygonsConnectivity = new int[ConnectivitySize];
1419
              int i ;
1419
              int i ;
1420
              for ( i = 0 ; i < ConnectivitySize ; i++ )
1420
              for ( i = 0 ; i < ConnectivitySize ; i++ )
Lines 1489-1495 Link Here
1489
	    }
1489
	    }
1490
      
1490
      
1491
//CCRT
1491
//CCRT
1492
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
1492
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
1493
	  int* tmp_Nodes = new int[NumberOfNodes];
1493
	  int* tmp_Nodes = new int[NumberOfNodes];
1494
          int i ;
1494
          int i ;
1495
          for ( i = 0 ; i < NumberOfNodes ; i++ )
1495
          for ( i = 0 ; i < NumberOfNodes ; i++ )
Lines 1639-1645 Link Here
1639
1639
1640
    for (int i=0;i<NumberOfFamilies;i++)
1640
    for (int i=0;i<NumberOfFamilies;i++)
1641
      {
1641
      {
1642
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
1642
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
1643
	med_int tmp_NumberOfAttributes = med_2_2::MEDnAttribut(_medIdt,
1643
	med_int tmp_NumberOfAttributes = med_2_2::MEDnAttribut(_medIdt,
1644
						      const_cast <char *>
1644
						      const_cast <char *>
1645
						      (_meshName.c_str()),
1645
						      (_meshName.c_str()),
Lines 1655-1661 Link Here
1655
      if (NumberOfAttributes < 0) 
1655
      if (NumberOfAttributes < 0) 
1656
	throw MEDEXCEPTION("MED_MESH_RDONLY_DRIVER22::getFAMILY() : NumberOfAttributes" );
1656
	throw MEDEXCEPTION("MED_MESH_RDONLY_DRIVER22::getFAMILY() : NumberOfAttributes" );
1657
1657
1658
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
1658
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
1659
	med_int tmp_NumberOfGroups = med_2_2::MEDnGroupe(_medIdt, const_cast <char *>
1659
	med_int tmp_NumberOfGroups = med_2_2::MEDnGroupe(_medIdt, const_cast <char *>
1660
						(_meshName.c_str()),(i+1)) ;
1660
						(_meshName.c_str()),(i+1)) ;
1661
	int NumberOfGroups = tmp_NumberOfGroups ;
1661
	int NumberOfGroups = tmp_NumberOfGroups ;
Lines 1673-1679 Link Here
1673
	int *  AttributesValues     = new int[NumberOfAttributes] ;
1673
	int *  AttributesValues     = new int[NumberOfAttributes] ;
1674
	string AttributesDescription(MED_TAILLE_DESC*NumberOfAttributes,' ') ;
1674
	string AttributesDescription(MED_TAILLE_DESC*NumberOfAttributes,' ') ;
1675
	string GroupsNames(MED_TAILLE_LNOM*NumberOfGroups+1,'\0') ;
1675
	string GroupsNames(MED_TAILLE_LNOM*NumberOfGroups+1,'\0') ;
1676
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
1676
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
1677
	med_int tmp_FamilyIdentifier ;
1677
	med_int tmp_FamilyIdentifier ;
1678
	med_int *  tmp_AttributesIdentifier = new med_int[NumberOfAttributes] ;
1678
	med_int *  tmp_AttributesIdentifier = new med_int[NumberOfAttributes] ;
1679
	med_int *  tmp_AttributesValues     = new med_int[NumberOfAttributes] ;
1679
	med_int *  tmp_AttributesValues     = new med_int[NumberOfAttributes] ;
Lines 1807-1813 Link Here
1807
    {
1807
    {
1808
    int err = 0 ;
1808
    int err = 0 ;
1809
1809
1810
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
1810
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
1811
      med_int * tmp_MEDArrayNodeFamily = new med_int[_ptrMesh->getNumberOfNodes()] ;
1811
      med_int * tmp_MEDArrayNodeFamily = new med_int[_ptrMesh->getNumberOfNodes()] ;
1812
      err = MEDfamLire(_medIdt, const_cast <char *>
1812
      err = MEDfamLire(_medIdt, const_cast <char *>
1813
		       (_ptrMesh->_name.c_str()), tmp_MEDArrayNodeFamily,
1813
		       (_ptrMesh->_name.c_str()), tmp_MEDArrayNodeFamily,
Lines 1848-1854 Link Here
1848
    for (i=0;i<Connectivity->getNumberOfTypesWithPoly(Connectivity->_entity);i++)
1848
    for (i=0;i<Connectivity->getNumberOfTypesWithPoly(Connectivity->_entity);i++)
1849
      {
1849
      {
1850
	int NumberOfCell=Connectivity->getNumberOfElementsWithPoly(Connectivity->_entity,types[i]);
1850
	int NumberOfCell=Connectivity->getNumberOfElementsWithPoly(Connectivity->_entity,types[i]);
1851
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
1851
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
1852
        med_2_2::med_int * tmp_MEDArrayFamily = new med_2_2::med_int[NumberOfCell] ;
1852
        med_2_2::med_int * tmp_MEDArrayFamily = new med_2_2::med_int[NumberOfCell] ;
1853
	err=MEDfamLire(_medIdt,const_cast <char *> (_ptrMesh->_name.c_str()),
1853
	err=MEDfamLire(_medIdt,const_cast <char *> (_ptrMesh->_name.c_str()),
1854
		       tmp_MEDArrayFamily,NumberOfCell,
1854
		       tmp_MEDArrayFamily,NumberOfCell,
Lines 2309-2315 Link Here
2309
2309
2310
      if (_ptrMesh->_arePresentOptionnalNodesNumbers==1) {
2310
      if (_ptrMesh->_arePresentOptionnalNodesNumbers==1) {
2311
        
2311
        
2312
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
2312
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
2313
        const int * NodesNumbers = _ptrMesh->_coordinate->getNodesNumbers() ;
2313
        const int * NodesNumbers = _ptrMesh->_coordinate->getNodesNumbers() ;
2314
        med_2_2::med_int * tmp_NodesNumbers = new med_int[_ptrMesh->_numberOfNodes] ;
2314
        med_2_2::med_int * tmp_NodesNumbers = new med_int[_ptrMesh->_numberOfNodes] ;
2315
        int ii ;
2315
        int ii ;
Lines 2453-2459 Link Here
2453
  // Polygons writing
2453
  // Polygons writing
2454
  if (_ptrMesh->existPolygonsConnectivity(MED_NODAL,entity))
2454
  if (_ptrMesh->existPolygonsConnectivity(MED_NODAL,entity))
2455
    {
2455
    {
2456
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
2456
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
2457
      med_2_2::med_int * tmp_PolygonsConnectivityIndex = new med_2_2::med_int[_ptrMesh->getNumberOfPolygons()+1] ;
2457
      med_2_2::med_int * tmp_PolygonsConnectivityIndex = new med_2_2::med_int[_ptrMesh->getNumberOfPolygons()+1] ;
2458
      const int * PolygonsConnectivityIndex = _ptrMesh->getPolygonsConnectivityIndex(MED_NODAL,entity) ;
2458
      const int * PolygonsConnectivityIndex = _ptrMesh->getPolygonsConnectivityIndex(MED_NODAL,entity) ;
2459
      int ii ;
2459
      int ii ;
Lines 2494-2500 Link Here
2494
  // Polyhedron writing
2494
  // Polyhedron writing
2495
  if (_ptrMesh->existPolyhedronConnectivity(MED_NODAL,entity))
2495
  if (_ptrMesh->existPolyhedronConnectivity(MED_NODAL,entity))
2496
    {
2496
    {
2497
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
2497
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
2498
      med_2_2::med_int * tmp_PolyhedronIndex = new med_2_2::med_int[_ptrMesh->getNumberOfPolyhedron()+1] ;
2498
      med_2_2::med_int * tmp_PolyhedronIndex = new med_2_2::med_int[_ptrMesh->getNumberOfPolyhedron()+1] ;
2499
      const int * PolyhedronIndex = _ptrMesh->getPolyhedronIndex(MED_NODAL) ;
2499
      const int * PolyhedronIndex = _ptrMesh->getPolyhedronIndex(MED_NODAL) ;
2500
      int ii ;
2500
      int ii ;
Lines 2562-2571 Link Here
2562
	  // 				(MED_FR::med_geometrie_element) types[i],
2562
	  // 				(MED_FR::med_geometrie_element) types[i],
2563
	  // 				MED_FR::MED_DESC );
2563
	  // 				MED_FR::MED_DESC );
2564
2564
2565
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
2565
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
2566
          med_2_2::med_int * tmp_Connectivity = new med_2_2::med_int[numberOfElements] ;
2566
          int lgth = _ptrMesh->getConnectivityLength(MED_EN::MED_FULL_INTERLACE, MED_DESCENDING, entity, types[i]);
2567
          med_2_2::med_int * tmp_Connectivity = new med_2_2::med_int[lgth] ;
2567
          int ii ;
2568
          int ii ;
2568
          for ( ii = 0 ; ii < numberOfElements ; ii++ )
2569
          for ( ii = 0 ; ii < lgth ; ii++ )
2569
          tmp_Connectivity[ii] = connectivity[ii] ;
2570
          tmp_Connectivity[ii] = connectivity[ii] ;
2570
	  err = med_2_2::MEDconnEcr(_medIdt,
2571
	  err = med_2_2::MEDconnEcr(_medIdt,
2571
				    const_cast <char *> ( _meshName.c_str()),
2572
				    const_cast <char *> ( _meshName.c_str()),
Lines 2603-2609 Link Here
2603
  // Polygons writing
2604
  // Polygons writing
2604
  if (_ptrMesh->existPolygonsConnectivity(MED_DESCENDING,entity))
2605
  if (_ptrMesh->existPolygonsConnectivity(MED_DESCENDING,entity))
2605
    {
2606
    {
2606
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
2607
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
2607
      med_2_2::med_int * tmp_PolygonsConnectivityIndex = new med_2_2::med_int[_ptrMesh->getNumberOfPolygons()+1] ;
2608
      med_2_2::med_int * tmp_PolygonsConnectivityIndex = new med_2_2::med_int[_ptrMesh->getNumberOfPolygons()+1] ;
2608
      const int * PolygonsConnectivityIndex = _ptrMesh->getPolygonsConnectivityIndex(MED_DESCENDING,entity) ;
2609
      const int * PolygonsConnectivityIndex = _ptrMesh->getPolygonsConnectivityIndex(MED_DESCENDING,entity) ;
2609
      int ii ;
2610
      int ii ;
Lines 2647-2653 Link Here
2647
      med_int NumberOfFaces = _ptrMesh->getPolyhedronIndex(MED_DESCENDING)[_ptrMesh->getNumberOfPolyhedron()]-1;
2648
      med_int NumberOfFaces = _ptrMesh->getPolyhedronIndex(MED_DESCENDING)[_ptrMesh->getNumberOfPolyhedron()]-1;
2648
      vector<med_int> FacesGeometricTypes(NumberOfFaces,MED_POLYGON); // by default all polyhedron faces are polygons
2649
      vector<med_int> FacesGeometricTypes(NumberOfFaces,MED_POLYGON); // by default all polyhedron faces are polygons
2649
2650
2650
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
2651
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
2651
      med_2_2::med_int * tmp_PolyhedronIndex = new med_2_2::med_int[_ptrMesh->getNumberOfPolyhedron()+1] ;
2652
      med_2_2::med_int * tmp_PolyhedronIndex = new med_2_2::med_int[_ptrMesh->getNumberOfPolyhedron()+1] ;
2652
      const int * PolyhedronIndex = _ptrMesh->getPolyhedronIndex(MED_DESCENDING) ;
2653
      const int * PolyhedronIndex = _ptrMesh->getPolyhedronIndex(MED_DESCENDING) ;
2653
      int ii ;
2654
      int ii ;
Lines 2818-2825 Link Here
2818
	SCRUTE(MEDArrayFamily[i]);
2819
	SCRUTE(MEDArrayFamily[i]);
2819
2820
2820
2821
2822
      const int * typeCount = _ptrMesh->getGlobalNumberingIndex(entity) ;
2821
      int offset=0;
2823
      int offset=0;
2822
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
2824
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
2823
	int lgth=NumberOfElements;
2825
	int lgth=NumberOfElements;
2824
	med_2_2::med_int *temp=new med_2_2::med_int[lgth];
2826
	med_2_2::med_int *temp=new med_2_2::med_int[lgth];
2825
	for(int i2=0;i2<lgth;i2++)
2827
	for(int i2=0;i2<lgth;i2++)
Lines 2827-2833 Link Here
2827
#endif
2829
#endif
2828
      for (int i=0; i<numberOfTypes; i++) {
2830
      for (int i=0; i<numberOfTypes; i++) {
2829
	  int typeNumberOfElements=_ptrMesh->getNumberOfElementsWithPoly(entity,types[i]);
2831
	  int typeNumberOfElements=_ptrMesh->getNumberOfElementsWithPoly(entity,types[i]);
2830
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
2832
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
2831
	err = MEDfamEcr(_medIdt, const_cast <char *> ( _meshName.c_str() ),
2833
	err = MEDfamEcr(_medIdt, const_cast <char *> ( _meshName.c_str() ),
2832
			(temp+offset),(typeCount[i+1]-typeCount[i]),
2834
			(temp+offset),(typeCount[i+1]-typeCount[i]),
2833
			//CCRT			med_2_2::MED_REMP ,
2835
			//CCRT			med_2_2::MED_REMP ,
Lines 2850-2856 Link Here
2850
	offset+=typeNumberOfElements;  
2852
	offset+=typeNumberOfElements;  
2851
      }
2853
      }
2852
//CCRT Clutter
2854
//CCRT Clutter
2853
//CCRT#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
2855
//CCRT#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
2854
//CCRT      delete [] temp;
2856
//CCRT      delete [] temp;
2855
//CCRT#endif
2857
//CCRT#endif
2856
      delete[] MEDArrayFamily ;
2858
      delete[] MEDArrayFamily ;
Lines 2912-2918 Link Here
2912
	SCRUTE(familyArray[i]);
2914
	SCRUTE(familyArray[i]);
2913
2915
2914
//CCRT Clutter
2916
//CCRT Clutter
2915
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
2917
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
2916
      int lgth=numberOfElements;
2918
      int lgth=numberOfElements;
2917
      med_2_2::med_int *temp=new med_2_2::med_int[lgth];
2919
      med_2_2::med_int *temp=new med_2_2::med_int[lgth];
2918
      for(int i2=0;i2<lgth;i2++)
2920
      for(int i2=0;i2<lgth;i2++)
Lines 2924-2930 Link Here
2924
	int typeNumberOfElements = _ptrMesh->getNumberOfElementsWithPoly(entity,types[i]) ;
2926
	int typeNumberOfElements = _ptrMesh->getNumberOfElementsWithPoly(entity,types[i]) ;
2925
	SCRUTE(typeNumberOfElements);
2927
	SCRUTE(typeNumberOfElements);
2926
	SCRUTE(offset);
2928
	SCRUTE(offset);
2927
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
2929
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
2928
	err = MEDfamEcr(_medIdt, const_cast <char *> ( _meshName.c_str() ),
2930
	err = MEDfamEcr(_medIdt, const_cast <char *> ( _meshName.c_str() ),
2929
			(temp+offset), typeNumberOfElements,
2931
			(temp+offset), typeNumberOfElements,
2930
// 			(med_2_2::med_entite_maillage) entity, because Med Memory works only in Nodal connectivity
2932
// 			(med_2_2::med_entite_maillage) entity, because Med Memory works only in Nodal connectivity
Lines 2946-2952 Link Here
2946
	offset+=typeNumberOfElements;  
2948
	offset+=typeNumberOfElements;  
2947
      }
2949
      }
2948
//CCRT there was "temp" and "familyArray" for OSF, but only "familyArray" for Linux ...
2950
//CCRT there was "temp" and "familyArray" for OSF, but only "familyArray" for Linux ...
2949
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
2951
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
2950
      delete [] temp;
2952
      delete [] temp;
2951
//CCRT#endif
2953
//CCRT#endif
2952
#endif
2954
#endif
Lines 3013-3019 Link Here
3013
3015
3014
      const int * typeCount = _ptrMesh->getGlobalNumberingIndex(entity) ;
3016
      const int * typeCount = _ptrMesh->getGlobalNumberingIndex(entity) ;
3015
//CCRT : clutter :
3017
//CCRT : clutter :
3016
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
3018
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
3017
      int lgth=numberOfElements;
3019
      int lgth=numberOfElements;
3018
      med_2_2::med_int *temp=new med_2_2::med_int[lgth];
3020
      med_2_2::med_int *temp=new med_2_2::med_int[lgth];
3019
      for(int i2=0;i2<lgth;i2++)
3021
      for(int i2=0;i2<lgth;i2++)
Lines 3026-3032 Link Here
3026
	SCRUTE(typeNumberOfElements);
3028
	SCRUTE(typeNumberOfElements);
3027
	SCRUTE(typeCount[i+1]);
3029
	SCRUTE(typeCount[i+1]);
3028
	SCRUTE(typeCount[i]);
3030
	SCRUTE(typeCount[i]);
3029
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
3031
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
3030
	err = MEDfamEcr(_medIdt, const_cast <char *> ( _meshName.c_str() ),
3032
	err = MEDfamEcr(_medIdt, const_cast <char *> ( _meshName.c_str() ),
3031
			(temp+(typeCount[i]-1)), typeNumberOfElements,
3033
			(temp+(typeCount[i]-1)), typeNumberOfElements,
3032
// 			(med_2_2::med_entite_maillage) entity, because Med Memory works only in Nodal connectivity
3034
// 			(med_2_2::med_entite_maillage) entity, because Med Memory works only in Nodal connectivity
Lines 3045-3051 Link Here
3045
				       << _ptrMesh->_name.c_str() << "|" ));   
3047
				       << _ptrMesh->_name.c_str() << "|" ));   
3046
      }
3048
      }
3047
3049
3048
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
3050
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
3049
      delete [] temp;
3051
      delete [] temp;
3050
#endif
3052
#endif
3051
      delete[] familyArray ;
3053
      delete[] familyArray ;
Lines 3138-3144 Link Here
3138
      MESSAGE(LOC<<"attributesDescriptions.c_str() : "<<attributesDescriptions.c_str());
3140
      MESSAGE(LOC<<"attributesDescriptions.c_str() : "<<attributesDescriptions.c_str());
3139
      MESSAGE(LOC<<"numberOfGroups : "<<numberOfGroups);
3141
      MESSAGE(LOC<<"numberOfGroups : "<<numberOfGroups);
3140
      MESSAGE(LOC<<"groupsNames.c_str() : "<<groupsNames.c_str());
3142
      MESSAGE(LOC<<"groupsNames.c_str() : "<<groupsNames.c_str());
3141
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
3143
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64)
3142
      int lgth=families[i]->getNumberOfAttributes();
3144
      int lgth=families[i]->getNumberOfAttributes();
3143
      med_2_2::med_int *  AttributesIdentifier2 = new med_2_2::med_int[lgth] ;
3145
      med_2_2::med_int *  AttributesIdentifier2 = new med_2_2::med_int[lgth] ;
3144
      med_2_2::med_int *  AttributesValues2     = new med_2_2::med_int[lgth] ;
3146
      med_2_2::med_int *  AttributesValues2     = new med_2_2::med_int[lgth] ;
(-)MED_SRC_3.2.2/src/MEDMEM/MEDMEM_Mesh.hxx (-1 / +2 lines)
Lines 299-305 Link Here
299
  void fillSupportOnNodeFromElementList(const list<int>& listOfElt, SUPPORT *supportToFill) const throw (MEDEXCEPTION);
299
  void fillSupportOnNodeFromElementList(const list<int>& listOfElt, SUPPORT *supportToFill) const throw (MEDEXCEPTION);
300
  SUPPORT *buildSupportOnElementsFromElementList(const list<int>& listOfElt, MED_EN::medEntityMesh entity) const throw (MEDEXCEPTION);
300
  SUPPORT *buildSupportOnElementsFromElementList(const list<int>& listOfElt, MED_EN::medEntityMesh entity) const throw (MEDEXCEPTION);
301
  int getElementContainingPoint(const double *coord);
301
  int getElementContainingPoint(const double *coord);
302
  vector< vector<double> > MESH::getBoundingBox() const;
302
//  vector< vector<double> > MESH::getBoundingBox() const;
303
  vector< vector<double> > getBoundingBox() const;
303
  template<class T> static
304
  template<class T> static
304
  FIELD<T> * mergeFields(const vector< FIELD<T> * > & others, bool meshCompare=false);
305
  FIELD<T> * mergeFields(const vector< FIELD<T> * > & others, bool meshCompare=false);
305
  /*!
306
  /*!
(-)MED_SRC_3.2.2/src/MEDMEM/MEDMEM_ModulusArray.hxx (-8 / +11 lines)
Lines 21-26 Link Here
21
#define __MEDMODULUSARRAY_H__
21
#define __MEDMODULUSARRAY_H__
22
22
23
#include "MEDMEM_Utilities.hxx"
23
#include "MEDMEM_Utilities.hxx"
24
#include "MEDMEM_define.hxx"
25
24
26
25
/*
27
/*
26
  This class is use to set cyclic (modulus length) array.
28
  This class is use to set cyclic (modulus length) array.
Lines 47-60 Link Here
47
  MEDMODULUSARRAY(int vertexLength, int totalLength, const int * array);
49
  MEDMODULUSARRAY(int vertexLength, int totalLength, const int * array);
48
  ~MEDMODULUSARRAY() ;
50
  ~MEDMODULUSARRAY() ;
49
51
50
  const int & operator[](const int &i) const ;
52
  const int operator[](const int &i) const ;
51
53
52
  int compare(const MEDMODULUSARRAY &modulusArray) const;
54
  int compare(const MEDMODULUSARRAY &modulusArray) const;
53
55
54
};
56
};
55
57
58
56
MEDMODULUSARRAY::MEDMODULUSARRAY(int length, const int * array) : 
59
MEDMODULUSARRAY::MEDMODULUSARRAY(int length, const int * array) : 
57
  _length(length), _length2(length), _array(array)
60
  _length(length), _array(array), _length2(0)
58
{
61
{
59
//    SCRUTE(_length);
62
//    SCRUTE(_length);
60
//    for (int i=0;i<_length;i++){
63
//    for (int i=0;i<_length;i++){
Lines 62-68 Link Here
62
//    }
65
//    }
63
};
66
};
64
67
65
MEDMODULUSARRAY::MEDMODULUSARRAY(int vertexLength, int totalLength, const int * array):
68
  MEDMODULUSARRAY::MEDMODULUSARRAY(int vertexLength, int totalLength, const int * array):
66
  _length(vertexLength), _length2( totalLength ), _array(array)
69
  _length(vertexLength), _length2( totalLength ), _array(array)
67
{
70
{
68
}
71
}
Lines 74-86 Link Here
74
};
77
};
75
78
76
79
77
const int & MEDMODULUSARRAY::operator[](const int &i) const
80
const int MEDMODULUSARRAY::operator[](const int &i) const
78
{
81
{
79
  //int position = i%_length ;
82
  int position = i%_length ;
80
  int position = i%_length2 ;
83
  //int position = i%_length2 ;
81
  if (position < 0)
84
  if (position < 0)
82
    //position+=_length ;
85
    position+=_length ;
83
    position += _length2 ;
86
  //position += _length2 ;
84
  return _array[position] ;
87
  return _array[position] ;
85
};
88
};
86
89
(-)MED_SRC_3.2.2/src/MEDMEM/MEDMEM_Support.cxx (+14 lines)
Lines 414-419 Link Here
414
  END_OF(LOC);
414
  END_OF(LOC);
415
};
415
};
416
416
417
void SUPPORT::setpartial_fromfile(MEDSKYLINEARRAY * number, bool shallowCopy) throw (MEDEXCEPTION)
418
//-------------------
419
{
420
  const char * LOC = "SUPPORT::setpartial_fromfile(MEDSKYLINEARRAY * number) : " ;
421
  BEGIN_OF(LOC) ;
422
423
  if ( shallowCopy )
424
    _number_fromfile = number;
425
  else
426
    _number_fromfile = new MEDSKYLINEARRAY(*number);
427
428
  END_OF(LOC);
429
};
430
417
void SUPPORT::setProfilNames(vector<string> profilNames) throw (MEDEXCEPTION){
431
void SUPPORT::setProfilNames(vector<string> profilNames) throw (MEDEXCEPTION){
418
432
419
  const char * LOC = "SUPPORT::setProfilNames(vector<string> profilNames) : " ;
433
  const char * LOC = "SUPPORT::setProfilNames(vector<string> profilNames) : " ;
(-)MED_SRC_3.2.2/src/MEDMEM/MEDMEM_Support.hxx (+40 lines)
Lines 140-145 Link Here
140
140
141
  /*!
141
  /*!
142
    \if developper
142
    \if developper
143
    Array of size _index[_numberOfType]-1 wich contain number of
144
    entities of each geometric type. We use file numbering.\n
145
    Defined only if _isOnAllElts is false.
146
    \endif
147
  */
148
  mutable MEDSKYLINEARRAY * _number_fromfile;
149
150
  /*!
151
    \if developper
143
    Array of size <_numberOfGeometricType> wich contain the profil name of 
152
    Array of size <_numberOfGeometricType> wich contain the profil name of 
144
    entities of each geometric type.\n
153
    entities of each geometric type.\n
145
    Defined only if _isOnAllElts is false.
154
    Defined only if _isOnAllElts is false.
Lines 190-196 Link Here
190
  inline int    getNumberOfElements(MED_EN::medGeometryElement GeometricType) const throw (MEDEXCEPTION);
199
  inline int    getNumberOfElements(MED_EN::medGeometryElement GeometricType) const throw (MEDEXCEPTION);
191
  inline  const int * getNumberOfElements() const throw (MEDEXCEPTION);
200
  inline  const int * getNumberOfElements() const throw (MEDEXCEPTION);
192
  virtual inline MEDSKYLINEARRAY *  getnumber() const throw (MEDEXCEPTION);
201
  virtual inline MEDSKYLINEARRAY *  getnumber() const throw (MEDEXCEPTION);
202
  virtual inline MEDSKYLINEARRAY *  getnumberFromFile() const throw (MEDEXCEPTION);
193
  virtual inline const int *  getNumber(MED_EN::medGeometryElement GeometricType) const throw (MEDEXCEPTION);
203
  virtual inline const int *  getNumber(MED_EN::medGeometryElement GeometricType) const throw (MEDEXCEPTION);
204
  virtual inline const int *  getNumberFromFile(MED_EN::medGeometryElement GeometricType) const throw (MEDEXCEPTION);
194
  virtual inline const int *  getNumberIndex() const throw (MEDEXCEPTION);
205
  virtual inline const int *  getNumberIndex() const throw (MEDEXCEPTION);
195
  virtual int getValIndFromGlobalNumber(const int number) const throw (MEDEXCEPTION);
206
  virtual int getValIndFromGlobalNumber(const int number) const throw (MEDEXCEPTION);
196
207
Lines 204-209 Link Here
204
215
205
  void setpartial(MEDSKYLINEARRAY * number, bool shallowCopy=false) throw (MEDEXCEPTION);
216
  void setpartial(MEDSKYLINEARRAY * number, bool shallowCopy=false) throw (MEDEXCEPTION);
206
217
218
219
  void setpartial_fromfile(MEDSKYLINEARRAY * number, bool shallowCopy=false) throw (MEDEXCEPTION);
220
  
207
  // Si les noms de profils ne sont pas positionnés, les profils ne seront
221
  // Si les noms de profils ne sont pas positionnés, les profils ne seront
208
  // pas écrits par MEDFICHIER.
222
  // pas écrits par MEDFICHIER.
209
  void   setProfilNames(vector<string> profilNames) throw (MEDEXCEPTION);
223
  void   setProfilNames(vector<string> profilNames) throw (MEDEXCEPTION);
Lines 273-278 Link Here
273
  return _number ;
287
  return _number ;
274
}
288
}
275
289
290
//---------------------------------------------------------------------
291
inline MEDSKYLINEARRAY * SUPPORT::getnumberFromFile() const
292
  throw (MEDEXCEPTION)
293
//---------------------------------------------------------------------
294
{
295
  if (_number_fromfile==NULL)
296
    throw MEDEXCEPTION("Support::getnumberFromFile : Not defined !") ;
297
  return _number_fromfile ;
298
}
299
276
/*!
300
/*!
277
  If isOnAllElements is false, returns an array which contains
301
  If isOnAllElements is false, returns an array which contains
278
  all number of given medGeometryElement.
302
  all number of given medGeometryElement.
Lines 300-305 Link Here
300
  throw MEDEXCEPTION(LOCALIZED(STRING(LOC)<<"GeometricType not found !")) ;
324
  throw MEDEXCEPTION(LOCALIZED(STRING(LOC)<<"GeometricType not found !")) ;
301
}
325
}
302
326
327
//---------------------------------------------------------------------
328
inline const int * SUPPORT::getNumberFromFile(MED_EN::medGeometryElement GeometricType) const
329
  throw (MEDEXCEPTION)
330
//---------------------------------------------------------------------
331
{
332
  const char * LOC = "Support::getNumberFromFile : " ;
333
//   if (_isOnAllElts)
334
//     throw MEDEXCEPTION(LOCALIZED(STRING(LOC)<<"Not defined, support is on all entity !")) ;
335
  if (GeometricType==MED_EN::MED_ALL_ELEMENTS)
336
    return _number_fromfile->getValue() ;
337
  for (int i=0;i<_numberOfGeometricType;i++)
338
    if (_geometricType[i]==GeometricType)
339
      return _number_fromfile->getI(i+1) ;
340
  throw MEDEXCEPTION(LOCALIZED(STRING(LOC)<<"GeometricType not found !")) ;
341
}
342
303
/*!
343
/*!
304
  If isOnAllElements is false, returns index of element number.
344
  If isOnAllElements is false, returns index of element number.
305
  Use it with getNumber(MED_ALL_ELEMENTS).
345
  Use it with getNumber(MED_ALL_ELEMENTS).
(-)MED_SRC_3.2.2/src/MEDMEM/MEDMEM_define.hxx (-2 / +2 lines)
Lines 113-119 Link Here
113
//   //#define MED_ALL    0 !!!!! NB: WARNING MED_ALL deja utilise dans l'enum medGeometryElement !!!!!!!!
113
//   //#define MED_ALL    0 !!!!! NB: WARNING MED_ALL deja utilise dans l'enum medGeometryElement !!!!!!!!
114
// #define MED_ALL    0
114
// #define MED_ALL    0
115
115
116
#if defined(SUN4SOL2) || defined(PCLINUX) || defined(OSF1_32) || defined(IRIX64_32) || defined(RS6000)
116
#if defined(SUN4SOL2) || defined(PCLINUX) || defined(PCLINUX64_32) || defined(OSF1_32) || defined(IRIX64_32) || defined(RS6000)
117
/* interface C/FORTRAN */
117
/* interface C/FORTRAN */
118
/* this true only with g77 and gcc : we must change it to use directly NOMF_... and INT32 or INT64 - it will be more simple to understand and to use ! */
118
/* this true only with g77 and gcc : we must change it to use directly NOMF_... and INT32 or INT64 - it will be more simple to understand and to use ! */
119
// #define NOMF_POST_UNDERSCORE
119
// #define NOMF_POST_UNDERSCORE
Lines 141-147 Link Here
141
typedef double         med_float;
141
typedef double         med_float;
142
#endif
142
#endif
143
143
144
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000)
144
#if defined(IRIX64) || defined(OSF1) || defined(VPP5000) || defined(PCLINUX64) 
145
// #define NOMF_POST_UNDERSCORE
145
// #define NOMF_POST_UNDERSCORE
146
146
147
/* correspondance des types avec HDF 5 */
147
/* correspondance des types avec HDF 5 */
(-)MED_SRC_3.2.2/src/MEDMEM/MEDMEM_medimport_src.cxx (-5 / +5 lines)
Lines 65-71 Link Here
65
  switch(type) 
65
  switch(type) 
66
    {
66
    {
67
    case MED_FLOAT64 :
67
    case MED_FLOAT64 :
68
#if defined(PCLINUX) || defined(OSF1)
68
#if defined(PCLINUX) || defined(PCLINUX64) || defined(PCLINUX64_32) || defined(OSF1)
69
/*       type_hdf = H5T_IEEE_F64BE; */
69
/*       type_hdf = H5T_IEEE_F64BE; */
70
      if (H5Tequal(hdf_file,H5T_IEEE_F64BE))
70
      if (H5Tequal(hdf_file,H5T_IEEE_F64BE))
71
	type_hdf = H5T_IEEE_F64LE;
71
	type_hdf = H5T_IEEE_F64LE;
Lines 81-87 Link Here
81
      break;
81
      break;
82
      
82
      
83
    case MED_INT :
83
    case MED_INT :
84
#if defined(IRIX64) || defined(OSF1)
84
#if defined(IRIX64) || defined(OSF1) || defined(PCLINUX64)
85
      type_hdf = H5T_NATIVE_LONG; 
85
      type_hdf = H5T_NATIVE_LONG; 
86
#else
86
#else
87
      type_hdf = H5T_NATIVE_INT;
87
      type_hdf = H5T_NATIVE_INT;
Lines 140-146 Link Here
140
	 the file read under SGI is incorrect
140
	 the file read under SGI is incorrect
141
	 2) Compaq OSF/1 is LE, since we force SGI64,SUN4SOL2,HP to write double in LE even if they are BE, mips OSF/1 must be BE
141
	 2) Compaq OSF/1 is LE, since we force SGI64,SUN4SOL2,HP to write double in LE even if they are BE, mips OSF/1 must be BE
142
	 REM  : Be careful of compatibility between MED files when changing this (med2.2)                    */
142
	 REM  : Be careful of compatibility between MED files when changing this (med2.2)                    */
143
#if defined(PCLINUX) || defined(OSF1)
143
#if defined(PCLINUX) || defined(PCLINUX64) || defined(PCLINUX64_32) || defined(OSF1)
144
/*       type_hdf = H5T_IEEE_F64BE; */
144
/*       type_hdf = H5T_IEEE_F64BE; */
145
      if (H5Tequal(hdf_file,H5T_IEEE_F64BE))
145
      if (H5Tequal(hdf_file,H5T_IEEE_F64BE))
146
	type_hdf = H5T_IEEE_F64LE;
146
	type_hdf = H5T_IEEE_F64LE;
Lines 866-872 Link Here
866
      if(old_conn == NULL)
866
      if(old_conn == NULL)
867
	throw MEDEXCEPTION("Problem in the med File convertor 2.1 to 2.2, you should check the med File you wanted to mount in memory");
867
	throw MEDEXCEPTION("Problem in the med File convertor 2.1 to 2.2, you should check the med File you wanted to mount in memory");
868
868
869
#if defined(IRIX64)||defined(OSF1)
869
#if defined(IRIX64)||defined(OSF1)||defined(PCLINUX64)
870
      ret = OLD_MEDdatasetNumLire(gid,MED_NOM_NOD,MED_INT64,
870
      ret = OLD_MEDdatasetNumLire(gid,MED_NOM_NOD,MED_INT64,
871
				  MED_NO_INTERLACE,(med_size)taille,MED_ALL,
871
				  MED_NO_INTERLACE,(med_size)taille,MED_ALL,
872
				  0,NULL,MED_NOPG,
872
				  0,NULL,MED_NOPG,
Lines 889-895 Link Here
889
      for (j=0;j<n*taille;j++)
889
      for (j=0;j<n*taille;j++)
890
	*(conn+j) = *(old_conn+j);
890
	*(conn+j) = *(old_conn+j);
891
      dimd[0] = n*taille;
891
      dimd[0] = n*taille;
892
#if defined(IRIX64)||defined(OSF1)
892
#if defined(IRIX64)||defined(OSF1)||defined(PCLINUX64)
893
      ret = _MEDdatasetNumEcrire(gid,"TMP",MED_INT64,MED_NO_INTERLACE,
893
      ret = _MEDdatasetNumEcrire(gid,"TMP",MED_INT64,MED_NO_INTERLACE,
894
				 taille,MED_ALL,MED_NOPF,MED_NO_PFLMOD,0,MED_NOPG,dimd,
894
				 taille,MED_ALL,MED_NOPF,MED_NO_PFLMOD,0,MED_NOPG,dimd,
895
				 (unsigned char*) conn);
895
				 (unsigned char*) conn);
(-)MED_SRC_3.2.2/src/MEDMEM_I/MEDMEM_Med_i.cxx (-25 / +74 lines)
Lines 228-234 Link Here
228
                          SALOMEDS::Study_ptr     study)
228
                          SALOMEDS::Study_ptr     study)
229
  {
229
  {
230
    string entryPath = SUPPORT_i::getEntryPath( support );
230
    string entryPath = SUPPORT_i::getEntryPath( support );
231
    return ! CORBA::is_nil( study->FindObjectByPath( entryPath.c_str() ));
231
    SALOMEDS::SObject_var so = study->FindObjectByPath( entryPath.c_str() );
232
    return ! CORBA::is_nil( so );
233
  }
234
  bool isPublishedMesh(SALOMEDS::Study_ptr study)
235
  {
236
    string entryPath = "/Med/MEDMESH";
237
    SALOMEDS::SObject_var so = study->FindObjectByPath( entryPath.c_str() );
238
    if ( !so->_is_nil() ) {
239
      CORBA::String_var ior = so->GetIOR();
240
      // for persistance: "published" means SObject exists but without IOR
241
      bool published = ( strlen( ior ) == 0 );
242
      return published;
243
    }
244
    return false;
232
  }
245
  }
233
}
246
}
234
247
Lines 240-247 Link Here
240
void MED_i::initWithFieldType(SALOMEDS::Study_ptr myStudy,driverTypes driverType, const string & fileName, bool persistence)
253
void MED_i::initWithFieldType(SALOMEDS::Study_ptr myStudy,driverTypes driverType, const string & fileName, bool persistence)
241
{
254
{
242
  // if (persistence):
255
  // if (persistence):
243
  //    all meshes and fields contained in the file should be published,
256
  //    some supports, or meshes can be not published
244
  //    only some supports maybe not
245
257
246
	const char * LOC = "MED_i::initWithFieldType(driverTypes, const string &)";
258
	const char * LOC = "MED_i::initWithFieldType(driverTypes, const string &)";
247
	BEGIN_OF(LOC);
259
	BEGIN_OF(LOC);
Lines 271-277 Link Here
271
	    MESH_i * myMeshI = new MESH_i(myMesh);
283
	    MESH_i * myMeshI = new MESH_i(myMesh);
272
	    SALOME_MED::MESH_ptr myMeshIOR = myMeshI->_this();
284
	    SALOME_MED::MESH_ptr myMeshIOR = myMeshI->_this();
273
	    _meshes[meshesNames[i]]=myMeshIOR;
285
	    _meshes[meshesNames[i]]=myMeshIOR;
274
	    myMeshI->addInStudy(myStudy,myMeshIOR);
286
            if ( !persistence || isPublishedMesh(myStudy ))
287
              myMeshI->addInStudy(myStudy,myMeshIOR);
275
	}
288
	}
276
289
277
  // SUPPORTS :
290
  // SUPPORTS :
Lines 1254-1259 Link Here
1254
//=============================================================================
1267
//=============================================================================
1255
/*!
1268
/*!
1256
 * CORBA: Add Med object in Study with a name medObjName
1269
 * CORBA: Add Med object in Study with a name medObjName
1270
 *
1271
 * FOR PERSISTANCE: if fileName is NULL string, looks for a SObject with a
1272
 * suitable name and bad IOR and update the IOR
1257
 */
1273
 */
1258
//=============================================================================
1274
//=============================================================================
1259
void MED_i::addInStudy(SALOMEDS::Study_ptr myStudy, SALOME_MED::MED_ptr myIor,
1275
void MED_i::addInStudy(SALOMEDS::Study_ptr myStudy, SALOME_MED::MED_ptr myIor,
Lines 1282-1317 Link Here
1282
				       SALOME::BAD_PARAM);
1298
				       SALOME::BAD_PARAM);
1283
        };
1299
        };
1284
1300
1285
        MESSAGE("Add a MED Object under Med");
1301
        SALOMEDS::SObject_var medObj;
1286
1302
        if ( ! fileName )
1287
	char * medObjName;
1303
        {
1288
	string::size_type pos1=string(fileName).rfind('/');
1304
          //  FOR PERSISTANCE: if fileName is a NULL string,
1289
	string::size_type lenFileName = strlen(fileName);
1305
          //  looks for a SObject with a suitable name and
1290
	string fileNameShort = string(fileName,pos1+1,lenFileName-pos1-1);
1306
          //  bad IOR and update the IOR
1291
1307
          SALOMEDS::ChildIterator_var anIter = myStudy->NewChildIterator( medfather );
1292
	SCRUTE(fileNameShort);
1308
          for ( ; anIter->More(); anIter->Next()) {
1293
1309
            SALOMEDS::SObject_var obj = anIter->Value();
1294
	int lenName = 21 + strlen(fileNameShort.c_str()) + 1;
1310
            // check name
1295
	medObjName = new char[lenName];
1311
            CORBA::String_var name = obj->GetName();
1296
	medObjName = strcpy(medObjName,"MED_OBJECT_FROM_FILE_");
1312
            const char* suitableName1 = "MED_OBJECT_FROM_FILE_";
1297
	medObjName = strcat(medObjName,fileNameShort.c_str());
1313
            const char* suitableName2 = "Objet MED";
1314
            if ( strncmp( name, suitableName1, strlen(suitableName1)) == 0 || 
1315
                 strcmp( name, suitableName2 ) == 0 ) {
1316
              // check IOR
1317
              CORBA::String_var ior = obj->GetIOR();
1318
              if ( strlen( ior ) == 0 ) {
1319
                medObj = obj;
1320
                break;
1321
              }
1322
            }
1323
          }
1324
          if ( medObj->_is_nil() )
1325
            return; // nothing looking like MED found in the study
1326
        }
1327
        else
1328
        {
1329
          MESSAGE("Add a MED Object under Med");
1298
1330
1299
        SALOMEDS::SObject_var newObj = myBuilder->NewObject(medfather);
1331
          char * medObjName;
1332
          string::size_type pos1=string(fileName).rfind('/');
1333
          string::size_type lenFileName = strlen(fileName);
1334
          string fileNameShort = string(fileName,pos1+1,lenFileName-pos1-1);
1335
1336
          SCRUTE(fileNameShort);
1337
1338
          int lenName = 21 + strlen(fileNameShort.c_str()) + 1;
1339
          medObjName = new char[lenName];
1340
          medObjName = strcpy(medObjName,"MED_OBJECT_FROM_FILE_");
1341
          medObjName = strcat(medObjName,fileNameShort.c_str());
1342
1343
          string path = string("/Med/") + medObjName;
1344
          medObj = myStudy->FindObjectByPath(path.c_str());
1345
          if ( medObj->_is_nil() )
1346
            medObj = myBuilder->NewObject(medfather);
1347
1348
          anAttr = myBuilder->FindOrCreateAttribute(medObj, "AttributeName");
1349
          aName = SALOMEDS::AttributeName::_narrow(anAttr);
1350
          aName->SetValue(medObjName);
1300
1351
1352
          delete [] medObjName;
1353
        }
1301
        ORB_INIT &init = *SINGLETON_<ORB_INIT>::Instance();
1354
        ORB_INIT &init = *SINGLETON_<ORB_INIT>::Instance();
1302
        ASSERT(SINGLETON_<ORB_INIT>::IsAlreadyExisting());
1355
        ASSERT(SINGLETON_<ORB_INIT>::IsAlreadyExisting());
1303
        CORBA::ORB_var &orb = init(0,0);
1356
        CORBA::ORB_var &orb = init(0,0);
1304
        string iorStr = orb->object_to_string(myIor);
1357
        string iorStr = orb->object_to_string(myIor);
1305
        anAttr = myBuilder->FindOrCreateAttribute(newObj, "AttributeIOR");
1358
        anAttr = myBuilder->FindOrCreateAttribute(medObj, "AttributeIOR");
1306
        aIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
1359
        aIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
1307
        aIOR->SetValue(iorStr.c_str());
1360
        aIOR->SetValue(iorStr.c_str());
1308
        anAttr = myBuilder->FindOrCreateAttribute(newObj, "AttributeName");
1309
        aName = SALOMEDS::AttributeName::_narrow(anAttr);
1310
        aName->SetValue(medObjName);
1311
        _medId = newObj->GetID();
1312
        myBuilder->CommitCommand();
1313
1361
1314
	delete [] medObjName;
1362
        _medId = medObj->GetID();
1363
        myBuilder->CommitCommand();
1315
1364
1316
// 	char * medObjName1;
1365
// 	char * medObjName1;
1317
// 	lenName = 26 + strlen(fileNameShort.c_str());
1366
// 	lenName = 26 + strlen(fileNameShort.c_str());
(-)MED_SRC_3.2.2/src/MEDMEM_I/MEDMEM_Support_i.cxx (+39 lines)
Lines 407-412 Link Here
407
407
408
//=============================================================================
408
//=============================================================================
409
/*!
409
/*!
410
 * CORBA: get Nodes from file
411
 */
412
//=============================================================================
413
SALOME_MED::long_array *  SUPPORT_i::getNumberFromFile(SALOME_MED::medGeometryElement geomElement) 
414
throw (SALOME::SALOME_Exception)
415
{
416
  SCRUTE(_support);
417
  SCRUTE(geomElement);
418
  SCRUTE(convertIdlEltToMedElt(geomElement));
419
420
	if (_support==NULL)
421
		THROW_SALOME_CORBA_EXCEPTION("No associated Support", \
422
				             SALOME::INTERNAL_ERROR);
423
        SALOME_MED::long_array_var myseq= new SALOME_MED::long_array;
424
        try
425
        {
426
                int nbelements=_support->getNumberOfElements(convertIdlEltToMedElt(geomElement));
427
                myseq->length(nbelements);
428
SCRUTE(_support->getName());
429
SCRUTE(nbelements);
430
SCRUTE(convertIdlEltToMedElt(geomElement));
431
                const int * numbers=_support->getNumberFromFile(convertIdlEltToMedElt(geomElement));
432
                for (int i=0;i<nbelements;i++)
433
                {
434
                        myseq[i]=numbers[i];
435
SCRUTE(numbers[i]);
436
                }
437
        }
438
        catch (MEDEXCEPTION &ex)
439
        {
440
      		MESSAGE("Unable to access the support optionnal index");
441
		THROW_SALOME_CORBA_EXCEPTION(ex.what(), SALOME::INTERNAL_ERROR);
442
        }
443
        return myseq._retn();
444
	
445
}
446
447
//=============================================================================
448
/*!
410
 * CORBA: 2nd get Nodes 
449
 * CORBA: 2nd get Nodes 
411
 */
450
 */
412
//=============================================================================
451
//=============================================================================
(-)MED_SRC_3.2.2/src/MEDMEM_I/MEDMEM_Support_i.hxx (+4 lines)
Lines 77-82 Link Here
77
                                           throw (SALOME::SALOME_Exception);
77
                                           throw (SALOME::SALOME_Exception);
78
    SALOME_MED::long_array* getNumber(SALOME_MED::medGeometryElement geomElement) 
78
    SALOME_MED::long_array* getNumber(SALOME_MED::medGeometryElement geomElement) 
79
					   throw (SALOME::SALOME_Exception);
79
					   throw (SALOME::SALOME_Exception);
80
81
    SALOME_MED::long_array* getNumberFromFile(SALOME_MED::medGeometryElement geomElement) 
82
                                           throw (SALOME::SALOME_Exception);
83
80
    SALOME::SenderInt_ptr getSenderForNumber(SALOME_MED::medGeometryElement geomElement) 
84
    SALOME::SenderInt_ptr getSenderForNumber(SALOME_MED::medGeometryElement geomElement) 
81
                                           throw (SALOME::SALOME_Exception);
85
                                           throw (SALOME::SALOME_Exception);
82
    SALOME_MED::long_array* getNumberIndex() 
86
    SALOME_MED::long_array* getNumberIndex() 
(-)MED_SRC_3.2.2/src/MEDWrapper/Base/MED_Common.hxx (-2 / +2 lines)
Lines 52-61 Link Here
52
  
52
  
53
  typedef enum {eFAUX, eVRAI} EBooleen ; 
53
  typedef enum {eFAUX, eVRAI} EBooleen ; 
54
  typedef double TFloat;
54
  typedef double TFloat;
55
#if defined(SUN4SOL2) || defined(PCLINUX) || defined(OSF1_32) || defined(IRIX64_32) || defined(RS6000) || defined(HP9000)
55
#if defined(SUN4SOL2) || defined(PCLINUX) || defined(PCLINUX64_32) || defined(OSF1_32) || defined(IRIX64_32) || defined(RS6000) || defined(HP9000)
56
  typedef int TInt;
56
  typedef int TInt;
57
#endif
57
#endif
58
#if defined(IRIX64) || defined(OSF1)
58
#if defined(IRIX64) || defined(OSF1) || defined(PCLINUX64)
59
  typedef long TInt;
59
  typedef long TInt;
60
#endif
60
#endif
61
  typedef hid_t TIdt;
61
  typedef hid_t TIdt;
(-)MED_SRC_3.2.2/src/MEDWrapper/V2_1/Core/MEDattrNumEcrire.cxx (-4 / +4 lines)
Lines 48-54 Link Here
48
	 the file read under SGI is incorrect
48
	 the file read under SGI is incorrect
49
	 2) Compaq OSF/1 is LE, since we force SGI64,SUN4SOL2,HP to write double in LE even if they are BE, mips OSF/1 must be BE
49
	 2) Compaq OSF/1 is LE, since we force SGI64,SUN4SOL2,HP to write double in LE even if they are BE, mips OSF/1 must be BE
50
	 REM  : Be careful of compatibility between MED files when changing this (med2.2)                    */
50
	 REM  : Be careful of compatibility between MED files when changing this (med2.2)                    */
51
#if defined(PCLINUX) || defined(OSF1)
51
#if defined(PCLINUX) || defined(PCLINUX64) || defined(PCLINUX64_32) || defined(OSF1)
52
      type_hdf = H5T_IEEE_F64BE;
52
      type_hdf = H5T_IEEE_F64BE;
53
#else 
53
#else 
54
      type_hdf = H5T_IEEE_F64LE;
54
      type_hdf = H5T_IEEE_F64LE;
Lines 56-64 Link Here
56
      break;
56
      break;
57
      
57
      
58
    case MED_INT :
58
    case MED_INT :
59
#if defined(IRIX64) || defined(OSF1)
59
#if defined(IRIX64) || defined(OSF1) || defined(PCLINUX64)
60
      type_hdf = H5T_NATIVE_LONG; 
60
      type_hdf = H5T_NATIVE_LONG; 
61
#elif defined(PCLINUX)
61
#elif defined(PCLINUX) || defined(PCLINUX64_32)
62
      /* This explicit convertion avoid a core dump between in HDF&ASTER when reading on SGI
62
      /* This explicit convertion avoid a core dump between in HDF&ASTER when reading on SGI
63
	 a file written under a PCLINUX system (in founction H5Tconvert),
63
	 a file written under a PCLINUX system (in founction H5Tconvert),
64
	 we don't know yet if it is an HDF bug or an ASTER one */
64
	 we don't know yet if it is an HDF bug or an ASTER one */
Lines 93-99 Link Here
93
  if ((ret = H5Aclose(attr)) < 0)
93
  if ((ret = H5Aclose(attr)) < 0)
94
    return -1;
94
    return -1;
95
95
96
#if defined(PCLINUX)
96
#if defined(PCLINUX) || defined(PCLINUX64_32)
97
  /* This explicit convertion cancel the previous on which avoid a mysterious bug between HDF&ASTER when reading
97
  /* This explicit convertion cancel the previous on which avoid a mysterious bug between HDF&ASTER when reading
98
     a file written under a PCLINUX system, we don't know yet if it is an HDF bug or an ASTER one */  
98
     a file written under a PCLINUX system, we don't know yet if it is an HDF bug or an ASTER one */  
99
  if (type == MED_INT) 
99
  if (type == MED_INT) 
(-)MED_SRC_3.2.2/src/MEDWrapper/V2_1/Core/MEDattrNumLire.cxx (-2 / +8 lines)
Lines 46-52 Link Here
46
  switch(type) 
46
  switch(type) 
47
    {
47
    {
48
    case MED_REEL64 :
48
    case MED_REEL64 :
49
#if defined(PCLINUX) || defined(OSF1)
49
#if defined(PCLINUX) || defined(OSF1) || defined(PCLINUX64) || defined(PCLINUX64_32)
50
      type_hdf = H5T_IEEE_F64BE;
50
      type_hdf = H5T_IEEE_F64BE;
51
#else 
51
#else 
52
      type_hdf = H5T_IEEE_F64LE;
52
      type_hdf = H5T_IEEE_F64LE;
Lines 54-60 Link Here
54
      break;
54
      break;
55
      
55
      
56
    case MED_INT :
56
    case MED_INT :
57
#if defined(IRIX64) || defined(OSF1)
57
#if defined(IRIX64) || defined(OSF1) || defined(PCLINUX64)
58
      type_hdf = H5T_NATIVE_LONG; 
58
      type_hdf = H5T_NATIVE_LONG; 
59
#else
59
#else
60
      type_hdf = H5T_NATIVE_INT;
60
      type_hdf = H5T_NATIVE_INT;
Lines 68-73 Link Here
68
  if ((ret = H5Aread(attid,type_hdf,val)) < 0)
68
  if ((ret = H5Aread(attid,type_hdf,val)) < 0)
69
    return -1;
69
    return -1;
70
70
71
  if (strcmp(nom, MED_NOM_NGA) == 0 ) {
72
    med_int* ngauss = (med_int*)val;
73
    if( *ngauss <= 0 || *ngauss > 128) 
74
      *ngauss =1;
75
  }
76
71
  if ((ret = H5Aclose(attid)) < 0)
77
  if ((ret = H5Aclose(attid)) < 0)
72
    return -1;
78
    return -1;
73
79
(-)MED_SRC_3.2.2/src/MEDWrapper/V2_1/Core/MEDbodyFittedEcr.cxx (-1 / +1 lines)
Lines 19-25 Link Here
19
#include "med_outils.hxx"
19
#include "med_outils.hxx"
20
#include "med.hxx"
20
#include "med.hxx"
21
21
22
#if defined(IRIX64)
22
#if defined(IRIX64)||defined(PCLINUX64)
23
#define MED_INTEGER MED_INT64
23
#define MED_INTEGER MED_INT64
24
#else
24
#else
25
#define MED_INTEGER MED_INT32
25
#define MED_INTEGER MED_INT32
(-)MED_SRC_3.2.2/src/MEDWrapper/V2_1/Core/MEDchampEcr.cxx (-2 / +2 lines)
Lines 203-209 Link Here
203
      break;
203
      break;
204
204
205
    case MED_INT32 :
205
    case MED_INT32 :
206
#if defined(IRIX64)||defined(OSF1) 
206
#if defined(IRIX64)||defined(OSF1)||defined(PCLINUX64)
207
     if ((ret =  _MEDdatasetNumEcrire(datagroup2,MED_NOM_CO,MED_INT64,interlace,ncomp,numco,psize,pfltab,ngauss,dimd,val,
207
     if ((ret =  _MEDdatasetNumEcrire(datagroup2,MED_NOM_CO,MED_INT64,interlace,ncomp,numco,psize,pfltab,ngauss,dimd,val,
208
				       mode)) < 0)
208
				       mode)) < 0)
209
	return -1;
209
	return -1;
Lines 215-221 Link Here
215
      break;
215
      break;
216
216
217
    case MED_INT64 :
217
    case MED_INT64 :
218
#if defined(IRIX64)||defined(OSF1) 
218
#if defined(IRIX64)||defined(OSF1)||defined(PCLINUX64)
219
     if ((ret =  _MEDdatasetNumEcrire(datagroup2,MED_NOM_CO,MED_INT64,interlace,ncomp,numco,psize,pfltab,ngauss,dimd,val,
219
     if ((ret =  _MEDdatasetNumEcrire(datagroup2,MED_NOM_CO,MED_INT64,interlace,ncomp,numco,psize,pfltab,ngauss,dimd,val,
220
				       mode)) < 0)
220
				       mode)) < 0)
221
	return -1;
221
	return -1;
(-)MED_SRC_3.2.2/src/MEDWrapper/V2_1/Core/MEDchampInfo.cxx (-1 / +8 lines)
Lines 55-62 Link Here
55
  /*
55
  /*
56
   * La liste des attributs
56
   * La liste des attributs
57
   */
57
   */
58
  if ((ret = _MEDattrEntierLire(gid,MED_NOM_TYP,(med_int*) type)) < 0)
58
59
  // MPV 05.10.2006
60
  // BUG IPAL 13482: on 64bit Mandriva OS sizeof(med_int)=8, but sizeof(med_type_champ)=4
61
  med_int aType;
62
  //  if ((ret = _MEDattrEntierLire(gid,MED_NOM_TYP,(med_int*) type)) < 0)
63
  if ((ret = _MEDattrEntierLire(gid,MED_NOM_TYP,&aType)) < 0)
59
    return -1;
64
    return -1;
65
  *type = (med_type_champ)aType;
66
  
60
  if ((ret = _MEDattrStringLire(gid,MED_NOM_NOM,ncomp*MED_TAILLE_PNOM,
67
  if ((ret = _MEDattrStringLire(gid,MED_NOM_NOM,ncomp*MED_TAILLE_PNOM,
61
				comp)) < 0)
68
				comp)) < 0)
62
    return -1;
69
    return -1;
(-)MED_SRC_3.2.2/src/MEDWrapper/V2_1/Core/MEDchampLire.cxx (-3 / +3 lines)
Lines 146-154 Link Here
146
				     psize,pfltab,ngauss,val))< 0)
146
				     psize,pfltab,ngauss,val))< 0)
147
	return -1;
147
	return -1;
148
      break;
148
      break;
149
149
      
150
    case MED_INT32 :
150
    case MED_INT32 :
151
#if defined(IRIX64)||defined(OSF1) 
151
#if defined(IRIX64)||defined(OSF1)||defined(PCLINUX64) 
152
     if ((ret =  _MEDdatasetNumLire(datagroup2,MED_NOM_CO,MED_INT64,
152
     if ((ret =  _MEDdatasetNumLire(datagroup2,MED_NOM_CO,MED_INT64,
153
				     interlace,ncomp,numco,
153
				     interlace,ncomp,numco,
154
				     psize,pfltab,ngauss,val))< 0)
154
				     psize,pfltab,ngauss,val))< 0)
Lines 162-168 Link Here
162
     break;
162
     break;
163
163
164
    case MED_INT64 :
164
    case MED_INT64 :
165
#if defined(IRIX64)||defined(OSF1) 
165
#if defined(IRIX64)||defined(OSF1)||defined(PCLINUX64) 
166
     if ((ret =  _MEDdatasetNumLire(datagroup2,MED_NOM_CO,MED_INT64,
166
     if ((ret =  _MEDdatasetNumLire(datagroup2,MED_NOM_CO,MED_INT64,
167
				     interlace,ncomp,numco,
167
				     interlace,ncomp,numco,
168
				     psize,pfltab,ngauss,val))< 0)
168
				     psize,pfltab,ngauss,val))< 0)
(-)MED_SRC_3.2.2/src/MEDWrapper/V2_1/Core/MEDconnEcr.cxx (-1 / +1 lines)
Lines 106-112 Link Here
106
       return -1;
106
       return -1;
107
     }
107
     }
108
   dimd[0] = nbre*taille;
108
   dimd[0] = nbre*taille;
109
#if defined(IRIX64)||defined(OSF1)
109
#if defined(IRIX64)||defined(OSF1)||defined(PCLINUX64)
110
   if ((ret = _MEDdatasetNumEcrire(geoid,nom_dataset,MED_INT64,mode_switch,(med_size)taille,MED_ALL,MED_NOPF,0,MED_NOPG,dimd,
110
   if ((ret = _MEDdatasetNumEcrire(geoid,nom_dataset,MED_INT64,mode_switch,(med_size)taille,MED_ALL,MED_NOPF,0,MED_NOPG,dimd,
111
				    (unsigned char*) connectivite,mode)) < 0)
111
				    (unsigned char*) connectivite,mode)) < 0)
112
     return -1;
112
     return -1;
(-)MED_SRC_3.2.2/src/MEDWrapper/V2_1/Core/MEDconnLire.cxx (-1 / +1 lines)
Lines 116-122 Link Here
116
     }
116
     }
117
117
118
118
119
#if defined(IRIX64)||defined(OSF1)
119
#if defined(IRIX64)||defined(OSF1)||defined(PCLINUX64)
120
   if ((ret = _MEDdatasetNumLire(geoid,nom_dataset,MED_INT64,
120
   if ((ret = _MEDdatasetNumLire(geoid,nom_dataset,MED_INT64,
121
				 mode_switch,(med_size)taille,MED_ALL,
121
				 mode_switch,(med_size)taille,MED_ALL,
122
				 psize,pfltab,MED_NOPG,
122
				 psize,pfltab,MED_NOPG,
(-)MED_SRC_3.2.2/src/MEDWrapper/V2_1/Core/MEDdatasetNumEcrire.cxx (-3 / +3 lines)
Lines 96-102 Link Here
96
	 the file read under SGI is incorrect
96
	 the file read under SGI is incorrect
97
	 2) Compaq OSF/1 is LE, since we force SGI64,SUN4SOL2,HP to write double in LE even if they are BE, mips OSF/1 must be BE
97
	 2) Compaq OSF/1 is LE, since we force SGI64,SUN4SOL2,HP to write double in LE even if they are BE, mips OSF/1 must be BE
98
	 REM  : Be careful of compatibility between MED files when changing this (med2.2)                    */
98
	 REM  : Be careful of compatibility between MED files when changing this (med2.2)                    */
99
#if defined(PCLINUX) || defined(OSF1)
99
#if defined(PCLINUX) || defined(PCLINUX64) || defined(PCLINUX64_32) || defined(OSF1)
100
      type_hdf = H5T_IEEE_F64BE;
100
      type_hdf = H5T_IEEE_F64BE;
101
#else     
101
#else     
102
      type_hdf = H5T_IEEE_F64LE;
102
      type_hdf = H5T_IEEE_F64LE;
Lines 104-110 Link Here
104
      break;
104
      break;
105
105
106
    case MED_INT32 :
106
    case MED_INT32 :
107
#if defined(PCLINUX)
107
#if defined(PCLINUX) || defined(PCLINUX64) || defined(PCLINUX64_32)
108
      type_hdf = H5T_STD_I32BE;
108
      type_hdf = H5T_STD_I32BE;
109
      if ((H5Tconvert(H5T_NATIVE_INT,H5T_STD_I32BE,(hsize_t)*size,(void *)val,NULL,(hid_t)0)) < 0) 
109
      if ((H5Tconvert(H5T_NATIVE_INT,H5T_STD_I32BE,(hsize_t)*size,(void *)val,NULL,(hid_t)0)) < 0) 
110
	  return -1;
110
	  return -1;
Lines 428-434 Link Here
428
  if ((ret = H5Dclose(dataset)) < 0)
428
  if ((ret = H5Dclose(dataset)) < 0)
429
    return -1;      
429
    return -1;      
430
430
431
#if defined(PCLINUX)
431
#if defined(PCLINUX) || defined(PCLINUX64) || defined(PCLINUX64_32)
432
  if (type == MED_INT32)
432
  if (type == MED_INT32)
433
      if ((H5Tconvert(H5T_STD_I32BE,H5T_NATIVE_INT,(hsize_t)*size,(void *)val,NULL,(hid_t)0)) < 0) 
433
      if ((H5Tconvert(H5T_STD_I32BE,H5T_NATIVE_INT,(hsize_t)*size,(void *)val,NULL,(hid_t)0)) < 0) 
434
	  return -1;
434
	  return -1;
(-)MED_SRC_3.2.2/src/MEDWrapper/V2_1/Core/MEDdatasetNumLire.cxx (-3 / +3 lines)
Lines 95-101 Link Here
95
	 the file read under SGI is incorrect
95
	 the file read under SGI is incorrect
96
	 2) Compaq OSF/1 is LE, since we force SGI64,SUN4SOL2,HP to write double in LE even if they are BE, mips OSF/1 must be BE
96
	 2) Compaq OSF/1 is LE, since we force SGI64,SUN4SOL2,HP to write double in LE even if they are BE, mips OSF/1 must be BE
97
	 REM  : Be careful of compatibility between MED files when changing this (med2.2)                    */
97
	 REM  : Be careful of compatibility between MED files when changing this (med2.2)                    */
98
#if defined(PCLINUX) || defined(OSF1)
98
#if defined(PCLINUX) || defined(OSF1) || defined(PCLINUX64) || defined(PCLINUX64_32)
99
      type_hdf = H5T_IEEE_F64BE;
99
      type_hdf = H5T_IEEE_F64BE;
100
#else 
100
#else 
101
      type_hdf = H5T_IEEE_F64LE;
101
      type_hdf = H5T_IEEE_F64LE;
Lines 264-270 Link Here
264
	free(pflmem);
264
	free(pflmem);
265
	free(pfldsk);
265
	free(pfldsk);
266
      }
266
      }
267
      
267
     
268
      break;
268
      break;
269
      
269
      
270
    case MED_NO_INTERLACE :
270
    case MED_NO_INTERLACE :
Lines 393-399 Link Here
393
	  }
393
	  }
394
	
394
	
395
	free(pfldsk);
395
	free(pfldsk);
396
	
396
		
397
      };
397
      };
398
      
398
      
399
      break;
399
      break;
(-)MED_SRC_3.2.2/src/MEDWrapper/V2_1/Core/MEDequivEcr.cxx (-1 / +1 lines)
Lines 87-93 Link Here
87
87
88
  dimd[0] = 2*n;
88
  dimd[0] = 2*n;
89
89
90
#if defined(IRIX64)||defined(OSF1)
90
#if defined(IRIX64)||defined(OSF1)||defined(PCLINUX64)
91
  if ((ret =  _MEDdatasetNumEcrire(datagroup,MED_NOM_COR,MED_INT64,MED_NO_INTERLACE,MED_DIM1,MED_ALL,MED_NOPF,0,MED_NOPG,dimd,
91
  if ((ret =  _MEDdatasetNumEcrire(datagroup,MED_NOM_COR,MED_INT64,MED_NO_INTERLACE,MED_DIM1,MED_ALL,MED_NOPF,0,MED_NOPG,dimd,
92
				(unsigned char*) corr,mode)) < 0)
92
				(unsigned char*) corr,mode)) < 0)
93
    return -1;
93
    return -1;
(-)MED_SRC_3.2.2/src/MEDWrapper/V2_1/Core/MEDequivLire.cxx (-1 / +1 lines)
Lines 71-77 Link Here
71
    }
71
    }
72
  if ((datagroup = _MEDdatagroupOuvrir(eqid,nomdatagroup)) < 0)
72
  if ((datagroup = _MEDdatagroupOuvrir(eqid,nomdatagroup)) < 0)
73
    return -1;
73
    return -1;
74
#if defined(IRIX64)||defined(OSF1)
74
#if defined(IRIX64)||defined(OSF1)||defined(PCLINUX64)
75
  if ((ret =  _MEDdatasetNumLire(datagroup,MED_NOM_COR,MED_INT64,
75
  if ((ret =  _MEDdatasetNumLire(datagroup,MED_NOM_COR,MED_INT64,
76
				 MED_NO_INTERLACE,1,MED_ALL,
76
				 MED_NO_INTERLACE,1,MED_ALL,
77
				 MED_NOPF,0,MED_NOPG,
77
				 MED_NOPF,0,MED_NOPG,
(-)MED_SRC_3.2.2/src/MEDWrapper/V2_1/Core/MEDfamCr.cxx (-2 / +2 lines)
Lines 118-124 Link Here
118
       * Le Data Set "IDE"
118
       * Le Data Set "IDE"
119
       */
119
       */
120
      dimd[0] = n_attr;
120
      dimd[0] = n_attr;
121
#if defined(IRIX64)||defined(OSF1)
121
#if defined(IRIX64)||defined(OSF1)||defined(PCLINUX64)
122
      if ((ret = _MEDdatasetNumEcrire(datagroup,MED_NOM_IDE,MED_INT64,MED_NO_INTERLACE,MED_DIM1,MED_ALL,MED_NOPF,0,MED_NOPG,dimd,
122
      if ((ret = _MEDdatasetNumEcrire(datagroup,MED_NOM_IDE,MED_INT64,MED_NO_INTERLACE,MED_DIM1,MED_ALL,MED_NOPF,0,MED_NOPG,dimd,
123
				   (unsigned char *)attr_ident,MED_REMP)) < 0)
123
				   (unsigned char *)attr_ident,MED_REMP)) < 0)
124
	return -1;    
124
	return -1;    
Lines 132-138 Link Here
132
       * Le Data Set "VAL"
132
       * Le Data Set "VAL"
133
       */
133
       */
134
      dimd[0] = n_attr;
134
      dimd[0] = n_attr;
135
#if defined(IRIX64)||defined(OSF1)
135
#if defined(IRIX64)||defined(OSF1)||defined(PCLINUX64)
136
      if ((ret = _MEDdatasetNumEcrire(datagroup,MED_NOM_VAL,MED_INT64,MED_NO_INTERLACE,MED_DIM1,MED_ALL,MED_NOPF,0,MED_NOPG,dimd,
136
      if ((ret = _MEDdatasetNumEcrire(datagroup,MED_NOM_VAL,MED_INT64,MED_NO_INTERLACE,MED_DIM1,MED_ALL,MED_NOPF,0,MED_NOPG,dimd,
137
				   (unsigned char*)attr_val,MED_REMP)) < 0)
137
				   (unsigned char*)attr_val,MED_REMP)) < 0)
138
	return -1;
138
	return -1;
(-)MED_SRC_3.2.2/src/MEDWrapper/V2_1/Core/MEDfamEcr.cxx (-1 / +1 lines)
Lines 86-92 Link Here
86
   else
86
   else
87
     root = geoid;
87
     root = geoid;
88
   dimd[0] = n;
88
   dimd[0] = n;
89
#if defined(IRIX64) || defined(OSF1)
89
#if defined(IRIX64) || defined(OSF1) || defined(PCLINUX64)
90
   if ((ret = _MEDdatasetNumEcrire(root,MED_NOM_FAM,MED_INT64,MED_NO_INTERLACE,MED_DIM1,MED_ALL,MED_NOPF,0,MED_NOPG,dimd,
90
   if ((ret = _MEDdatasetNumEcrire(root,MED_NOM_FAM,MED_INT64,MED_NO_INTERLACE,MED_DIM1,MED_ALL,MED_NOPF,0,MED_NOPG,dimd,
91
				(unsigned char*)fam,mode)) < 0)
91
				(unsigned char*)fam,mode)) < 0)
92
     return -1;
92
     return -1;
(-)MED_SRC_3.2.2/src/MEDWrapper/V2_1/Core/MEDfamInfo.cxx (-2 / +2 lines)
Lines 103-109 Link Here
103
      /*
103
      /*
104
       * Le Data Set "IDE"
104
       * Le Data Set "IDE"
105
       */
105
       */
106
#if defined(IRIX64)||defined(OSF1)
106
#if defined(IRIX64)||defined(OSF1)||defined(PCLINUX64)
107
      if ((ret = _MEDdatasetNumLire(datagroup,MED_NOM_IDE,MED_INT64,
107
      if ((ret = _MEDdatasetNumLire(datagroup,MED_NOM_IDE,MED_INT64,
108
				    MED_NO_INTERLACE,1,MED_ALL,
108
				    MED_NO_INTERLACE,1,MED_ALL,
109
				    MED_NOPF,0,MED_NOPG,
109
				    MED_NOPF,0,MED_NOPG,
Lines 120-126 Link Here
120
      /*
120
      /*
121
       * Le Data Set "VAL"
121
       * Le Data Set "VAL"
122
       */
122
       */
123
#if defined(IRIX64)||defined(OSF1)
123
#if defined(IRIX64)||defined(OSF1)||defined(PCLINUX64)
124
      if ((ret = _MEDdatasetNumLire(datagroup,MED_NOM_VAL,MED_INT64,
124
      if ((ret = _MEDdatasetNumLire(datagroup,MED_NOM_VAL,MED_INT64,
125
				    MED_NO_INTERLACE,1,MED_ALL,
125
				    MED_NO_INTERLACE,1,MED_ALL,
126
				    MED_NOPF,0,MED_NOPG,
126
				    MED_NOPF,0,MED_NOPG,
(-)MED_SRC_3.2.2/src/MEDWrapper/V2_1/Core/MEDfamLire.cxx (-1 / +1 lines)
Lines 81-87 Link Here
81
     root = entid;
81
     root = entid;
82
   else
82
   else
83
     root = geoid;
83
     root = geoid;
84
#if defined(IRIX64)||defined(OSF1)
84
#if defined(IRIX64)||defined(OSF1)||defined(PCLINUX64)
85
   if ((ret = _MEDdatasetNumLire(root,MED_NOM_FAM,MED_INT64,
85
   if ((ret = _MEDdatasetNumLire(root,MED_NOM_FAM,MED_INT64,
86
				 MED_NO_INTERLACE,1,MED_ALL,
86
				 MED_NO_INTERLACE,1,MED_ALL,
87
				 MED_NOPF,0,MED_NOPG,
87
				 MED_NOPF,0,MED_NOPG,
(-)MED_SRC_3.2.2/src/MEDWrapper/V2_1/Core/MEDgridInfo.cxx (-1 / +3 lines)
Lines 47-57 Link Here
47
    maaid = _MEDdatagroupOuvrir(fid, chemin);
47
    maaid = _MEDdatagroupOuvrir(fid, chemin);
48
    if (maaid < 0) return(-1);
48
    if (maaid < 0) return(-1);
49
49
50
    if (_MEDattrEntierLire(maaid, MED_NOM_GRD, typ) < 0) {
50
    med_int aTmpType; // MPV bug IPAL 13621: for 64bits platform read 64 bits (not 32 - as for type)
51
    if (_MEDattrEntierLire(maaid, MED_NOM_GRD, &aTmpType) < 0) {
51
        *isAGrid = 0;
52
        *isAGrid = 0;
52
    } else {
53
    } else {
53
        *isAGrid = 1;
54
        *isAGrid = 1;
54
    };
55
    };
56
    *typ = (med_grid_type)aTmpType;// MPV bug IPAL 13621: now use this 64bits value to set enumeration
55
57
56
    if (_MEDdatagroupFermer(maaid) < 0) return(-1);
58
    if (_MEDdatagroupFermer(maaid) < 0) return(-1);
57
    return(0);
59
    return(0);
(-)MED_SRC_3.2.2/src/MEDWrapper/V2_1/Core/MEDnumEcr.cxx (-1 / +1 lines)
Lines 86-92 Link Here
86
   else
86
   else
87
     root = geoid;
87
     root = geoid;
88
   dimd[0] = n;
88
   dimd[0] = n;
89
#if defined(IRIX64)||defined(OSF1)
89
#if defined(IRIX64)||defined(OSF1)||defined(PCLINUX64)
90
   if ((ret = _MEDdatasetNumEcrire(root,MED_NOM_NUM,MED_INT64,MED_NO_INTERLACE,MED_DIM1,MED_ALL,MED_NOPF,0,MED_NOPG,dimd,
90
   if ((ret = _MEDdatasetNumEcrire(root,MED_NOM_NUM,MED_INT64,MED_NO_INTERLACE,MED_DIM1,MED_ALL,MED_NOPF,0,MED_NOPG,dimd,
91
				(unsigned char*) num,mode)) < 0)
91
				(unsigned char*) num,mode)) < 0)
92
     return -1;
92
     return -1;
(-)MED_SRC_3.2.2/src/MEDWrapper/V2_1/Core/MEDnumLire.cxx (-1 / +1 lines)
Lines 81-87 Link Here
81
     root = entid;
81
     root = entid;
82
   else
82
   else
83
     root = geoid;
83
     root = geoid;
84
#if defined(IRIX64)||defined(OSF1)
84
#if defined(IRIX64)||defined(OSF1)||defined(PCLINUX64)
85
   if ((ret = _MEDdatasetNumLire(root,MED_NOM_NUM,MED_INT64,
85
   if ((ret = _MEDdatasetNumLire(root,MED_NOM_NUM,MED_INT64,
86
				 MED_NO_INTERLACE,1,MED_ALL,
86
				 MED_NO_INTERLACE,1,MED_ALL,
87
				 MED_NOPF,0,MED_NOPG,
87
				 MED_NOPF,0,MED_NOPG,
(-)MED_SRC_3.2.2/src/MEDWrapper/V2_1/Core/MEDprofilEcr.cxx (-1 / +1 lines)
Lines 65-71 Link Here
65
   * On stocke le profil dans un dataset
65
   * On stocke le profil dans un dataset
66
   */
66
   */
67
  dimd[0] = n;
67
  dimd[0] = n;
68
#if defined(IRIX64)||defined(OSF1)
68
#if defined(IRIX64)||defined(OSF1)||defined(PCLINUX64)
69
  if ((ret =  _MEDdatasetNumEcrire(pid,MED_NOM_PFL,MED_INT64,MED_NO_INTERLACE,MED_DIM1,MED_ALL,MED_NOPF,0,MED_NOPG,dimd,
69
  if ((ret =  _MEDdatasetNumEcrire(pid,MED_NOM_PFL,MED_INT64,MED_NO_INTERLACE,MED_DIM1,MED_ALL,MED_NOPF,0,MED_NOPG,dimd,
70
				(unsigned char*) pflval,MED_REMP)) < 0)
70
				(unsigned char*) pflval,MED_REMP)) < 0)
71
    return -1;
71
    return -1;
(-)MED_SRC_3.2.2/src/MEDWrapper/V2_1/Core/MEDprofilLire.cxx (-1 / +1 lines)
Lines 47-53 Link Here
47
  /*
47
  /*
48
   * Lecture du profil
48
   * Lecture du profil
49
   */
49
   */
50
#if defined(IRIX64)||defined(OSF1)
50
#if defined(IRIX64)||defined(OSF1)||defined(PCLINUX64)
51
  if ((ret =  _MEDdatasetNumLire(pid,MED_NOM_PFL,MED_INT64,
51
  if ((ret =  _MEDdatasetNumLire(pid,MED_NOM_PFL,MED_INT64,
52
				 MED_NO_INTERLACE,1,MED_ALL,
52
				 MED_NO_INTERLACE,1,MED_ALL,
53
				 MED_NOPF,0,MED_NOPG,
53
				 MED_NOPF,0,MED_NOPG,
(-)MED_SRC_3.2.2/src/MEDWrapper/V2_1/Core/mdump_V2_1.cxx (-1 / +1 lines)
Lines 945-951 Link Here
945
	    /* affichage des resultats */
945
	    /* affichage des resultats */
946
	    if (ret == 0)
946
	    if (ret == 0)
947
	      {
947
	      {
948
		fprintf(stdout,"\n- Aretes de type %d : ", nomare[i]);
948
		fprintf(stdout,"\n- Aretes de type %s : ", nomare[i]);
949
		fprintf(stdout,"\n  - Connectivité : \n");
949
		fprintf(stdout,"\n  - Connectivité : \n");
950
		for (j=0;j<naretes[i]*taille;j++)
950
		for (j=0;j<naretes[i]*taille;j++)
951
		  fprintf(stdout," %d ",*(connectivite+j));
951
		  fprintf(stdout," %d ",*(connectivite+j));
(-)MED_SRC_3.2.2/src/MEDWrapper/V2_1/Core/med.hxx (-2 / +2 lines)
Lines 87-93 Link Here
87
#define MED_DIM1   1                   /* PAS */
87
#define MED_DIM1   1                   /* PAS */
88
#define MED_ALL    0
88
#define MED_ALL    0
89
89
90
#if defined(SUN4SOL2) || defined(PCLINUX) || defined(OSF1_32) || defined(IRIX64_32) || defined(RS6000)
90
#if defined(SUN4SOL2) || defined(PCLINUX) || defined(PCLINUX64_32) || defined(OSF1_32) || defined(IRIX64_32) || defined(RS6000)
91
/* interface C/FORTRAN */
91
/* interface C/FORTRAN */
92
/* this true only with g77 and gcc : we must change it to use directly NOMF_... and INT32 or INT64 -
92
/* this true only with g77 and gcc : we must change it to use directly NOMF_... and INT32 or INT64 -
93
 it will be more simple to understand and to use ! */
93
 it will be more simple to understand and to use ! */
Lines 116-122 Link Here
116
typedef double         med_float;
116
typedef double         med_float;
117
#endif
117
#endif
118
118
119
#if defined(IRIX64) || defined(OSF1)
119
#if defined(IRIX64) || defined(OSF1) || defined(PCLINUX64)
120
#define NOMF_POST_UNDERSCORE
120
#define NOMF_POST_UNDERSCORE
121
121
122
/* correspondance des types avec HDF 5 */
122
/* correspondance des types avec HDF 5 */
(-)MED_SRC_3.2.2/src/MedClient/src/MemorySpy.cxx (-1 / +1 lines)
Lines 19-25 Link Here
19
//
19
//
20
#include "MemorySpy.hxx"
20
#include "MemorySpy.hxx"
21
21
22
#ifdef PCLINUX
22
#if defined(PCLINUX)  || defined(PCLINUX64) || defined(PCLINUX64_32)
23
#include <unistd.h>
23
#include <unistd.h>
24
#include <string.h>
24
#include <string.h>
25
25
(-)MED_SRC_3.2.2/src/MedClient/src/MemorySpy.hxx (-1 / +1 lines)
Lines 29-35 Link Here
29
  MemorySpy();
29
  MemorySpy();
30
  ~MemorySpy();
30
  ~MemorySpy();
31
  long getCurrentMemoryUsage();
31
  long getCurrentMemoryUsage();
32
#ifdef PCLINUX 
32
#if defined(PCLINUX)  || defined(PCLINUX64) || defined(PCLINUX64_32)
33
  //SOLARIS
33
  //SOLARIS
34
private:
34
private:
35
  long parseString(char* line);
35
  long parseString(char* line);

Return to bug 155974