Warning, /tools/darwin/mkdiagnosticsdata is written in an unsupported language. File is not indexed.
view on githubraw file Latest commit 8fbfd1f3 on 2018-02-26 18:39:21 UTC
8fbfd1f382 Oliv*0001 #!/usr/bin/env python
0002 ''' run in run dir '''
0003 import sys
0004 import os
0005 import re
0006 import string
0007
0008 digits = string.digits + string.lowercase + string.uppercase
0009
0010 def iofmt(i):
0011 if i < 100:
0012 return '{:02d}'.format(i)
0013 elif i < 620:
0014 a,b = divmod(i-100, 52)
0015 return '{}{}'.format(a, digits[10+b])
0016 else:
0017 a,b = divmod(i-620, 62)
0018 return '{}{}'.format(digits[10+a], digits[b])
0019
0020
0021 try:
0022 with open('data.ptracers') as f:
0023 for line in f:
0024 m = re.match(r'^ *ptracers_numinuse *= *([0-9]*)', line, re.I)
0025 if m:
0026 ntr = int(m.group(1))
0027 break
0028 else:
0029 sys.exit('Could not find ptracers_numinuse.')
0030
0031 dt = None
0032 with open('data') as f:
0033 for line in f:
0034 m = re.match(r'^ *deltat([a-z]*) *= *([0-9]*)', line, re.I)
0035 if m:
0036 tp = m.group(1)
0037 if tp.lower() == 'clock' or dt is None:
0038 dt = int(m.group(2))
0039 if dt is None:
0040 sys.exit('Could not find time step.')
0041 except:
0042 sys.exit('Could not extract parameters from namelist files.\nPlease run in input or run dir.')
0043
0044 args = sys.argv[1:]
0045 with len(args) and open(args[0]) or sys.stdout as f:
0046 f.write(" &diagnostics_list\n")
0047 f.write(" filename(1)= 'darwin',\n")
0048 f.write(" frequency(1)= {0}.,\n".format(dt))
0049 for i in range(1, ntr+1):
0050 f.write(" fields({i},1)= 'TRAC{io} ',\n".format(i=i, io=iofmt(i)))
0051 f.write(" &\n")
0052 f.write(" &diag_statis_parms\n")
0053 f.write(" &\n")