def _build( optimize=None ): """ Build code """ import cst cf = cst.conf.configure()[0] if not optimize: optimize = cf.optimize mode = cf.mode if not mode: mode = 'm' source = 'signal.f90', 'ker_utils.f90', 'cpt_ker.f90' new = False cwd = os.getcwd() bld = os.path.join( os.path.dirname( path ), 'build' ) + os.sep os.chdir( path ) if not os.path.isdir( bld ): os.mkdir( bld ) if 'm' in mode and cf.fortran_mpi: for opt in optimize: object_ = bld + 'cpt_ker-m' + opt compiler = ( [cf.fortran_mpi] + shlex.split( cf.fortran_flags['f'] ) + shlex.split( cf.fortran_flags[opt] ) + ['-o'] ) new |= cst.conf.make( compiler, object_, source ) if new: cst._archive() os.chdir( cwd ) return
def _build(optimize=None): """ Build code """ import cst cf = cst.conf.configure()[0] if not optimize: optimize = cf.optimize mode = cf.mode if not mode: mode = 'm' source = 'signal.f90', 'ker_utils.f90', 'cpt_ker.f90' new = False cwd = os.getcwd() bld = os.path.join(os.path.dirname(path), 'build') + os.sep os.chdir(path) if not os.path.isdir(bld): os.mkdir(bld) if 'm' in mode and cf.fortran_mpi: for opt in optimize: object_ = bld + 'cpt_ker-m' + opt compiler = ([cf.fortran_mpi] + shlex.split(cf.fortran_flags['f']) + shlex.split(cf.fortran_flags[opt]) + ['-o']) new |= cst.conf.make(compiler, object_, source) if new: cst._archive() os.chdir(cwd) return
def _build( mode=None, optimize=None, dtype=None ): """ Build SORD code. """ import cst cf = cst.conf.configure()[0] if not optimize: optimize = cf.optimize if not mode: mode = cf.mode if not mode: mode = 'sm' if not dtype: dtype = cf.dtype base = [ 'globals.f90', 'diffcn.f90', 'diffnc.f90', 'hourglass.f90', 'bc.f90', 'surfnormals.f90', 'util.f90', 'fio.f90', ] common = [ 'arrays.f90', 'fieldio.f90', 'stats.f90', 'parameters.f90', 'setup.f90', 'gridgen.f90', 'material.f90', 'source.f90', 'rupture.f90', 'resample.f90', 'checkpoint.f90', 'timestep.f90', 'stress.f90', 'acceleration.f90', 'sord.f90', ] dtype = np.dtype( dtype ).str dsize = dtype[-1] new = False cwd = os.getcwd() src = os.path.join( path, 'src' ) bld = os.path.join( os.path.dirname( path ), 'build' ) + os.sep os.chdir( src ) if not os.path.isdir( bld ): os.mkdir( bld ) if 's' in mode: source = base + ['serial.f90'] + common for opt in optimize: object_ = bld + 'sord-s' + opt + dsize cmd = ( [cf.fortran_serial] + shlex.split( cf.fortran_flags['f'] ) + shlex.split( cf.fortran_flags[opt] ) ) if dtype != cf.dtype_f: cmd += shlex.split( cf.fortran_flags[dsize] ) new |= cst.conf.make( cmd + ['-o'], object_, source ) if 'm' in mode and cf.fortran_mpi: source = base + ['mpi.f90'] + common for opt in optimize: object_ = bld + 'sord-m' + opt + dsize cmd = ( [cf.fortran_mpi] + shlex.split( cf.fortran_flags['f'] ) + shlex.split( cf.fortran_flags[opt] ) ) if dtype != cf.dtype_f: cmd += shlex.split( cf.fortran_flags[dsize] ) new |= cst.conf.make( cmd + ['-o'], object_, source ) if new: cst._archive() os.chdir( cwd ) return