2012-04-03 11 views
5

मैं बस एक बहुत पुराने कार्यक्रम के एक छोटे से हिस्से को संशोधित करना चाहता था और मैं अपने जीवन के लिए यह नहीं समझ सकता कि मैंने फोरट्रान देवताओं को क्रोधित करने के लिए क्या किया है।सिंटेक्स त्रुटि, मिला। और। और। या।

if (r.gt.rstep) xappad = xappad*fakm 

जो मैं करने के लिए संशोधित किया है::

SP-सह-2-:

if (r.gt.0.58*rstep .and. r.lt.1.42*rstep) .or. (r.gt.2.08*rstep 
: .and. r.lt.2.92*rstep) xappad = xappad*fakm 

कौन सा मुझे त्रुटियों देता

मूल कोड निम्न पंक्ति है MODIFIED.for (785): त्रुटि # 5082: सिंटेक्स त्रुटि, '.OR।' मिली जब से एक उम्मीद: ब्लॉक BLOCKDATA कार्यक्रम मॉड्यूल प्रकार परिसर बाइट वर्ण डबल DOUBLECOMPLEX ...

 if (r.gt.0.58*rstep .and. r.lt.1.42*rstep) .or. (r.gt.2.08*rstep 
-------------------------------------------------------------------------^ 

SP-सह-2-MODIFIED.for (786): त्रुटि # 6090: एक सरणी-मान इस संदर्भ में ऑपरेंड की आवश्यकता है।

 : .and. r.lt.2.92*rstep) xappad = xappad*fakm 
------^ 

SP-सह-2-MODIFIED.for (786): त्रुटि # 6087: एक सरणी काम बयान इस संदर्भ में आवश्यक है।

 : .and. r.lt.2.92*rstep) xappad = xappad*fakm 
-------------------------------------------^ 
+4

मैं के लिए FORTRAN में कोडित नहीं किया है लगभग 25 साल, लेकिन अगर मैं इसे सही ढंग से याद करता हूं, तो आपको पूरी सशर्त अभिव्यक्ति के चारों ओर कोष्ठक की एक जोड़ी चाहिए। – dasblinkenlight

उत्तर

15

मैं वास्तव में बहुत FORTRAN पता नहीं है, लेकिन आप सशर्त आसपास कोष्ठक की एक जोड़ी वंचित हो रहे हैं जैसे कि यह मेरे लिए लग रहा है:

if ((r.gt.0.58*rstep .and. r.lt.1.42*rstep) .or. (r.gt.2.08*rstep .and. r.lt.2.92*rstep)) xappad = xappad*fakm 
+0

एएच, मुझे पता था कि मैं एक विशाल बेवकूफ था। ऐसा लगता है कि यह किया है, धन्यवाद। –

संबंधित मुद्दे