44#include "mmg/mmg3d/libmmg3df.h"
46 mmg5_data_ptr_t :: mmgmesh
47 mmg5_data_ptr_t :: mmgls,mmgmet
49 CHARACTER(len=300) :: exec_name,inname,outname,lsname
51 INTEGER,
PARAMETER :: immg = mmg5f_int
53 WRITE(*,*)
" -- TEST MMG3DLIB"
55 argc = command_argument_count();
56 CALL get_command_argument(0, exec_name)
59 print*,
" Usage: ",trim(exec_name),
" meshfile lsfile meshout"
64 CALL get_command_argument(1, inname)
65 CALL get_command_argument(2, lsname)
66 CALL get_command_argument(3, outname)
81 CALL mmg3d_init_mesh(mmg5_arg_start, &
82 mmg5_arg_ppmesh,mmgmesh,mmg5_arg_ppls,mmgls, &
83 mmg5_arg_ppmet,mmgmet, &
89 CALL mmg3d_set_iparameter(mmgmesh,0_8,mmg3d_iparam_iso, 1_immg,ier)
90 IF ( ier == 0 )
CALL exit(101)
93 CALL mmg3d_set_iparameter(mmgmesh,0_8,mmg3d_iparam_optim, 1_immg,ier)
94 IF ( ier == 0 )
CALL exit(101)
97 CALL mmg3d_set_iparameter(mmgmesh,0_8,mmg3d_iparam_anisosize, 1_immg,ier)
98 IF ( ier == 0 )
CALL exit(101)
105 CALL mmg3d_loadmesh(mmgmesh,trim(adjustl(inname)),&
106 len(trim(adjustl(inname))),ier)
107 IF ( ier == 0 )
CALL exit(102)
114 CALL mmg3d_loadsol(mmgmesh,mmgls,trim(adjustl(lsname)),&
115 len(trim(adjustl(lsname))),ier)
121 CALL mmg3d_chk_meshdata(mmgmesh,mmgls,ier)
122 IF ( ier /= 1 )
CALL exit(105)
127 CALL mmg3d_mmg3dls(mmgmesh,mmgls,mmgmet,ier)
129 IF ( ier == mmg5_strongfailure )
THEN
130 print*,
"BAD ENDING OF MMG3DLIB: UNABLE TO SAVE MESH"
132 ELSE IF ( ier == mmg5_lowfailure )
THEN
133 print*,
"BAD ENDING OF MMG3DLIB"
143 CALL mmg3d_savemesh(mmgmesh,trim(adjustl(outname)),&
144 len(trim(adjustl(outname))),ier)
150 CALL mmg3d_savesol(mmgmesh,mmgmet,trim(adjustl(outname)),&
151 len(trim(adjustl(outname))),ier)
157 CALL mmg3d_free_all(mmg5_arg_start, &
158 mmg5_arg_ppmesh,mmgmesh,mmg5_arg_ppls,mmgls, &
159 mmg5_arg_ppmet,mmgmet, &
int main(int argc, char *argv[])