From b1168ba34fc860dc440e055aacd5eb45a2e0308f Mon Sep 17 00:00:00 2001 From: Nick Gould Date: Fri, 16 Aug 2024 11:40:25 +0100 Subject: [PATCH] updated version module and its components to conform to usual galahad rules --- src/version/C/version_ciface.F90 | 41 ++++++++++++++++++++++++++++++++ src/version/C/versiont.c | 15 ++++++++++++ src/version/meson.build | 4 ++++ src/version/version.F90 | 15 ++++++------ src/version/versiont.F90 | 2 +- 5 files changed, 68 insertions(+), 9 deletions(-) create mode 100644 src/version/C/version_ciface.F90 create mode 100644 src/version/C/versiont.c diff --git a/src/version/C/version_ciface.F90 b/src/version/C/version_ciface.F90 new file mode 100644 index 000000000..91d434aba --- /dev/null +++ b/src/version/C/version_ciface.F90 @@ -0,0 +1,41 @@ +! THIS VERSION: GALAHAD 5.1 - 2024-08-16 AT 10:30 GMT. + +#include "galahad_modules.h" +#include "galahad_cfunctions.h" + +!-*-*-*-*-*- G A L A H A D _ V E R S I O N C I N T E R F A C E -*-*-*-*- + +! Copyright reserved, Gould/Orban/Toint, for GALAHAD productions +! Principal authors: Jaroslav Fowkes & Nick Gould + +! History - +! originally released GALAHAD Version 5.1. August 16th 2024 + +! For full documentation, see +! http://galahad.rl.ac.uk/galahad-www/specs.html + + MODULE GALAHAD_VERSION_ciface + + USE GALAHAD_VERSION, ONLY: f_version_galahad => version_galahad + + CONTAINS + +! -------------------------------------- +! C interface to fortran version_galahad +! -------------------------------------- + + SUBROUTINE version_galahad( major_version, minor_version, patch_version ) & + BIND( C ) + USE ISO_C_BINDING, ONLY : C_int + IMPLICIT NONE + +! dummy arguments + + INTEGER ( KIND = C_int ) :: major_version, minor_version, patch_version + CALL f_VERSION_galahad( major_version, minor_version, patch_version ) + + RETURN + + END SUBROUTINE version_galahad + + END MODULE GALAHAD_VERSION_ciface diff --git a/src/version/C/versiont.c b/src/version/C/versiont.c new file mode 100644 index 000000000..66df5563d --- /dev/null +++ b/src/version/C/versiont.c @@ -0,0 +1,15 @@ +/* versiont.c */ +/* Full test for the VERSION C interface */ + +#include +#include "galahad_version.h" + +int main(void) { + + int major; + int minor; + int patch; + + version_galahad( &major, &minor, &patch ); + printf( " GALAHAD version: %d.%d.%d\n", major, minor, patch ); +} diff --git a/src/version/meson.build b/src/version/meson.build index 028cef5d7..9ab8ec007 100644 --- a/src/version/meson.build +++ b/src/version/meson.build @@ -1,3 +1,7 @@ libgalahad_src += files('version.F90') +libgalahad_c_src += files('C/version_ciface.F90') + galahad_tests += [['version', 'versiont', files('versiont.F90')]] + +galahad_c_tests += [['version', 'versiont_c', files('C/versiont.c')]] diff --git a/src/version/version.F90 b/src/version/version.F90 index b4e178cb4..c5a635a08 100644 --- a/src/version/version.F90 +++ b/src/version/version.F90 @@ -1,4 +1,4 @@ -! THIS VERSION: GALAHAD 5.1 - 2024-08-14 AT 09:45 GMT. +! THIS VERSION: GALAHAD 5.1 - 2024-08-16 AT 09:45 GMT. #include "galahad_modules.h" @@ -16,12 +16,10 @@ MODULE GALAHAD_VERSION - USE GALAHAD_KINDS_precision - IMPLICIT NONE PRIVATE - PUBLIC :: VERSION + PUBLIC :: VERSION_galahad INTEGER, PARAMETER :: major = 5 INTEGER, PARAMETER :: minor = 0 @@ -29,20 +27,21 @@ MODULE GALAHAD_VERSION CONTAINS -!-*-*-*-*-*-*- G A L A H A D V E R S I O N F U N C T I O N -*-*-*-*-*-*- +!-*- G A L A H A D V E R S I O N _ G A L A H A D S U B R O U T I N E -*- - SUBROUTINE VERSION(major_version, minor_version, patch_version) BIND(C, NAME="version_galahad") + SUBROUTINE VERSION_galahad( major_version, minor_version, patch_version ) INTEGER :: major_version, minor_version, patch_version ! return the current GALAHAD version number (major.minor.patch) + major_version = major minor_version = minor patch_version = patch RETURN -! End of subroutine VERSION +! End of subroutine VERSION_galahad - END SUBROUTINE VERSION + END SUBROUTINE VERSION_galahad ! End of module GALAHAD_VERSION diff --git a/src/version/versiont.F90 b/src/version/versiont.F90 index 90cfcf6ca..1ca8fb5cc 100644 --- a/src/version/versiont.F90 +++ b/src/version/versiont.F90 @@ -7,7 +7,7 @@ PROGRAM GALAHAD_VERSION_TEST IMPLICIT NONE INTEGER :: major, minor, patch - CALL VERSION( major, minor, patch ) + CALL VERSION_galahad( major, minor, patch ) WRITE( 6, "(' current GALAHAD version is ', I0, '.', I0, '.', I0 )" ) & major, minor, patch