mirror of
https://gitlab.com/scemama/irpf90.git
synced 2024-12-12 23:43:34 +01:00
Added -p item
Version:1.1.15
This commit is contained in:
parent
8d36c357ae
commit
448e566dc4
@ -6,7 +6,5 @@ import sys
|
||||
wd = os.path.abspath(os.path.dirname(__file__))
|
||||
wd += "/../src/"
|
||||
sys.path.append(wd)
|
||||
for p in sys.path:
|
||||
print p
|
||||
|
||||
import irpf90
|
||||
|
@ -7,4 +7,11 @@ wd = os.path.abspath(os.path.dirname(__file__))
|
||||
wd += "/../src/"
|
||||
sys.path.append(wd)
|
||||
|
||||
import irpman
|
||||
if len(sys.argv) != 2:
|
||||
print "Usage:"
|
||||
print sys.argv[0]+" <irp_variable>"
|
||||
sys.exit(1)
|
||||
|
||||
from irpf90_t import mandir
|
||||
os.system("man ./"+mandir+sys.argv[1].lower()+".l")
|
||||
|
||||
|
@ -13,6 +13,7 @@ options['o'] = [ 'openmp' , 'Activate openMP', 0 ]
|
||||
options['c'] = [ 'check_cycles' , 'Check cycles in dependencies', 0 ]
|
||||
options['i'] = [ 'init' , 'Initialize current directory', 0 ]
|
||||
options['D'] = [ 'define' , 'Define variable', 1 ]
|
||||
options['p'] = [ 'preprocess' , 'Preprocess file', 1 ]
|
||||
|
||||
class CommandLine(object):
|
||||
|
||||
@ -31,6 +32,15 @@ class CommandLine(object):
|
||||
return self._defined
|
||||
defined = property(fget=defined)
|
||||
|
||||
def preprocessed(self):
|
||||
if '_preprocessed' not in self.__dict__:
|
||||
self._preprocessed = []
|
||||
for o,a in self.opts:
|
||||
if o in [ "-p", options['p'][0] ]:
|
||||
self._preprocessed.append(a)
|
||||
return self._preprocessed
|
||||
preprocessed = property(fget=preprocessed)
|
||||
|
||||
def usage(self):
|
||||
t = """
|
||||
$EXE - $DESCR
|
||||
|
@ -9,7 +9,7 @@ from util import *
|
||||
def do_print_short(file,var):
|
||||
assert isinstance(var,Variable)
|
||||
print >>file, "%s : %s :: %s %s"%( \
|
||||
var.line.filename,
|
||||
var.line.filename[0],
|
||||
var.type,
|
||||
var.name,
|
||||
build_dim(var.dim) )
|
||||
@ -42,7 +42,7 @@ def process_types(file,var):
|
||||
######################################################################
|
||||
def do_print(var):
|
||||
assert isinstance(var,Variable)
|
||||
filename = var.line.filename
|
||||
filename = var.line.filename[0]
|
||||
name = var.name
|
||||
file = open("%s%s.l"%(mandir,var.name), "w")
|
||||
print >>file, '.TH "IRPF90 entities" l %s "IRPF90 entities" %s'%(name,name)
|
||||
@ -59,9 +59,11 @@ def do_print(var):
|
||||
print >>file, ".SH File\n.P"
|
||||
print >>file, filename
|
||||
if var.needs != []:
|
||||
var.needs.sort()
|
||||
print >>file, ".SH Needs"
|
||||
process_deps(file,var.needs)
|
||||
if var.needed_by != []:
|
||||
var.needed_by.sort()
|
||||
print >>file, ".SH Needed by"
|
||||
process_deps(file,var.needed_by)
|
||||
file.close()
|
||||
|
@ -11,6 +11,14 @@ def main():
|
||||
print version
|
||||
return
|
||||
|
||||
if command_line.do_preprocess:
|
||||
from preprocessed_text import preprocessed_text
|
||||
for filename,text in preprocessed_text:
|
||||
if filename in command_line.preprocessed:
|
||||
for line in text:
|
||||
print line.text
|
||||
return
|
||||
|
||||
from init import init
|
||||
if command_line.do_init:
|
||||
init()
|
||||
|
@ -115,17 +115,17 @@ def get_parsed_text():
|
||||
error.fail(line,"Syntax error")
|
||||
vars = map(lower,vars[1:])
|
||||
for v in vars:
|
||||
if v not in variables:
|
||||
error.fail(line,"Variable %s unknown"%(v,))
|
||||
variables[v]._is_touched = True
|
||||
def fun(x):
|
||||
if x not in variables:
|
||||
error.fail(line,"Variable %s unknown"%(x,))
|
||||
main = variables[x].same_as
|
||||
return main
|
||||
main_vars = make_single( map(fun, vars) )
|
||||
check_touch(line,vars,main_vars)
|
||||
txt = " ".join(vars)
|
||||
result += [ ([],Simple_line(line.i,"!",line.filename)),
|
||||
(vars,Simple_line(line.i,"! >>> TOUCH %s"%(txt,),line.filename)) ]
|
||||
result += [ (vars,Simple_line(line.i,"!",line.filename)),
|
||||
([],Simple_line(line.i,"! >>> TOUCH %s"%(txt,),line.filename)) ]
|
||||
def fun(x):
|
||||
if x not in variables:
|
||||
error.fail(line,"Variable %s unknown"%(x,))
|
||||
@ -212,6 +212,8 @@ def move_variables():
|
||||
assert old_ifvars == []
|
||||
assert old_elsevars == []
|
||||
varlist = []
|
||||
elif isinstance(line,Provide_all):
|
||||
result.append( (vars,line) )
|
||||
else:
|
||||
varlist += vars
|
||||
result.append( ([],line) )
|
||||
|
@ -412,7 +412,7 @@ def irp_simple_statements(text):
|
||||
i = line.i
|
||||
f = line.filename
|
||||
result = [ Begin_provider(i,line.text, (f,varname)),
|
||||
Declaration(i," character*(%d), parameter :: irp_here = '%s'"%(length,varname), filename) ]
|
||||
Declaration(i," character*(%d) :: irp_here = '%s'"%(length,varname), filename) ]
|
||||
if command_line.do_assert or command_line.do_debug:
|
||||
result += [
|
||||
Simple_line(i," call irp_enter(irp_here)", f),
|
||||
@ -438,7 +438,7 @@ def irp_simple_statements(text):
|
||||
i = line.i
|
||||
f = line.filename
|
||||
result = [ line,
|
||||
Declaration(i," character*(%d), parameter :: irp_here = '%s'"%(length,subname), f) ]
|
||||
Declaration(i," character*(%d) :: irp_here = '%s'"%(length,subname), f) ]
|
||||
if command_line.do_assert or command_line.do_debug:
|
||||
result += [
|
||||
Simple_line(i," call irp_enter(irp_here)", f),
|
||||
@ -453,7 +453,7 @@ def irp_simple_statements(text):
|
||||
i = line.i
|
||||
f = line.filename
|
||||
result = [ line,
|
||||
Declaration(i," character*(%d), parameter :: irp_here = '%s'"%(length,subname), f) ]
|
||||
Declaration(i," character*(%d) :: irp_here = '%s'"%(length,subname), f) ]
|
||||
if command_line.do_assert or command_line.do_debug:
|
||||
result += [
|
||||
Simple_line(i," call irp_enter(irp_here)", f),
|
||||
|
@ -199,7 +199,7 @@ class Variable(object):
|
||||
result.append(" implicit none")
|
||||
if command_line.do_debug:
|
||||
length = str(len("touch_%s"%(name)))
|
||||
result += [ " character*(%s), parameter :: irp_here = 'touch_%s'"%(length,name),
|
||||
result += [ " character*(%s) :: irp_here = 'touch_%s'"%(length,name),
|
||||
" call irp_enter(irp_here)" ]
|
||||
result += map( lambda x: " %s_is_built = .False."%(x), parents)
|
||||
result.append(" %s_is_built = .True."%(name))
|
||||
@ -231,7 +231,7 @@ class Variable(object):
|
||||
if command_line.do_debug:
|
||||
length = len("reader_%s"%(self.name))
|
||||
result += [\
|
||||
" character*(%d), parameter :: irp_here = 'reader_%s'"%(length,name),
|
||||
" character*(%d) :: irp_here = 'reader_%s'"%(length,name),
|
||||
" call irp_enter(irp_here)" ]
|
||||
result += map(lambda x: " call reader_%s(irp_num)"%(x),self.needs)
|
||||
result += [ \
|
||||
@ -277,7 +277,7 @@ class Variable(object):
|
||||
if command_line.do_debug:
|
||||
length = len("writer_%s"%(self.name))
|
||||
result += [\
|
||||
" character*(%d), parameter :: irp_here = 'writer_%s'"%(length,name),
|
||||
" character*(%d) :: irp_here = 'writer_%s'"%(length,name),
|
||||
" call irp_enter(irp_here)" ]
|
||||
result += [ \
|
||||
" if (.not.%s_is_built) then"%(self.same_as),
|
||||
@ -390,7 +390,7 @@ class Variable(object):
|
||||
result.append(" implicit none")
|
||||
length = len("provide_%s"%(name))
|
||||
result += [\
|
||||
" character*(%d), parameter :: irp_here = 'provide_%s'"%(length,name),
|
||||
" character*(%d) :: irp_here = 'provide_%s'"%(length,name),
|
||||
" integer :: irp_err ",
|
||||
" logical :: irp_dimensions_OK" ]
|
||||
if command_line.do_assert or command_line.do_debug:
|
||||
|
@ -1 +1 @@
|
||||
version = "1.1.14"
|
||||
version = "1.1.15"
|
||||
|
Loading…
Reference in New Issue
Block a user