00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 program MEDinterp2
00023
00024 implicit none
00025 include 'med.hf'
00026
00027
00028 integer cret
00029 integer fid
00030 character*64 fname
00031 parameter (fname = "Unittest_MEDinterp_1.med")
00032 character *64 name1
00033 parameter (name1="Interpolation family name")
00034 integer gtype1,gtype
00035 parameter (gtype1=MED_TRIA3)
00036 integer cnode1,cnode
00037 parameter (cnode1=MED_FALSE)
00038 integer nvar1,maxd1,nmaxc1
00039 integer nvar,maxd,nmaxc
00040 parameter (nvar1=2,maxd1=1,nmaxc1=3)
00041 integer ncoef1,ncoef2,ncoef3,ncoef
00042 parameter (ncoef1=3,ncoef2=1,ncoef3=1)
00043 integer power1(6),power2(2),power3(2)
00044 integer power(6)
00045 data power1 / 0,0, 1,0, 0,1 /
00046 data power2 / 1,0 /
00047 data power3 / 0,1 /
00048 real*8 coef1(3), coef2(1), coef3(1)
00049 real*8 coef(3)
00050 data coef1 / 1., -1., -1. /
00051 data coef2 / 1. /
00052 data coef3 / 1. /
00053 integer nbf,nbf1,it,size,size1,size2,size3
00054 parameter (nbf1=3,size1=3,size2=1,size3=1)
00055
00056
00057
00058 call mfiope(fid,fname,MED_ACC_RDONLY,cret)
00059 print *,'Open file',cret
00060 if (cret .ne. 0 ) then
00061 print *,'ERROR : open file'
00062 call efexit(-1)
00063 endif
00064
00065
00066
00067 call mipiin(fid,name1,gtype,cnode,nbf,nvar,
00068 & maxd,nmaxc,cret)
00069 print *,'interpolation information',cret
00070 if (cret .ne. 0 ) then
00071 print *,'ERROR : interpolation information'
00072 call efexit(-1)
00073 endif
00074
00075 if ( (gtype .ne. gtype1) .or.
00076 & (cnode .ne. cnode1) .or.
00077 & (nbf .ne. nbf1) .or.
00078 & (nvar .ne. nvar1) .or.
00079 & (maxd .ne. maxd1) .or.
00080 & (nmaxc .ne. nmaxc1) ) then
00081 print *,'ERROR : interpolation information'
00082 call efexit(-1)
00083 endif
00084
00085
00086
00087 do it=1,nbf
00088 call mipcsz(fid,name1,it,size,cret)
00089 print *,'memory size',cret
00090 if (cret .ne. 0 ) then
00091 print *,'ERROR : memory size'
00092 call efexit(-1)
00093 endif
00094
00095 if (it .eq. 1) then
00096 if (size .ne. size1) then
00097 print *,'ERROR : memory size size'
00098 call efexit(-1)
00099 endif
00100 endif
00101
00102 if (it .eq. 2) then
00103 if (size .ne. size2) then
00104 print *,'ERROR : allocation size'
00105 call efexit(-1)
00106 endif
00107 endif
00108
00109 if (it .eq. 3) then
00110 if (size .ne. size3) then
00111 print *,'ERROR : allocation size'
00112 call efexit(-1)
00113 endif
00114 endif
00115
00116 call mipbfr(fid,name1,it,ncoef,power,coef,cret)
00117 print *,'read function',cret
00118 if (cret .ne. 0 ) then
00119 print *,'ERROR : read function'
00120 call efexit(-1)
00121 endif
00122
00123 if (it .eq. 1) then
00124 if ( (ncoef .ne. ncoef1) .or.
00125 & (power(1) .ne. power1(1)) .or.
00126 & (power(2) .ne. power1(2)) .or.
00127 & (power(3) .ne. power1(3)) .or.
00128 & (power(4) .ne. power1(4)) .or.
00129 & (power(5) .ne. power1(5)) .or.
00130 & (power(6) .ne. power1(6)) .or.
00131 & (coef(1) .ne. coef1(1)) .or.
00132 & (coef(2) .ne. coef1(2)) .or.
00133 & (coef(3) .ne. coef1(3)) ) then
00134 print *,'ERROR : read function'
00135 call efexit(-1)
00136 endif
00137 endif
00138
00139 if (it .eq. 2) then
00140 if ( (ncoef .ne. ncoef2) .or.
00141 & (power(1) .ne. power2(1)) .or.
00142 & (power(2) .ne. power2(2)) .or.
00143 & (coef(1) .ne. coef2(1)) ) then
00144 print *,'ERROR : read function'
00145 call efexit(-1)
00146 endif
00147 endif
00148
00149 if (it .eq. 3) then
00150 if ( (ncoef .ne. ncoef3) .or.
00151 & (power(1) .ne. power3(1)) .or.
00152 & (power(2) .ne. power3(2)) .or.
00153 & (coef(1) .ne. coef3(1)) ) then
00154 print *,'ERROR : read function'
00155 call efexit(-1)
00156 endif
00157 endif
00158 enddo
00159
00160
00161
00162 call mficlo(fid,cret)
00163 print *,'Close file',cret
00164 if (cret .ne. 0 ) then
00165 print *,'ERROR : close file'
00166 call efexit(-1)
00167 endif
00168
00169
00170
00171 end
00172