program intrinsicProcedures !///////////////////////////////////////////////////////////////////// !/ programa para ejemplificar el uso de "Procedimientos Intrinsecos" / !/ Un procedimiento intrinseco es una funcion interna de fortran que / !/ recibe uno o mas argumentos y devulve un resultado. / !///////////////////////////////////////////////////////////////////// ! Declaro algunas variables integer :: int1= 8 , int2= 15 real :: real1 = 7.2 , real2 = 8.6 complex :: complx1 , complx2= (1.0,3.0) !============= FUNCIONES ELEMENTALES ================= print*,"========= FUNCIONES ELEMENTALES =============";print* print*,"--------- Funciones Elementales Numericas --------";print* print*,"cos(x) x es real/complejo" print*,"sin(x) x es real/complejo" print*,"tan(x) x es real" print*,"exp(x) x es real/complejo" print*,"log(x) x es real/complejo" print*,"log10(x) x es real/complejo -- Logaritmo en base 10" print*,"sqrt(x) x es real/complejo" print*,"acos(x) x es real -- Devuelve el resultado en radianes" print*,"asin(x) x es real -- Devuelve el resultado en radianes" print*,"atan(x) x es real -- Devuelve el resultado en radianes" print*,"sinh(x) x es real -- Seno Hiperbolico" print*,"cosh(x) x es real -- Seno Hiperbolico" print*,"tanh(x) x es real -- Tangente Hiperbolica" print*;print*,"------- Otras funciones elementales ---------";print* print*,"abs(x) x es entero/real/complejo -- Devuelve el valor absoluto" print*,"aimg(z) z es complejo -- Devuelve la parte imaginaria de z" print*,"aimg(z) z es complejo -- Devuelve la parte imaginaria de z" print*,"cmplx(x[,y]) x,y son enteros/reales -- Crea el complejo, dados x y/o y" print*,"ceiling(x) x es real -- Devuelve el entero mayor y mas cercano a x" print*,"floor(x) x es real -- Devuelve el entero menor y mas cercano a x" print*,"int(x) x es real/complejo -- Convierte x a integer, trunca hacia cero" print*,"real(x) x es entero/complejo-- Convierte x a real" print*,"conjg(z) z es complejo -- Devuelve el conjugado de z" print*,"min(a1,a2,..) a1,a2,.. son enteros/reales -- Devuelve el minimo de todos los ai" print*,"max(a1,a2,..) a1,a2,.. son enteros/reales -- Devuelve el minimo de todos los ai" print*,"mod(n,m) m,n son enteros -- Devuelve el resto de la division entera entre n y m" print*;print*,"------- Funciones elementales para Strings ---------";print* print*,"lge(stringA,stringB) stringA,stringB son de tipo character -- Devuelve true si stringA >= stringB " print*,' Ejemplo: lge("computacion","introduccion") devuelve:',lge("computacion","introduccion") print*,"llt(stringA,stringB) stringA,stringB son de tipo character -- Devuelve true si stringA < stringB " print*,' Ejemplo: llt("aabbc","aabbhh") devuelve:',llt("aabbc","aabbhh") print*;print*,"------- Funciones elementales para Arrays ---------";print* print*,"dot_product(vectorA,vectorB) vectorA,vectorB son arrays enteros/reales/complejos -- Devuelve el producto escalar" print*,' Ejemplo: dot_product((/1,2/),(/2,4/)) da',dot_product((/1,2/),(/2,4/)) print*,"matmul(matA,matB) matA,matB son arrays de (n,k) y (k,m) respectivamente -- Devuelve el producto matricial" print*,"sum(array) array es de tipo array -- Devuelve la suma de los elementos del array" print*,"product(array) array es de tipo array -- Devuelve el producto de los elementos del array" end program intrinsicProcedures