সিস্টেম এবং এনভায়রনমেন্ট রিলেটেড ইনট্রিনসিক ফাংশন (System and Environment Related Intrinsic Functions in Fortran)
ফোরট্রানে ইনট্রিনসিক ফাংশন এমন ফাংশন যা ফোরট্রান কম্পাইলার দ্বারা সরবরাহিত এবং সিস্টেম বা পরিবেশ সম্পর্কিত বিভিন্ন কার্য সম্পাদন করার জন্য ব্যবহৃত হয়। সিস্টেম এবং এনভায়রনমেন্ট রিলেটেড ইনট্রিনসিক ফাংশনগুলি ব্যবহারকারীকে কম্পিউটার সিস্টেমের অবস্থা জানাতে এবং পরিচালনা করতে সাহায্য করে।
এই ধরনের ফাংশনগুলি বিশেষত ফাইল সিস্টেম, টাইমিং, পার্থক্য, কম্পাইলার তথ্য ইত্যাদির সাথে সম্পর্কিত কাজে ব্যবহৃত হয়।
১. TIME এবং DATE_AND_TIME ফাংশন
ফোরট্রান সিস্টেমের সময় এবং তারিখ সম্পর্কিত বিভিন্ন তথ্য পেতে TIME এবং DATE_AND_TIME ইনট্রিনসিক ফাংশন প্রদান করে।
TIME
TIME ফাংশন সিস্টেমের বর্তমান সময়ের এলাপসড টাইম প্রদান করে (সেকেন্ডে)।
real :: elapsed_time
elapsed_time = time()
print *, "Elapsed time: ", elapsed_time, " seconds"DATE_AND_TIME
DATE_AND_TIME ফাংশন বর্তমান সিস্টেমের তারিখ এবং সময় প্রদান করে।
integer :: date(8), time(6)
call date_and_time(date, time)
print *, "Current date (YYYYMMDD): ", date
print *, "Current time (HHMMSS): ", timeএখানে:
dateএবংtimeঅ্যারে ব্যবহার করা হয়েছে তারিখ এবং সময় ধারণ করার জন্য।
২. CPU_TIME ফাংশন
CPU_TIME ফাংশন সিস্টেমের CPU সময় দেয়, যা একটি প্রোগ্রাম বা কম্পিউটার প্রক্রিয়া কত সময় ধরে CPU ব্যবহার করেছে তা নির্ধারণ করে।
real :: start_time, end_time
call cpu_time(start_time)
! কিছু কোড কার্যকর করা
call cpu_time(end_time)
print *, "Elapsed CPU time: ", end_time - start_time, " seconds"এখানে:
cpu_timeফাংশন CPU তে কার্যকর হওয়া সময় পরিমাপ করে।
৩. GET_COMMAND এবং COMMAND_ARGUMENT_COUNT ফাংশন
এই ফাংশনগুলি কম্পিউটার প্রোগ্রামের আর্গুমেন্ট বা কমান্ড লাইন ইনপুট সনাক্ত করতে ব্যবহৃত হয়।
GET_COMMAND
GET_COMMAND ফাংশন কম্পিউটারের কমান্ড লাইন থেকে আর্গুমেন্ট বা কোডটি ফেরত দেয়।
character(len=100) :: command_line
call get_command(command_line)
print *, "Command line input: ", command_lineCOMMAND_ARGUMENT_COUNT
COMMAND_ARGUMENT_COUNT ফাংশন কমান্ড লাইন আর্গুমেন্টের সংখ্যা প্রদান করে।
integer :: num_args
call command_argument_count(num_args)
print *, "Number of command-line arguments: ", num_args৪. SYSTEM_CLOCK এবং HUGE ফাংশন
এই ফাংশনগুলি সিস্টেমের ক্লক এবং বৃহত্তম মানের ডেটা প্রকার সম্পর্কিত তথ্য প্রদান করে।
SYSTEM_CLOCK
SYSTEM_CLOCK ফাংশন সিস্টেমের ক্লক কাউন্টার প্রদান করে, যা সময় পরিমাপ বা গণনা করার জন্য ব্যবহৃত হয়।
integer :: count_rate, clock_value
call system_clock(count_rate, clock_value)
print *, "Clock count rate: ", count_rate
print *, "Current clock value: ", clock_valueHUGE
HUGE ফাংশন সর্বাধিক মান প্রদান করে যা একটি নির্দিষ্ট ডেটা টাইপ ধারণ করতে পারে।
real :: max_value
max_value = huge(0.0)
print *, "Largest value for real: ", max_value৫. GET_ENVIRONMENT_VARIABLE এবং SET_ENVIRONMENT_VARIABLE
এই ফাংশনগুলি সিস্টেমের পরিবেশের চলকগুলি (environment variables) পরিচালনা করতে ব্যবহৃত হয়।
GET_ENVIRONMENT_VARIABLE
GET_ENVIRONMENT_VARIABLE ফাংশন সিস্টেমের পরিবেশ চলক মান পাওয়ার জন্য ব্যবহৃত হয়।
character(len=100) :: env_var
call get_environment_variable('HOME', env_var)
print *, "HOME environment variable: ", env_varSET_ENVIRONMENT_VARIABLE
SET_ENVIRONMENT_VARIABLE ফাংশন সিস্টেমের পরিবেশ চলক সেট করার জন্য ব্যবহৃত হয়।
call set_environment_variable('MY_VAR', 'MyValue')৬. IACHAR এবং CHAR
IACHAR এবং CHAR ফাংশনগুলি চরিত্র এবং তার ASCII মানের মধ্যে রূপান্তর করতে ব্যবহৃত হয়।
IACHAR
IACHAR ফাংশন একটি চরিত্রের ASCII মান প্রদান করে।
integer :: ascii_value
ascii_value = iachar('A')
print *, "ASCII value of 'A': ", ascii_valueCHAR
CHAR ফাংশন একটি ASCII মান থেকে চরিত্রে রূপান্তর করে।
character :: char_value
char_value = char(65)
print *, "Character corresponding to ASCII 65: ", char_value৭. FILESYSTEM FUNCTIONS
ফাইল সিস্টেম সম্পর্কিত কিছু গুরুত্বপূর্ণ ইনট্রিনসিক ফাংশন:
INQUIRE
INQUIRE ফাংশন ফাইলের অবস্থা, তার ধরন এবং অন্যান্য তথ্য পরীক্ষা করতে ব্যবহৃত হয়।
logical :: file_exists
character(len=20) :: filename
filename = 'data.txt'
inquire(file=filename, exist=file_exists)
if (file_exists) then
print *, "File exists"
else
print *, "File does not exist"
end ifউপসংহার
ফোরট্রানে সিস্টেম এবং এনভায়রনমেন্ট রিলেটেড ইনট্রিনসিক ফাংশন ব্যবহার করে প্রোগ্রামগুলি সিস্টেমের অবস্থা ও পারফরম্যান্স সম্পর্কে গুরুত্বপূর্ণ তথ্য পেতে পারে এবং সিস্টেম পরিবেশের সাথে যোগাযোগ করতে পারে। এই ফাংশনগুলির মাধ্যমে প্রোগ্রামাররা সিস্টেম টাইম, ডেটা, পরিবেশ চলক এবং ফাইল ব্যবস্থাপনা সহ বিভিন্ন কাজ করতে সক্ষম হন, যা ডিস্ট্রিবিউটেড সিস্টেম এবং প্যারালাল প্রোগ্রামিংয়ে কার্যকরী হয়ে ওঠে।
Read more