Dyrektywa EQUIVALENCE
description
Transcript of Dyrektywa EQUIVALENCE
Dyrektywa EQUIVALENCE
EQUIVALENCE (lista_1), (lista_2),…, (lista_n)
REAL A, B, CEQUIVALENCE (B, C, A)
Dyrektywa EQUIVALENCE powoduje utworzenie aliasu lub aliasów zmiennej, która jest wymieniona na liście jako pierwsza pod inną nazwą. Żaden z tych aliasów nie może być elementem obszaru wspólnego. W przypadku tablicy podaje się pierwszy z aliasowanych elementów oraz pierwszy element aliasu, co umożliwia wygodne żonglowanie kształtem tablicy lub przyporządkowanie tej samej tablicy wielu aliasów.
W podanym przykładzie tworzymy aliasy zmiennej B o nazwach C i A. Operacja na którejkolwiek z tych zmiennych będzie skutkowała zmianą dwóch pozostałych. Tylko zmienna B może być elementem obszaru wspólnego.
Przykład bardziej zaawansowany:
COMMON /VECCOM/ X(12)DIMENSION Y(3), P(3), Q(3)EQUIVALENCE (X(4),Y(1)), (X(7),P(1)), (X(10),Q(1))
X(1) X(2) X(3) X(4) X(5) X(6) X(7) X(8) X(9) X(10) X(11) X(12)
Y(1) Y(2) Y(3) P(1) P(2) P(3) Q(1) Q(2) Q(3)
Aliasy dwuwymiarowe tablic jednowymiarowych:
DOUBLE PRECISION A1(9),B1(9),MATA(3,3),MATB(3,3)EQUIVALENCE (A1(1),MATA(1,1)),(B1(1),MATB(1,1))
Przykład zastosowaniu dyrektywy EQUIVALENCE przy inicjalizacji elementów tablic.
Dyrektywa INCLUDE
Dyrektywa INCLUDE służy do wstawienia do w dane miejsce programu pliku o zaspecyfikowanej nazwie. Jest ona bardzo wygodna, jeżeli program składa się z wielu segmentów, które zawierają wspólne deklaracje i dużo obszarów wspólnych.
Składnia:
INCLUDE “nazwa_pliku”
lub
INCLUDE ‘nazwa_pliku’
Przykład: Plik cluster.f oraz pliki włączane parcom.dat i sizeclust.dat
Domyślnie pliki włączane muszą być w katalogu, w którym kompilujemy o ile nazwa nie zawiera ścieżki dostępu. Można to zmienić dodając opcję –Iścieżka_dostępu do linii poleceń kompilacji.
Procedura GETARG i funkcja IARGC
CALL GETARG(nr_argumentu_linii_poleceń,argument)
gdzie nr_argumentu_linii_poleceń jest numerem kolejnego argumentu linii polecenia a argument jest zmienną tekstową, w której będzie zapamiętany dany argument linii polecenia. Liczba argumentów linii polecenia jest dana przez funkcję IARGC()
Procedura GETENV
CALL GETENV(klucz,wartość)
gdzie klucz jest nazwą a wartość wartością danej zmiennej środowiskowej.
Przykład (GETARG oraz IARGC):
program prog character*8 argument(10) liczba_argumentow=iargc() do i=1,liczba_argumentow call getarg(i,argument(i)) enddo print *,"liczba argumentow",liczba_argumentow do i=1,liczba_argumentow print *,"argument ",i,” “,argument(i) enddo stop end
Przykład (GETENV):
program progenv
character*16 shell
call getenv("SHELL",shell)
print *,"Uzywam powloki ",shell
stop
end
Procedura FDATECHARACTER*24 data_i_czas
CALL FDATE(data_i_czas)
Gdzie data_i_czas jest zmienną tekstową zawierającą datę i czas w formacie:
dzień miesiąc godzina:minuty:sekundy rok
np. Fri Dec 7 13:45:03 2007
Procedura SYSTEMCALL SYSTEM(wielkość_tekstowa)
Gdzie wielkość_tekstowa jest łańcuchen tekstowym stanowiącym polecenie systemu operacyjnego. Wywołanie procedury SYSTEM spowoduje wykonanie tego polecenia jako oddzielnego procesu.