%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% MAP05 - Metodos Matriciais Computacionais - PPGMAp UFRGS %% Mat01050 - Algebra Matricial Computacional - DMPA UFRGS Tecnicamente, esse nao eh um script, pois nao pode ser executado. Entenda como um conjunto de instrucoes que facilmente podem ser carregados com o mouse. Objetivo: Interface de Scilab com subrotina em fortran 90 Calcular a media harmonica m das componentes de um vetor x() edite arquivo: mharmonica.f90 subroutine mharmonica(x,n,media) real (kind=8) :: x(*),media integer i,n media=0.0 do i=1,n if (x(i).lt.1E-7) then media=0.0; return else media = media + 1.0/x(i) end if end do media = n/media return end compile com: gfortran -shared -o mharmonica.so mharmonica.f90 No Scilab: ilib_for_link('mharmonica','mharmonica.f90',[],"f") exec loader.sce function u=mh(x) n=max(size(x,1),size(x,2)); u=call("mharmonica",x,1,"d",n,2,"i","out",[1,1],3,"d") endfunction %% Feito JBC 31Ago2012 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%