سؤال
لا أعرف ما هي هذه الغرفة المناسبة لطرح سؤال لا.إذا لم يكن الأمر كذلك ، فأنا آسف لذلك. أنا مستخدم جديد لـ Fortran وأقضي الكثير من الوقت للأشياء التالية.
لقد أنشأت دالة تسمى "loglike" والتي تُرجع رقمًا حقيقيًا بناءً على معاملين.أريد استخدام هذه الوظيفة لإنشاء خوارزمية mcmc
الذي يسير على هذا النحو. Genacodicetagpre
حيث تكون الأصوات العامة ورمز الترقيم العام عبارة عن عينات عشوائية من بعض التوزيعات.
الآن أريد استخدام هذه الخوارزمية من خلال استدعاء الوظيفة التي تم إنشاؤها مسبقًا "loglike".
1) كيف يمكنني تسمية الوظيفة "loglike" لبرنامج جديد يسمى main program
2) كيف يمكنني استخدام هذا في الروتين الفرعي؟
أي مساعدة رائعة جدًا بالنسبة لي. شكرا مقدما
تعديل: Genacodicetagpre
المحلول
هذه هي الطريقة العامة التي ستبدو بها.لاحظ أن الدالات ترجع قيمة عن طريق تعيين النتيجة لاسمها الخاص.بيان الكود العام ليس ضروريًا. Genacodicetagpre
نصائح أخرى
تتمثل الطريقة الأسهل والأكثر موثوقية في وضع الوظائف والإجراءات الفرعية في وحدة نمطية و "استخدام" تلك الوحدة من برنامجك الرئيسي.يمكن القيام بذلك في ملف واحد.تجعل هذه الطريقة واجهات الإجراءات (الدوال والروتينات الفرعية) معروفة حتى يتمكن المحول البرمجي من التحقق من التناسق بين الوسائط في الاستدعاء (الوسائط الفعلية) والمسماة (الوسائط الوهمية).سكتش: Genacodicetagpre
مضاف: "لا شيء ضمني" يستخدم لتعطيل الكتابة الضمنية ، وهو أمر خطير في رأيي.لذلك ستحتاج إلى كتابة جميع المتغيرات الخاصة بك ، بما في ذلك اسم الوظيفة في الوظيفة.يمكنك استدعاء الإجراءات الفرعية والوظائف من الإجراءات الأخرى للوحدة - ستُعرف تلقائيًا.لذلك يمكنك استخدام "func2" من "sub1" ، إذا كنت ترغب في ذلك.بالنسبة للكيانات خارج الوحدة ، مثل برنامجك الرئيسي ، يجب عليك "استخدام" الوحدة.