|
[Date Index]
[Thread Index]
[Author Index]
Re: Fortran Real -> Mathematica
- To: mathgroup at yoda.physics.unc.edu
- Subject: Re: Fortran Real -> Mathematica
- From: PERKINS TYLER R <perkins at spot.colorado.edu>
- Date: Thu, 20 Jan 1994 16:36:49 -0700 (MST)
Dr. Stefan P. Mueller <ONM010 at vm.hrz.uni-essen.de> wrote:
> I have several 100x100 2-D matrices of Fortran-style floating point
>numbers (xxxExx), represented as Mathematica lists. Has anybody on
>this list written a function to convert these numbers to regular
>Mathematica Real objects? I remember seeing something similar but
>unfortunately I lost the message.
OK, here it is again. It includes a couple simplifications and minor
improvements I've done since the last time, but the old code should work
as well. As before, I'm including my own mktemp utility in case your
system doesn't have one.
I hope you find this useful.
Tyler Perkins perkins at spot.colorado.edu
Boulder, CO
-=-=-=-=-=-=-=-=-=-=-=-=-=-= cut here =-=-=-=-=-=-=-=-=-=-=-=-=-=-
#!/bin/sh
# NAME
# sci2mma - Scientific to Mathematica Format converter
#
# SYNOPSIS
# sci2mma [ file ] ...
#
# DESCRIPTION
# sci2mma acts as a filter or file conversion utility to convert
# occurances of strings of the form "1.234e-5" to "1.234*10^-5 .
# Thus a text file produced by a program written in C, Fortran,
# etc., may be used as input to Mathematica using its Get[..]
# function.
#
# When called with no filename arguments, sci2mma takes the
# standard input as input and sends its output to the standard
# output. If called with filename arguments, each file is
# modified as described above.
#
# AUTHOR
# Tyler Perkins perkins at spot.colorado.edu
# Boulder, CO
# Command to tell sed how to edit each line. Do substitution.
sedcmd='s/\([0-9\.]\)[eE]\([0-9\+\-]\)/\1*10^\2/g'
if [ "$*" = "" ]
then sed $sedcmd
# Otherwise, do each file in turn, using a temporary file who's name
# is generated by the utility mktemp.
else temp=`mktemp`
for f in $*
do sed $sedcmd $f >$temp
mv $temp $f
done
fi
-=-=-=-=-=-=-=-=-=-=-=-=-=-= cut here =-=-=-=-=-=-=-=-=-=-=-=-=-=-
#!/bin/sh
# NAME
# mktemp - Create a unique filename.
#
# SYNOPSIS
# mktemp [ -c ] [ -d directory_name ] [ -p the_prefix ]
#
# DESCRIPTION
# The mktemp command makes a name for the pathname of a temporary # file and writes that name to standard output. The name will not # duplicate that of an existing file. With no arguments, mktemp
# returns the string "/tmp/username.DDHHMMSSP...P" where username
# is the user's username, DD is the day of the month, HH is the
# hour of the day (locally), MM is the minute of the hour, SS is
# the second of the minute, and P...P is the process id of the
# user's shell.
#
# OPTIONS
#
# -c
# Create an empty file whose filename is the generated name.
#
# -d directory_name
# Force directory_name to be used as the directory portion of
# the pathname. If this option is absent, /tmp is used by
# default.
#
# -p the_prefix
# Use string the_prefix as the filename's prefix. If this option
# is absent, the user's username is used by default.
#
# AUTHOR
# Tyler Perkins perkins at spot.colorado.edu
# Boulder, CO
dir="/tmp"
prfx="$USER"
create=false
while [ "$1" != "" ]
do case $1 in
-d) shift
dir="`echo $1 | sed 's!\(.*\)/$!\1!'`"
shift
continue
;;
-p) shift
prfx=$1
shift
continue
;;
-c) shift
create=true
continue
;;
*) echo 'mktemp usage: mktemp [-d directory] [-p prefix] [-c]'
exit 1
;;
esac
done
name="$dir/$prfx.`date | sed 's/.*\(..\) \(..\):\(..\):\(..\).*/\1\2\3\4/'`$$"
# If file with name $name already exists, recurse until not.
if [ -f $name -o -d $name ]
then name="`mktemp`"
fi
if $create
then >$name
else echo $name
fi
Prev by Date:
Sounds on the Mac
Next by Date:
InterpolatingFunction
Previous by thread:
Sounds on the Mac
Next by thread:
InterpolatingFunction
|