#!/bin/bash npxline=`grep '^[^!]*nprocx *=' cparam.local | sed -e's/!.*$//'` npyline=`grep '^[^!]*nprocy *=' cparam.local | sed -e's/!.*$//'` npzline=`grep '^[^!]*nprocz *=' cparam.local | sed -e's/!.*$//'` # # Extract nproc[xyz] defined by numerals and write to nprocs.inc. # echo $npxline | sed -e's/.*nprocx *= *\([0-9][0-9]*\) *,.*$/nprocx:=\1/;t;d' > nprocs.inc echo $npyline | sed -e's/.*nprocy *= *\([0-9][0-9]*\) *,.*$/nprocy:=\1/;t;d' >> nprocs.inc echo $npzline | sed -e's/.*nprocz *= *\([0-9][0-9]*\) *,.*$/nprocz:=\1/;t;d' >> nprocs.inc echo $npxline | sed -e's/.*nprocx *= *\([0-9][0-9]*\) *$/nprocx:=\1/;t;d' >> nprocs.inc echo $npyline | sed -e's/.*nprocy *= *\([0-9][0-9]*\) *$/nprocy:=\1/;t;d' >> nprocs.inc echo $npzline | sed -e's/.*nprocz *= *\([0-9][0-9]*\) *$/nprocz:=\1/;t;d' >> nprocs.inc # # Extract nproc[xyz] defined by expressions. # npxexpr=`echo $npxline | sed -e's/^.*nprocx *= *\([^,]*[A-Za-z_][^,]*\).*$/\1/;t cont;d;t;:cont;s/\([a-zA-Z_][a-zA-Z_]*\)/$(\1)/g;s/^\(.*\)$/nprocx= \1/'` npyexpr=`echo $npyline | sed -e's/^.*nprocy *= *\([^,]*[A-Za-z_][^,]*\).*$/\1/;t cont;d;t;:cont;s/\([a-zA-Z_][a-zA-Z_]*\)/$(\1)/g;s/^\(.*\)$/nprocy= \1/'` npzexpr=`echo $npzline | sed -e's/^.*nprocz *= *\([^,]*[A-Za-z_][^,]*\).*$/\1/;t cont;d;t;:cont;s/\([a-zA-Z_][a-zA-Z_]*\)/$(\1)/g;s/^\(.*\)$/nprocz= \1/'` # # Write expressions to nprocs.inc. # echo $npxexpr >> nprocs.inc echo $npyexpr >> nprocs.inc echo $npzexpr >> nprocs.inc # # Sort evaluations of expressions according to dependencies. # if [[ $npxexpr =~ ^.*=.*nprocy.*$ ]]; then # does nprocx depend on nprocy etc. if [[ $npyexpr =~ ^.*=.*nprocz.*$ ]]; then echo 'nprocz := $(shell echo $$(($(nprocz))))' >> nprocs.inc; echo 'nprocy := $(shell echo $$(($(nprocy))))' >> nprocs.inc; echo 'nprocx := $(shell echo $$(($(nprocx))))' >> nprocs.inc; else echo 'nprocy := $(shell echo $$(($(nprocy))))' >> nprocs.inc; if [[ $npxexpr =~ ^.*=.*nprocz.*$ ]]; then echo 'nprocz := $(shell echo $$(($(nprocz))))' >> nprocs.inc; echo 'nprocx := $(shell echo $$(($(nprocx))))' >> nprocs.inc; else echo 'nprocx := $(shell echo $$(($(nprocx))))' >> nprocs.inc; echo 'nprocz := $(shell echo $$(($(nprocz))))' >> nprocs.inc; fi fi else if [[ $npxexpr =~ ^.*=.*nprocz.*$ ]]; then if [[ $npzexpr =~ ^.*=.*nprocy.*$ ]]; then echo 'nprocy := $(shell echo $$(($(nprocy))))' >> nprocs.inc; echo 'nprocz := $(shell echo $$(($(nprocz))))' >> nprocs.inc; echo 'nprocx := $(shell echo $$(($(nprocx))))' >> nprocs.inc; else echo 'nprocz := $(shell echo $$(($(nprocz))))' >> nprocs.inc; echo 'nprocx := $(shell echo $$(($(nprocx))))' >> nprocs.inc; echo 'nprocy := $(shell echo $$(($(nprocy))))' >> nprocs.inc; fi else echo 'nprocx := $(shell echo $$(($(nprocx))))' >> nprocs.inc; if [[ $npyexpr =~ ^.*=.*nprocz.*$ ]]; then echo 'nprocz := $(shell echo $$(($(nprocz))))' >> nprocs.inc; echo 'nprocy := $(shell echo $$(($(nprocy))))' >> nprocs.inc; else echo 'nprocy := $(shell echo $$(($(nprocy))))' >> nprocs.inc; echo 'nprocz := $(shell echo $$(($(nprocz))))' >> nprocs.inc; fi fi fi