@@ -8,72 +8,20 @@ configure_file(
88 output : ' pathlib.f90' ,
99 configuration : conf_data)
1010
11- reader_template = configuration_data ()
12- reader_template.set(' reader_template' ,
13- '''
14- integer :: varid, ier
15-
16- if(.not.self%is_open) error stop 'ERROR:nc4fortran:reader file handle not open'
17-
18- ier = nf90_inq_varid(self%ncid, dname, varid)
19-
20- if(ier == NF90_NOERR) then
21- select type (value)
22- type is (real(real64))
23- ier = nf90_get_var(self%ncid, varid, value)
24- type is (real(real32))
25- ier = nf90_get_var(self%ncid, varid, value)
26- type is (integer(int64))
27- ier = nf90_get_var(self%ncid, varid, value)
28- type is (integer(int32))
29- ier = nf90_get_var(self%ncid, varid, value)
30- class default
31- ier = NF90_EBADTYPE
32- end select
33- endif
11+ python = find_program (' python' )
3412
35- if (present(ierr)) ierr = ier
36- if (check_error(ier, dname)) then
37- if (present(ierr)) return
38- error stop
39- endif
40- ''' )
13+ ret = run_command (python, ' -c' , ' print(open("' + meson .current_source_dir() / ' reader_template.in.f90' + ' ").read())' )
14+ reader_template = configuration_data ()
15+ reader_template.set(' reader_template' , ret.stdout())
4116configure_file (
4217 input : ' reader.in.f90' ,
4318 output : ' reader.f90' ,
4419 configuration : reader_template
4520)
4621
22+ ret = run_command (python, ' -c' , ' print(open("' + meson .current_source_dir() / ' writer_template.in.f90' + ' ").read())' )
4723writer_template = configuration_data ()
48- writer_template.set(' writer_template' ,
49- '''
50- integer :: varid, dimids(rank(value)), ier
51-
52- call self%def_dims(dname, dims, shape(value), dimids, ier)
53-
54- select type (value)
55- type is (real(real64))
56- if(ier == NF90_NOERR) ier = nf90_def_var(self%ncid, dname, NF90_DOUBLE, dimids=dimids, varid=varid)
57- if(ier == NF90_NOERR) ier = nf90_put_var(self%ncid, varid, value)
58- type is (real(real32))
59- if(ier == NF90_NOERR) ier = nf90_def_var(self%ncid, dname, NF90_FLOAT, dimids=dimids, varid=varid)
60- if(ier == NF90_NOERR) ier = nf90_put_var(self%ncid, varid, value)
61- type is (integer(int64))
62- if(ier == NF90_NOERR) ier = nf90_def_var(self%ncid, dname, NF90_INT64, dimids=dimids, varid=varid)
63- if(ier == NF90_NOERR) ier = nf90_put_var(self%ncid, varid, value)
64- type is (integer(int32))
65- if(ier == NF90_NOERR) ier = nf90_def_var(self%ncid, dname, NF90_INT, dimids=dimids, varid=varid)
66- if(ier == NF90_NOERR) ier = nf90_put_var(self%ncid, varid, value)
67- class default
68- ierr = NF90_EBADTYPE
69- end select
70-
71- if (present(ierr)) ierr = ier
72- if (check_error(ier, dname)) then
73- if (present(ierr)) return
74- error stop
75- endif
76- ''' )
24+ writer_template.set(' writer_template' , ret.stdout())
7725configure_file (
7826 input : ' writer.in.f90' ,
7927 output : ' writer.f90' ,
0 commit comments