Skocz do zawartości

Kompilacja Przy Pomocy Gcc4.0.2 I Fedora4


beata_EM

Rekomendowane odpowiedzi

Witam i proszę o radę

Kompiluję (usiłuję kompilować!) program TONTO wykonujący ogólnie mówiąc obliczenia chemiczne. Przy kompilacji ponizszej procedury dostaję błąd kompilatora - Naruszenie ochrony pamięci. Przeszukałam oczywiście net - rozwiązamiem problemu byłaby z pewnością zmiana kompilatora na gcc4.2, ale nie jest to takie proste przy starszej wersji fedory(4). Jeżeli ktoś może ma jakąś sugestię, jak zmienić procedurę, aby nie wywalał się segmentation fault (może coś z inicjalizacją zmiennych????) będę wdzięczna. Jeżeli Waszym zdaniem się nie da - to proszę o info - jak bez przechodzenia na wyższe wersje Fedory zaktualizować kompilator do gcc4.2.

Z góry WIEEELKIE DZIĘKII!

Beata

 

pure subroutine expand_str(self,stack,dim)

type(SYSTEM_TYPE) :: self

! Expands "stack" by amount "dim". Contents are retained.

! Elements added are set to blank.

intent(inout) :: self

character(len=*), dimension(:), pointer :: stack

integer(4), intent(in) :: dim

 

character(len=512), dimension(:), pointer :: old_stack

integer(4) :: n

if (.not. associated(stack)) then

allocate(stack(dim))

stack = " "

else

n = size(stack)

old_stack => stack

nullify(stack)

allocate(stack(n+dim))

stack(1:n) = old_stack

stack(n+1:n+dim) = " "

deallocate(old_stack)

end if

end subroutine

Odnośnik do komentarza
Udostępnij na innych stronach

Witam,

A może jest to napisane w f77 a nie w f95 co stanowiło by istotną różnice.

spróbuj skompilować poprostu f77.

pz

 

[Edit] Podaj linka do źródeł tego programu to zobacze ewentualnie co się stanie u mnie.

Odnośnik do komentarza
Udostępnij na innych stronach

Fortran 95
Wybacz, dostojny F*, nie poznałem cię w nowoczesnym przebraniu...

 

Z ciekawości sprawdziłem kompilację na FC6 z najnowszą aktualizacją:

blas-3.1.1-1.fc6
gcc-4.1.2-13.fc6
gcc-gfortran-4.1.2-13.fc6
glibc-2.5-18.fc6
lapack-3.1.1-1.fc6
perl-5.8.8-10

(jak widzisz, FC6 ma gcc 4.1). Nie poszła gładko. Dostałem

Making GNU-f95-on-LINUX/modules/vec_str_module.mod ...
Target ./GNU-f95-on-LINUX/modules/vec_str_module.mod does not exist, compilation forced.
set noglob && /usr/bin/f95 -I. -I./GNU-f95-on-LINUX/modules -O -c -o ./GNU-f95-on-LINUX/objects/vec\{str}.o GNU-f95-on-LINUX/f95files/vec\{str}.F90
GNU-f95-on-LINUX/f95files/vec{str}.F90: In function ‘join_1’:
GNU-f95-on-LINUX/f95files/vec{str}.F90:427: internal compiler error: in gfc_trans_deferred_array, at fortran/trans-array.c:4628
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://bugzilla.redhat.com/bugzilla> for instructions.
make: *** [GNU-f95-on-LINUX/modules/vec_str_module.mod] Błąd 1
make: *** Kasuję plik `GNU-f95-on-LINUX/modules/vec_str_module.mod'

Być może jakiś czas spędzony nad Makefile i platforms/GNU-f96-on-LINUX doprowadziłby do sukcesu.

 

Odnośnik do komentarza
Udostępnij na innych stronach

Spróbuj Beata napisać interface do tej funkcji lub użyć lapack/blas95 zapewne pomoże :) Nowsze kompilatory Fortrana może by Ci skompilowały ten kod ale błąd i tak by się 'uaktywniał' tylko, że w trakcie wykonywania programu. Błędy ochrony w tym języku najczęściej pojawiają się gdy do funkcji/procedury bez interfaceu zostanie przekazana zmienna o innym typie niż ten znajdujący się na liście argumentów formalnych(np. tylko inaczej zadeklarowane tablice powodują ten lub podobny błąd)...

Kilka słów ode mnie : ściągnij sobie najlepiej kompilator Intela Fortrana razem z bibliotekami MKL(dla użytkowania niekomercyjnego za free), zmodyfikuj make'a tak by korzystał z tego zestawu i zobacz co się dzieje. Jak nic nie pomoże to tu pisz.

A najlepszym w ogóle wyjściem jest użycie Gamess'a, który jest rewelacyjny, również darmowy i którego też ewentualnie można sobie skompilować :)

Pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

Cześć wszystkim !

I dzięki za wszystkie sugestie. Będę próbowała kombinować dalej. Chociaź prosto jak widzę nie będzie...

A Gamess-a niestety nie da się użyć, aby wygenerować na pdst. funkcji falowych czynniki strukturalne -takie rzeczy robi właśnie Tonto albo Crystal, ale Crystal niestety kosztuje całkiem sporą kasę.

Pozdrawiam. Beata

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...