aboutsummaryrefslogtreecommitdiff
path: root/test/example_packages/with_c/src/with_c.f90
diff options
context:
space:
mode:
authorLKedward <laurence.kedward@bristol.ac.uk>2020-09-18 10:15:13 +0100
committerLKedward <laurence.kedward@bristol.ac.uk>2020-09-18 11:19:30 +0100
commitf0caa736e0fee49ee8680899ba4d17a6e33d6b10 (patch)
tree356c4312926d59a80c565d13961734639b0c71a3 /test/example_packages/with_c/src/with_c.f90
parent898a4efcfd8a3ab47e79b36a36fd6497777a4d5d (diff)
downloadfpm-f0caa736e0fee49ee8680899ba4d17a6e33d6b10.tar.gz
fpm-f0caa736e0fee49ee8680899ba4d17a6e33d6b10.zip
Add: example package with c code compilation
Diffstat (limited to 'test/example_packages/with_c/src/with_c.f90')
-rw-r--r--test/example_packages/with_c/src/with_c.f9026
1 files changed, 26 insertions, 0 deletions
diff --git a/test/example_packages/with_c/src/with_c.f90 b/test/example_packages/with_c/src/with_c.f90
new file mode 100644
index 0000000..edd839e
--- /dev/null
+++ b/test/example_packages/with_c/src/with_c.f90
@@ -0,0 +1,26 @@
+module with_c
+ use iso_c_binding, only: c_char, c_int, c_null_char
+ implicit none
+
+contains
+
+ function system_isdir(dirname)
+ ! Source (Public domain): https://github.com/urbanjost/M_system
+ !
+ implicit none
+ character(len=*),intent(in) :: dirname
+ logical :: system_isdir
+
+ interface
+ function c_isdir(dirname) bind (C,name="my_isdir") result (c_ierr)
+ import c_char,c_int
+ character(kind=c_char,len=1),intent(in) :: dirname(*)
+ integer(kind=c_int) :: c_ierr
+ end function c_isdir
+ end interface
+
+ system_isdir= c_isdir(trim(dirname)//c_null_char) == 1
+
+ end function system_isdir
+
+end module with_c \ No newline at end of file