Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > Fortran > Re: Problems in...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 5 of 17 Topic 8147 of 8775
Post > Topic >>

Re: Problems in passing a function to a subroutine

by Ron Shepard <ron-shepard@[EMAIL PROTECTED] > Apr 17, 2008 at 11:53 AM

In article 
<92398d99-ea4c-414f-8ef4-9dee6492fff7@[EMAIL PROTECTED]
>,
 deltaquattro <deltaquattro@[EMAIL PROTECTED]
> wrote:

> However, the function to be integrated depends on many parameters, not
> only on x. How can I pass it to quad? Is it better to modify the
> interface in quad (and all the subroutines called by quad), or to
> create a module containing func and all the modules needed by it? Have
> you ever met a similar problem? Thanks

This is the standard interface problem.  Do not modify your quad() 
subroutine.  If you do that, then you might as well not even use the 
dummy subroutine, you could just hardwire the call to your specific 
code, eliminating all advantages of having a modular reusable quad() 
routine for numerical integration.

With f77, the usual approach was to put all of the other parameters 
(other than x) into a common block.  The actual function (associated 
with the dummy func()) could than access and/or modify those common 
block variables as appropriate.

With f90 and later, a better approach is to put all of the extra 
parameters into a module, along with the actual function and any 
auxiliary subroutines it might need.  This gives you the ability to 
use derived data types and all of the power of f90, such as explicit 
interfaces, even though the dummy routine only has one variable "x" 
in its argument list.  If you need to integrate a dozen functions, 
then you simply write a dozen modules, each sup****ting a specific 
function, and your quad() routine works correctly with all of them.

$.02 -Ron Shepard
 




 17 Posts in Topic:
Problems in passing a function to a subroutine
deltaquattro <deltaqua  2008-04-17 03:00:56 
Re: Problems in passing a function to a subroutine
Arjen Markus <arjen.ma  2008-04-17 04:26:52 
Re: Problems in passing a function to a subroutine
deltaquattro <deltaqua  2008-04-17 04:55:53 
Re: Problems in passing a function to a subroutine
Arjen Markus <arjen.ma  2008-04-17 05:12:26 
Re: Problems in passing a function to a subroutine
Ron Shepard <ron-shepa  2008-04-17 11:53:52 
Re: Problems in passing a function to a subroutine
glen herrmannsfeldt <g  2008-04-17 10:31:11 
Re: Problems in passing a function to a subroutine
nospam@[EMAIL PROTECTED]   2008-04-17 12:07:48 
Re: Problems in passing a function to a subroutine
nospam@[EMAIL PROTECTED]   2008-04-17 12:31:54 
Re: Problems in passing a function to a subroutine
glen herrmannsfeldt <g  2008-04-17 12:02:53 
Re: Problems in passing a function to a subroutine
"jamesgiles@[EMAIL P  2008-04-17 12:50:54 
Re: Problems in passing a function to a subroutine
deltaquattro <deltaqua  2008-04-18 05:08:42 
Re: Problems in passing a function to a subroutine
nospam@[EMAIL PROTECTED]   2008-04-18 08:26:29 
Re: Problems in passing a function to a subroutine
deltaquattro <deltaqua  2008-04-18 07:01:08 
Re: Problems in passing a function to a subroutine
pa@[EMAIL PROTECTED] (Pi  2008-04-19 13:45:06 
Re: Problems in passing a function to a subroutine
Charles Coldwell <cold  2008-04-18 14:03:31 
Re: Problems in passing a function to a subroutine
nospam@[EMAIL PROTECTED]   2008-04-18 08:41:23 
Re: Problems in passing a function to a subroutine
glen herrmannsfeldt <g  2008-04-18 08:15:53 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Mon Oct 13 8:46:09 CDT 2008.