diff --git a/api/GenApi.py b/api/GenApi.py index 8af6fed82b682eb156ec38aee9d8175468cb0bab..4fa99c3bfaede23f56da2be55a9bc11735e24479 100644 --- a/api/GenApi.py +++ b/api/GenApi.py @@ -36,9 +36,7 @@ class arg: self.julia_pre = "" self.julia_post = "" self.julia_return = name - self.fortran_type_post = "" - self.fortran_name_pre = "" - self.fortran_name_post = "" + self.fortran_args = [name] self.texi = name + ( (" = " + self.python_value) if self.python_value else "") @@ -52,7 +50,7 @@ def ibool(name, value=None, python_value=None, julia_value=None): a.python_arg = "c_int(bool(" + name + "))" a.cwrap_arg = "(int)" + name a.julia_ctype = "Cint" - a.fortran_type = "integer(c_int), value" + a.fortran_types = ["integer(c_int), value"] return a @@ -61,7 +59,7 @@ def iint(name, value=None, python_value=None, julia_value=None): False) a.python_arg = "c_int(" + name + ")" a.julia_ctype = "Cint" - a.fortran_type = "integer(c_int), value" + a.fortran_types = ["integer(c_int), value"] return a @@ -70,7 +68,7 @@ def isize(name, value=None, python_value=None, julia_value=None): "const size_t", False) a.python_arg = "c_size_t(" + name + ")" a.julia_ctype = "Csize_t" - a.fortran_type = "integer(c_size_t), value" + a.fortran_types = ["integer(c_size_t), value"] return a @@ -79,7 +77,7 @@ def idouble(name, value=None, python_value=None, julia_value=None): "const double", False) a.python_arg = "c_double(" + name + ")" a.julia_ctype = "Cdouble" - a.fortran_type = "real(c_double), value" + a.fortran_types = ["real(c_double), value"] return a @@ -89,8 +87,7 @@ def istring(name, value=None, python_value=None, julia_value=None): a.python_arg = "c_char_p(" + name + ".encode())" a.cwrap_arg = name + ".c_str()" a.julia_ctype = "Ptr{Cchar}" - a.fortran_type = "character(len=1, kind=c_char), dimension(*)" - a.fortran_type_post = "" + a.fortran_types = ["character(len=1, kind=c_char), dimension(*)"] return a @@ -99,8 +96,7 @@ def ivoidstar(name, value=None, python_value=None, julia_value=None): "const void *", False) a.python_arg = "c_void_p(" + name + ")" a.julia_ctype = "Ptr{Cvoid}" - a.fortran_type = "integer(c_int), dimension(*)" - a.fortran_type_post = "" + a.fortran_types = ["integer(c_int), dimension(*)"] return a @@ -124,9 +120,8 @@ def ivectorint(name, value=None, python_value=None, julia_value=None): a.python_arg = api_name + ", " + api_name_n a.julia_ctype = "Ptr{Cint}, Csize_t" a.julia_arg = "convert(Vector{Cint}, " + name + "), length(" + name + ")" - a.fortran_type = "integer(c_int), dimension(*)" - a.fortran_type_post = " " * 8 + "integer(c_size_t), value :: " + name + "_n" - a.fortran_name_post = ", " + name + "_n" + a.fortran_args = [name, name + "_n"] + a.fortran_types = ["integer(c_int), dimension(*)", "integer(c_size_t), value"] return a @@ -150,9 +145,8 @@ def ivectorsize(name, value=None, python_value=None, julia_value=None): a.python_arg = api_name + ", " + api_name_n a.julia_ctype = "Ptr{Csize_t}, Csize_t" a.julia_arg = "convert(Vector{Csize_t}, " + name + "), length(" + name + ")" - a.fortran_type = "integer(c_size_t), dimension(*)" - a.fortran_type_post = " " * 8 + "integer(c_size_t), value :: " + name + "_n" - a.fortran_name_post = ", " + name + "_n" + a.fortran_args = [name, name + "_n"] + a.fortran_types = ["integer(c_size_t), dimension(*)", "integer(c_size_t), value"] return a @@ -176,9 +170,8 @@ def ivectordouble(name, value=None, python_value=None, julia_value=None): a.python_arg = api_name + ", " + api_name_n a.julia_ctype = "Ptr{Cdouble}, Csize_t" a.julia_arg = "convert(Vector{Cdouble}, " + name + "), length(" + name + ")" - a.fortran_type = "real(c_double), dimension(*)" - a.fortran_type_post = " " * 8 + "integer(c_size_t), value :: " + name + "_n" - a.fortran_name_post = ", " + name + "_n" + a.fortran_args = [name, name + "_n"] + a.fortran_types = ["real(c_double), dimension(*)", "integer(c_size_t), value"] return a @@ -202,9 +195,8 @@ def ivectorstring(name, value=None, python_value=None, julia_value=None): a.python_arg = api_name + ", " + api_name_n a.julia_ctype = "Ptr{Ptr{Cchar}}, Csize_t" a.julia_arg = name + ", length(" + name + ")" - a.fortran_type = "type(c_ptr), dimension(*)" - a.fortran_type_post = " " * 8 + "integer(c_size_t), value :: " + name + "_n" - a.fortran_name_post = ", " + name + "_n" + a.fortran_args = [name, name + "_n"] + a.fortran_types = ["type(c_ptr), dimension(*)", "integer(c_size_t), value"] return a @@ -233,9 +225,8 @@ def ivectorpair(name, value=None, python_value=None, julia_value=None): a.julia_pre = (api_name + " = collect(Cint, Iterators.flatten(" + name + "))\n " + api_name_n + " = length(" + api_name + ")") a.julia_arg = (api_name + ", " + api_name_n) - a.fortran_type = "integer(c_int), dimension(*)" - a.fortran_type_post = " " * 8 + "integer(c_size_t), value :: " + name + "_n" - a.fortran_name_post = ", " + name + "_n" + a.fortran_args = [name, name + "_n"] + a.fortran_types = ["integer(c_int), dimension(*)", "integer(c_size_t), value"] return a @@ -271,10 +262,8 @@ def ivectorvectorint(name, value=None, python_value=None, julia_value=None): "[i]) for i in 1:length(" + name + ") ]") a.julia_arg = ("convert(Vector{Vector{Cint}}," + name + "), " + api_name_n + ", length(" + name + ")") - a.fortran_type = "type(c_ptr), intent(out)" - a.fortran_type_post = (" " * 8 + "type(c_ptr), intent(out) :: " + name + "_n\n" + - " " * 8 + "integer(c_size_t) :: " + name + "_nn") - a.fortran_name_post = ", " + name + "_n," + name + "_nn" + a.fortran_args = [name, name + "_n", name + "_nn"] + a.fortran_types = ["type(c_ptr), intent(out)", "type(c_ptr), intent(out)", "integer(c_size_t)"] return a @@ -311,10 +300,8 @@ def ivectorvectorsize(name, value=None, python_value=None, julia_value=None): "[i]) for i in 1:length(" + name + ") ]") a.julia_arg = ("convert(Vector{Vector{Csize_t}}," + name + "), " + api_name_n + ", length(" + name + ")") - a.fortran_type = "type(c_ptr), intent(out)" - a.fortran_type_post = (" " * 8 + "type(c_ptr), intent(out) :: " + name + "_n\n" + - " " * 8 + "integer(c_size_t) :: " + name + "_nn") - a.fortran_name_post = ", " + name + "_n," + name + "_nn" + a.fortran_args = [name, name + "_n", name + "_nn"] + a.fortran_types = ["type(c_ptr), intent(out)", "type(c_ptr), intent(out)", "integer(c_size_t)"] return a @@ -351,10 +338,8 @@ def ivectorvectordouble(name, value=None, python_value=None, julia_value=None): "[i]) for i in 1:length(" + name + ") ]") a.julia_arg = ("convert(Vector{Vector{Cdouble}}," + name + "), " + api_name_n + ", length(" + name + ")") - a.fortran_type = "type(c_ptr), intent(out)" - a.fortran_type_post = (" " * 8 + "type(c_ptr), intent(out) :: " + name + "_n\n" + - " " * 8 + "integer(c_size_t) :: " + name + "_nn") - a.fortran_name_post = ", " + name + "_n," + name + "_nn" + a.fortran_args = [name, name + "_n", name + "_nn"] + a.fortran_types = ["type(c_ptr), intent(out)", "type(c_ptr), intent(out)", "integer(c_size_t)"] return a @@ -366,8 +351,7 @@ class oint(arg): rc_type = "int" rtexi_type = "integer value" rjulia_type = "Cint" - fortran_type = "integer(c_int)" - fortran_type_post = "" + fortran_types = ["integer(c_int)"] def __init__(self, name, value=None, python_value=None, julia_value=None): arg.__init__(self, name, value, python_value, julia_value, "int &", @@ -389,8 +373,7 @@ class osize(arg): rc_type = "size_t" rtexi_type = "size value" rjulia_type = "Csize_t" - fortran_type = "integer(c_size_t)" - fortran_type_post = "" + fortran_types = ["integer(c_size_t)"] def __init__(self, name, value=None, python_value=None, julia_value=None): arg.__init__(self, name, value, python_value, julia_value, @@ -412,8 +395,7 @@ class odouble(arg): rc_type = "double" rtexi_type = "floating point value" rjulia_type = "Cdouble" - fortran_type = "real(c_double)" - fortran_type_post = "" + fortran_types = ["real(c_double)"] def __init__(self, name, value=None, python_value=None, julia_value=None): arg.__init__(self, name, value, python_value, julia_value, "double &", @@ -449,7 +431,7 @@ def ostring(name, value=None, python_value=None, julia_value=None): a.julia_arg = api_name a.julia_post = name + " = unsafe_string(" + api_name + "[])" a.fortran_type = "type(c_ptr), dimension(*)" - a.fortran_type_post = "" + a.fortran_types = ["type(c_ptr), dimension(*)"] return a @@ -475,9 +457,8 @@ def ovectorint(name, value=None, python_value=None, julia_value=None): a.julia_arg = api_name + ", " + api_name_n a.julia_post = (name + " = unsafe_wrap(Array, " + api_name + "[], " + api_name_n + "[], own = true)") - a.fortran_type = "type(c_ptr), intent(out)" - a.fortran_type_post = " " * 8 + "integer(c_size_t) :: " + name +"_n" - a.fortran_name_post = ", " + name + "_n" + a.fortran_args = [name, name + "_n"] + a.fortran_types = ["type(c_ptr), intent(out)", "integer(c_size_t)"] return a @@ -503,9 +484,8 @@ def ovectorsize(name, value=None, python_value=None, julia_value=None): a.julia_arg = api_name + ", " + api_name_n a.julia_post = (name + " = unsafe_wrap(Array, " + api_name + "[], " + api_name_n + "[], own = true)") - a.fortran_type = "type(c_ptr), intent(out)" - a.fortran_type_post = " " * 8 + "integer(c_size_t) :: " + name + "_n" - a.fortran_name_post = ", " + name + "_n" + a.fortran_args = [name, name + "_n"] + a.fortran_types = ["type(c_ptr), intent(out)", "integer(c_size_t)"] return a @@ -531,9 +511,8 @@ def ovectordouble(name, value=None, python_value=None, julia_value=None): a.julia_arg = api_name + ", " + api_name_n a.julia_post = (name + " = unsafe_wrap(Array, " + api_name + "[], " + api_name_n + "[], own = true)") - a.fortran_type = "type(c_ptr), intent(out)" - a.fortran_type_post = " " * 8 + "integer(c_size_t) :: " + name + "_n" - a.fortran_name_post = ", " + name + "_n" + a.fortran_args = [name, name + "_n"] + a.fortran_types = ["type(c_ptr), intent(out)", "integer(c_size_t)"] return a @@ -564,9 +543,8 @@ def ovectorstring(name, value=None, python_value=None, julia_value=None): "[], " + api_name_n + "[], own = true)\n " + name + " = [unsafe_string(tmp_" + api_name + "[i]) for i in 1:length(tmp_" + api_name + ") ]") - a.fortran_type = "type(c_ptr), intent(out)" - a.fortran_type_post = " " * 8 + "integer(c_size_t) :: " + name + "_n" - a.fortran_name_post = ", " + name + "_n" + a.fortran_args = [name, name + "_n"] + a.fortran_types = ["type(c_ptr), intent(out)", "integer(c_size_t)"] return a @@ -597,9 +575,8 @@ def ovectorpair(name, value=None, python_value=None, julia_value=None): "[], " + api_name_n + "[], own = true)\n " + name + " = [ (tmp_" + api_name + "[i], tmp_" + api_name + "[i+1]) " + "for i in 1:2:length(tmp_" + api_name + ") ]") - a.fortran_type = "type(c_ptr), intent(out)" - a.fortran_type_post = " " * 8 + "integer(c_size_t) :: " + name + "_n" - a.fortran_name_post = ", " + name + "_n" + a.fortran_args = [name, name + "_n"] + a.fortran_types = ["type(c_ptr), intent(out)", "integer(c_size_t)"] return a @@ -641,10 +618,8 @@ def ovectorvectorint(name, value=None, python_value=None, julia_value=None): " = [ unsafe_wrap(Array, tmp_" + api_name + "[i], " + "tmp_" + api_name_n + "[i], own = true) for i in 1:" + api_name_nn + "[] ]") - a.fortran_type = "type(c_ptr), intent(out)" - a.fortran_type_post = (" " * 8 + "type(c_ptr), intent(out) :: " + name + "_n\n" + - " " * 8 + "integer(c_size_t) :: " + name +"_nn") - a.fortran_name_post = ", " + name + "_n," + name + "_nn" + a.fortran_args = [name, name + "_n", name + "_nn"] + a.fortran_types = ["type(c_ptr), intent(out)", "type(c_ptr), intent(out)", "integer(c_size_t)"] return a @@ -686,10 +661,8 @@ def ovectorvectorsize(name, value=None, python_value=None, julia_value=None): " = [ unsafe_wrap(Array, tmp_" + api_name + "[i], " + "tmp_" + api_name_n + "[i], own = true) for i in 1:" + api_name_nn + "[] ]") - a.fortran_type = "type (c_ptr), intent(out)" - a.fortran_type_post = (" " * 8 + "type(c_ptr), intent(out) :: " + name + "_n\n" + - " " * 8 + "integer(c_size_t) :: " + name +"_nn") - a.fortran_name_post = ", " + name + "_n," + name + "_nn" + a.fortran_args = [name, name + "_n", name + "_nn"] + a.fortran_types = ["type (c_ptr), intent(out)", "type(c_ptr), intent(out)", "integer(c_size_t)"] return a @@ -732,10 +705,8 @@ def ovectorvectordouble(name, value=None, python_value=None, julia_value=None): " = [ unsafe_wrap(Array, tmp_" + api_name + "[i], " + "tmp_" + api_name_n + "[i], own = true) for i in 1:" + api_name_nn + "[] ]") - a.fortran_type = "type (c_ptr), intent(out)" - a.fortran_type_post = (" " * 8 + "type(c_ptr), intent(out) :: " + name + "_n\n" + - " " * 8 + "integer (c_size_t) :: " + name + "_nn") - a.fortran_name_post = ", " + name + "_n," + name + "_nn" + a.fortran_args = [name, name + "_n", name + "_nn"] + a.fortran_types = ["type (c_ptr), intent(out)", "type(c_ptr), intent(out)", "integer(c_size_t)"] return a @@ -783,10 +754,8 @@ def ovectorvectorpair(name, value=None, python_value=None, julia_value=None): api_name + "[i], tmp_" + api_name_n + "[i], own = true)\n " + " " + name + "[i] = [(tmp[i], tmp[i+1]) for i in 1:2:length(tmp)]\n " + "end") - a.fortran_type = "type(c_ptr), intent(out)" - a.fortran_type_post = (" " * 8 + "type(c_ptr), intent(out) :: " + name + "_n\n" + - " " * 8 + "integer(c_size_t) ::" + name +"_nn") - a.fortran_name_post = ", " + name + "_n," + name + "_nn" + a.fortran_args = [name, name + "_n", name + "_nn"] + a.fortran_types = ["type(c_ptr), intent(out)", "type(c_ptr), intent(out)", "integer(c_size_t)"] return a @@ -809,9 +778,8 @@ def iargcargv(): a.julia_ctype = "Cint, Ptr{Ptr{Cchar}}" a.julia_arg = "length(argv), argv" a.texi = "(argc = 0)}, @code{argv = []" - a.fortran_name_pre = "argc," - a.fortran_type = "integer(c_int), value :: argc\n" + " " * 8 + "type(c_ptr), dimension(*)" - a.fortran_type_post = "" + a.fortran_args = ["argc", "argv"] + a.fortran_types = ["integer(c_int), value", "type(c_ptr), dimension(*)"] return a @@ -849,8 +817,8 @@ def isizefun(name): ", Cdouble, (Cint, Cint, Cdouble, Cdouble, Cdouble, Cdouble, Ptr{Cvoid}))") a.julia_arg = "api_" + name + "_, C_NULL" a.julia_ctype = "Ptr{Cvoid}, Ptr{Cvoid}" - a.fortran_type = "type(c_funptr)" - a.fortran_type_post = " " * 8 + "! TODO: callback needs implementation" + a.fortran_args = [name] + a.fortran_types = ["type(c_funptr)"] # TODO: callback needs implementation" return a @@ -1856,33 +1824,22 @@ class API: self.fwrite( f, "\n" + indent + "!> " + ("\n" + indent + "!! ").join(textwrap.wrap(doc, 75)) + "\n") - # Procedure definition - fnamef = indent + ("function" - if rtype else "subroutine") + " " + fname + "(" - # Procedure name and Argument list - self.fwrite( - f, fnamef + ", ".join( - list((a.fortran_name_pre + a.name + a.fortran_name_post - for a in args + (oint("ierr"), )))) + - ") bind(C, name=\"" + fname + "\")" + "\n") - # C interoperability - self.fwrite(f, - indent * 2 + "use, intrinsic :: iso_c_binding" + "\n") - # Return variable definition + + fnamef = ("function" if rtype else "subroutine") + " " + fname + r = indent + fnamef + "(" + for arg in args: + for a in arg.fortran_args: + r += a + ", " + r += "ierr) bind(C, name=\"" + fname + "\")" + "\n" + r += indent * 2 + "use, intrinsic :: iso_c_binding" + "\n" if rtype: - self.fwrite( - f, indent * 2 + rtype.fortran_type + " :: " + fname + "\n") - # Variable defintions - self.fwrite( - f, "".join( - list((indent * 2 + a.fortran_type + " :: " + a.name + - "\n" + (a.fortran_type_post + - "\n" if a.fortran_type_post else "") - for a in args + (oint("ierr"), ))))) - # Procedure end - self.fwrite( - f, indent + "end " + ("function" if rtype else "subroutine") + - " " + fname + "\n") + r += indent * 2 + rtype.fortran_types[0] + " :: " + fname + "\n" + for arg in args: + for t, a in zip(arg.fortran_types, arg.fortran_args): + r += indent * 2 + t + " :: " + a + "\n" + r += indent * 2 + "integer(c_int) :: ierr" + "\n" + r += indent + "end " + fnamef + "\n" + self.fwrite(f, r) def write_module(f, m, c_mpath, f_mpath, indent): f_mpath += m.name + "%" # Unused, access to user defined type object diff --git a/api/gmsh.f90 b/api/gmsh.f90 index 2a17beb6feed04ff9afb346ef6069a821de8a69d..001dd0905201cea72e2c93b4fddc1cdd762bd0d9 100644 --- a/api/gmsh.f90 +++ b/api/gmsh.f90 @@ -35,7 +35,7 @@ module gmsh !! the API sets the options "General.AbortOnError" to 2 and "General.Terminal" !! to 1. If compiled with OpenMP support, it also sets the number of threads !! to "General.NumThreads". - subroutine gmshInitialize(argc,argv, readConfigFiles, run, ierr) bind(C, name="gmshInitialize") + subroutine gmshInitialize(argc, argv, readConfigFiles, run, ierr) bind(C, name="gmshInitialize") use, intrinsic :: iso_c_binding integer(c_int), value :: argc type(c_ptr), dimension(*) :: argv @@ -1021,7 +1021,7 @@ module gmsh !! type times the number N of nodes for this type of element, that contains !! the node tags of all the elements of the given type, concatenated: [e1n1, !! e1n2, ..., e1nN, e2n1, ...]. - subroutine gmshModelMeshGetElements(elementTypes, elementTypes_n, elementTags, elementTags_n,elementTags_nn, nodeTags, nodeTags_n,nodeTags_nn, dim, tag, ierr) bind(C, name="gmshModelMeshGetElements") + subroutine gmshModelMeshGetElements(elementTypes, elementTypes_n, elementTags, elementTags_n, elementTags_nn, nodeTags, nodeTags_n, nodeTags_nn, dim, tag, ierr) bind(C, name="gmshModelMeshGetElements") use, intrinsic :: iso_c_binding type(c_ptr), intent(out) :: elementTypes integer(c_size_t) :: elementTypes_n @@ -1226,7 +1226,7 @@ module gmsh !! the number N of nodes per element, that contains the node tags of all the !! elements of the given type, concatenated: [e1n1, e1n2, ..., e1nN, e2n1, !! ...]. - subroutine gmshModelMeshAddElements(dim, tag, elementTypes, elementTypes_n, elementTags, elementTags_n,elementTags_nn, nodeTags, nodeTags_n,nodeTags_nn, ierr) bind(C, name="gmshModelMeshAddElements") + subroutine gmshModelMeshAddElements(dim, tag, elementTypes, elementTypes_n, elementTags, elementTags_n, elementTags_nn, nodeTags, nodeTags_n, nodeTags_nn, ierr) bind(C, name="gmshModelMeshAddElements") use, intrinsic :: iso_c_binding integer(c_int), value :: dim integer(c_int), value :: tag @@ -1740,7 +1740,6 @@ module gmsh subroutine gmshModelMeshSetSizeCallback(callback, ierr) bind(C, name="gmshModelMeshSetSizeCallback") use, intrinsic :: iso_c_binding type(c_funptr) :: callback - ! TODO: callback needs implementation integer(c_int) :: ierr end subroutine gmshModelMeshSetSizeCallback @@ -3676,7 +3675,7 @@ module gmsh !! explicitly (only valid if the boolean operation results in a single !! entity). Remove the object if `removeObject' is set. Remove the tool if !! `removeTool' is set. - subroutine gmshModelOccFuse(objectDimTags, objectDimTags_n, toolDimTags, toolDimTags_n, outDimTags, outDimTags_n, outDimTagsMap, outDimTagsMap_n,outDimTagsMap_nn, tag, removeObject, removeTool, ierr) bind(C, name="gmshModelOccFuse") + subroutine gmshModelOccFuse(objectDimTags, objectDimTags_n, toolDimTags, toolDimTags_n, outDimTags, outDimTags_n, outDimTagsMap, outDimTagsMap_n, outDimTagsMap_nn, tag, removeObject, removeTool, ierr) bind(C, name="gmshModelOccFuse") use, intrinsic :: iso_c_binding integer(c_int), dimension(*) :: objectDimTags integer(c_size_t), value :: objectDimTags_n @@ -3686,7 +3685,7 @@ module gmsh integer(c_size_t) :: outDimTags_n type(c_ptr), intent(out) :: outDimTagsMap type(c_ptr), intent(out) :: outDimTagsMap_n - integer(c_size_t) ::outDimTagsMap_nn + integer(c_size_t) :: outDimTagsMap_nn integer(c_int), value :: tag integer(c_int), value :: removeObject integer(c_int), value :: removeTool @@ -3699,7 +3698,7 @@ module gmsh !! set the tag explicitly (only valid if the boolean operation results in a !! single entity). Remove the object if `removeObject' is set. Remove the tool !! if `removeTool' is set. - subroutine gmshModelOccIntersect(objectDimTags, objectDimTags_n, toolDimTags, toolDimTags_n, outDimTags, outDimTags_n, outDimTagsMap, outDimTagsMap_n,outDimTagsMap_nn, tag, removeObject, removeTool, ierr) bind(C, name="gmshModelOccIntersect") + subroutine gmshModelOccIntersect(objectDimTags, objectDimTags_n, toolDimTags, toolDimTags_n, outDimTags, outDimTags_n, outDimTagsMap, outDimTagsMap_n, outDimTagsMap_nn, tag, removeObject, removeTool, ierr) bind(C, name="gmshModelOccIntersect") use, intrinsic :: iso_c_binding integer(c_int), dimension(*) :: objectDimTags integer(c_size_t), value :: objectDimTags_n @@ -3709,7 +3708,7 @@ module gmsh integer(c_size_t) :: outDimTags_n type(c_ptr), intent(out) :: outDimTagsMap type(c_ptr), intent(out) :: outDimTagsMap_n - integer(c_size_t) ::outDimTagsMap_nn + integer(c_size_t) :: outDimTagsMap_nn integer(c_int), value :: tag integer(c_int), value :: removeObject integer(c_int), value :: removeTool @@ -3722,7 +3721,7 @@ module gmsh !! explicitly (only valid if the boolean operation results in a single !! entity). Remove the object if `removeObject' is set. Remove the tool if !! `removeTool' is set. - subroutine gmshModelOccCut(objectDimTags, objectDimTags_n, toolDimTags, toolDimTags_n, outDimTags, outDimTags_n, outDimTagsMap, outDimTagsMap_n,outDimTagsMap_nn, tag, removeObject, removeTool, ierr) bind(C, name="gmshModelOccCut") + subroutine gmshModelOccCut(objectDimTags, objectDimTags_n, toolDimTags, toolDimTags_n, outDimTags, outDimTags_n, outDimTagsMap, outDimTagsMap_n, outDimTagsMap_nn, tag, removeObject, removeTool, ierr) bind(C, name="gmshModelOccCut") use, intrinsic :: iso_c_binding integer(c_int), dimension(*) :: objectDimTags integer(c_size_t), value :: objectDimTags_n @@ -3732,7 +3731,7 @@ module gmsh integer(c_size_t) :: outDimTags_n type(c_ptr), intent(out) :: outDimTagsMap type(c_ptr), intent(out) :: outDimTagsMap_n - integer(c_size_t) ::outDimTagsMap_nn + integer(c_size_t) :: outDimTagsMap_nn integer(c_int), value :: tag integer(c_int), value :: removeObject integer(c_int), value :: removeTool @@ -3748,7 +3747,7 @@ module gmsh !! If `tag' is positive, try to set the tag explicitly (only valid if the !! boolean operation results in a single entity). Remove the object if !! `removeObject' is set. Remove the tool if `removeTool' is set. - subroutine gmshModelOccFragment(objectDimTags, objectDimTags_n, toolDimTags, toolDimTags_n, outDimTags, outDimTags_n, outDimTagsMap, outDimTagsMap_n,outDimTagsMap_nn, tag, removeObject, removeTool, ierr) bind(C, name="gmshModelOccFragment") + subroutine gmshModelOccFragment(objectDimTags, objectDimTags_n, toolDimTags, toolDimTags_n, outDimTags, outDimTags_n, outDimTagsMap, outDimTagsMap_n, outDimTagsMap_nn, tag, removeObject, removeTool, ierr) bind(C, name="gmshModelOccFragment") use, intrinsic :: iso_c_binding integer(c_int), dimension(*) :: objectDimTags integer(c_size_t), value :: objectDimTags_n @@ -3758,7 +3757,7 @@ module gmsh integer(c_size_t) :: outDimTags_n type(c_ptr), intent(out) :: outDimTagsMap type(c_ptr), intent(out) :: outDimTagsMap_n - integer(c_size_t) ::outDimTagsMap_nn + integer(c_size_t) :: outDimTagsMap_nn integer(c_int), value :: tag integer(c_int), value :: removeObject integer(c_int), value :: removeTool @@ -3987,7 +3986,7 @@ module gmsh !> Get the tags `curveLoopTags' of the curve loops making up the surface of !! tag `surfaceTag', as well as the tags `curveTags' of the curves making up !! each curve loop. - subroutine gmshModelOccGetCurveLoops(surfaceTag, curveLoopTags, curveLoopTags_n, curveTags, curveTags_n,curveTags_nn, ierr) bind(C, name="gmshModelOccGetCurveLoops") + subroutine gmshModelOccGetCurveLoops(surfaceTag, curveLoopTags, curveLoopTags_n, curveTags, curveTags_n, curveTags_nn, ierr) bind(C, name="gmshModelOccGetCurveLoops") use, intrinsic :: iso_c_binding integer(c_int), value :: surfaceTag type(c_ptr), intent(out) :: curveLoopTags @@ -4001,7 +4000,7 @@ module gmsh !> Get the tags `surfaceLoopTags' of the surface loops making up the volume of !! tag `volumeTag', as well as the tags `surfaceTags' of the surfaces making !! up each surface loop. - subroutine gmshModelOccGetSurfaceLoops(volumeTag, surfaceLoopTags, surfaceLoopTags_n, surfaceTags, surfaceTags_n,surfaceTags_nn, ierr) bind(C, name="gmshModelOccGetSurfaceLoops") + subroutine gmshModelOccGetSurfaceLoops(volumeTag, surfaceLoopTags, surfaceLoopTags_n, surfaceTags, surfaceTags_n, surfaceTags_nn, ierr) bind(C, name="gmshModelOccGetSurfaceLoops") use, intrinsic :: iso_c_binding integer(c_int), value :: volumeTag type(c_ptr), intent(out) :: surfaceLoopTags @@ -4132,7 +4131,7 @@ module gmsh !! number of data components (1 for scalar data, 3 for vector data, etc.) per !! entity; if negative, it is automatically inferred (when possible) from the !! input data. `partition' allows one to specify data in several sub-sets. - subroutine gmshViewAddModelData(tag, step, modelName, dataType, tags, tags_n, data, data_n,data_nn, time, numComponents, partition, ierr) bind(C, name="gmshViewAddModelData") + subroutine gmshViewAddModelData(tag, step, modelName, dataType, tags, tags_n, data, data_n, data_nn, time, numComponents, partition, ierr) bind(C, name="gmshViewAddModelData") use, intrinsic :: iso_c_binding integer(c_int), value :: tag integer(c_int), value :: step @@ -4174,7 +4173,7 @@ module gmsh !! `step'. Return the `data' associated to the nodes or the elements with tags !! `tags', as well as the `dataType' and the number of components !! `numComponents'. - subroutine gmshViewGetModelData(tag, step, dataType, tags, tags_n, data, data_n,data_nn, time, numComponents, ierr) bind(C, name="gmshViewGetModelData") + subroutine gmshViewGetModelData(tag, step, dataType, tags, tags_n, data, data_n, data_nn, time, numComponents, ierr) bind(C, name="gmshViewGetModelData") use, intrinsic :: iso_c_binding integer(c_int), value :: tag integer(c_int), value :: step @@ -4183,7 +4182,7 @@ module gmsh integer(c_size_t) :: tags_n type (c_ptr), intent(out) :: data type(c_ptr), intent(out) :: data_n - integer (c_size_t) :: data_nn + integer(c_size_t) :: data_nn real(c_double) :: time integer(c_int) :: numComponents integer(c_int) :: ierr @@ -4230,7 +4229,7 @@ module gmsh !> Get list-based post-processing data from the view with tag `tag'. Return !! the types `dataTypes', the number of elements `numElements' for each data !! type and the `data' for each data type. - subroutine gmshViewGetListData(tag, dataType, dataType_n, numElements, numElements_n, data, data_n,data_nn, ierr) bind(C, name="gmshViewGetListData") + subroutine gmshViewGetListData(tag, dataType, dataType_n, numElements, numElements_n, data, data_n, data_nn, ierr) bind(C, name="gmshViewGetListData") use, intrinsic :: iso_c_binding integer(c_int), value :: tag type(c_ptr), intent(out) :: dataType @@ -4239,7 +4238,7 @@ module gmsh integer(c_size_t) :: numElements_n type (c_ptr), intent(out) :: data type(c_ptr), intent(out) :: data_n - integer (c_size_t) :: data_nn + integer(c_size_t) :: data_nn integer(c_int) :: ierr end subroutine gmshViewGetListData