Re: unloading a dlm... [message #26612 is a reply to message #26610] |
Tue, 11 September 2001 03:43   |
Randall Skelton
Messages: 169 Registered: October 2000
|
Senior Member |
|
|
Rats!
\begin{rant}
My *real* problem here is with this Fortran 77 model, which is still
being actively developed using F77!? Fortran 77 if fine for algorithms,
but for writing large applications, use Fortran 90 at the very least!
\end{rant}
My problem is that I've been told to use a particular atmospheric
radiative transfer model written in F77. The program reads a bunch of
input cards/files (shutter), and outputs some rather large files (data is
in 2-3 2 dimensional arrays). I need to run this model numerous times in
an optimization/fitting process and a significant portion of the
processing time is in the reading/writing of the files. My thought was
that I would write a DLM that copies (or memory maps) between the Fortran
data and IDL. This proved to be much easier than I thought it would be;
however, the F77 routines don't pass around variables between subroutines
(with the exception of error flags and the odd logical type). Rather,
they use 30+ common blocks and, this being Fortran 77, each array in a
block is fixed to a maximum size which makes the program rather bloated in
memory. What I would like to be able to do is use a DLM to run the model,
use mem-copy to copy the relevant portions of the data into IDL arrays
(created in C), and then drop the bloated model from memory! I have a few
objections to using a 'reset-session' as a programming call, not the least
of which is that it will also destroy my newly created data arrays as
well.
Thanks for all the suggestions and sorry about the rant... It looks as if
I am back to using shell scripts and 'spawn.'
Cheers,
Randall
PS: If anyone has a radiative transfer model capable of producing
high-resolution, atmospheric absorption, transmission, and emission
spectra for occultation, nadir, and limb geometries from HITRAN data that
is written in F90, C, C++, or IDL, please drop me an email...
On 10 Sep 2001, Craig Markwardt wrote:
> Try .full_total_absolute_reset_session_for_good_really_now, ahh, umm,
> or maybe just .full_reset_session.
>
> But this may not help you if you want to do it programmatically. The
> above incantation appears to be available only in recent versions of
> IDL, and then only as an executive command at the command line, not in
> procedures or functions.
>
> Craig
>
> --
> ------------------------------------------------------------ --------------
> Craig B. Markwardt, Ph.D. EMAIL: craigmnet@cow.physics.wisc.edu
> Astrophysics, IDL, Finance, Derivatives | Remove "net" for better response
> ------------------------------------------------------------ --------------
>
|
|
|