Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Efdc mpi #366

Open
wants to merge 75 commits into
base: master
Choose a base branch
from
Open

Efdc mpi #366

wants to merge 75 commits into from

Commits on Jan 26, 2024

  1. EFDC: Remove OpenMP parallelisation AIX version

    This removes OpenMP-based parallelisations that are present originating
    from the AIX-based versions. These are removed to make place for an
    updated, hybrid MPI & OpenMP approach.
    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    5e694ee View commit details
    Browse the repository at this point in the history
  2. fixup: Remove OMP loops in additional files

    Considers files:
    
    - CALAVBOLD.for
    - CALEXP2T0.for
    - CALPUV2C.for
    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    c6c040b View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d05dd3b View commit details
    Browse the repository at this point in the history
  4. Split lines that are considered too long

    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    4162d3f View commit details
    Browse the repository at this point in the history
  5. Replace write FMT containing bracketed variables

    This fix resolves the patch applied in OpenDA that comments out these
    print statements, specifically `CGATEFLX.patch` and `RWQC1.patch`.
    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    c65b91c View commit details
    Browse the repository at this point in the history
  6. Replace deprecated PAUSE call with READ

    A print is inserted before invoking `READ(*,*)` to notify the user of
    the suspended state of the application. This is similar to the message
    emitted by `PAUSE`. The behaviour is now slightly different:
    
    - To continue: ENTER should be provided in stead of 'go';
    - To terminate: a signal needs to be sent manually.
    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    49fb53b View commit details
    Browse the repository at this point in the history
  7. Remove unused variables

    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    5c02de7 View commit details
    Browse the repository at this point in the history
  8. Resolve warning regarding lines with unused labels

    This resolves the warnings raised by the compiler due to lines
    containing unused jump labels. For lines that only contain format
    specifiers or CONTINUE statements, the lines are commented. For lines
    that contain other instructions, such as calls to READ, only the label
    is removed.
    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    231c08c View commit details
    Browse the repository at this point in the history
  9. Replace non-standard function SECNDS by SECOND

    The non-standard function SECNDS is replaced by SECOND throughout the
    source code. Since the alternative SECOND does not allow to provide a
    reference time, the time difference is obtained by subtracting the
    original reference value instead.
    
    For details on the non-standard call:
    https://gcc.gnu.org/onlinedocs/gcc-4.9.4/gfortran/SECNDS.html
    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    075e74a View commit details
    Browse the repository at this point in the history
  10. Change SECOND() to CPU_TIME subroutine

    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    9606649 View commit details
    Browse the repository at this point in the history
  11. Resolve warning infinite loop on READ branch

    This makes the implicit while loop for the READ statements explicit by
    moving the READ statement into a `DO WHILE` statement that runs until a
    satisfactory read is performed.
    
    This does not change the functionality, it merely makes the loop
    explicit and thereby suppresses the compiler warnings.
    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    9df3514 View commit details
    Browse the repository at this point in the history
  12. Resolve compiler warnings due to Wconversion

    All implicit conversion is made explicit by inserting the required type
    casts to match the assigned variables.
    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    1342731 View commit details
    Browse the repository at this point in the history
  13. Initialise variables that are maybe uninitialised

    This resolves the corresponding warnings raised by
    `-Wmaybe-uninitialized`.
    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    83f2dfc View commit details
    Browse the repository at this point in the history
  14. Revert "Resolve warning infinite loop on READ branch"

    This reverts commit 3dceaaf.
    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    02c772c View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    e511c5e View commit details
    Browse the repository at this point in the history
  16. Match uppercase between implementations

    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    609b5aa View commit details
    Browse the repository at this point in the history
  17. Drop unused variables and subroutine CALEBI0

    Some of these are old loop variables that were not removed when the
    corresponding parallel loops were stripped out. Others are simply
    additional unused variables.
    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    f5d2d42 View commit details
    Browse the repository at this point in the history
  18. Match format statement with NIER

    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    c1e3854 View commit details
    Browse the repository at this point in the history
  19. Comment variable definitions to match NIER

    These are commented here and seem unused.
    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    103f940 View commit details
    Browse the repository at this point in the history
  20. Initialise local variables

    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    a07100f View commit details
    Browse the repository at this point in the history
  21. Add MPI-based subroutine implementations

    The filenames '${NAME}_mpi.for' implement the MPI counter parts of the
    subroutines present in '${NAME}.for'.
    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    5a26a89 View commit details
    Browse the repository at this point in the history
  22. Add the MPI module contained in MPI.f90

    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    c0bbc7b View commit details
    Browse the repository at this point in the history
  23. Move variables from function args to globals

    In NIER these variables are defined in Var_Global_Mod and not explicitly
    passed towards the subroutines. The subroutine signature is modified
    accordingly.
    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    386639c View commit details
    Browse the repository at this point in the history
  24. Extend Makefile to compile MPI sources

    - Replace gfortran with an MPI aware compiler (mpifort)
    - Add targets for the newly added MPI module and MPI sources
    - Add compiler flag -fallow-argument-mismatch to suppress errors
      resulting from type mismatch in MPI library calls.
    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    5ae9729 View commit details
    Browse the repository at this point in the history
  25. Add README to track questionable patches

    Includes a note regarding missing patches in the NIER version of
    source file CGATEFLX.
    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    063ebeb View commit details
    Browse the repository at this point in the history
  26. Include NIER patches for HDMT2T

    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    9549c0a View commit details
    Browse the repository at this point in the history
  27. Transfer missing loops to WQSKE3

    * Add missing Green algae salinity tox loops
    * Converts .AND. to .OR. to be consistent with all other comparisons
    * Modify if-statement IWQFCB to check with zero
    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    e799bf6 View commit details
    Browse the repository at this point in the history
  28. Initialise variables

    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    194da9e View commit details
    Browse the repository at this point in the history
  29. Configuration menu
    Copy the full SHA
    af6201e View commit details
    Browse the repository at this point in the history
  30. Configuration menu
    Copy the full SHA
    fe3088f View commit details
    Browse the repository at this point in the history
  31. Configuration menu
    Copy the full SHA
    a522707 View commit details
    Browse the repository at this point in the history
  32. Add note on missing patch WQ3D.for in NIER

    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    969ab02 View commit details
    Browse the repository at this point in the history
  33. Configuration menu
    Copy the full SHA
    0ca3bfa View commit details
    Browse the repository at this point in the history
  34. Configuration menu
    Copy the full SHA
    fed30eb View commit details
    Browse the repository at this point in the history
  35. Configuration menu
    Copy the full SHA
    3eb937e View commit details
    Browse the repository at this point in the history
  36. Make CALPUV2C consistent with NIER

    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    622b0df View commit details
    Browse the repository at this point in the history
  37. Introduce remaining MPI related patches

    This introduces the MPI patches present in the original Fortran source
    files, such as including the MPI module and various occurances of
    checking the current rank through MYRANK, mostly to guard read, write,
    or debug statements.
    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    b724060 View commit details
    Browse the repository at this point in the history
  38. Extract OMP thread through OMP_GET_MAX_THREADS

    This makes the number of threads extracted consistent with the OpenDA
    wrapper's approach.
    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    d4a5587 View commit details
    Browse the repository at this point in the history
  39. Add MPI init, finialise, and subroutine calls

    This propagates the MPI patches into the OpenDA wrapper. The MPI
    environment is initialised when the wrapper is set up. The domain
    decomposition seems required before the second model init, as is done in
    the EFDC.for main file. When the wrapper is destroyed, the MPI
    environment is destroyed as well.
    
    NOTE: This *ONLY* considers running with at most 1 rank and no care is
    taken to restrict certain operations to only the first rank, as would be
    needed for file IOa and/or log printing.
    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    e7f5f74 View commit details
    Browse the repository at this point in the history
  40. Configuration menu
    Copy the full SHA
    d4fa9fa View commit details
    Browse the repository at this point in the history
  41. Configuration menu
    Copy the full SHA
    d638fc1 View commit details
    Browse the repository at this point in the history
  42. VFPROJ more updates to the vfproj file

    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    9df1723 View commit details
    Browse the repository at this point in the history
  43. add missing source file EEXPOUT_opt_mpi

    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    a402fef View commit details
    Browse the repository at this point in the history
  44. VFPROJ: more updates

    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    e749cca View commit details
    Browse the repository at this point in the history
  45. Configuration menu
    Copy the full SHA
    aee29be View commit details
    Browse the repository at this point in the history
  46. wip: some were not initialised!!

    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    d842b34 View commit details
    Browse the repository at this point in the history
  47. VFPROJ another update

    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    29c22b7 View commit details
    Browse the repository at this point in the history
  48. fixup! wip: some were not initialised!!

    vt-max authored and wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    a00e6c1 View commit details
    Browse the repository at this point in the history
  49. Configuration menu
    Copy the full SHA
    ccd9fdb View commit details
    Browse the repository at this point in the history
  50. Initialize TIMESEC

    wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    8fc97bf View commit details
    Browse the repository at this point in the history
  51. Fix format specifiers

    wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    ac20b80 View commit details
    Browse the repository at this point in the history
  52. Correct nr of args to CALFQC

    wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    3320ef8 View commit details
    Browse the repository at this point in the history
  53. Fix merge regression

    wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    595e60c View commit details
    Browse the repository at this point in the history
  54. Configuration menu
    Copy the full SHA
    102f8f8 View commit details
    Browse the repository at this point in the history
  55. Configuration menu
    Copy the full SHA
    d201f0a View commit details
    Browse the repository at this point in the history
  56. Add MPI to linker

    wkramer committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    4744a01 View commit details
    Browse the repository at this point in the history

