diff --git a/examples/test_libmeshb_HO.f90 b/examples/test_libmeshb_HO.f90 index 609f992..20afa72 100644 --- a/examples/test_libmeshb_HO.f90 +++ b/examples/test_libmeshb_HO.f90 @@ -50,6 +50,7 @@ program test_libmeshb_HO_f90 integer(int32), pointer :: VerRef( :) integer(int32), pointer :: QadTab(:,:),QadRef(:) integer(int32), pointer :: TriTab(:,:),TriRef(:) + integer(int32) :: GmfKey !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> @@ -110,7 +111,7 @@ program test_libmeshb_HO_f90 integer :: BasTab(1:2,1:9) integer :: OrdTab(1:2,1:9) integer :: ord - integer :: nNode + integer :: nNod !> 04 07 03 !> 08 09 06 !> 01 05 02 @@ -131,14 +132,14 @@ program test_libmeshb_HO_f90 !> Q2 -> ord=2 ord=2 - nNode=(ord+1)*(ord+1) ! <= + nNod=(ord+1)*(ord+1) ! <= res=GmfGetBlockF90( & & unit=InpMsh ,& & GmfKey=GmfOrd ,& & ad0=1 ,& - & ad1=nNode ,& - & Tab=OrdTab(:,1:nNode) ) + & ad1=nNod ,& + & Tab=OrdTab(:,1:nNod) ) print '("Input Mesh Order")' do i=1,size(OrdTab,2) @@ -284,19 +285,19 @@ program test_libmeshb_HO_f90 ! Write Time in solution file res=GmfSetKwdF90 (unit=OutSol, GmfKey=GmfTime, Nmb=1) res=GmfSetLineF90(unit=OutSol, GmfKey=GmfTime, Tab=real(60,kind=real64)) - + + ! Solution Stride strd=5 ! 1+3+1 (GmfSca,GmfVec,GmfSca) ! Writing Interoplation Nodes ord=4 nNod=(ord+1)*(ord+2)/2 - print '( "Output Mesh ord : ",i0)', ord - print '( "Output Mesh nNod : ",i0)', nNod + print '( "Output Solu ord : ",i0)', ord + print '( "Output Solu nNod : ",i0)', nNod allocate(uvw(1:3,1:nNod)) - !TrianglesNodesPositions {1-u-v,u,v} (order=4) (Warburton) - + ! Triangles P2 Nodes Positions {1-u-v,u,v} (order=4) (Warburton) uvw(1:3,01)=[0.100000000000000E+01, 0.000000000000000E+00, 0.000000000000000E+00] uvw(1:3,02)=[0.827326835353989E+00, 0.172673164646011E+00, 0.000000000000000E+00] uvw(1:3,03)=[0.500000000000000E+00, 0.500000000000000E+00, 0.000000000000000E+00] @@ -313,14 +314,16 @@ program test_libmeshb_HO_f90 uvw(1:3,14)=[0.000000000000000E+00, 0.172673164646011E+00, 0.827326835353989E+00] uvw(1:3,15)=[0.000000000000000E+00, 0.000000000000000E+00, 0.100000000000000E+01] - res=GmfSetKwdF90(unit=OutSol, GmfKey=GmfHOSolAtTrianglesP2NodesPositions, Nmb=nNod) + GmfKey=GmfHOSolAtTrianglesP2NodesPositions + + res=GmfSetKwdF90(unit=OutSol, GmfKey=GmfKey, Nmb=nNod) - res=GmfSetBlockF90( & - & unit=OutSol ,& - & GmfKey=GmfHOSolAtTrianglesP2NodesPositions ,& - & ad0=1 ,& - & ad1=nNod ,& - & Tab=uvw(:,1:) ) + res=GmfSetBlockF90( & + & unit=OutSol ,& + & GmfKey=GmfKey ,& + & ad0=1 ,& + & ad1=nNod ,& + & Tab=uvw(:,1:) ) ! Write Solution (nNod solution per triangle => nTri*nNod degrees) !NmbDeg=NmbTri*nNod @@ -328,9 +331,11 @@ program test_libmeshb_HO_f90 allocate(solTab(1:strd*nNod,1:NmbTri)) ; solTab(:,:)=1d0 print '("Output Solu size(solTab): ",i0,"x",i0)',size(solTab,1),size(solTab,2) + GmfKey=GmfHOSolAtTrianglesP2 + res=GmfSetKwdF90( & & unit=OutSol ,& - & GmfKey=GmfSolAtVertices ,& + & GmfKey=GmfKey ,& & Nmb=NmbTri ,& & NmbFields=NmbFields ,& & fields=fields(1:NmbFields) ,& @@ -339,7 +344,7 @@ program test_libmeshb_HO_f90 res=GmfSetBlockF90( & & unit=OutSol ,& - & GmfKey=GmfHOSolAtTrianglesP2 ,& + & GmfKey=GmfKey ,& & ad0=1 ,& & ad1=NmbTri ,& & Tab=solTab(:,1:) ) diff --git a/sources/libmeshb7_mod.f90 b/sources/libmeshb7_mod.f90 index 3a6284c..bd2ec84 100644 --- a/sources/libmeshb7_mod.f90 +++ b/sources/libmeshb7_mod.f90 @@ -282,27 +282,27 @@ module libmeshb7 integer(int32), parameter :: gmfmeshongeometry=227 interface GmfStatKwdF90 - module procedure GmfStatKwdF90_0 !> vertices & nodes - module procedure GmfStatKwdF90_1 !> solutions + module procedure GmfStatKwdF90_0 !> vertices & nodes + module procedure GmfStatKwdF90_1 !> solutions end interface GmfStatKwdF90 interface GmfSetKwdF90 - module procedure GmfSetKwdF90_0 !> vertices & nodes - module procedure GmfSetKwdF90_1 !> solutions + module procedure GmfSetKwdF90_0 !> vertices & nodes + module procedure GmfSetKwdF90_1 !> solutions end interface GmfSetKwdF90 interface GmfGetLineF90 - module procedure GmfGetLineF90_i ! int32 (:) + int32 - module procedure GmfGetLineF90_d ! real64(:) + int32 + module procedure GmfGetLineF90_i !> int32 (:) + int32 + module procedure GmfGetLineF90_d !> real64(:) + int32 end interface GmfGetLineF90 interface GmfSetLineF90 - module procedure GmfSetLineF90_i ! int32 (:) + int32 - module procedure GmfSetLineF90_d ! real64(:) + int32 - module procedure GmfSetLineF90_sol_i ! int32 (:) - module procedure GmfSetLineF90_sol_i_ ! int32 - module procedure GmfSetLineF90_sol_d ! real64(:) - module procedure GmfSetLineF90_sol_d_ ! real64 + module procedure GmfSetLineF90_i !> int32 (:) + int32 + module procedure GmfSetLineF90_d !> real64(:) + int32 + module procedure GmfSetLineF90_sol_i !> int32 (:) + module procedure GmfSetLineF90_sol_i_ !> int32 + module procedure GmfSetLineF90_sol_d !> real64(:) + module procedure GmfSetLineF90_sol_d_ !> real64 end interface GmfSetLineF90 interface GmfGetBlockF90 @@ -604,7 +604,7 @@ function GmfSetLineF90_sol_d_(unit, GmfKey, Tab) result(res) !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< return end function GmfSetLineF90_sol_d_ - + function GmfGetBlockF90_00(unit, GmfKey, ad0, ad1, iTab, dTab, Ref) result(res) !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> integer(int64), intent(in) :: unit @@ -870,8 +870,8 @@ function GmfSetBlockF90_01(unit, GmfKey, ad0, ad1, Tab, Ref) result(res) integer(int32), intent(in) :: GmfKey integer(int32), intent(in) :: ad0 integer(int32), intent(in) :: ad1 - integer(int32), intent(inout) :: Tab(:,:) - integer(int32), intent(inout) :: Ref( :) + integer(int32), intent(in) :: Tab(:,:) + integer(int32), intent(in) :: Ref( :) integer(int32) :: res !> integer(int32) :: Nmb @@ -908,8 +908,8 @@ function GmfSetBlockF90_01_(unit, GmfKey, ad0, ad1, strd, Tab, Ref) result(r integer(int32), intent(in) :: ad0 integer(int32), intent(in) :: ad1 integer(int32), intent(in) :: strd - integer(int32), intent(inout) :: Tab(:) - integer(int32), intent(inout) :: Ref(:) + integer(int32), intent(in) :: Tab(:) + integer(int32), intent(in) :: Ref(:) integer(int32) :: res !> integer(int32) :: Nmb @@ -945,8 +945,8 @@ function GmfSetBlockF90_03(unit, GmfKey, ad0, ad1, Tab, Ref) result(res) integer(int32), intent(in) :: GmfKey integer(int32), intent(in) :: ad0 integer(int32), intent(in) :: ad1 - real(real64) , intent(inout) :: Tab(:,:) - integer(int32), intent(inout) :: Ref( :) + real(real64) , intent(in) :: Tab(:,:) + integer(int32), intent(in) :: Ref( :) integer(int32) :: res !> integer(int32) :: iTab(1) @@ -983,8 +983,8 @@ function GmfSetBlockF90_03_(unit, GmfKey, ad0, ad1, strd, Tab, Ref) result(r integer(int32), intent(in) :: ad0 integer(int32), intent(in) :: ad1 integer(int32), intent(in) :: strd - real(real64) , intent(inout) :: Tab(:) - integer(int32), intent(inout) :: Ref(:) + real(real64) , intent(in) :: Tab(:) + integer(int32), intent(in) :: Ref(:) integer(int32) :: res !> integer(int32) :: iTab(1) @@ -1020,7 +1020,7 @@ function GmfSetBlockF90_04(unit, GmfKey, ad0, ad1, Tab) result(res) integer(int32), intent(in) :: GmfKey integer(int32), intent(in) :: ad0 integer(int32), intent(in) :: ad1 - real(real64) , intent(inout) :: Tab(:,:) + real(real64) , intent(in) :: Tab(:,:) integer(int32) :: res !> integer(int32) :: Ref(1)