C Rutina 066 C-------------------------------------------------------PARTE_FINITA_AX--- C C SUBRUTINA PARTE_FINITA_AX C C Problema axisimétrico C C Calcula la parte finita de los términos del desarrollo C en serie que aparecen en las constantes de integracion C SUBROUTINE PARTE_FINITA_AX(pf,sing,L) C IMPLICIT NONE C INCLUDE '_param.for' C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C VARIABLES EXTERNAS CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C pf : Valor de la parte finita de la integral C pf(*,1) -> Funcion de forma f(0)=1 C pf(*,2) -> Funcion de forma f(L)=1 C pf(1,*) -> Termino 1/s C pf(2,*) -> Termino DLOG(s) C pf(3,*) -> Termino s*DLOG(s) REAL*8 pf(3,2) C L : Longitud del elmento REAL*8 L C sing : localización del punto singular C sing = 'o' -> Singularidad en s=0 C sing = 'e' -> Singularidad en s=L CHARACTER sing C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C VARIABLES INTERNAS CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C CALCULO DE LA PARTE FINITA CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C SELECT CASE(sing) C CASE('o') C C SINGULARIDAD EN EL ORIGEN C pf(1,1)=DLOG(L)-1.d0 pf(1,2)=1.d0 pf(2,1)= L*(DLOG(L)-3.d0/2.d0)/2.d0 pf(2,2)= L*(DLOG(L)-1.d0/2.d0)/2.d0 pf(3,1)=L*L*(DLOG(L)-5.d0/6.d0)/6.d0 pf(3,2)=L*L*(DLOG(L)-1.d0/3.d0)/3.d0 C CASE('e') C C SINGULARIDAD EN EL EXTREMO C pf(1,1)=1.d0 pf(1,2)=DLOG(L)-1.d0 pf(2,1)= L*(DLOG(L)-1.d0/2.d0)/2.d0 pf(2,2)= L*(DLOG(L)-3.d0/2.d0)/2.d0 pf(3,1)=L*L*(DLOG(L)-1.d0/3.d0)/3.d0 pf(3,2)=L*L*(DLOG(L)-5.d0/6.d0)/6.d0 C CASE DEFAULT WRITE(F_W,100) 1 WRITE ( *,100) 1 STOP END SELECT C C C FIN DE LA RUTINA C RETURN 100 FORMAT(/,2x,'ERROR 100 - PARTE_FINITA_AX - Error Programa (#',i1, @ '#)') C END C