subroutine inicializar(u,ldu,nf,nc,vi,fi,fd,fa,fb,inum,nproc) C Buscamos el valor de U en el siguiente dominio y con los siguientes valores C en la frontera: C C U=fa C ___________ ____ ____ ____ ____ Y,I C |******* | | | | | | | C |Inicial | | | | | | | C U=fi |U=vi | U=fd inum=| 0 | 1 | 2 | 3 | | C | | | | | | | | C |******* | | | | | | |_______X,J C |_________ | |____|____|____|____| C U=fb C Input: ldu: dimension principal del array U C nf : filas en U; numero de filas en el array U sin la frontera C nc : columnas en U; numero de columnas en el array U sin la frontera C vi : valor del iterado inicial C fi : valor de U en la frontera izquierda C fd : valor de U en la frontera derecha C fa : valor de U en la frontera superior C fb : valor de U en la frontera inferior C inum: numero del proceso C nproc: numero total de procesos C Output: U : array de dimension (0:ldu+1,0:nc+1) que contine: C -- puntos frontera seleccionados C -- y vector inicial: U(1:nf,1:nc) C integer ldu,nf,nc,inum,nproc,i,j real*8 U(0:ldu+1,0:nc+1),vi,fi,fd,fa,fb c do j=0,nc+1 do i=1,nf U(i,j)=vi enddo enddo c Condiciones de contorno a la izquierda if (inum .eq. 0) then do i=1,nf U(i,0)=fi enddo endif c Condiciones de contorno a la derecha if (inum .eq. nproc-1) then do i=1,nf U(i,nc+1)=fd enddo endif C Condiciones de contorno superiores e inferiores do j=0,nc+1 U(0,j) = fb U(nf+1,j) = fa enddo return end