Skip to content
Snippets Groups Projects
  1. Jun 28, 2022
    • Giannis Nikiteas's avatar
      Rename `obj` to `gmsh` · 16c6a1c1
      Giannis Nikiteas authored
      16c6a1c1
    • 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`
      
      NOTES:
      1. All the memory allocations in C need to be freed with a C callback otherwise we are leaking memory
      2.
      
      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
      b710adbc
  2. Jun 19, 2022
  3. Jun 18, 2022
    • 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
      edc7f80d
  4. Jun 16, 2022
  5. Jun 15, 2022
  6. Jun 14, 2022
    • 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
      f0005fcf
  7. Jun 13, 2022
    • Giannis Nikiteas's avatar
      Creates `write_function` for Fortran · 3e5ca059
      Giannis Nikiteas authored
      3e5ca059
    • Giannis Nikiteas's avatar
      Renames function variables · a45b4d08
      Giannis Nikiteas authored
      Temorarily removes call to flog until we finish the wrappers
      a45b4d08
    • 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.
      13bae837
    • Giannis Nikiteas's avatar
      Minor changes and update gmsh.f90 · ae1964ea
      Giannis Nikiteas authored
      ae1964ea
    • Giannis Nikiteas's avatar
      Removed `M_PI` variable · 44ebf7a3
      Giannis Nikiteas authored
      Fortran moules are public by default so limiting the number of
      unecessary variables is important as to not populate the global scope.
      44ebf7a3
    • 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.
      681e008a
  8. Jun 11, 2022
  9. Jun 09, 2022
  10. Jun 03, 2022
  11. Jun 02, 2022
  12. May 30, 2022
  13. May 28, 2022
  14. May 26, 2022
  15. May 24, 2022
  16. May 23, 2022
  17. May 22, 2022
  18. May 21, 2022
  19. May 19, 2022
  20. May 16, 2022
  21. May 13, 2022
  22. May 12, 2022
Loading