From ea5fa02b261c6d9a7949da1ca78c8ccd8cdbcbda Mon Sep 17 00:00:00 2001 From: Thomas Applencourt Date: Fri, 17 Mar 2017 13:01:12 -0500 Subject: [PATCH] Fix writer --- example/Makefile | 6 +++--- src/entity.py | 10 ++++++---- src/module.py | 1 - src/templates/ioer.f90 | 32 ++++++++++++++++---------------- 4 files changed, 25 insertions(+), 24 deletions(-) diff --git a/example/Makefile b/example/Makefile index c026e2a..1661c21 100644 --- a/example/Makefile +++ b/example/Makefile @@ -1,5 +1,5 @@ -IRPF90= irpf90 -IRPF90FLAGS= -I ./ -I input/ +IRPF90= ../bin/irpf90 +IRPF90FLAGS= BUILD_SYSTEM= make .EXPORT_ALL_VARIABLES: @@ -50,7 +50,7 @@ define run_and_touch $(BUILD_SYSTEM) -C $(dir $(1) ) -f $(notdir $(1) ) $(addprefix $(CURDIR)/, $(2)) && touch $(2) endef -EXE := $(shell egrep -r '^\s*program' *.irp.f | awk '{print $$2}') +EXE := $(shell egrep -ri '^\s*program' *.irp.f | cut -d'.' -f1) .PHONY: all diff --git a/src/entity.py b/src/entity.py index f43fcf2..84cabd8 100644 --- a/src/entity.py +++ b/src/entity.py @@ -178,17 +178,19 @@ class Entity(object): 'group_entity': [{ 'name': n, 'dim': build_dim( - self.cm_d_variable[n].dim, colons=True) + self.d_entity[n].dim, colons=True) } for n in self.l_name] } - return ashes_env('io.f90', d_template).split('\n') + return ashes_env.render('ioer.f90', d_template).split('!TOKEN_SPLIT') + @irpy.lazy_property def reader(self): - return io.er.split('TOKEN_SPLIT')[0] + return self.io_er[1].split('\n') + @irpy.lazy_property def writer(self): - return io.er.split('TOKEN_SPLIT')[1] + return self.io_er[0].split('\n') @irpy.lazy_property_mutable def is_read(self): diff --git a/src/module.py b/src/module.py index 111dead..cf55612 100644 --- a/src/module.py +++ b/src/module.py @@ -114,7 +114,6 @@ class Fmodule(object): result += var.reader if var.is_written: result += var.writer - return result @irpy.lazy_property diff --git a/src/templates/ioer.f90 b/src/templates/ioer.f90 index ab621e2..a00789a 100644 --- a/src/templates/ioer.f90 +++ b/src/templates/ioer.f90 @@ -1,4 +1,4 @@ -SUBROUTINE write_{name}(irp_num) +SUBROUTINE writer_{name}(irp_num) USE {fmodule} IMPLICIT NONE @@ -17,28 +17,28 @@ SUBROUTINE write_{name}(irp_num) CALL provide_{same_as} ENDIF - {children} - CALL write_{.}(irp_num) + {#children} + CALL writer_{.}(irp_num) {/children} DO WHILE (irp_is_open) - irp_iunit = irp_inuit + 1 - INQUIRE(UNIT=irp_inuit, OPENED=irp_is_open) + irp_iunit = irp_iunit + 1 + INQUIRE(UNIT=irp_iunit, OPENED=irp_is_open) END DO {#group_entity} - OPEN(UNIT=irp_inuit,file='irpf90_{name}_'//trim(irp_num),FROM='FORMATTED',STATUS='UNKNOWN',ACTION='WRITE') - WRITE(irp_inuit,*) {.}{dim} - CLOSE(irp_inuit) + OPEN(UNIT=irp_iunit,file='irpf90_{name}_'//trim(irp_num),FORM='FORMATTED',STATUS='UNKNOWN',ACTION='WRITE') + WRITE(irp_iunit,*) {name}{dim} + CLOSE(irp_iunit) {/group_entity} {?do_debug} CALL irp_leave(irp_here) {/do_debug} -END SUBROUTINE write_{name} +END SUBROUTINE writer_{name} !TOKEN_SPLIT -SUBROUTINE read_{name}(irp_num) +SUBROUTINE reader_{name}(irp_num) USE {fmodule} IMPLICIT NONE @@ -54,18 +54,18 @@ SUBROUTINE read_{name}(irp_num) {?do_debug} CALL irp_enter(irp_here) {/do_debug} DO WHILE (irp_is_open) - irp_iunit = irp_inuit + 1 - INQUIRE(UNIT=irp_inuit, OPENED=irp_is_open) + irp_iunit = irp_iunit + 1 + INQUIRE(UNIT=irp_iunit, OPENED=irp_is_open) END DO {#group_entity} - OPEN(UNIT=irp_inuit,file='irpf90_{name}_'//trim(irp_num),FROM='FORMATTED',STATUS='UNKNOWN',ACTION='WRITE') - READ(irp_inuit,*) {name}{dim} - CLOSE(irp_inuit) + OPEN(UNIT=irp_iunit,file='irpf90_{name}_'//trim(irp_num),FORM='FORMATTED',STATUS='UNKNOWN',ACTION='WRITE') + READ(irp_iunit,*) {name}{dim} + CLOSE(irp_iunit) {/group_entity} CALL touch_{name} {?do_debug} CALL irp_leave(irp_here) {/do_debug} -END SUBROUTINE read_{name} +END SUBROUTINE reader_{name}