2008-10-21 9 views

उत्तर

22

यह केवल एक फोरट्रान 90 मॉड्यूल के साथ काम करेंगे। आपके मॉड्यूल घोषणा में, आप "सार्वजनिक" और "निजी" कीवर्ड का उपयोग करके चर और दिनचर्या की सूची के लिए पहुंच सीमा निर्दिष्ट कर सकते हैं। मुझे आमतौर पर निजी कीवर्ड का उपयोग शुरू में उपयोगी होता है, जो निर्दिष्ट करता है कि मॉड्यूल के भीतर सब कुछ निजी रूप से चिह्नित किए जाने तक निजी है।

नीचे दिए गए कोड नमूने में, subroutine_1() और function_1() आवश्यक "उपयोग" कथन के माध्यम से मॉड्यूल के बाहर से सुलभ हैं, लेकिन कोई अन्य चर/subroutine/function निजी होगा।

PUBLIC :: subname-1, funname-2, ... 

PRIVATE :: subname-1, funname-2, ... 

सभी निजी संस्थाओं में सूचीबद्ध मॉड्यूल के बाहर से सुलभ नहीं होगा और सभी संस्थाओं सार्वजनिक रूप से सूचीबद्ध के बाहर से पहुँचा जा सकता है:

module so_example 
    implicit none 

    private 

    public :: subroutine_1 
    public :: function_1 

contains 

    ! Implementation of subroutines and functions goes here 

end module so_example 
2

मैंने कभी फोरट्रान की एक पंक्ति नहीं लिखी है, लेकिन this thread about "Private module procedures" सामयिक प्रतीत होता है, कम से कम मुझे उम्मीद है। कम से कम उत्तर रखने लगता है।


jaredor सारांश:

सार्वजनिक/निजी विशेषता फोरट्रान 90 में मॉड्यूल के भीतर मौजूद है और बाद में। फोरट्रान 77 और इससे पहले - आप भाग्य से बाहर हैं।

+1

आपकी समझदार विनम्रता आप क्रेडिट करते हैं, लेकिन आप अधिक निश्चित हो सकते हैं: उत्तर उस धागे में है। सार्वजनिक/निजी विशेषता फोरट्रान 9 0 और बाद में मॉड्यूल के भीतर मौजूद है। फोरट्रान 77 और इससे पहले - आप भाग्य से बाहर हैं। – jaredor

1
Private xxx, yyy, zzz 

real function xxx (v) 
    ... 
end function xxx 

integer function yyy() 
    ... 
end function yyy 

subroutine zzz (a,b,c) 
    ... 
end subroutine zzz 

... 
other stuff that calls them 
... 
2

आप मॉड्यूल का उपयोग करते हैं, यहां वाक्य रचना है मॉड्यूल डिफ़ॉल्ट रूप से अन्य सभी संस्थाओं को मॉड्यूल के बाहर से एक्सेस किया जा सकता है।

MODULE Field 
    IMPLICIT NONE 

    Integer :: Dimen 

    PUBLIC :: Gravity 
    PRIVATE :: Electric, Magnetic 

CONTAINS 

    INTEGER FUNCTION Gravity() 
    .......... 
    END FUNCTION Gravity 


    REAL FUNCTION Electric() 
    .......... 
    END FUNCTION 


    REAL FUNCTION Magnetic() 
    .......... 
    END FUNCTION 

    .......... 

END MODULE Field