mirror of
https://gitlab.com/scemama/EZFIO.git
synced 2025-01-03 01:55:44 +01:00
iso_c_bindings
This commit is contained in:
parent
6b215092c6
commit
744cbac511
12
src/Makefile
12
src/Makefile
@ -29,7 +29,7 @@ export
|
|||||||
|
|
||||||
include irpf90.make
|
include irpf90.make
|
||||||
|
|
||||||
irpf90.make: $(wildcard *.irp.f) ../config/*
|
irpf90.make: $(wildcard *.irp.f) ../config/* system.c
|
||||||
$(IRPF90)
|
$(IRPF90)
|
||||||
|
|
||||||
include ../version
|
include ../version
|
||||||
@ -40,15 +40,21 @@ all: static ../Python/ezfio.py ../Ocaml/ezfio.ml
|
|||||||
|
|
||||||
static: ../lib/libezfio.a ../lib/libezfio_irp.a
|
static: ../lib/libezfio.a ../lib/libezfio_irp.a
|
||||||
|
|
||||||
|
system_c.o: system_c.c
|
||||||
|
$(CC) -c system_c -o system_c.o
|
||||||
|
|
||||||
|
system_f.o: system_f.f90
|
||||||
|
$(FC) -c system_f.f90 -o system_f.o
|
||||||
|
|
||||||
../lib/libezfio.a: IRPF90_temp/irpf90.a
|
../lib/libezfio.a: IRPF90_temp/irpf90.a
|
||||||
rm -f ../lib/libezfio.a
|
rm -f ../lib/libezfio.a
|
||||||
$(AR) cru ../lib/libezfio.a $(OBJ1)
|
$(AR) cru ../lib/libezfio.a system_c.o system_f.o $(OBJ1)
|
||||||
$(RANLIB) ../lib/libezfio.a
|
$(RANLIB) ../lib/libezfio.a
|
||||||
|
|
||||||
../lib/libezfio_irp.a: ../lib/libezfio.a
|
../lib/libezfio_irp.a: ../lib/libezfio.a
|
||||||
rm -f ../lib/libezfio_irp.a
|
rm -f ../lib/libezfio_irp.a
|
||||||
cp ../lib/libezfio.a ../lib/libezfio_irp.a
|
cp ../lib/libezfio.a ../lib/libezfio_irp.a
|
||||||
$(AR) dv ../lib/libezfio_irp.a irp_stack.irp.o
|
$(AR) dv ../lib/libezfio_irp.a irp_stack.irp.o system_c.o system_f.o
|
||||||
$(RANLIB) ../lib/libezfio_irp.a
|
$(RANLIB) ../lib/libezfio_irp.a
|
||||||
|
|
||||||
|
|
||||||
|
@ -147,6 +147,9 @@ subroutine ezfio_set_file(filename_in)
|
|||||||
END_DOC
|
END_DOC
|
||||||
|
|
||||||
character*(*) :: filename_in
|
character*(*) :: filename_in
|
||||||
|
character(8) :: date
|
||||||
|
character(10) :: time
|
||||||
|
character(32) :: user
|
||||||
|
|
||||||
if (filename_in == '') then
|
if (filename_in == '') then
|
||||||
call ezfio_error(irp_here,'EZFIO file name is empty.')
|
call ezfio_error(irp_here,'EZFIO file name is empty.')
|
||||||
@ -157,16 +160,16 @@ subroutine ezfio_set_file(filename_in)
|
|||||||
if (.not.exists(libezfio_filename)) then
|
if (.not.exists(libezfio_filename)) then
|
||||||
call ezfio_mkdir(libezfio_filename)
|
call ezfio_mkdir(libezfio_filename)
|
||||||
call ezfio_mkdir(trim(libezfio_filename)//'/ezfio')
|
call ezfio_mkdir(trim(libezfio_filename)//'/ezfio')
|
||||||
call system('LANG= date > '//trim(libezfio_filename)//'/ezfio/creation')
|
|
||||||
call system('echo $USER > '//trim(libezfio_filename)//'/ezfio/user')
|
! using keyword arguments
|
||||||
BEGIN_SHELL [ /usr/bin/env python2 ]
|
call date_and_time(DATE=date,TIME=time)
|
||||||
import os
|
open (unit=10, file=trim(libezfio_filename)//'/ezfio/creation', ACTION='WRITE', STATUS='UNKNOWN')
|
||||||
command = "'echo %s > '//trim(libezfio_filename)//'/ezfio/library'"
|
write(10,*), time, ' ', date
|
||||||
cwd = os.getcwd()
|
close(10)
|
||||||
cwd = cwd.split('src')[:-1]
|
open (unit=10, file=trim(libezfio_filename)//'/ezfio/user', ACTION='WRITE', STATUS='UNKNOWN')
|
||||||
cwd = '/'.join(cwd)
|
call getenv('USER',user)
|
||||||
print "call system("+command%cwd+")"
|
write(10,*) user
|
||||||
END_SHELL
|
close(10)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
TOUCH libezfio_filename
|
TOUCH libezfio_filename
|
||||||
|
@ -53,6 +53,7 @@ logical function ezfio_exists(path)
|
|||||||
end function
|
end function
|
||||||
|
|
||||||
subroutine ezfio_mkdir(path)
|
subroutine ezfio_mkdir(path)
|
||||||
|
use system
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! Creates a directory
|
! Creates a directory
|
||||||
@ -63,7 +64,7 @@ subroutine ezfio_mkdir(path)
|
|||||||
call ezfio_error(irp_here,'Read-only file.')
|
call ezfio_error(irp_here,'Read-only file.')
|
||||||
endif
|
endif
|
||||||
if (.not.ezfio_exists(path)) then
|
if (.not.ezfio_exists(path)) then
|
||||||
call system('mkdir '//trim(path))
|
call mkdir(trim(path))
|
||||||
open(unit=libezfio_iunit,file=trim(path)//'/.version')
|
open(unit=libezfio_iunit,file=trim(path)//'/.version')
|
||||||
write(libezfio_iunit,'(A)') libezfio_version
|
write(libezfio_iunit,'(A)') libezfio_version
|
||||||
close(libezfio_iunit)
|
close(libezfio_iunit)
|
||||||
|
13
src/system_c.c
Normal file
13
src/system_c.c
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#include <sys/stat.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
|
||||||
|
void ezfio_mkdir(char* filename) {
|
||||||
|
errno = 0;
|
||||||
|
if (mkdir (filename, S_IRWXU)) {
|
||||||
|
perror (strerror (errno));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
12
src/system_f.f90
Normal file
12
src/system_f.f90
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
MODULE system
|
||||||
|
|
||||||
|
USE iso_c_binding
|
||||||
|
|
||||||
|
INTERFACE
|
||||||
|
SUBROUTINE mkdir(filename) BIND(C,name="fortran_mkdir")
|
||||||
|
USE iso_c_binding
|
||||||
|
CHARACTER(kind=C_CHAR),INTENT(in) :: filename(*)
|
||||||
|
END SUBROUTINE
|
||||||
|
END INTERFACE
|
||||||
|
|
||||||
|
END MODULE
|
Loading…
Reference in New Issue
Block a user