comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Many procedures, what to do?
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: Many procedures, what to do? [message #23367 is a reply to message #23211] Mon, 15 January 2001 06:52 Go to previous message
Theo Brauers is currently offline  Theo Brauers
Messages: 58
Registered: November 1997
Member
Hi Craig:

I had a similar problem some time ago. My solution was to have a
number of different source files with routines and functions grouped
together:

easy.pro (main)
easy_define.pro (10+ functions)
easy_fit_proc.pro (3 procedures)
....
(about 20 source files with up to 20(?) singe funcs)

Secondly , I have a procedure to make the savfile (The procedure also
writes some status, user and date information but I cut that) :

easy_make_sav.pro

PRO easy_make_sav, SHORT=short

; compile the procedures
RESOLVE_ROUTINE, 'easy'
RESOLVE_ROUTINE, 'easy_utilities'
RESOLVE_ROUTINE, 'easy_operate'
....
; compile all functions
RESOLVE_ROUTINE, 'easy_diagnostic_plot', /IS_FUNCTION
RESOLVE_ROUTINE, 'easy_error', /IS_FUNCTION
.....
RESOLVE_ROUTINE, 'easy_model2userfile', /IS_FUNCTION

IF NOT KEYWORD_SET(short) THEN BEGIN
RESOLVE_ALL, SKIP_ROUT=excluded
ENDIF

SAVE, /ROUTINE, FILENAME=savfile, COMPRESS=compress ; , /VERBOSE

RETURN
END

Finally I wrote a routine easy_startup which loads the sav file for correct
version of IDL and does some talking to the user if it was not found.


The concept works fine since then and most of the users in our group
do just now that there is easy_startup which loads the whole thing if
necesarry and starts the easy environment. I normally distribute
easy_startup.pro and easy_54.sav (easy_53.sav etc.) only.

If you have questions or if you want to have a closer look drop me a note.

Best regards Theo



Craig Markwardt wrote:
>
> Greetings all!
>
> I have about twenty five functions that go into a single larger
> library. They are all pretty much inextricably linked together. This
> is the SAVE file library I have mentioned once or twice, with the
> ability to read and write and interogate save files yourself.
>
> Anyway, my question is what to do with all these files? I would
> imagine that for most people, including myself, this many files is a
> pain in the neck. Also they share a lot of the same parameters so it
> would be difficult to keep the documentation up to date.
>
> My other option is to merge them into a single file called, say,
> CMSVLIB. There are a couple of problems with that.
>
> First, how to get them compiled. That's easy, I just require every
> program which calls the library to invoke CMSVLIB first. As long as
> there is actually a procedure called CMSVLIB at the end of the file,
> this should force all the other routines in the file to be compiled.
>
> The other problem is more subtle. Since none of the individual files
> are compiled when the invoking procedure is compiled, IDL won't know
> about the functions. It will see the round parenthesis of
> "cmsv_rlong(block, pointer)" and think it's an array subscript.
> Arghh.
>
> Okay, that can be solved by forcing everybody to declare the functions
> they use with FORWARD_FUNCTION. Now it's starting to get annoying
> again. I guess I could rewrite everything to be procedures...
>
> Does anybody else have suggestions, or experiences with something like
> this?
>
> Craig
>
> --
> ------------------------------------------------------------ --------------
> Craig B. Markwardt, Ph.D. EMAIL: craigmnet@cow.physics.wisc.edu
> Astrophysics, IDL, Finance, Derivatives | Remove "net" for better response
> ------------------------------------------------------------ --------------

--
----------------------------------------------
Dr. Theo Brauers
Institut fuer Atmosphaerische Chemie (ICG-3)
Forschungszentrum Juelich
52425 JUELICH, Germany
Tel. +49-2461-61-6646 Fax. +49-2461-61-5346
http://www.kfa-juelich.de/icg/icg3/MITARBEITER/th.brauers.ht ml
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: LinkImage question
Next Topic: Re: Call External and Win32 API dll's Subroutine calls

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Sat Oct 11 21:40:08 PDT 2025

Total time taken to generate the page: 1.04490 seconds