1. 21 Oct, 2022 1 commit
  2. 14 Oct, 2022 1 commit
  3. 13 Oct, 2022 3 commits
  4. 04 Sep, 2022 2 commits
  5. 03 Sep, 2022 1 commit
  6. 02 Sep, 2022 3 commits
  7. 29 Jun, 2022 1 commit
  8. 28 Jun, 2022 4 commits
    • Giannis Nikiteas's avatar
      Simplify the initialize routine · a3bb4db2
      Giannis Nikiteas authored
    • Giannis Nikiteas's avatar
      Changes Fortran void* to type(c_ptr), value from integer(c_int). · e603f4e9
      Giannis Nikiteas authored
      Also removes resolved TODOs and removes usage of target where not needed
    • Giannis Nikiteas's avatar
      Change indentation from 4-spaces to 2 · 68877886
      Giannis Nikiteas authored
    • Giannis Nikiteas's avatar
      Makes the Fortran API user friendly · b710adbc
      Giannis Nikiteas authored
      - You can use Fortran arrays as inputs, which are internally converted to C ptrs
      - You can input normal Fortran strings which are internally converted to C strs
      - You don't have to pass the size as an argument
      - Return arrays are now Fortran allocatables arrays
      - Jagged arrays are inserted/output as a single array and an array with the lengths of each dimension as opposed to cptr, cptr, size_n
      - Pairs are now a (1:2,n) array that is cast into an assumed shape array in C
      - `intent` keywords have been added to most variable types
      - Had to create a dummy modue `fsize_m` to prevent the intrinsic `size()` being shadowed by any potential variables being named `size`
      1. All the memory allocations in C need to be freed with a C callback otherwise we are leaking memory
      TODO List:
      1. Add intent(out) for oint, osize, odouble
      2. Add optional arguments for ierr
      3. Add more generic optional arguments see Python
      4. Allow for already allocated arrays to be deallocated internally
  9. 19 Jun, 2022 1 commit
  10. 18 Jun, 2022 1 commit
    • Giannis Nikiteas's avatar
      Changes Fortran API to use type-bound procedures · edc7f80d
      Giannis Nikiteas authored
      Because of how type-bound procedures are defined
      the functions have to be parsed twice. First to generate the
      the types and the second time to implement the interface with the C API.
      `NOPASS` is used to signify that the procedures are static and
  11. 14 Jun, 2022 1 commit
    • Giannis Nikiteas's avatar
      Rewrote the Fortran API implementation · f0005fcf
      Giannis Nikiteas authored
      Use lists instead of strs to store the argument names and types
      This is necesseary because a Fortran procedure/interface needs both
      a dummy argument list and a variable declaration following the arg list.
      This also make it easier to add argument `intent` and also provide an
      interface for optional arguments.
      Optional arguments could either be defined on the `interface` block
      or create a module implementation which calls `present`.
      I think in the former case the optional arguments would be handed to
      the C backend so e.g. stderr will be reported through C not Fortran
  12. 13 Jun, 2022 3 commits
    • Giannis Nikiteas's avatar
      Makes arrays use `dimension` keywords · 13bae837
      Giannis Nikiteas authored
      The assumed size arrays have been converted into using the
      `dimension(*)` keyword in an attempt to remove some of the
      burden of formatting the Fortran interface from within the
      variable definitions.
      Newline characters have also been moved into the module generation
      part of the script.
    • Giannis Nikiteas's avatar
      Minor changes and update gmsh.f90 · ae1964ea
      Giannis Nikiteas authored
    • Giannis Nikiteas's avatar
      Initial commit for rewriting the Fortran API · 681e008a
      Giannis Nikiteas authored
      - Removes non-standard DEC$ directives
      - Changes comments to F90 (!) from F77 (C)
      - Adds semver major, minor, patch variables
      - Changes semver version to a larger string
      - Changes docstrings to be Doxygen abiding
      - Changes module name from `gmsh_fortran` to `gmsh`
      - Changes file extension from `.h` to `.f90`
      - Changes indendation to 4-space (fixed for now)
      - Fixes & being erroneously placed at the start of newlines vs EOL
      - Reformats variable commas, spacings, etc. to be consistent
      - Removes hardlimit for procedures names> 45 to be excluded from the API
      TODO List:
      1. Abide by `indent`, currently spacing manually set to 4spaces
      2. Add optional arguments for things such as `gmshModelAddPhysicalGroup`
      3. Change names _n _nn to more descriptive names
      4. Simplify spacing between procedure types
      5. Convert API names to be user friendly get, set, etc.