दिलचस्प पोस्ट
सह-घटना मैट्रिक्स बनाना वेतन वृद्धि और पूर्व वृद्धि की अवधारणा? MVC में मानक डेटाटैबल्स प्रदर्शित करना कैसे PHP में कोड इंजेक्शन हमलों को रोकने के लिए? मैं निश्चित आदेश को हर डेढ़ घंटे चलाने के लिए क्रॉन कैसे सेट कर सकता हूं? पायथन आयात स्टेटमेंट हमेशा एक मॉड्यूल के शीर्ष पर होना चाहिए? एक "प्रतीक नहीं मिल सकता है" संकलन त्रुटि क्या है? ksoap2 org.xmlpull.v1.xmlpullparserexception अपेक्षित start_tag त्रुटि पीडीओ PHP में क्वेरी त्रुटि को कैसे देखें छोटी संभव राशि से एक अजगर फ़्लोटिंग बिंदु मूल्य बढ़ाएं क्यों पो (n, 2) 24 को वापस करता है जब n = 5, मेरे कंपाइलर और ओएस के साथ? मैं git में मर्ज का पूर्वावलोकन कैसे कर सकता हूं? A2DP प्रोफ़ाइल के लिए एक रिसीवर के रूप में Android डिवाइस आप मनमाने ढंग से जावा एप्लिकेशन में एंटी अलियासिंग को सक्षम कैसे करते हैं? रेल पर रूबी में मैं वर्तमान निरपेक्ष यूआरएल कैसे प्राप्त करूं?

फोरट्रान में एक समारोह नाम कैसे उर्फ

यकीन है कि अगर शीर्षक अच्छी तरह से रखा है सुझावों का स्वागत करते हैं

यहां मैं क्या करना चाहता हूं किसी स्थिति की जांच करें, और फिर तय करें कि किसी लूप में किस फ़ंक्शन का उपयोग करना है। उदाहरण के लिए:

if (a < 0) then loop_func = func1 else loop_func = func2 endif 

तब मैं loop_func को मेरी लूप लिखते समय एक सूचक के रूप में उपयोग कर सकता हूं I दोनों फ़ंक्शन केवल एक ही निविष्टियाँ लेते हैं, और a के मूल्य के आधार पर समस्या से निपटने पर अलग-अलग दृष्टिकोण होते हैं। इससे मुझे दो लगभग समान ब्लॉकों के बजाय केवल एक ब्लॉक कोड ही होगा। यह उप-रूटिन्स पर भी लागू हो सकता है

कोई भी विचार कैसे लागू किया जा सकता है?

धन्यवाद।

वेब के समाधान से एकत्रित समाधान "फोरट्रान में एक समारोह नाम कैसे उर्फ"

हां, फोरट्रान में कार्यप्रणाली संकेतक हैं, इसलिए आप प्रभाव के नाम पर एक फ़ंक्शन का नाम भी कर सकते हैं। यहां एक कोड का उदाहरण है जो फ़ंक्शन पॉइंटर "f_ptr" एक फ़ंक्शन या अन्य को निर्दिष्ट करता है। उसके बाद प्रोग्राम "f_ptr" का उपयोग कर सकता है और चयनित फ़ंक्शन का उपयोग किया जाएगा।

 module ExampleFuncs implicit none contains function f1 (x) real :: f1 real, intent (in) :: x f1 = 2.0 * x return end function f1 function f2 (x) real :: f2 real, intent (in) :: x f2 = 3.0 * x**2 return end function f2 end module ExampleFuncs program test_func_ptrs use ExampleFuncs implicit none abstract interface function func (z) real :: func real, intent (in) :: z end function func end interface procedure (func), pointer :: f_ptr => null () real :: input write (*, '( / "Input test value: ")', advance="no" ) read (*, *) input if ( input < 0 ) then f_ptr => f1 else f_ptr => f2 end if write (*, '(/ "evaluate function: ", ES14.4 )' ) f_ptr (input) stop end program test_func_ptrs 

फोरट्रान के अधिकांश कार्यान्वयन फ़ंक्शन पॉइंटर या प्रक्रिया संकेतों में हेरफेर करने का एक मानक तरीका नहीं है। हालांकि, फोरट्रार 2003 और बाद में कुछ है। (इस के पृष्ठ 6 देखें।)

दी गई स्थिति के लिए, यह अपने स्थान पर बहुत अच्छी तरह से काम करेगा:

  function func1 (p1, p2, etc) ... as you have it already end function func2 (p1, p2, etc) ... as you have it already end function funcselect (a, p1, p2, etc) if (a < 0) then x = func1 (p1, p2, etc) else x = func2 (p1, p2, etc) endif end 

उसके बाद आप केवल funcselect साथ क्या किया होता है, इसके बजाय अतिरिक्त पैरामीटर के साथ funcselect को कॉल करें।