Commits on Apr 25, 2024

  1. Add fixes for solar radiation

    wkramer committed Apr 25, 2024
    Configuration menu
    Copy the full SHA
    ebd8990 View commit details
    Browse the repository at this point in the history
  2. Initializi variables to zero

    wkramer committed Apr 25, 2024
    Configuration menu
    Copy the full SHA
    fd12727 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    9e4e47f View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    9034bb3 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    6c9efec View commit details
    Browse the repository at this point in the history
  6. Fix typo

    wkramer committed Apr 25, 2024
    Configuration menu
    Copy the full SHA
    c69aea2 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    9cf736a View commit details
    Browse the repository at this point in the history
  8. Update documentation

    wkramer committed Apr 25, 2024
    Configuration menu
    Copy the full SHA
    f870fef View commit details
    Browse the repository at this point in the history
  9. Add gitignore

    wkramer committed Apr 25, 2024
    Configuration menu
    Copy the full SHA
    4b7bddd View commit details
    Browse the repository at this point in the history

Commits on May 22, 2024

  1. Remove debug output

    wkramer committed May 22, 2024
    Configuration menu
    Copy the full SHA
    da64fb2 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    66d01fe View commit details
    Browse the repository at this point in the history
  3. Disable wrapper debug output

    wkramer committed May 22, 2024
    Configuration menu
    Copy the full SHA
    5623352 View commit details
    Browse the repository at this point in the history

Commits on May 28, 2024

  1. Configuration menu
    Copy the full SHA
    7b6406b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    64d631e View commit details
    Browse the repository at this point in the history
  3. Improve error message

    wkramer committed May 28, 2024
    Configuration menu
    Copy the full SHA
    cc0eeb8 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    c21ce8e View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    f7d71f6 View commit details
    Browse the repository at this point in the history
  6. Call CALBUOY_mpi

    wkramer committed May 28, 2024
    Configuration menu
    Copy the full SHA
    1f038d0 View commit details
    Browse the repository at this point in the history
  7. Update solution

    wkramer committed May 28, 2024
    Configuration menu
    Copy the full SHA
    3c7006a View commit details
    Browse the repository at this point in the history