मैंने फोर्टन में एक सारणित शब्दकोश बनाया है जो आपकी आवश्यकताओं के अनुरूप हो सकता है।
देखें: https://github.com/zerothi/fdict
मूल रूप से यह यह चूक शुरू में के रूप में शामिल करने के लिए, आप
type(dict) :: dic, dic2
dic = ('KEY'.kv.1)
dic = dic //('next'.kv. (/3.,5.,6./))
dic = dic //('string'.kv.'Hello world')
dic2 = ('string2'.kv.'Test')
dic = dic // ('dic2'.kvp.dic2)
आप सभी आंतरिक प्रकार कहाँ बचा सकता है क्या करना है और यह आसानी से अन्य डेटा-प्रकार को रोकने के लिए बढ़ाया जा सकता है की सुविधा देता है एक और मूल्य (अंतिम पंक्ति एक सूचक के रूप में एक शब्दकोश को बरकरार रखे हुए)
यह .kv. == key : value
पदनाम जो एक गहरी प्रतिलिपि है, और .kvp. == key : pointer
जो एक संदर्भ प्रति है नहीं करता है। इस तरह आप डेटा को डुप्लिकेट किए बिना विशाल डेटा स्टोर कर सकते हैं और कुछ बिंदु पर पॉइंटर पुनर्प्राप्त कर सकते हैं।
इस विचार को विस्तारित करने के लिए, सभी डेटा को डेटा पॉइंटर युक्त व्युत्पन्न प्रकार से transfer
कॉल का उपयोग करके पता पॉइंटर्स के रूप में संग्रहीत किया जाता है। इस तरह आप संकलक को व्युत्पन्न प्रकार के पते को सौंपने के लिए चालित करते हैं, लेकिन आपको इसे उसी तरीके से पुनर्प्राप्त करने के लिए मजबूर करता है।
.kv.
डेटा प्रकार के एक सूचक द्वारा आवंटित किया जाता है और बाद में डेटा-कंटेनर द्वारा की ओर इशारा किया, तो बाद में आवंटित सूचक nullify
आईईडी और खो इस प्रकार पता करने के लिए वे क्या कर रहे उपयोगकर्ता के लिए मजबूर (कोई कचरा है इसमें रंगीन;))। .kvp.
द्वारा पॉइंटर सीधे किसी भी स्मृति को डुप्लिकेट किए बिना सहेजा जाता है।
अच्छी बात यह है कि यह fortran90 अनुरूप है।
+1 मैंने पहले किसान प्रश्न के लिए +1 देखा है! –
@ प्रीता संघ - http://stackoverflow.com/tags/fortran – Rook