# Unittest_MEDsupportMesh_3.f

Aller à la documentation de ce fichier.

    00001 C*  This file is part of MED.
    00002 C*
    00003 C*  COPYRIGHT (C) 1999 - 2012  EDF R&D, CEA/DEN
    00004 C*  MED is free software: you can redistribute it and/or modify
    00005 C*  it under the terms of the GNU Lesser General Public License as published by
    00006 C*  the Free Software Foundation, either version 3 of the License, or
    00007 C*  (at your option) any later version.
    00008 C*
    00009 C*  MED is distributed in the hope that it will be useful,
    00010 C*  but WITHOUT ANY WARRANTY; without even the implied warranty of
    00011 C*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    00012 C*  GNU Lesser General Public License for more details.
    00013 C*
    00014 C*  You should have received a copy of the GNU Lesser General Public License
    00015 C*  along with MED.  If not, see <http://www.gnu.org/licenses/>.
    00016 C*
    00017
    00018 C******************************************************************************
    00019 C * Tests for support mesh module
    00020 C *
    00021 C *****************************************************************************
    00022       program MEDsupportMesh3
    00023 C
    00024       implicit none
    00025       include 'med.hf'
    00026 C
    00027 C
    00028       integer cret
    00029       integer fid
    00030       character*64  fname
    00031       parameter (fname = "Unittest_MEDsupportMesh_1.med")
    00032       character*64 smname1
    00033       integer sdim1,mdim1
    00034       parameter (sdim1=2, mdim1=2)
    00035       integer sdim2,mdim2
    00036       parameter (sdim2=3,mdim2=2)
    00037       parameter (smname1 = "supportMesh1")
    00038       character*64 smname2
    00039       parameter (smname2 = "supportMesh2")
    00040       character*200 description1
    00041       parameter (description1="support mesh1 description")
    00042       character*200 description2
    00043       parameter (description2="support mesh2 description")
    00044       character*16 nomcoo2D(2)
    00045       character*16 unicoo2D(2)
    00046       data  nomcoo2D /"x","y"/, unicoo2D /"cm","cm"/
    00047       character*16 nomcoo3D(3)
    00048       character*16 unicoo3D(3)
    00049       data  nomcoo3D /"x","y","z"/, unicoo3D /"cm","cm","cm"/
    00050       integer atype1, atype2
    00051       parameter (atype1=MED_CARTESIAN, atype2=MED_CARTESIAN)
    00052       integer nsmesh, i
    00053       character*64  smname
    00054       character*16 aunit(3), aname(3)
    00055       character*200 description
    00056       integer sdim, mdim, atype
    00057 C
    00058 C
    00059 C     open file in read only access mode
    00060       call mfiope(fid,fname,MED_ACC_RDONLY,cret)
    00061       print *,'Open file in RD_ONLY access mode',cret
    00062       if (cret .ne. 0 ) then
    00063          print *,'ERROR : open file in READ_ONLY access mode'
    00064          call efexit(-1)
    00065       endif
    00066 C
    00067 C     How many mesh in the file ?
    00068 C
    00069       call msmnsm(fid,nsmesh,cret)
    00070       print *,'Read number of support mesh : ',nsmesh
    00071       print *,cret
    00072       if (cret .ne. 0 ) then
    00073          print *,'ERROR : read number of support mesh'
    00074          call efexit(-1)
    00075       endif
    00076       if (nsmesh .ne. 2) then
    00077          print *,'ERROR : number of support mesh'
    00078          call efexit(-1)
    00079       endif
    00080 C
    00081 C
    00082 C     Read support mesh information and number of axis
    00083 C     by iterator
    00084       do i=1,nsmesh
    00085          call msmnax(fid,i,sdim,cret)
    00086          if (cret .ne. 0 ) then
    00087             print *,'ERROR : read number of axis '
    00088             call efexit(-1)
    00089          endif
    00090          print *,'Number of axis : ',sdim
    00091 c
    00092          if (i .eq. 1) then
    00093             if (sdim .ne. sdim1) then
    00094                print *,'ERROR : support mesh information'
    00095                call efexit(-1)
    00096             endif
    00097          endif
    00098          if (i .eq. 2) then
    00099             if (sdim .ne. sdim2) then
    00100                print *,'ERROR : support mesh information'
    00101                call efexit(-1)
    00102             endif
    00103          endif
    00104 C
    00105          call msmsmi(fid,i,smname,sdim,mdim,
    00106      &               description,
    00107      &               atype,aname,aunit,cret)
    00108          print *,'Support mesh information',cret
    00109          if (cret .ne. 0 ) then
    00110             print *,'ERROR : read support mesh information'
    00111             call efexit(-1)
    00112          endif
    00113 c
    00114          if (i .eq. 1) then
    00115             if ((sdim .ne. sdim1) .or.
    00116      &           (mdim .ne. mdim1) .or.
    00117      &           (description .ne. description1) .or.
    00118      &           (atype .ne. atype1) .or.
    00119      &           (aunit(1) .ne. unicoo2D(1)) .or.
    00120      &           (aunit(2) .ne. unicoo2D(2)) .or.
    00121      &           (aname(1) .ne. nomcoo2D(1)) .or.
    00122      &           (aname(2) .ne. nomcoo2D(2))
    00123      &           ) then
    00124                print *,'ERROR : support mesh information by name'
    00125                call efexit(-1)
    00126             endif
    00127          endif
    00128 c
    00129          if (i .eq. 2) then
    00130             if ((sdim .ne. sdim2) .or.
    00131      &           (mdim .ne. mdim2) .or.
    00132      &           (description .ne. description2) .or.
    00133      &           (atype .ne. atype2) .or.
    00134      &           (aunit(1) .ne. unicoo3D(1)) .or.
    00135      &           (aunit(2) .ne. unicoo3D(2)) .or.
    00136      &           (aunit(3) .ne. unicoo3D(3)) .or.
    00137      &           (aname(1) .ne. nomcoo3D(1)) .or.
    00138      &           (aname(2) .ne. nomcoo3D(2)) .or.
    00139      &           (aname(3) .ne. nomcoo3D(3))
    00140      &           ) then
    00141                print *,'ERROR : support mesh information by name'
    00142                call efexit(-1)
    00143             endif
    00144          endif
    00145 c
    00146       enddo
    00147 C
    00148 C
    00149 C     close file
    00150       call mficlo(fid,cret)
    00151       print *,'Close file',cret
    00152       if (cret .ne. 0 ) then
    00153          print *,'ERROR :  close file'
    00154          call efexit(-1)
    00155       endif
    00156 C
    00157 C
    00158 C
    00159       end
    00160