<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic PROGRAM DGESV_VS_DDNSCSR in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/problem-with-PARDISO-and-DSS/m-p/1166756#M28291</link>
    <description>&lt;DIV&gt;PROGRAM DGESV_VS_DDNSCSR_PARDISO&lt;/DIV&gt;

&lt;DIV&gt;IMPLICIT NONE&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************************************************************************&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;CHARACTER (len=30) &amp;nbsp; :: FILE_NAME_1 , FILE_NAME_2&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;CHARACTER (len=1024) :: FINAL_NAME_1 , FINAL_NAME_2&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;CHARACTER (len=1024) :: FORMAT_STRING&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** ORDINARY GENERAL VARIABLES ******************************&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INTEGER, PARAMETER &amp;nbsp; :: N &amp;nbsp;= 51 &amp;nbsp; &amp;nbsp; &amp;nbsp; ! GENERAL &amp;nbsp; &amp;nbsp; N MUST BE ODD&lt;/DIV&gt;

&lt;DIV&gt;INTEGER, PARAMETER &amp;nbsp; :: NN = N**2 &amp;nbsp; &amp;nbsp; ! GENERAL&lt;/DIV&gt;

&lt;DIV&gt;INTEGER, PARAMETER &amp;nbsp; :: N2 = (N/2)+1 &amp;nbsp;! GENERAL&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , PARAMETER :: DELTA_X &amp;nbsp;= 1.0D0 / (N-1) &amp;nbsp; &amp;nbsp; ! GENERAL&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , PARAMETER :: DELTA_Y &amp;nbsp;= 1.0D0 / (N-1) &amp;nbsp; &amp;nbsp; ! GENERAL&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , PARAMETER :: DELTA_T &amp;nbsp;= 0.01D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! GENERAL&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , PARAMETER :: REYNOLDS = 160.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! GENERAL&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: I , J , ITERATION , IPRINT &amp;nbsp; &amp;nbsp;! GENERAL&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION :: XITERATION &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! GENERAL&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: INFO_DGESV , INFO_DDNSCSR&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DOUBLE PRECISION :: C_A_DGESV , C_B_DGESV , C_C_DGESV , C_D_DGESV , C_E_DGESV , SUM_DGESV , TEMP1_DGESV&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DOUBLE PRECISION , DIMENSION ( NN ) &amp;nbsp; &amp;nbsp; &amp;nbsp;:: RHS_U_DGESV , RHS_V_DGESV , RHS_P_DGESV , IPIV_DGESV , TEMPORARY_DGESV&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DOUBLE PRECISION , DIMENSION ( N , N ) &amp;nbsp; :: U_N_DGESV , V_N_DGESV , U_INT_DGESV , V_INT_DGESV , U_N1_DGESV , V_N1_DGESV , P_N1_DGESV&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DOUBLE PRECISION , DIMENSION ( NN , NN ) :: A_DGESV , B_DGESV , C_DGESV&lt;SPAN style="white-space:pre"&gt; &lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INTEGER :: INFO&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION :: C_A , C_B , C_C , C_D , C_E , SUM&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , DIMENSION ( NN ) &amp;nbsp; &amp;nbsp; :: RHS_P&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , DIMENSION ( N , N ) &amp;nbsp;:: U_N , V_N , U_INT , V_INT , U_N1 , V_N1 , P_N1&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , DIMENSION ( NN , 2 ) :: RHS_U_V&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , PARAMETER :: NON_ZERO_OF_A = 5 * (N**2) - (10*N) + 8 &amp;nbsp; &amp;nbsp;! (12503)&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , PARAMETER :: NON_ZERO_OF_B = 5 * (N**2) - ( 4*N) - 4 &amp;nbsp; &amp;nbsp;! (12797)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** FOR "DDNSCSR" TRANSFORMER SUBROUTINE ******************************&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , DIMENSION (6) :: JOB_A_DDNSCSR , JOB_B_DDNSCSR&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , DIMENSION (NON_ZERO_OF_A) :: A_CSR_DDNSCSR &amp;nbsp;! == A_CSR &amp;nbsp; &amp;nbsp; &amp;nbsp; FOR "DDNSCSR" TRANSFORMER SUBROUTINE&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , DIMENSION (NON_ZERO_OF_B) :: B_CSR_DDNSCSR &amp;nbsp;! == B_CSR &amp;nbsp; &amp;nbsp; &amp;nbsp; FOR "DDNSCSR" TRANSFORMER SUBROUTINE&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , DIMENSION (NON_ZERO_OF_A) :: J_A_DDNSCSR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! == COLUMN_A &amp;nbsp; &amp;nbsp;FOR "DDNSCSR" TRANSFORMER SUBROUTINE&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , DIMENSION (NON_ZERO_OF_B) :: J_B_DDNSCSR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! == COLUMN_B &amp;nbsp; &amp;nbsp;FOR "DDNSCSR" TRANSFORMER SUBROUTINE&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , DIMENSION ( NN + 1 ) :: I_A_DDNSCSR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! == RowINDEX_A &amp;nbsp;FOR "DDNSCSR" TRANSFORMER SUBROUTINE&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , DIMENSION ( NN + 1 ) :: I_B_DDNSCSR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! == RowINDEX_B &amp;nbsp;FOR "DDNSCSR" TRANSFORMER SUBROUTINE&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO DEFINE THE VARIABLES NEEDED FOR PARDISO ******************************&lt;/DIV&gt;

&lt;DIV&gt;! ( PT_A, MAXFCT_A, MNUM_A, MTYPE_A, PHASE_A, N_A, A_CSR, IndexROW_A, COLUMN_A, PERM_A, NRHS_A, IPARM_A,&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! &amp;nbsp;MSGLVL_A, B_A, X_A, ERROR_A)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INTEGER*8 , DIMENSION ( 64 ) :: PT_A &amp;nbsp; &amp;nbsp; = 0&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: MAXFCT_A = 1&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: MNUM_A &amp;nbsp; = 1&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: MTYPE_A &amp;nbsp;= 11&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: PHASE_A&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , PARAMETER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: N_A &amp;nbsp; &amp;nbsp; &amp;nbsp;= NN&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , DIMENSION ( N_A ) &amp;nbsp;:: PERM_A&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , PARAMETER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: NRHS_A &amp;nbsp; = 2&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , DIMENSION ( 64 ) &amp;nbsp; :: IPARM_A &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: MSGLVL_A = 1&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , DIMENSION ( N_A * NRHS_A ) :: B_A&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , DIMENSION ( N_A * NRHS_A ) :: X_A&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: ERROR_A &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO DEFINE THE VARIABLES NEEDED FOR PARDISO ******************************&lt;/DIV&gt;

&lt;DIV&gt;! ( PT_B, MAXFCT_B, MNUM_B, MTYPE_B, PHASE_B, N_B, B_CSR, IndexROW_B, COLUMN_B, PERM_B, NRHS_B, IPARM_B,&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! MSGLVL_B, B_B, X_B, ERROR_B)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INTEGER*8 , DIMENSION ( 64 ) :: PT_B &amp;nbsp; &amp;nbsp; = 0&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: MAXFCT_B = 1&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: MNUM_B &amp;nbsp; = 1&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: MTYPE_B &amp;nbsp;= 11&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: PHASE_B&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , PARAMETER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: N_B &amp;nbsp; &amp;nbsp; &amp;nbsp;= NN&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , DIMENSION ( N_B ) &amp;nbsp;:: PERM_B&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , PARAMETER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: NRHS_B &amp;nbsp; = 1&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , DIMENSION ( 64 ) &amp;nbsp; :: IPARM_B &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: MSGLVL_B = 1&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , DIMENSION ( N_B * NRHS_B ) :: B_B&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , DIMENSION ( N_B * NRHS_B ) :: X_B&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: ERROR_B &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE THE MARICES WHICH WE NEED ******************************&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;JOB_A_DDNSCSR (1) = 0&lt;/DIV&gt;

&lt;DIV&gt;JOB_A_DDNSCSR (2) = 1&lt;/DIV&gt;

&lt;DIV&gt;JOB_A_DDNSCSR (3) = 1&lt;/DIV&gt;

&lt;DIV&gt;JOB_A_DDNSCSR (4) = 2&lt;/DIV&gt;

&lt;DIV&gt;JOB_A_DDNSCSR (5) = NON_ZERO_OF_A &amp;nbsp; &amp;nbsp; ! NON_ZERO_OF_A = 5 * (N**2) - (10*N) + 8 = 12503&lt;/DIV&gt;

&lt;DIV&gt;JOB_A_DDNSCSR (6) = 1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;JOB_B_DDNSCSR (1) = 0&lt;/DIV&gt;

&lt;DIV&gt;JOB_B_DDNSCSR (2) = 1&lt;/DIV&gt;

&lt;DIV&gt;JOB_B_DDNSCSR (3) = 1&lt;/DIV&gt;

&lt;DIV&gt;JOB_B_DDNSCSR (4) = 2&lt;/DIV&gt;

&lt;DIV&gt;JOB_B_DDNSCSR (5) = NON_ZERO_OF_B &amp;nbsp; &amp;nbsp; ! NON_ZERO_OF_B = 5 * (N**2) - ( 4*N) - 4 = 12797&lt;/DIV&gt;

&lt;DIV&gt;JOB_B_DDNSCSR (6) = 1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;V_N_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_INT_DGESV &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;V_INT_DGESV &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N1_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;V_N1_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;P_N1_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;U_N &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;V_N &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;U_INT &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;V_INT &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;U_N1 &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;V_N1 &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;P_N1 &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;IPRINT = 1&lt;/DIV&gt;

&lt;DIV&gt;DO ITERATION = &amp;nbsp;1 , 1000 &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!**************************************** TO MAKE THE MATRICES ( IN EACH ITERATION ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_U_DGESV &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_V_DGESV &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_P_DGESV &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;RHS_U_V &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;RHS_P &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 1 : DIRICHLET BOUNDARY FOR " U " AND " V " ON THE LEFT SIDE OF THE DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N_DGESV ( I , 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;V_N_DGESV ( I , 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N_DGESV ( N2 - 1 , 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N_DGESV ( N2 &amp;nbsp; &amp;nbsp; , 1 ) = 2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N_DGESV ( N2 + 1 , 1 ) = 0.75D0 * 2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( (I-1)*N + 1 , (I-1)*N + 1 ) = 1.0D0&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_U_DGESV ( (I-1)*N + 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_V_DGESV ( (I-1)*N + 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_U_DGESV ( (N2-2)*N + 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_U_DGESV ( (N2-1)*N + 1 ) = 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_U_DGESV ( (N2-0)*N + 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 1 FOR "PARDISO"&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; U_N ( I , 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; V_N ( I , 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;U_N ( N2 - 1 , 1 ) &amp;nbsp;= 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;U_N ( N2 &amp;nbsp; &amp;nbsp; , 1 ) &amp;nbsp;= 2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;U_N ( N2 + 1 , 1 ) &amp;nbsp;= 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;RHS_U_V ( (N2-2)*N + 1 , 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;RHS_U_V ( (N2-1)*N + 1 , 1 ) = 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;RHS_U_V ( (N2-0)*N + 1 , 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 2 : ALL NODES OF THE DOMAIN EXCEPT THE NODES WHICH ARE ON THE BOUNDARIES&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO J = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C_A_DGESV = ( V_N_DGESV (I,J) / ( 2 * DELTA_Y ) ) - ( ( 1 / REYNOLDS ) * ( 1 / ( DELTA_Y * DELTA_Y ) ) ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! UPPER NODE&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C_B_DGESV = -1 * ( U_N_DGESV (I,J) / ( 2 * DELTA_X ) ) - ( (1 / REYNOLDS) * ( 1/(DELTA_X * DELTA_X ) ) ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! LEFT NODE&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C_C_DGESV = ( 1 / DELTA_T ) + ( ( 1 / REYNOLDS ) * ( ( 2 / ( DELTA_X * DELTA_X ) ) + ( 2 / ( DELTA_Y * DELTA_Y ) ) ) ) &amp;nbsp;! THE NODE ITSELF&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C_D_DGESV = ( U_N_DGESV (I,J) / ( 2 * DELTA_X ) ) - ( ( 1 / REYNOLDS ) * ( 1 / ( DELTA_X * DELTA_X ) ) ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! RIGHT NODE&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C_E_DGESV = -1 * ( V_N_DGESV (I,J) / ( 2 * DELTA_Y ) ) - ( ( 1 / REYNOLDS ) * ( 1 / &amp;nbsp;(DELTA_Y * DELTA_Y ) ) ) &amp;nbsp; ! LOWER NODE&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( (I-1)*N + J , (I-1)*N + J - N ) = C_A_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! COEFFICIENT FOR THE UPPER NODE &amp;nbsp;: ( I - 1 , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( (I-1)*N + J , (I-1)*N + J - 1 ) = C_B_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! COEFFICIENT FOR THE LEFT NODE &amp;nbsp; : ( I &amp;nbsp; &amp;nbsp; , J - 1 )&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( (I-1)*N + J , (I-1)*N + J &amp;nbsp; &amp;nbsp; ) = C_C_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! COEFFICIENT FOR THE NODE ITSELF : ( I &amp;nbsp; &amp;nbsp; , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( (I-1)*N + J , (I-1)*N + J + 1 ) = C_D_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! COEFFICIENT FOR THE RIGHT NODE &amp;nbsp;: ( I &amp;nbsp; &amp;nbsp; , J + 1 )&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( (I-1)*N + J , (I-1)*N + J + N ) = C_E_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! COEFFICIENT FOR THE LOWER NODE &amp;nbsp;: ( I + 1 , J &amp;nbsp; &amp;nbsp; ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_U_DGESV ( (I-1)*N + J ) = U_N_DGESV ( I , J ) / DELTA_T&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_V_DGESV ( (I-1)*N + J ) = V_N_DGESV ( I , J ) / DELTA_T &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 2 FOR "PARDISO"&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; DO J = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; C_A = ( V_N (I,J) / ( 2 * DELTA_Y ) ) - ( ( 1 / REYNOLDS ) * ( 1 / ( DELTA_Y * DELTA_Y ) ) ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! UPPER NODE&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; C_B = -1 * ( U_N (I,J) / ( 2 * DELTA_X ) ) - ( ( 1 / REYNOLDS ) * ( 1 / ( DELTA_X * DELTA_X ) ) ) &amp;nbsp; ! LEFT NODE&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; C_C = ( 1 / DELTA_T ) + ( ( 1 / REYNOLDS ) * ( ( 2 / ( DELTA_X * DELTA_X ) ) + ( 2 / ( DELTA_Y * DELTA_Y ) ) ) ) &amp;nbsp; ! THE NODE ITSELF&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; C_D = ( U_N (I,J) / ( 2 * DELTA_X ) ) - ( ( 1 / REYNOLDS ) * ( 1 / ( DELTA_X * DELTA_X ) ) ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! RIGHT NODE&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; C_E = -1 * ( V_N (I,J) / ( 2 * DELTA_Y ) ) - ( ( 1 / REYNOLDS ) * ( 1 / ( DELTA_Y * DELTA_Y ) ) ) &amp;nbsp; ! LOWER NODE&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RHS_U_V ( (I-1)*N + J , 1 ) = U_N ( I , J ) / DELTA_T&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RHS_U_V ( (I-1)*N + J , 2 ) = V_N ( I , J ) / DELTA_T &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 3 : THE HOMOGENOUS BOUNDARY CONDITION FOR THE UPPER &amp;amp; THE LOWER SIDE OF THE DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;! (ROUND U / ROUND Y = ROUND V / ROUND Y = 0) &amp;nbsp;(2nd Order Neumann)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO J = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( J , J ) &amp;nbsp; &amp;nbsp; &amp;nbsp; = -3.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( 1 , J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( J , J + N ) &amp;nbsp; = &amp;nbsp;4.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( 2 , J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( J , J + 2*N ) = -1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( 3 , J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_U_DGESV ( J ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_V_DGESV ( J ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( (N-1)*N + J , (N-1)*N + J &amp;nbsp; &amp;nbsp; &amp;nbsp; ) = -3.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( N &amp;nbsp; &amp;nbsp; , J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( (N-1)*N + J , (N-1)*N + J - N &amp;nbsp; ) = &amp;nbsp;4.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( N - 1 , J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( (N-1)*N + J , (N-1)*N + J - 2*N ) = -1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( N - 2 , J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_U_DGESV ( (N-1)*N + J ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_V_DGESV ( (N-1)*N + J ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 3 FOR "PARDISO"&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO J = 2 , N-1&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; RHS_U_V ( J , 1 ) &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; RHS_U_V ( J , 2 ) &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; RHS_U_V ( (N-1)*N + J , 1 ) &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; RHS_U_V ( (N-1)*N + J , 2 ) &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 4 : THE HOMOGENOUS BOUNDARY CONDITION ON THE RIGHT SIDE OF THE DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;! ( ROUND U / ROUND Y = 0 ) &amp;amp; ( ROUND V / ROUND X = 0 ) (2nd Order Neumann)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( I*N , I*N &amp;nbsp; &amp;nbsp; ) &amp;nbsp;= -3.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( I , N ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( I*N , I*N - 1 ) &amp;nbsp;= &amp;nbsp;4.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( I , N-1 ) &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( I*N , I*N - 2 ) &amp;nbsp;= -1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( I , N-2 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_U_DGESV ( I*N ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_V_DGESV ( I*N ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 4 FOR "PARDISO"&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; RHS_U_V ( I*N , 1 ) &amp;nbsp;= 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; RHS_U_V ( I*N , 2 ) &amp;nbsp;= 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!******************** INITIALIZING THE VARIABLES WHICH NEEDED FOR CALLING PARDISO (FOR VELOCITIES)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 1 ) &amp;nbsp;= 1&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 2 ) &amp;nbsp;= 3&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 3 ) &amp;nbsp;= 1&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 4 ) &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 5 ) &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 6 ) &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 7 ) &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 8 ) &amp;nbsp;= -1000 &amp;nbsp; ! 10&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 9 ) &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 10 ) = 13&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 11 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 12 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 13 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 14 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 15 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 16 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 17 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 18 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 19 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 20 ) = -1 &amp;nbsp; &amp;nbsp; ! 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 21 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 22 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 23 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 24 ) = 1 &amp;nbsp; &amp;nbsp; &amp;nbsp;! 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 25 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 26 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 27 ) = 1&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 28 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 29 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 30 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 31 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 32 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 33 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 34 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 35 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 36 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 37 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 38 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 39 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 40 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 41 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 42 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 43 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 44 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 45 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 46 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 47 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 48 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 49 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 50 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 51 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 52 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 53 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 54 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 55 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 56 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 57 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 58 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 59 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 60 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 61 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 62 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 63 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 64 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE THE RIGHT HAND SIDE MATRIX "B_A" FOR PARDISO (FOR VELOCITIES)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 1 , NN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; DO J = 1 , 2&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_A ( (J-1)*NN + I ) = RHS_U_V ( I , J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO SOLVE THE SYSTEM OF EQUATIONS TO OBTAIN INTERMEDIATE VELOCITIES&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INFO_DDNSCSR = 0&lt;/DIV&gt;

&lt;DIV&gt;CALL MKL_DDNSCSR ( JOB_A_DDNSCSR , NN , NN , A_DGESV , NN , A_CSR_DDNSCSR , J_A_DDNSCSR , I_A_DDNSCSR , INFO_DDNSCSR )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C_DGESV = A_DGESV &amp;nbsp; ! REPLACE THE ARRAYS OF MATRICE "A" INTO MATRICE "C" BECAUSE "DGESV" WILL CHANGE "A" !!!&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;INFO_DGESV = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CALL DGESV ( NN , 1 , A_DGESV , NN , IPIV_DGESV , RHS_U_DGESV , NN , INFO_DGESV )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;INFO_DGESV = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CALL DGESV ( NN , 1 , C_DGESV , NN , IPIV_DGESV , RHS_V_DGESV , NN , INFO_DGESV )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO J = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_INT_DGESV ( I , J ) = RHS_U_DGESV ( (I-1)*N + J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;V_INT_DGESV ( I , J ) = RHS_V_DGESV ( (I-1)*N + J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_INT_DGESV ( I , 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;V_INT_DGESV ( I , 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_INT_DGESV ( N2 - 1 , 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_INT_DGESV ( N2 &amp;nbsp; &amp;nbsp; , 1 ) = 2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_INT_DGESV ( N2 + 1 , 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!----------------------------------------------------------------- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! Only Analysis, Reordering And Symbolic Factorization, This Step Also Allocates All Memory That Is Necessary For The Factorization :&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;PHASE_A = 11&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;CALL PARDISO ( PT_A, MAXFCT_A, MNUM_A, MTYPE_A, PHASE_A, N_A, A_CSR_DDNSCSR, I_A_DDNSCSR, J_A_DDNSCSR, PERM_A, NRHS_A, IPARM_A, MSGLVL_A, B_A, X_A, ERROR_A)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! CALL PARDISO ( PT_A, MAXFCT_A, MNUM_A, MTYPE_A, PHASE_A, N_A, A_CSR, RowINDEX_A, COLUMN_A, PERM_A, NRHS_A, IPARM_A, MSGLVL_A, B_A, X_A, ERROR_A)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;IF (ERROR_A .NE. 0) THEN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; WRITE ( * , * ) 'The following ERROR was detected in Analysis, Reordering and Symbolic Factorization for solving VELOCITIES at ITERATION : ', ERROR_A , ITERATION&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; READ &amp;nbsp;( * , * )&lt;/DIV&gt;

&lt;DIV&gt;END IF&lt;/DIV&gt;

&lt;DIV&gt;!-----------------------------------------------------------------&lt;/DIV&gt;

&lt;DIV&gt;! Only Numerical Factorization :&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;PHASE_A = 22 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;CALL PARDISO ( PT_A, MAXFCT_A, MNUM_A, MTYPE_A, PHASE_A, N_A, A_CSR_DDNSCSR, I_A_DDNSCSR, J_A_DDNSCSR, PERM_A, NRHS_A, IPARM_A, MSGLVL_A, B_A, X_A, ERROR_A)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! CALL PARDISO ( PT_A, MAXFCT_A, MNUM_A, MTYPE_A, PHASE_A, N_A, A_CSR, RowINDEX_A, COLUMN_A, PERM_A, NRHS_A, IPARM_A, MSGLVL_A, B_A, X_A, ERROR_A)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;IF (ERROR_A .NE. 0) THEN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; WRITE ( * , * ) 'The following ERROR was detected in Numerical Factorization for solving VELOCITIES at ITERATION : ', ERROR_A , ITERATION&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; READ &amp;nbsp;( * , * )&lt;/DIV&gt;

&lt;DIV&gt;END IF&lt;/DIV&gt;

&lt;DIV&gt;!-----------------------------------------------------------------&lt;/DIV&gt;

&lt;DIV&gt;! Solving With Back Substitution And Iterative Refinement :&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;PHASE_A = 33&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;CALL PARDISO ( PT_A, MAXFCT_A, MNUM_A, MTYPE_A, PHASE_A, N_A, A_CSR_DDNSCSR, I_A_DDNSCSR, J_A_DDNSCSR, PERM_A, NRHS_A, IPARM_A, MSGLVL_A, B_A, X_A, ERROR_A)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! CALL PARDISO ( PT_A, MAXFCT_A, MNUM_A, MTYPE_A, PHASE_A, N_A, A_CSR, RowINDEX_A, COLUMN_A, PERM_A, NRHS_A, IPARM_A, MSGLVL_A, B_A, X_A, ERROR_A)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!-----------------------------------------------------------------&lt;/DIV&gt;

&lt;DIV&gt;! Termination And Release Internal Memory :&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;PHASE_A = -1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;CALL PARDISO ( PT_A, MAXFCT_A, MNUM_A, MTYPE_A, PHASE_A, N_A, A_CSR_DDNSCSR, I_A_DDNSCSR, J_A_DDNSCSR, PERM_A, NRHS_A, IPARM_A, MSGLVL_A, B_A, X_A, ERROR_A)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! CALL PARDISO ( PT_A, MAXFCT_A, MNUM_A, MTYPE_A, PHASE_A, N_A, A_CSR, RowINDEX_A, COLUMN_A, PERM_A, NRHS_A, IPARM_A, MSGLVL_A, B_A, X_A, ERROR_A)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE THE INTERMEDIATE VELOCITIES "U_INT" , "V_INT" FOR PARDISO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; DO J = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; U_INT ( I , J ) = X_A ( (I-1)*N + J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; V_INT ( I , J ) = X_A ( (I-1)*N + J + NN )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; U_INT ( I , 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; V_INT ( I , 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;U_INT ( N2 - 1 , 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;U_INT ( N2 &amp;nbsp; &amp;nbsp; , 1 ) = 2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;U_INT ( N2 + 1 , 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!***************************** TO CALCULATE THE EDITED PRESSURE "P_N1" FROM OBTAINED INTERMEDIATE VELOCITIES&lt;/DIV&gt;

&lt;DIV&gt;!***************************** (AT THE END OF THE FIRST STEP IN EACH IETRATION)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SUM_DGESV = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO J = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_P_DGESV ( (I-1)*N + J ) = (DELTA_X / (2*DELTA_T)) * ( U_INT_DGESV (I,J+1) - U_INT_DGESV (I,J-1) + V_INT_DGESV (I-1,J) - V_INT_DGESV (I+1,J) )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SUM_DGESV = SUM_DGESV + RHS_P_DGESV ( N*(I-1)+J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SUM_DGESV = SUM_DGESV / ((N - 2)*(N - 2))&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_P_DGESV = RHS_P_DGESV - SUM_DGESV&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!***************************** FOR PARDISO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;SUM = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; DO J = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RHS_P ( (I-1)*N + J ) = (DELTA_X / (2*DELTA_T)) * ( U_INT(I,J+1) - U_INT(I,J-1) + V_INT(I-1,J) - V_INT(I+1,J) )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;SUM = SUM + RHS_P ( (I-1)*N + J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;SUM = SUM / ( (N-2) * (N-2) )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;RHS_P = RHS_P - SUM&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!********** TO DETERMINE THE OTHER COEFFICIENTS IN THE MATRIX OF COEFFICCNETS FOR PRESSURES IN EACH ITERATION&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO J = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (I-1)*N + J , (I-1)*N + J - N ) = &amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! COEFFICIENT FOR THE UPPER NODE &amp;nbsp;: ( I - 1 , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (I-1)*N + J , (I-1)*N + J - 1 ) = &amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! COEFFICIENT FOR THE LEFT NODE &amp;nbsp; : ( I &amp;nbsp; &amp;nbsp; , J - 1 )&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (I-1)*N + J , (I-1)*N + J &amp;nbsp; &amp;nbsp; ) = -4 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! COEFFICIENT FOR THE NODE ITSELF : ( I &amp;nbsp; &amp;nbsp; , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (I-1)*N + J , (I-1)*N + J + 1 ) = &amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! COEFFICIENT FOR THE RIGHT NODE &amp;nbsp;: ( I &amp;nbsp; &amp;nbsp; , J + 1 )&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (I-1)*N + J , (I-1)*N + J + N ) = &amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! COEFFICIENT FOR THE LOWER NODE &amp;nbsp;: ( I + 1 , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = N2 , N2&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO J = N2 , N2&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (I-1)*N + J , (I-1)*N + J - N ) = 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! COEFFICIENT FOR THE UPPER NODE &amp;nbsp;: ( I - 1 , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (I-1)*N + J , (I-1)*N + J - 1 ) = 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! COEFFICIENT FOR THE LEFT NODE &amp;nbsp; : ( I &amp;nbsp; &amp;nbsp; , J - 1 )&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (I-1)*N + J , (I-1)*N + J &amp;nbsp; &amp;nbsp; ) = 1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! COEFFICIENT FOR THE NODE ITSELF : ( I &amp;nbsp; &amp;nbsp; , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (I-1)*N + J , (I-1)*N + J + 1 ) = 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! COEFFICIENT FOR THE RIGHT NODE &amp;nbsp;: ( I &amp;nbsp; &amp;nbsp; , J + 1 )&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (I-1)*N + J , (I-1)*N + J + N ) = 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! COEFFICIENT FOR THE LOWER NODE &amp;nbsp;: ( I + 1 , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_P_DGESV ( (I-1)*N + J ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 0 : THE ARTIFICIAL BOUNDARY CONDITION FOR PRESSURES&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** ON THE LEFT SIDE AND THE RIGHT SIDE OF THE DOMAIN&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 2 , N-1 &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( (I-1)*N + 1 , (I-1)*N + 1 &amp;nbsp; &amp;nbsp; ) = -4.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( I &amp;nbsp; &amp;nbsp; , 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( (I-1)*N + 1 , (I-1)*N + 1 - N ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( I - 1 , 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( (I-1)*N + 1 , (I-1)*N + 1 + N ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( I + 1 , 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( (I-1)*N + 1 , (I-1)*N + 1 + 1 ) = &amp;nbsp;2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( I &amp;nbsp; &amp;nbsp; , 2 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RHS_P_DGESV ( (I-1)*N + 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( I*N , I*N &amp;nbsp; &amp;nbsp; ) = -4.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( I &amp;nbsp; &amp;nbsp; , N &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( I*N , I*N - 1 ) = &amp;nbsp;2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( I &amp;nbsp; &amp;nbsp; , N-1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( I*N , I*N - N ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( I - 1 , N &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( I*N , I*N + N ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( I + 1 , N &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RHS_P_DGESV ( I*N ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 0 FOR PARDISO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! IT DID IN "B_CSR", "COLUMN_B" AND "RowINDEX_B"&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 1 FOR PARDISO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 2 , N-1 &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR THE LEFT SIDE OF THE DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; RHS_P ( (I-1)*N + 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 2 , N-1 &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR THE RIGHT SIDE OF THE DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;RHS_P ( I*N ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 2 : THE ARTIFICIAL BOUNDARY CONDITION FOR PRESSURES&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** ON THE UPPER SIDE AND THE LOWER SIDE OF THE DOMAIN&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO J = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( J , J &amp;nbsp; &amp;nbsp; ) = -4.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( 1 , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( J , J + N ) = &amp;nbsp;2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( 2 , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( J , J + 1 ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( 1 , J + 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( J , J - 1 ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( 1 , J - 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RHS_P_DGESV ( J ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( (N-1)*N + J , (N-1)*N + J &amp;nbsp; &amp;nbsp; ) = -4.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( N &amp;nbsp; &amp;nbsp; , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( (N-1)*N + J , (N-1)*N + J + 1 ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( N &amp;nbsp; &amp;nbsp; , J + 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( (N-1)*N + J , (N-1)*N + J - 1 ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( N &amp;nbsp; &amp;nbsp; , J - 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( (N-1)*N + J , (N-1)*N + J - N ) = &amp;nbsp;2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( N - 1 , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RHS_P_DGESV ( (N-1)*N + J ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 2 FOR PARDISO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO J = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;RHS_P ( J ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;RHS_P ( (N-1)*N + J ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 3 : AVERAGING OF TWO ADJACENT NODES FOR 4 CORNERS&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!*** FOR POINT ( 1 , 1 ) OF THE DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( 1 , 1 &amp;nbsp; &amp;nbsp; ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( 1 , 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( 1 , 2 &amp;nbsp; &amp;nbsp; ) = -0.5D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( 1 , 2 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( 1 , 1 + N ) = -0.5D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( 2 , 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_P_DGESV ( 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!*** FOR POINT ( 1 , N ) OF THE DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( N , N &amp;nbsp; &amp;nbsp; ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( 1 , N &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( N , N - 1 ) = -0.5D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( 1 , N - 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( N , N + N ) = -0.5D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( 2 , N &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_P_DGESV ( 51 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!*** FOR POINT ( N , 1 ) OF THE DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (N-1)*N + 1 , (N-1)*N + 1 &amp;nbsp; &amp;nbsp; ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( N &amp;nbsp; &amp;nbsp; , 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (N-1)*N + 1 , (N-1)*N + 2 &amp;nbsp; &amp;nbsp; ) = -0.5D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( N &amp;nbsp; &amp;nbsp; , 2 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (N-1)*N + 1 , (N-1)*N + 1 - N ) = -0.5D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( N - 1 , 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_P_DGESV ( (N-1)*N + 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!*** FOR POINT ( N , N ) OF THE DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( N*N , N*N &amp;nbsp; &amp;nbsp; ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( N &amp;nbsp; &amp;nbsp; , N &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( N*N , N*N - 1 ) = -0.5D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( N &amp;nbsp; &amp;nbsp; , N - 1 ) &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( N*N , N*N - N ) = -0.5D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( N - 1 , N &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_P_DGESV ( N*N ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 3 FOR PARDISO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ********** FOR POINT ( 1 , 1 ) OF DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;RHS_P ( 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ********** FOR POINT ( 1 , N ) OF DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;RHS_P ( 51 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ********** FOR POINT ( N , 1 ) OF DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;RHS_P ( (N-1)*N + 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ********** FOR POINT ( N , N ) OF DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;RHS_P ( N*N ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!******************** INITIALIZING THE VARIABLES WHICH NEEDED FOR CALLING PARDISO (FOR PRESSURES)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 1 ) &amp;nbsp;= 1&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 2 ) &amp;nbsp;= 3&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 3 ) &amp;nbsp;= 1&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 4 ) &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 5 ) &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 6 ) &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 7 ) &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 8 ) &amp;nbsp;= -1000 &amp;nbsp; ! 10&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 9 ) &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 10 ) = 13&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 11 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 12 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 13 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 14 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 15 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 16 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 17 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 18 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 19 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 20 ) = -1 &amp;nbsp; &amp;nbsp; ! 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 21 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 22 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 23 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 24 ) = 1 &amp;nbsp; &amp;nbsp; &amp;nbsp;! 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 25 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 26 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 27 ) = 1&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 28 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 29 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 30 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 31 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 32 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 33 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 34 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 35 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 36 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 37 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 38 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 39 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 40 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 41 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 42 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 43 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 44 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 45 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 46 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 47 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 48 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 49 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 50 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 51 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 52 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 53 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 54 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 55 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 56 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 57 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 58 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 59 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 60 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 61 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 62 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 63 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 64 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE THE RIGHT HAND SIDE MATRIX "B_A" FOR PARDISO (FOR PRESSURES)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 1 , NN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; B_B ( I ) = RHS_P ( I )&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO SOLVE THE SYSTEM OF EQUATIONS TO OBTAIN FINAL PRESSURES&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INFO_DDNSCSR = 0&lt;/DIV&gt;

&lt;DIV&gt;CALL MKL_DDNSCSR ( JOB_B_DDNSCSR , NN , NN , B_DGESV , NN , B_CSR_DDNSCSR , J_B_DDNSCSR , I_B_DDNSCSR , INFO_DDNSCSR )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;INFO_DGESV = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CALL DGESV ( NN , 1 , B_DGESV , NN , IPIV_DGESV , RHS_P_DGESV , NN , INFO_DGESV )&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO J = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;P_N1_DGESV ( I , J ) = RHS_P_DGESV ( N*(I-1) + J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!----------------------------------------------------------------- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! Only Analysis, Reordering And Symbolic Factorization, This Step Also Allocates All Memory That Is Necessary For The Factorization :&lt;/DIV&gt;

&lt;DIV&gt;PHASE_B = 11&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;CALL PARDISO ( PT_B, MAXFCT_B, MNUM_B, MTYPE_B, PHASE_B, N_B, B_CSR_DDNSCSR, I_B_DDNSCSR, J_B_DDNSCSR, PERM_B, NRHS_B, IPARM_B, MSGLVL_B, B_B, X_B, ERROR_B)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! CALL PARDISO ( PT_B, MAXFCT_B, MNUM_B, MTYPE_B, PHASE_B, N_B, B_CSR, RowINDEX_B, COLUMN_B, PERM_B, NRHS_B, IPARM_B, MSGLVL_B, B_B, X_B, ERROR_B)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;IF (ERROR_B .NE. 0) THEN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; WRITE ( * , * ) 'The following ERROR was detected in Analysis, Reordering and Symbolic Factorization for solving VELOCITIES at ITERATION : ', ERROR_B , ITERATION&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; READ &amp;nbsp;( * , * )&lt;/DIV&gt;

&lt;DIV&gt;END IF&lt;/DIV&gt;

&lt;DIV&gt;!-----------------------------------------------------------------&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! Only Numerical Factorization :&lt;/DIV&gt;

&lt;DIV&gt;PHASE_B = 22 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;CALL PARDISO ( PT_B, MAXFCT_B, MNUM_B, MTYPE_B, PHASE_B, N_B, B_CSR_DDNSCSR, I_B_DDNSCSR, J_B_DDNSCSR, PERM_B, NRHS_B, IPARM_B, MSGLVL_B, B_B, X_B, ERROR_B)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! CALL PARDISO ( PT_B, MAXFCT_B, MNUM_B, MTYPE_B, PHASE_B, N_B, B_CSR, RowINDEX_B, COLUMN_B, PERM_B, NRHS_B, IPARM_B, MSGLVL_B, B_B, X_B, ERROR_B)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;IF (ERROR_B .NE. 0) THEN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; WRITE ( * , * ) 'The following ERROR was detected in Numerical Factorization for solving VELOCITIES at ITERATION : ', ERROR_B , ITERATION&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; READ &amp;nbsp;( * , * )&lt;/DIV&gt;

&lt;DIV&gt;END IF&lt;/DIV&gt;

&lt;DIV&gt;!-----------------------------------------------------------------&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! Solving With Back Substitution And Iterative Refinement :&lt;/DIV&gt;

&lt;DIV&gt;PHASE_B = 33&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;CALL PARDISO ( PT_B, MAXFCT_B, MNUM_B, MTYPE_B, PHASE_B, N_B, B_CSR_DDNSCSR, I_B_DDNSCSR, J_B_DDNSCSR, PERM_B, NRHS_B, IPARM_B, MSGLVL_B, B_B, X_B, ERROR_B)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! CALL PARDISO ( PT_B, MAXFCT_B, MNUM_B, MTYPE_B, PHASE_B, N_B, B_CSR, RowINDEX_B, COLUMN_B, PERM_B, NRHS_B, IPARM_B, MSGLVL_B, B_B, X_B, ERROR_B)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!-----------------------------------------------------------------&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! Termination And Release Internal Memory :&lt;/DIV&gt;

&lt;DIV&gt;PHASE_B = -1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;CALL PARDISO ( PT_B, MAXFCT_B, MNUM_B, MTYPE_B, PHASE_B, N_B, B_CSR_DDNSCSR, I_B_DDNSCSR, J_B_DDNSCSR, PERM_B, NRHS_B, IPARM_B, MSGLVL_B, B_B, X_B, ERROR_B)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! CALL PARDISO ( PT_B, MAXFCT_B, MNUM_B, MTYPE_B, PHASE_B, N_B, B_CSR, RowINDEX_B, COLUMN_B, PERM_B, NRHS_B, IPARM_B, MSGLVL_B, B_B, X_B, ERROR_B)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!***********************************************************************************************************************************************&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; DO J = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; P_N1 ( I , J ) = X_B ( (I-1)*N + J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ******************** TO CALCULATE "GRADIENT P" AND THEN CALCULATE "U_N1" AND "V_N1" AT THE END OF EACH ITERATION&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO J = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N1_DGESV (I,J) = U_INT_DGESV (I,J) - ( DELTA_T * ( (P_N1_DGESV (I,J+1) - P_N1_DGESV (I,J-1)) / (2*DELTA_X) ) )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;V_N1_DGESV (I,J) = V_INT_DGESV (I,J) - ( DELTA_T * ( (P_N1_DGESV (I-1,J) - P_N1_DGESV (I+1,J)) / (2*DELTA_Y) ) )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ******************** FOR PARDISO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; DO J = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; U_N1 (I,J) = U_INT (I,J) - ( DELTA_T * ( (P_N1 (I,J+1) - P_N1 (I,J-1)) / (2*DELTA_X) ) )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; V_N1 (I,J) = V_INT (I,J) - ( DELTA_T * ( (P_N1 (I-1,J) - P_N1 (I+1,J)) / (2*DELTA_Y) ) )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ******************** ENFORCE THE DIRICHLET BOUNDARY CONDITION OF ON THE LEFT SIDE OF THE DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N1_DGESV ( I , 1 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;V_N1_DGESV ( I , 1 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N1_DGESV ( N2-1 , 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N1_DGESV ( N2 &amp;nbsp; , 1 ) = 2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N1_DGESV ( N2+1 , 1 ) = 0.75D0 * 2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO J = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N_DGESV (I,J) = U_N1_DGESV (I,J)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;V_N_DGESV (I,J) = V_N1_DGESV (I,J)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ******************** FOR PARDISO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; U_N1 ( I , 1 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; V_N1 ( I , 1 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;U_N1 ( N2 - 1 , 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;U_N1 ( N2 &amp;nbsp; &amp;nbsp; , 1 ) = 2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;U_N1 ( N2 + 1 , 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; DO J = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; U_N (I,J) = U_N1 (I,J)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; V_N (I,J) = V_N1 (I,J)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ******************** EXPORTING RESULTS FOR TECHPLOT&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;XITERATION = ITERATION&lt;/DIV&gt;

&lt;DIV&gt;IF ( ITERATION / IPRINT == XITERATION / IPRINT ) THEN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; FORMAT_STRING = "(A14,I6)"&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; WRITE ( FILE_NAME_1 &amp;nbsp;, FORMAT_STRING ) "PARDISO" &amp;nbsp; &amp;nbsp; &amp;nbsp; , ITERATION&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; WRITE ( FILE_NAME_2 &amp;nbsp;, FORMAT_STRING ) "DGESV" &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , ITERATION&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; FINAL_NAME_1 &amp;nbsp;= TRIM(FILE_NAME_1)//".TXT"&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; FINAL_NAME_2 &amp;nbsp;= TRIM(FILE_NAME_2)//".TXT" &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; OPEN ( 1 , FILE = FINAL_NAME_1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; 101 &amp;nbsp; FORMAT (7F30.16)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; DO I = N , 1 , -1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DO J = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; WRITE ( 1 , 101 ) DELTA_X * (J-1) , DELTA_Y * (N-I) , U_INT (I,J) , V_INT (I,J) , U_N1 (I,J) , V_N1 (I,J) , P_N1 (I,J)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; CLOSE ( 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; OPEN ( 2 , FILE = FINAL_NAME_2 ) &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; DO I = N , 1 , -1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DO J = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; WRITE ( 2 , 101 ) DELTA_X * (J-1) , DELTA_Y * (N-I) , U_INT_DGESV (I,J) , V_INT_DGESV (I,J) , U_N1_DGESV (I,J) , V_N1_DGESV (I,J) , P_N1_DGESV (I,J)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; CLOSE ( 2 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;END IF&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ********************************************************************************&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;! ********************************************************************************&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END PROGRAM DGESV_VS_DDNSCSR_PARDISO&lt;/DIV&gt;</description>
    <pubDate>Fri, 11 Aug 2017 09:16:34 GMT</pubDate>
    <dc:creator>Abdolreza_A_</dc:creator>
    <dc:date>2017-08-11T09:16:34Z</dc:date>
    <item>
      <title>problem with PARDISO and DSS</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/problem-with-PARDISO-and-DSS/m-p/1166755#M28290</link>
      <description>&lt;P&gt;Hello my dear friends ...&lt;/P&gt;

&lt;P&gt;I wrote a FORTRAN code for simulating a transient 2D laminar flow in fintite differences method.&lt;/P&gt;

&lt;P&gt;I have 2 problems with my code. One of them is with PARDISO and the other is with DSS.&lt;/P&gt;

&lt;P&gt;for PARDISO :&lt;BR /&gt;
	My code solves 3 systems of linear equations respectively in each iteration :&lt;/P&gt;

&lt;P&gt;The matrices of the coefficients for the first system and the second one are the same. The systems' difference is just the RHS.&lt;BR /&gt;
	The matrices of the coefficients for the third system is different. but the it's dimension is the same.&lt;BR /&gt;
	I used 2 approaches (i.e. 2 SOLVERs in one code in eatch iteration to campare the results of the same system of equations between them):&amp;nbsp;&lt;/P&gt;

&lt;P&gt;In the first part of each iteration, I make the matrix of coefficients of each of the 3 systems of equations "by myself" (for example A , B , C) and then I send the system to DGESV to solve. Fortunately it gives me the best results.&lt;BR /&gt;
	In the second part of each iteration, I send the the matrix of coefficients (A , B , C) to the DDNSCSR to make it in CSR form.Then I send it to the PARDISO and it gives me almost the same results as which DGESV had returnet to me.&lt;BR /&gt;
	MY PROBLEM IS : when I make the CSR format by myself and send it to the PARDISO, the results are not the same !!!&lt;/P&gt;

&lt;P&gt;I should note that the CSR format which I made is EXACTLY ( !!! ) the same as the CSR format which was made by DDNSCSR &amp;nbsp; ( !!! )&lt;BR /&gt;
	I mean exactly : the inlet CSR format matrices which was sent to PARIDISO, are exactly the same in 2 approach. (I had checked it completely with a separate code which I had writtenbefore)&lt;/P&gt;

&lt;P&gt;----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------&lt;/P&gt;

&lt;P&gt;for DSS : I don't know anything about the applying the DSS solver. I will send my code (it is the same code but I substitude PARDISO with DSS). I don't know why it didn't work at all. ( I gave the solver from internet)&lt;BR /&gt;
	Thank for your help.&lt;/P&gt;</description>
      <pubDate>Fri, 11 Aug 2017 09:14:42 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/problem-with-PARDISO-and-DSS/m-p/1166755#M28290</guid>
      <dc:creator>Abdolreza_A_</dc:creator>
      <dc:date>2017-08-11T09:14:42Z</dc:date>
    </item>
    <item>
      <title>PROGRAM DGESV_VS_DDNSCSR</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/problem-with-PARDISO-and-DSS/m-p/1166756#M28291</link>
      <description>&lt;DIV&gt;PROGRAM DGESV_VS_DDNSCSR_PARDISO&lt;/DIV&gt;

&lt;DIV&gt;IMPLICIT NONE&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************************************************************************&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;CHARACTER (len=30) &amp;nbsp; :: FILE_NAME_1 , FILE_NAME_2&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;CHARACTER (len=1024) :: FINAL_NAME_1 , FINAL_NAME_2&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;CHARACTER (len=1024) :: FORMAT_STRING&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** ORDINARY GENERAL VARIABLES ******************************&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INTEGER, PARAMETER &amp;nbsp; :: N &amp;nbsp;= 51 &amp;nbsp; &amp;nbsp; &amp;nbsp; ! GENERAL &amp;nbsp; &amp;nbsp; N MUST BE ODD&lt;/DIV&gt;

&lt;DIV&gt;INTEGER, PARAMETER &amp;nbsp; :: NN = N**2 &amp;nbsp; &amp;nbsp; ! GENERAL&lt;/DIV&gt;

&lt;DIV&gt;INTEGER, PARAMETER &amp;nbsp; :: N2 = (N/2)+1 &amp;nbsp;! GENERAL&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , PARAMETER :: DELTA_X &amp;nbsp;= 1.0D0 / (N-1) &amp;nbsp; &amp;nbsp; ! GENERAL&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , PARAMETER :: DELTA_Y &amp;nbsp;= 1.0D0 / (N-1) &amp;nbsp; &amp;nbsp; ! GENERAL&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , PARAMETER :: DELTA_T &amp;nbsp;= 0.01D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! GENERAL&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , PARAMETER :: REYNOLDS = 160.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! GENERAL&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: I , J , ITERATION , IPRINT &amp;nbsp; &amp;nbsp;! GENERAL&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION :: XITERATION &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! GENERAL&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: INFO_DGESV , INFO_DDNSCSR&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DOUBLE PRECISION :: C_A_DGESV , C_B_DGESV , C_C_DGESV , C_D_DGESV , C_E_DGESV , SUM_DGESV , TEMP1_DGESV&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DOUBLE PRECISION , DIMENSION ( NN ) &amp;nbsp; &amp;nbsp; &amp;nbsp;:: RHS_U_DGESV , RHS_V_DGESV , RHS_P_DGESV , IPIV_DGESV , TEMPORARY_DGESV&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DOUBLE PRECISION , DIMENSION ( N , N ) &amp;nbsp; :: U_N_DGESV , V_N_DGESV , U_INT_DGESV , V_INT_DGESV , U_N1_DGESV , V_N1_DGESV , P_N1_DGESV&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DOUBLE PRECISION , DIMENSION ( NN , NN ) :: A_DGESV , B_DGESV , C_DGESV&lt;SPAN style="white-space:pre"&gt; &lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INTEGER :: INFO&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION :: C_A , C_B , C_C , C_D , C_E , SUM&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , DIMENSION ( NN ) &amp;nbsp; &amp;nbsp; :: RHS_P&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , DIMENSION ( N , N ) &amp;nbsp;:: U_N , V_N , U_INT , V_INT , U_N1 , V_N1 , P_N1&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , DIMENSION ( NN , 2 ) :: RHS_U_V&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , PARAMETER :: NON_ZERO_OF_A = 5 * (N**2) - (10*N) + 8 &amp;nbsp; &amp;nbsp;! (12503)&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , PARAMETER :: NON_ZERO_OF_B = 5 * (N**2) - ( 4*N) - 4 &amp;nbsp; &amp;nbsp;! (12797)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** FOR "DDNSCSR" TRANSFORMER SUBROUTINE ******************************&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , DIMENSION (6) :: JOB_A_DDNSCSR , JOB_B_DDNSCSR&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , DIMENSION (NON_ZERO_OF_A) :: A_CSR_DDNSCSR &amp;nbsp;! == A_CSR &amp;nbsp; &amp;nbsp; &amp;nbsp; FOR "DDNSCSR" TRANSFORMER SUBROUTINE&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , DIMENSION (NON_ZERO_OF_B) :: B_CSR_DDNSCSR &amp;nbsp;! == B_CSR &amp;nbsp; &amp;nbsp; &amp;nbsp; FOR "DDNSCSR" TRANSFORMER SUBROUTINE&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , DIMENSION (NON_ZERO_OF_A) :: J_A_DDNSCSR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! == COLUMN_A &amp;nbsp; &amp;nbsp;FOR "DDNSCSR" TRANSFORMER SUBROUTINE&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , DIMENSION (NON_ZERO_OF_B) :: J_B_DDNSCSR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! == COLUMN_B &amp;nbsp; &amp;nbsp;FOR "DDNSCSR" TRANSFORMER SUBROUTINE&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , DIMENSION ( NN + 1 ) :: I_A_DDNSCSR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! == RowINDEX_A &amp;nbsp;FOR "DDNSCSR" TRANSFORMER SUBROUTINE&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , DIMENSION ( NN + 1 ) :: I_B_DDNSCSR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! == RowINDEX_B &amp;nbsp;FOR "DDNSCSR" TRANSFORMER SUBROUTINE&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO DEFINE THE VARIABLES NEEDED FOR PARDISO ******************************&lt;/DIV&gt;

&lt;DIV&gt;! ( PT_A, MAXFCT_A, MNUM_A, MTYPE_A, PHASE_A, N_A, A_CSR, IndexROW_A, COLUMN_A, PERM_A, NRHS_A, IPARM_A,&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! &amp;nbsp;MSGLVL_A, B_A, X_A, ERROR_A)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INTEGER*8 , DIMENSION ( 64 ) :: PT_A &amp;nbsp; &amp;nbsp; = 0&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: MAXFCT_A = 1&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: MNUM_A &amp;nbsp; = 1&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: MTYPE_A &amp;nbsp;= 11&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: PHASE_A&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , PARAMETER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: N_A &amp;nbsp; &amp;nbsp; &amp;nbsp;= NN&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , DIMENSION ( N_A ) &amp;nbsp;:: PERM_A&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , PARAMETER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: NRHS_A &amp;nbsp; = 2&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , DIMENSION ( 64 ) &amp;nbsp; :: IPARM_A &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: MSGLVL_A = 1&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , DIMENSION ( N_A * NRHS_A ) :: B_A&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , DIMENSION ( N_A * NRHS_A ) :: X_A&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: ERROR_A &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO DEFINE THE VARIABLES NEEDED FOR PARDISO ******************************&lt;/DIV&gt;

&lt;DIV&gt;! ( PT_B, MAXFCT_B, MNUM_B, MTYPE_B, PHASE_B, N_B, B_CSR, IndexROW_B, COLUMN_B, PERM_B, NRHS_B, IPARM_B,&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! MSGLVL_B, B_B, X_B, ERROR_B)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INTEGER*8 , DIMENSION ( 64 ) :: PT_B &amp;nbsp; &amp;nbsp; = 0&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: MAXFCT_B = 1&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: MNUM_B &amp;nbsp; = 1&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: MTYPE_B &amp;nbsp;= 11&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: PHASE_B&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , PARAMETER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: N_B &amp;nbsp; &amp;nbsp; &amp;nbsp;= NN&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , DIMENSION ( N_B ) &amp;nbsp;:: PERM_B&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , PARAMETER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: NRHS_B &amp;nbsp; = 1&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , DIMENSION ( 64 ) &amp;nbsp; :: IPARM_B &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: MSGLVL_B = 1&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , DIMENSION ( N_B * NRHS_B ) :: B_B&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , DIMENSION ( N_B * NRHS_B ) :: X_B&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: ERROR_B &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE THE MARICES WHICH WE NEED ******************************&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;JOB_A_DDNSCSR (1) = 0&lt;/DIV&gt;

&lt;DIV&gt;JOB_A_DDNSCSR (2) = 1&lt;/DIV&gt;

&lt;DIV&gt;JOB_A_DDNSCSR (3) = 1&lt;/DIV&gt;

&lt;DIV&gt;JOB_A_DDNSCSR (4) = 2&lt;/DIV&gt;

&lt;DIV&gt;JOB_A_DDNSCSR (5) = NON_ZERO_OF_A &amp;nbsp; &amp;nbsp; ! NON_ZERO_OF_A = 5 * (N**2) - (10*N) + 8 = 12503&lt;/DIV&gt;

&lt;DIV&gt;JOB_A_DDNSCSR (6) = 1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;JOB_B_DDNSCSR (1) = 0&lt;/DIV&gt;

&lt;DIV&gt;JOB_B_DDNSCSR (2) = 1&lt;/DIV&gt;

&lt;DIV&gt;JOB_B_DDNSCSR (3) = 1&lt;/DIV&gt;

&lt;DIV&gt;JOB_B_DDNSCSR (4) = 2&lt;/DIV&gt;

&lt;DIV&gt;JOB_B_DDNSCSR (5) = NON_ZERO_OF_B &amp;nbsp; &amp;nbsp; ! NON_ZERO_OF_B = 5 * (N**2) - ( 4*N) - 4 = 12797&lt;/DIV&gt;

&lt;DIV&gt;JOB_B_DDNSCSR (6) = 1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;V_N_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_INT_DGESV &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;V_INT_DGESV &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N1_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;V_N1_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;P_N1_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;U_N &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;V_N &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;U_INT &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;V_INT &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;U_N1 &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;V_N1 &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;P_N1 &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;IPRINT = 1&lt;/DIV&gt;

&lt;DIV&gt;DO ITERATION = &amp;nbsp;1 , 1000 &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!**************************************** TO MAKE THE MATRICES ( IN EACH ITERATION ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_U_DGESV &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_V_DGESV &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_P_DGESV &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;RHS_U_V &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;RHS_P &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 1 : DIRICHLET BOUNDARY FOR " U " AND " V " ON THE LEFT SIDE OF THE DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N_DGESV ( I , 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;V_N_DGESV ( I , 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N_DGESV ( N2 - 1 , 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N_DGESV ( N2 &amp;nbsp; &amp;nbsp; , 1 ) = 2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N_DGESV ( N2 + 1 , 1 ) = 0.75D0 * 2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( (I-1)*N + 1 , (I-1)*N + 1 ) = 1.0D0&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_U_DGESV ( (I-1)*N + 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_V_DGESV ( (I-1)*N + 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_U_DGESV ( (N2-2)*N + 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_U_DGESV ( (N2-1)*N + 1 ) = 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_U_DGESV ( (N2-0)*N + 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 1 FOR "PARDISO"&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; U_N ( I , 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; V_N ( I , 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;U_N ( N2 - 1 , 1 ) &amp;nbsp;= 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;U_N ( N2 &amp;nbsp; &amp;nbsp; , 1 ) &amp;nbsp;= 2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;U_N ( N2 + 1 , 1 ) &amp;nbsp;= 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;RHS_U_V ( (N2-2)*N + 1 , 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;RHS_U_V ( (N2-1)*N + 1 , 1 ) = 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;RHS_U_V ( (N2-0)*N + 1 , 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 2 : ALL NODES OF THE DOMAIN EXCEPT THE NODES WHICH ARE ON THE BOUNDARIES&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO J = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C_A_DGESV = ( V_N_DGESV (I,J) / ( 2 * DELTA_Y ) ) - ( ( 1 / REYNOLDS ) * ( 1 / ( DELTA_Y * DELTA_Y ) ) ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! UPPER NODE&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C_B_DGESV = -1 * ( U_N_DGESV (I,J) / ( 2 * DELTA_X ) ) - ( (1 / REYNOLDS) * ( 1/(DELTA_X * DELTA_X ) ) ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! LEFT NODE&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C_C_DGESV = ( 1 / DELTA_T ) + ( ( 1 / REYNOLDS ) * ( ( 2 / ( DELTA_X * DELTA_X ) ) + ( 2 / ( DELTA_Y * DELTA_Y ) ) ) ) &amp;nbsp;! THE NODE ITSELF&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C_D_DGESV = ( U_N_DGESV (I,J) / ( 2 * DELTA_X ) ) - ( ( 1 / REYNOLDS ) * ( 1 / ( DELTA_X * DELTA_X ) ) ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! RIGHT NODE&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C_E_DGESV = -1 * ( V_N_DGESV (I,J) / ( 2 * DELTA_Y ) ) - ( ( 1 / REYNOLDS ) * ( 1 / &amp;nbsp;(DELTA_Y * DELTA_Y ) ) ) &amp;nbsp; ! LOWER NODE&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( (I-1)*N + J , (I-1)*N + J - N ) = C_A_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! COEFFICIENT FOR THE UPPER NODE &amp;nbsp;: ( I - 1 , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( (I-1)*N + J , (I-1)*N + J - 1 ) = C_B_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! COEFFICIENT FOR THE LEFT NODE &amp;nbsp; : ( I &amp;nbsp; &amp;nbsp; , J - 1 )&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( (I-1)*N + J , (I-1)*N + J &amp;nbsp; &amp;nbsp; ) = C_C_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! COEFFICIENT FOR THE NODE ITSELF : ( I &amp;nbsp; &amp;nbsp; , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( (I-1)*N + J , (I-1)*N + J + 1 ) = C_D_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! COEFFICIENT FOR THE RIGHT NODE &amp;nbsp;: ( I &amp;nbsp; &amp;nbsp; , J + 1 )&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( (I-1)*N + J , (I-1)*N + J + N ) = C_E_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! COEFFICIENT FOR THE LOWER NODE &amp;nbsp;: ( I + 1 , J &amp;nbsp; &amp;nbsp; ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_U_DGESV ( (I-1)*N + J ) = U_N_DGESV ( I , J ) / DELTA_T&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_V_DGESV ( (I-1)*N + J ) = V_N_DGESV ( I , J ) / DELTA_T &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 2 FOR "PARDISO"&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; DO J = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; C_A = ( V_N (I,J) / ( 2 * DELTA_Y ) ) - ( ( 1 / REYNOLDS ) * ( 1 / ( DELTA_Y * DELTA_Y ) ) ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! UPPER NODE&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; C_B = -1 * ( U_N (I,J) / ( 2 * DELTA_X ) ) - ( ( 1 / REYNOLDS ) * ( 1 / ( DELTA_X * DELTA_X ) ) ) &amp;nbsp; ! LEFT NODE&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; C_C = ( 1 / DELTA_T ) + ( ( 1 / REYNOLDS ) * ( ( 2 / ( DELTA_X * DELTA_X ) ) + ( 2 / ( DELTA_Y * DELTA_Y ) ) ) ) &amp;nbsp; ! THE NODE ITSELF&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; C_D = ( U_N (I,J) / ( 2 * DELTA_X ) ) - ( ( 1 / REYNOLDS ) * ( 1 / ( DELTA_X * DELTA_X ) ) ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! RIGHT NODE&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; C_E = -1 * ( V_N (I,J) / ( 2 * DELTA_Y ) ) - ( ( 1 / REYNOLDS ) * ( 1 / ( DELTA_Y * DELTA_Y ) ) ) &amp;nbsp; ! LOWER NODE&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RHS_U_V ( (I-1)*N + J , 1 ) = U_N ( I , J ) / DELTA_T&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RHS_U_V ( (I-1)*N + J , 2 ) = V_N ( I , J ) / DELTA_T &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 3 : THE HOMOGENOUS BOUNDARY CONDITION FOR THE UPPER &amp;amp; THE LOWER SIDE OF THE DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;! (ROUND U / ROUND Y = ROUND V / ROUND Y = 0) &amp;nbsp;(2nd Order Neumann)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO J = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( J , J ) &amp;nbsp; &amp;nbsp; &amp;nbsp; = -3.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( 1 , J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( J , J + N ) &amp;nbsp; = &amp;nbsp;4.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( 2 , J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( J , J + 2*N ) = -1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( 3 , J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_U_DGESV ( J ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_V_DGESV ( J ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( (N-1)*N + J , (N-1)*N + J &amp;nbsp; &amp;nbsp; &amp;nbsp; ) = -3.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( N &amp;nbsp; &amp;nbsp; , J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( (N-1)*N + J , (N-1)*N + J - N &amp;nbsp; ) = &amp;nbsp;4.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( N - 1 , J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( (N-1)*N + J , (N-1)*N + J - 2*N ) = -1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( N - 2 , J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_U_DGESV ( (N-1)*N + J ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_V_DGESV ( (N-1)*N + J ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 3 FOR "PARDISO"&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO J = 2 , N-1&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; RHS_U_V ( J , 1 ) &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; RHS_U_V ( J , 2 ) &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; RHS_U_V ( (N-1)*N + J , 1 ) &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; RHS_U_V ( (N-1)*N + J , 2 ) &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 4 : THE HOMOGENOUS BOUNDARY CONDITION ON THE RIGHT SIDE OF THE DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;! ( ROUND U / ROUND Y = 0 ) &amp;amp; ( ROUND V / ROUND X = 0 ) (2nd Order Neumann)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( I*N , I*N &amp;nbsp; &amp;nbsp; ) &amp;nbsp;= -3.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( I , N ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( I*N , I*N - 1 ) &amp;nbsp;= &amp;nbsp;4.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( I , N-1 ) &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( I*N , I*N - 2 ) &amp;nbsp;= -1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( I , N-2 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_U_DGESV ( I*N ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_V_DGESV ( I*N ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 4 FOR "PARDISO"&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; RHS_U_V ( I*N , 1 ) &amp;nbsp;= 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; RHS_U_V ( I*N , 2 ) &amp;nbsp;= 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!******************** INITIALIZING THE VARIABLES WHICH NEEDED FOR CALLING PARDISO (FOR VELOCITIES)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 1 ) &amp;nbsp;= 1&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 2 ) &amp;nbsp;= 3&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 3 ) &amp;nbsp;= 1&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 4 ) &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 5 ) &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 6 ) &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 7 ) &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 8 ) &amp;nbsp;= -1000 &amp;nbsp; ! 10&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 9 ) &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 10 ) = 13&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 11 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 12 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 13 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 14 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 15 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 16 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 17 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 18 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 19 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 20 ) = -1 &amp;nbsp; &amp;nbsp; ! 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 21 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 22 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 23 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 24 ) = 1 &amp;nbsp; &amp;nbsp; &amp;nbsp;! 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 25 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 26 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 27 ) = 1&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 28 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 29 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 30 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 31 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 32 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 33 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 34 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 35 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 36 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 37 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 38 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 39 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 40 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 41 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 42 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 43 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 44 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 45 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 46 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 47 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 48 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 49 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 50 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 51 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 52 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 53 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 54 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 55 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 56 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 57 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 58 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 59 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 60 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 61 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 62 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 63 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 64 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE THE RIGHT HAND SIDE MATRIX "B_A" FOR PARDISO (FOR VELOCITIES)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 1 , NN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; DO J = 1 , 2&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_A ( (J-1)*NN + I ) = RHS_U_V ( I , J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO SOLVE THE SYSTEM OF EQUATIONS TO OBTAIN INTERMEDIATE VELOCITIES&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INFO_DDNSCSR = 0&lt;/DIV&gt;

&lt;DIV&gt;CALL MKL_DDNSCSR ( JOB_A_DDNSCSR , NN , NN , A_DGESV , NN , A_CSR_DDNSCSR , J_A_DDNSCSR , I_A_DDNSCSR , INFO_DDNSCSR )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C_DGESV = A_DGESV &amp;nbsp; ! REPLACE THE ARRAYS OF MATRICE "A" INTO MATRICE "C" BECAUSE "DGESV" WILL CHANGE "A" !!!&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;INFO_DGESV = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CALL DGESV ( NN , 1 , A_DGESV , NN , IPIV_DGESV , RHS_U_DGESV , NN , INFO_DGESV )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;INFO_DGESV = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CALL DGESV ( NN , 1 , C_DGESV , NN , IPIV_DGESV , RHS_V_DGESV , NN , INFO_DGESV )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO J = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_INT_DGESV ( I , J ) = RHS_U_DGESV ( (I-1)*N + J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;V_INT_DGESV ( I , J ) = RHS_V_DGESV ( (I-1)*N + J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_INT_DGESV ( I , 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;V_INT_DGESV ( I , 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_INT_DGESV ( N2 - 1 , 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_INT_DGESV ( N2 &amp;nbsp; &amp;nbsp; , 1 ) = 2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_INT_DGESV ( N2 + 1 , 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!----------------------------------------------------------------- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! Only Analysis, Reordering And Symbolic Factorization, This Step Also Allocates All Memory That Is Necessary For The Factorization :&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;PHASE_A = 11&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;CALL PARDISO ( PT_A, MAXFCT_A, MNUM_A, MTYPE_A, PHASE_A, N_A, A_CSR_DDNSCSR, I_A_DDNSCSR, J_A_DDNSCSR, PERM_A, NRHS_A, IPARM_A, MSGLVL_A, B_A, X_A, ERROR_A)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! CALL PARDISO ( PT_A, MAXFCT_A, MNUM_A, MTYPE_A, PHASE_A, N_A, A_CSR, RowINDEX_A, COLUMN_A, PERM_A, NRHS_A, IPARM_A, MSGLVL_A, B_A, X_A, ERROR_A)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;IF (ERROR_A .NE. 0) THEN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; WRITE ( * , * ) 'The following ERROR was detected in Analysis, Reordering and Symbolic Factorization for solving VELOCITIES at ITERATION : ', ERROR_A , ITERATION&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; READ &amp;nbsp;( * , * )&lt;/DIV&gt;

&lt;DIV&gt;END IF&lt;/DIV&gt;

&lt;DIV&gt;!-----------------------------------------------------------------&lt;/DIV&gt;

&lt;DIV&gt;! Only Numerical Factorization :&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;PHASE_A = 22 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;CALL PARDISO ( PT_A, MAXFCT_A, MNUM_A, MTYPE_A, PHASE_A, N_A, A_CSR_DDNSCSR, I_A_DDNSCSR, J_A_DDNSCSR, PERM_A, NRHS_A, IPARM_A, MSGLVL_A, B_A, X_A, ERROR_A)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! CALL PARDISO ( PT_A, MAXFCT_A, MNUM_A, MTYPE_A, PHASE_A, N_A, A_CSR, RowINDEX_A, COLUMN_A, PERM_A, NRHS_A, IPARM_A, MSGLVL_A, B_A, X_A, ERROR_A)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;IF (ERROR_A .NE. 0) THEN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; WRITE ( * , * ) 'The following ERROR was detected in Numerical Factorization for solving VELOCITIES at ITERATION : ', ERROR_A , ITERATION&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; READ &amp;nbsp;( * , * )&lt;/DIV&gt;

&lt;DIV&gt;END IF&lt;/DIV&gt;

&lt;DIV&gt;!-----------------------------------------------------------------&lt;/DIV&gt;

&lt;DIV&gt;! Solving With Back Substitution And Iterative Refinement :&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;PHASE_A = 33&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;CALL PARDISO ( PT_A, MAXFCT_A, MNUM_A, MTYPE_A, PHASE_A, N_A, A_CSR_DDNSCSR, I_A_DDNSCSR, J_A_DDNSCSR, PERM_A, NRHS_A, IPARM_A, MSGLVL_A, B_A, X_A, ERROR_A)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! CALL PARDISO ( PT_A, MAXFCT_A, MNUM_A, MTYPE_A, PHASE_A, N_A, A_CSR, RowINDEX_A, COLUMN_A, PERM_A, NRHS_A, IPARM_A, MSGLVL_A, B_A, X_A, ERROR_A)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!-----------------------------------------------------------------&lt;/DIV&gt;

&lt;DIV&gt;! Termination And Release Internal Memory :&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;PHASE_A = -1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;CALL PARDISO ( PT_A, MAXFCT_A, MNUM_A, MTYPE_A, PHASE_A, N_A, A_CSR_DDNSCSR, I_A_DDNSCSR, J_A_DDNSCSR, PERM_A, NRHS_A, IPARM_A, MSGLVL_A, B_A, X_A, ERROR_A)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! CALL PARDISO ( PT_A, MAXFCT_A, MNUM_A, MTYPE_A, PHASE_A, N_A, A_CSR, RowINDEX_A, COLUMN_A, PERM_A, NRHS_A, IPARM_A, MSGLVL_A, B_A, X_A, ERROR_A)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE THE INTERMEDIATE VELOCITIES "U_INT" , "V_INT" FOR PARDISO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; DO J = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; U_INT ( I , J ) = X_A ( (I-1)*N + J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; V_INT ( I , J ) = X_A ( (I-1)*N + J + NN )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; U_INT ( I , 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; V_INT ( I , 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;U_INT ( N2 - 1 , 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;U_INT ( N2 &amp;nbsp; &amp;nbsp; , 1 ) = 2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;U_INT ( N2 + 1 , 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!***************************** TO CALCULATE THE EDITED PRESSURE "P_N1" FROM OBTAINED INTERMEDIATE VELOCITIES&lt;/DIV&gt;

&lt;DIV&gt;!***************************** (AT THE END OF THE FIRST STEP IN EACH IETRATION)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SUM_DGESV = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO J = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_P_DGESV ( (I-1)*N + J ) = (DELTA_X / (2*DELTA_T)) * ( U_INT_DGESV (I,J+1) - U_INT_DGESV (I,J-1) + V_INT_DGESV (I-1,J) - V_INT_DGESV (I+1,J) )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SUM_DGESV = SUM_DGESV + RHS_P_DGESV ( N*(I-1)+J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SUM_DGESV = SUM_DGESV / ((N - 2)*(N - 2))&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_P_DGESV = RHS_P_DGESV - SUM_DGESV&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!***************************** FOR PARDISO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;SUM = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; DO J = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RHS_P ( (I-1)*N + J ) = (DELTA_X / (2*DELTA_T)) * ( U_INT(I,J+1) - U_INT(I,J-1) + V_INT(I-1,J) - V_INT(I+1,J) )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;SUM = SUM + RHS_P ( (I-1)*N + J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;SUM = SUM / ( (N-2) * (N-2) )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;RHS_P = RHS_P - SUM&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!********** TO DETERMINE THE OTHER COEFFICIENTS IN THE MATRIX OF COEFFICCNETS FOR PRESSURES IN EACH ITERATION&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO J = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (I-1)*N + J , (I-1)*N + J - N ) = &amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! COEFFICIENT FOR THE UPPER NODE &amp;nbsp;: ( I - 1 , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (I-1)*N + J , (I-1)*N + J - 1 ) = &amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! COEFFICIENT FOR THE LEFT NODE &amp;nbsp; : ( I &amp;nbsp; &amp;nbsp; , J - 1 )&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (I-1)*N + J , (I-1)*N + J &amp;nbsp; &amp;nbsp; ) = -4 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! COEFFICIENT FOR THE NODE ITSELF : ( I &amp;nbsp; &amp;nbsp; , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (I-1)*N + J , (I-1)*N + J + 1 ) = &amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! COEFFICIENT FOR THE RIGHT NODE &amp;nbsp;: ( I &amp;nbsp; &amp;nbsp; , J + 1 )&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (I-1)*N + J , (I-1)*N + J + N ) = &amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! COEFFICIENT FOR THE LOWER NODE &amp;nbsp;: ( I + 1 , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = N2 , N2&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO J = N2 , N2&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (I-1)*N + J , (I-1)*N + J - N ) = 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! COEFFICIENT FOR THE UPPER NODE &amp;nbsp;: ( I - 1 , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (I-1)*N + J , (I-1)*N + J - 1 ) = 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! COEFFICIENT FOR THE LEFT NODE &amp;nbsp; : ( I &amp;nbsp; &amp;nbsp; , J - 1 )&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (I-1)*N + J , (I-1)*N + J &amp;nbsp; &amp;nbsp; ) = 1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! COEFFICIENT FOR THE NODE ITSELF : ( I &amp;nbsp; &amp;nbsp; , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (I-1)*N + J , (I-1)*N + J + 1 ) = 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! COEFFICIENT FOR THE RIGHT NODE &amp;nbsp;: ( I &amp;nbsp; &amp;nbsp; , J + 1 )&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (I-1)*N + J , (I-1)*N + J + N ) = 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! COEFFICIENT FOR THE LOWER NODE &amp;nbsp;: ( I + 1 , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_P_DGESV ( (I-1)*N + J ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 0 : THE ARTIFICIAL BOUNDARY CONDITION FOR PRESSURES&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** ON THE LEFT SIDE AND THE RIGHT SIDE OF THE DOMAIN&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 2 , N-1 &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( (I-1)*N + 1 , (I-1)*N + 1 &amp;nbsp; &amp;nbsp; ) = -4.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( I &amp;nbsp; &amp;nbsp; , 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( (I-1)*N + 1 , (I-1)*N + 1 - N ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( I - 1 , 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( (I-1)*N + 1 , (I-1)*N + 1 + N ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( I + 1 , 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( (I-1)*N + 1 , (I-1)*N + 1 + 1 ) = &amp;nbsp;2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( I &amp;nbsp; &amp;nbsp; , 2 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RHS_P_DGESV ( (I-1)*N + 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( I*N , I*N &amp;nbsp; &amp;nbsp; ) = -4.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( I &amp;nbsp; &amp;nbsp; , N &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( I*N , I*N - 1 ) = &amp;nbsp;2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( I &amp;nbsp; &amp;nbsp; , N-1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( I*N , I*N - N ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( I - 1 , N &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( I*N , I*N + N ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( I + 1 , N &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RHS_P_DGESV ( I*N ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 0 FOR PARDISO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! IT DID IN "B_CSR", "COLUMN_B" AND "RowINDEX_B"&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 1 FOR PARDISO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 2 , N-1 &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR THE LEFT SIDE OF THE DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; RHS_P ( (I-1)*N + 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 2 , N-1 &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR THE RIGHT SIDE OF THE DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;RHS_P ( I*N ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 2 : THE ARTIFICIAL BOUNDARY CONDITION FOR PRESSURES&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** ON THE UPPER SIDE AND THE LOWER SIDE OF THE DOMAIN&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO J = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( J , J &amp;nbsp; &amp;nbsp; ) = -4.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( 1 , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( J , J + N ) = &amp;nbsp;2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( 2 , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( J , J + 1 ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( 1 , J + 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( J , J - 1 ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( 1 , J - 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RHS_P_DGESV ( J ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( (N-1)*N + J , (N-1)*N + J &amp;nbsp; &amp;nbsp; ) = -4.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( N &amp;nbsp; &amp;nbsp; , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( (N-1)*N + J , (N-1)*N + J + 1 ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( N &amp;nbsp; &amp;nbsp; , J + 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( (N-1)*N + J , (N-1)*N + J - 1 ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( N &amp;nbsp; &amp;nbsp; , J - 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( (N-1)*N + J , (N-1)*N + J - N ) = &amp;nbsp;2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( N - 1 , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RHS_P_DGESV ( (N-1)*N + J ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 2 FOR PARDISO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO J = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;RHS_P ( J ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;RHS_P ( (N-1)*N + J ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 3 : AVERAGING OF TWO ADJACENT NODES FOR 4 CORNERS&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!*** FOR POINT ( 1 , 1 ) OF THE DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( 1 , 1 &amp;nbsp; &amp;nbsp; ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( 1 , 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( 1 , 2 &amp;nbsp; &amp;nbsp; ) = -0.5D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( 1 , 2 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( 1 , 1 + N ) = -0.5D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( 2 , 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_P_DGESV ( 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!*** FOR POINT ( 1 , N ) OF THE DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( N , N &amp;nbsp; &amp;nbsp; ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( 1 , N &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( N , N - 1 ) = -0.5D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( 1 , N - 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( N , N + N ) = -0.5D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( 2 , N &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_P_DGESV ( 51 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!*** FOR POINT ( N , 1 ) OF THE DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (N-1)*N + 1 , (N-1)*N + 1 &amp;nbsp; &amp;nbsp; ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( N &amp;nbsp; &amp;nbsp; , 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (N-1)*N + 1 , (N-1)*N + 2 &amp;nbsp; &amp;nbsp; ) = -0.5D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( N &amp;nbsp; &amp;nbsp; , 2 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (N-1)*N + 1 , (N-1)*N + 1 - N ) = -0.5D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( N - 1 , 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_P_DGESV ( (N-1)*N + 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!*** FOR POINT ( N , N ) OF THE DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( N*N , N*N &amp;nbsp; &amp;nbsp; ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( N &amp;nbsp; &amp;nbsp; , N &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( N*N , N*N - 1 ) = -0.5D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( N &amp;nbsp; &amp;nbsp; , N - 1 ) &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( N*N , N*N - N ) = -0.5D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( N - 1 , N &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_P_DGESV ( N*N ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 3 FOR PARDISO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ********** FOR POINT ( 1 , 1 ) OF DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;RHS_P ( 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ********** FOR POINT ( 1 , N ) OF DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;RHS_P ( 51 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ********** FOR POINT ( N , 1 ) OF DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;RHS_P ( (N-1)*N + 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ********** FOR POINT ( N , N ) OF DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;RHS_P ( N*N ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!******************** INITIALIZING THE VARIABLES WHICH NEEDED FOR CALLING PARDISO (FOR PRESSURES)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 1 ) &amp;nbsp;= 1&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 2 ) &amp;nbsp;= 3&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 3 ) &amp;nbsp;= 1&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 4 ) &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 5 ) &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 6 ) &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 7 ) &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 8 ) &amp;nbsp;= -1000 &amp;nbsp; ! 10&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 9 ) &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 10 ) = 13&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 11 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 12 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 13 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 14 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 15 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 16 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 17 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 18 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 19 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 20 ) = -1 &amp;nbsp; &amp;nbsp; ! 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 21 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 22 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 23 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 24 ) = 1 &amp;nbsp; &amp;nbsp; &amp;nbsp;! 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 25 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 26 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 27 ) = 1&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 28 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 29 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 30 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 31 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 32 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 33 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 34 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 35 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 36 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 37 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 38 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 39 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 40 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 41 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 42 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 43 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 44 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 45 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 46 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 47 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 48 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 49 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 50 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 51 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 52 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 53 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 54 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 55 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 56 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 57 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 58 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 59 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 60 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 61 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 62 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 63 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 64 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE THE RIGHT HAND SIDE MATRIX "B_A" FOR PARDISO (FOR PRESSURES)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 1 , NN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; B_B ( I ) = RHS_P ( I )&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO SOLVE THE SYSTEM OF EQUATIONS TO OBTAIN FINAL PRESSURES&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INFO_DDNSCSR = 0&lt;/DIV&gt;

&lt;DIV&gt;CALL MKL_DDNSCSR ( JOB_B_DDNSCSR , NN , NN , B_DGESV , NN , B_CSR_DDNSCSR , J_B_DDNSCSR , I_B_DDNSCSR , INFO_DDNSCSR )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;INFO_DGESV = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CALL DGESV ( NN , 1 , B_DGESV , NN , IPIV_DGESV , RHS_P_DGESV , NN , INFO_DGESV )&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO J = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;P_N1_DGESV ( I , J ) = RHS_P_DGESV ( N*(I-1) + J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!----------------------------------------------------------------- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! Only Analysis, Reordering And Symbolic Factorization, This Step Also Allocates All Memory That Is Necessary For The Factorization :&lt;/DIV&gt;

&lt;DIV&gt;PHASE_B = 11&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;CALL PARDISO ( PT_B, MAXFCT_B, MNUM_B, MTYPE_B, PHASE_B, N_B, B_CSR_DDNSCSR, I_B_DDNSCSR, J_B_DDNSCSR, PERM_B, NRHS_B, IPARM_B, MSGLVL_B, B_B, X_B, ERROR_B)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! CALL PARDISO ( PT_B, MAXFCT_B, MNUM_B, MTYPE_B, PHASE_B, N_B, B_CSR, RowINDEX_B, COLUMN_B, PERM_B, NRHS_B, IPARM_B, MSGLVL_B, B_B, X_B, ERROR_B)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;IF (ERROR_B .NE. 0) THEN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; WRITE ( * , * ) 'The following ERROR was detected in Analysis, Reordering and Symbolic Factorization for solving VELOCITIES at ITERATION : ', ERROR_B , ITERATION&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; READ &amp;nbsp;( * , * )&lt;/DIV&gt;

&lt;DIV&gt;END IF&lt;/DIV&gt;

&lt;DIV&gt;!-----------------------------------------------------------------&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! Only Numerical Factorization :&lt;/DIV&gt;

&lt;DIV&gt;PHASE_B = 22 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;CALL PARDISO ( PT_B, MAXFCT_B, MNUM_B, MTYPE_B, PHASE_B, N_B, B_CSR_DDNSCSR, I_B_DDNSCSR, J_B_DDNSCSR, PERM_B, NRHS_B, IPARM_B, MSGLVL_B, B_B, X_B, ERROR_B)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! CALL PARDISO ( PT_B, MAXFCT_B, MNUM_B, MTYPE_B, PHASE_B, N_B, B_CSR, RowINDEX_B, COLUMN_B, PERM_B, NRHS_B, IPARM_B, MSGLVL_B, B_B, X_B, ERROR_B)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;IF (ERROR_B .NE. 0) THEN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; WRITE ( * , * ) 'The following ERROR was detected in Numerical Factorization for solving VELOCITIES at ITERATION : ', ERROR_B , ITERATION&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; READ &amp;nbsp;( * , * )&lt;/DIV&gt;

&lt;DIV&gt;END IF&lt;/DIV&gt;

&lt;DIV&gt;!-----------------------------------------------------------------&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! Solving With Back Substitution And Iterative Refinement :&lt;/DIV&gt;

&lt;DIV&gt;PHASE_B = 33&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;CALL PARDISO ( PT_B, MAXFCT_B, MNUM_B, MTYPE_B, PHASE_B, N_B, B_CSR_DDNSCSR, I_B_DDNSCSR, J_B_DDNSCSR, PERM_B, NRHS_B, IPARM_B, MSGLVL_B, B_B, X_B, ERROR_B)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! CALL PARDISO ( PT_B, MAXFCT_B, MNUM_B, MTYPE_B, PHASE_B, N_B, B_CSR, RowINDEX_B, COLUMN_B, PERM_B, NRHS_B, IPARM_B, MSGLVL_B, B_B, X_B, ERROR_B)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!-----------------------------------------------------------------&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! Termination And Release Internal Memory :&lt;/DIV&gt;

&lt;DIV&gt;PHASE_B = -1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;CALL PARDISO ( PT_B, MAXFCT_B, MNUM_B, MTYPE_B, PHASE_B, N_B, B_CSR_DDNSCSR, I_B_DDNSCSR, J_B_DDNSCSR, PERM_B, NRHS_B, IPARM_B, MSGLVL_B, B_B, X_B, ERROR_B)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! CALL PARDISO ( PT_B, MAXFCT_B, MNUM_B, MTYPE_B, PHASE_B, N_B, B_CSR, RowINDEX_B, COLUMN_B, PERM_B, NRHS_B, IPARM_B, MSGLVL_B, B_B, X_B, ERROR_B)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!***********************************************************************************************************************************************&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; DO J = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; P_N1 ( I , J ) = X_B ( (I-1)*N + J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ******************** TO CALCULATE "GRADIENT P" AND THEN CALCULATE "U_N1" AND "V_N1" AT THE END OF EACH ITERATION&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO J = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N1_DGESV (I,J) = U_INT_DGESV (I,J) - ( DELTA_T * ( (P_N1_DGESV (I,J+1) - P_N1_DGESV (I,J-1)) / (2*DELTA_X) ) )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;V_N1_DGESV (I,J) = V_INT_DGESV (I,J) - ( DELTA_T * ( (P_N1_DGESV (I-1,J) - P_N1_DGESV (I+1,J)) / (2*DELTA_Y) ) )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ******************** FOR PARDISO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; DO J = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; U_N1 (I,J) = U_INT (I,J) - ( DELTA_T * ( (P_N1 (I,J+1) - P_N1 (I,J-1)) / (2*DELTA_X) ) )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; V_N1 (I,J) = V_INT (I,J) - ( DELTA_T * ( (P_N1 (I-1,J) - P_N1 (I+1,J)) / (2*DELTA_Y) ) )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ******************** ENFORCE THE DIRICHLET BOUNDARY CONDITION OF ON THE LEFT SIDE OF THE DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N1_DGESV ( I , 1 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;V_N1_DGESV ( I , 1 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N1_DGESV ( N2-1 , 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N1_DGESV ( N2 &amp;nbsp; , 1 ) = 2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N1_DGESV ( N2+1 , 1 ) = 0.75D0 * 2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO J = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N_DGESV (I,J) = U_N1_DGESV (I,J)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;V_N_DGESV (I,J) = V_N1_DGESV (I,J)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ******************** FOR PARDISO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; U_N1 ( I , 1 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; V_N1 ( I , 1 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;U_N1 ( N2 - 1 , 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;U_N1 ( N2 &amp;nbsp; &amp;nbsp; , 1 ) = 2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;U_N1 ( N2 + 1 , 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; DO J = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; U_N (I,J) = U_N1 (I,J)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; V_N (I,J) = V_N1 (I,J)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ******************** EXPORTING RESULTS FOR TECHPLOT&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;XITERATION = ITERATION&lt;/DIV&gt;

&lt;DIV&gt;IF ( ITERATION / IPRINT == XITERATION / IPRINT ) THEN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; FORMAT_STRING = "(A14,I6)"&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; WRITE ( FILE_NAME_1 &amp;nbsp;, FORMAT_STRING ) "PARDISO" &amp;nbsp; &amp;nbsp; &amp;nbsp; , ITERATION&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; WRITE ( FILE_NAME_2 &amp;nbsp;, FORMAT_STRING ) "DGESV" &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , ITERATION&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; FINAL_NAME_1 &amp;nbsp;= TRIM(FILE_NAME_1)//".TXT"&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; FINAL_NAME_2 &amp;nbsp;= TRIM(FILE_NAME_2)//".TXT" &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; OPEN ( 1 , FILE = FINAL_NAME_1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; 101 &amp;nbsp; FORMAT (7F30.16)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; DO I = N , 1 , -1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DO J = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; WRITE ( 1 , 101 ) DELTA_X * (J-1) , DELTA_Y * (N-I) , U_INT (I,J) , V_INT (I,J) , U_N1 (I,J) , V_N1 (I,J) , P_N1 (I,J)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; CLOSE ( 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; OPEN ( 2 , FILE = FINAL_NAME_2 ) &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; DO I = N , 1 , -1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DO J = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; WRITE ( 2 , 101 ) DELTA_X * (J-1) , DELTA_Y * (N-I) , U_INT_DGESV (I,J) , V_INT_DGESV (I,J) , U_N1_DGESV (I,J) , V_N1_DGESV (I,J) , P_N1_DGESV (I,J)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; CLOSE ( 2 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;END IF&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ********************************************************************************&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;! ********************************************************************************&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END PROGRAM DGESV_VS_DDNSCSR_PARDISO&lt;/DIV&gt;</description>
      <pubDate>Fri, 11 Aug 2017 09:16:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/problem-with-PARDISO-and-DSS/m-p/1166756#M28291</guid>
      <dc:creator>Abdolreza_A_</dc:creator>
      <dc:date>2017-08-11T09:16:34Z</dc:date>
    </item>
    <item>
      <title> </title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/problem-with-PARDISO-and-DSS/m-p/1166757#M28292</link>
      <description>&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;PROGRAM DGESV_VS_DDNSCSR_PARDISO&lt;/DIV&gt;

&lt;DIV&gt;IMPLICIT NONE&lt;/DIV&gt;

&lt;DIV&gt;! INCLUDE 'MKL_DSS.f90' ! Include the standard DSS "header file."&lt;/DIV&gt;

&lt;DIV&gt;USE MKL_DSS&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************************************************************************&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;CHARACTER (len=30) &amp;nbsp; :: FILE_NAME_1 , FILE_NAME_2&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;CHARACTER (len=1024) :: FINAL_NAME_1 , FINAL_NAME_2&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;CHARACTER (len=1024) :: FORMAT_STRING&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** ORDINARY GENERAL VARIABLES ******************************&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INTEGER, PARAMETER &amp;nbsp; :: N &amp;nbsp;= 51 &amp;nbsp; &amp;nbsp; &amp;nbsp; ! GENERAL &amp;nbsp; &amp;nbsp; N MUST BE ODD&lt;/DIV&gt;

&lt;DIV&gt;INTEGER, PARAMETER &amp;nbsp; :: NN = N**2 &amp;nbsp; &amp;nbsp; ! GENERAL&lt;/DIV&gt;

&lt;DIV&gt;INTEGER, PARAMETER &amp;nbsp; :: N2 = (N/2)+1 &amp;nbsp;! GENERAL&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , PARAMETER :: DELTA_X &amp;nbsp;= 1.0D0 / (N-1) &amp;nbsp; &amp;nbsp; ! GENERAL&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , PARAMETER :: DELTA_Y &amp;nbsp;= 1.0D0 / (N-1) &amp;nbsp; &amp;nbsp; ! GENERAL&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , PARAMETER :: DELTA_T &amp;nbsp;= 0.01D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! GENERAL&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , PARAMETER :: REYNOLDS = 160.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! GENERAL&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: I , J , ITERATION , IPRINT &amp;nbsp; &amp;nbsp;! GENERAL&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION :: XITERATION &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! GENERAL&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: INFO_DGESV , INFO_DDNSCSR&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DOUBLE PRECISION :: C_A_DGESV , C_B_DGESV , C_C_DGESV , C_D_DGESV , C_E_DGESV , SUM_DGESV , TEMP1_DGESV&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DOUBLE PRECISION , DIMENSION ( NN ) &amp;nbsp; &amp;nbsp; &amp;nbsp;:: RHS_U_DGESV , RHS_V_DGESV , RHS_P_DGESV , IPIV_DGESV , TEMPORARY_DGESV&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DOUBLE PRECISION , DIMENSION ( N , N ) &amp;nbsp; :: U_N_DGESV , V_N_DGESV , U_INT_DGESV , V_INT_DGESV , U_N1_DGESV , V_N1_DGESV , P_N1_DGESV&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DOUBLE PRECISION , DIMENSION ( NN , NN ) :: A_DGESV , B_DGESV , C_DGESV&lt;SPAN style="white-space:pre"&gt; &lt;/SPAN&gt;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INTEGER :: INFO&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION :: C_A , C_B , C_C , C_D , C_E , SUM&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , DIMENSION ( NN ) &amp;nbsp; &amp;nbsp; :: RHS_P&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , DIMENSION ( N , N ) &amp;nbsp;:: U_N , V_N , U_INT , V_INT , U_N1 , V_N1 , P_N1&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , DIMENSION ( NN , 2 ) :: RHS_U_V&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , PARAMETER :: NON_ZERO_OF_A = 5 * (N**2) - (10*N) + 8 &amp;nbsp; &amp;nbsp;! (12503)&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , PARAMETER :: NON_ZERO_OF_B = 5 * (N**2) - ( 4*N) - 4 &amp;nbsp; &amp;nbsp;! (12797)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** FOR "DDNSCSR" TRANSFORMER SUBROUTINE ******************************&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , DIMENSION (6) :: JOB_A_DDNSCSR , JOB_B_DDNSCSR&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , DIMENSION (NON_ZERO_OF_A) :: A_CSR_DDNSCSR &amp;nbsp;! == A_CSR &amp;nbsp; &amp;nbsp; &amp;nbsp; FOR "DDNSCSR" TRANSFORMER SUBROUTINE&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , DIMENSION (NON_ZERO_OF_B) :: B_CSR_DDNSCSR &amp;nbsp;! == B_CSR &amp;nbsp; &amp;nbsp; &amp;nbsp; FOR "DDNSCSR" TRANSFORMER SUBROUTINE&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , DIMENSION (NON_ZERO_OF_A) :: J_A_DDNSCSR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! == COLUMN_A &amp;nbsp; &amp;nbsp;FOR "DDNSCSR" TRANSFORMER SUBROUTINE&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , DIMENSION (NON_ZERO_OF_B) :: J_B_DDNSCSR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! == COLUMN_B &amp;nbsp; &amp;nbsp;FOR "DDNSCSR" TRANSFORMER SUBROUTINE&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , DIMENSION ( NN + 1 ) :: I_A_DDNSCSR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! == RowINDEX_A &amp;nbsp;FOR "DDNSCSR" TRANSFORMER SUBROUTINE&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , DIMENSION ( NN + 1 ) :: I_B_DDNSCSR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! == RowINDEX_B &amp;nbsp;FOR "DDNSCSR" TRANSFORMER SUBROUTINE&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO DEFINE THE VARIABLES NEEDED FOR PARDISO ******************************&lt;/DIV&gt;

&lt;DIV&gt;! ( PT_A, MAXFCT_A, MNUM_A, MTYPE_A, PHASE_A, N_A, A_CSR, IndexROW_A, COLUMN_A, PERM_A, NRHS_A, IPARM_A,&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! &amp;nbsp;MSGLVL_A, B_A, X_A, ERROR_A)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INTEGER*8 , DIMENSION ( 64 ) :: PT_A &amp;nbsp; &amp;nbsp; = 0&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: MAXFCT_A = 1&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: MNUM_A &amp;nbsp; = 1&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: MTYPE_A &amp;nbsp;= 11&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: PHASE_A&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , PARAMETER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: N_A &amp;nbsp; &amp;nbsp; &amp;nbsp;= NN&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , DIMENSION ( N_A ) &amp;nbsp;:: PERM_A&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , PARAMETER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: NRHS_A &amp;nbsp; = 2&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , DIMENSION ( 64 ) &amp;nbsp; :: IPARM_A &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: MSGLVL_A = 1&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , DIMENSION ( N_A * NRHS_A ) :: B_A&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , DIMENSION ( N_A * NRHS_A ) :: X_A&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: ERROR_A &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO DEFINE THE VARIABLES NEEDED FOR PARDISO ******************************&lt;/DIV&gt;

&lt;DIV&gt;! ( PT_B, MAXFCT_B, MNUM_B, MTYPE_B, PHASE_B, N_B, B_CSR, IndexROW_B, COLUMN_B, PERM_B, NRHS_B, IPARM_B,&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! MSGLVL_B, B_B, X_B, ERROR_B)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INTEGER*8 , DIMENSION ( 64 ) :: PT_B &amp;nbsp; &amp;nbsp; = 0&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: MAXFCT_B = 1&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: MNUM_B &amp;nbsp; = 1&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: MTYPE_B &amp;nbsp;= 11&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: PHASE_B&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , PARAMETER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: N_B &amp;nbsp; &amp;nbsp; &amp;nbsp;= NN&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , DIMENSION ( N_B ) &amp;nbsp;:: PERM_B&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , PARAMETER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: NRHS_B &amp;nbsp; = 1&lt;/DIV&gt;

&lt;DIV&gt;INTEGER , DIMENSION ( 64 ) &amp;nbsp; :: IPARM_B &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: MSGLVL_B = 1&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , DIMENSION ( N_B * NRHS_B ) :: B_B&lt;/DIV&gt;

&lt;DIV&gt;DOUBLE PRECISION , DIMENSION ( N_B * NRHS_B ) :: X_B&lt;/DIV&gt;

&lt;DIV&gt;INTEGER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:: ERROR_B &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ***********************************************************************************************&lt;/DIV&gt;

&lt;DIV&gt;INTEGER :: ERROR&lt;/DIV&gt;

&lt;DIV&gt;TYPE ( MKL_DSS_HANDLE ) :: HANDLE ! Allocate storage for the solver handle.&lt;/DIV&gt;

&lt;DIV&gt;INTEGER OERM (1)&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE THE MARICES WHICH WE NEED ******************************&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;JOB_A_DDNSCSR (1) = 0&lt;/DIV&gt;

&lt;DIV&gt;JOB_A_DDNSCSR (2) = 1&lt;/DIV&gt;

&lt;DIV&gt;JOB_A_DDNSCSR (3) = 1&lt;/DIV&gt;

&lt;DIV&gt;JOB_A_DDNSCSR (4) = 2&lt;/DIV&gt;

&lt;DIV&gt;JOB_A_DDNSCSR (5) = NON_ZERO_OF_A &amp;nbsp; &amp;nbsp; ! NON_ZERO_OF_A = 5 * (N**2) - (10*N) + 8 = 12503&lt;/DIV&gt;

&lt;DIV&gt;JOB_A_DDNSCSR (6) = 1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;JOB_B_DDNSCSR (1) = 0&lt;/DIV&gt;

&lt;DIV&gt;JOB_B_DDNSCSR (2) = 1&lt;/DIV&gt;

&lt;DIV&gt;JOB_B_DDNSCSR (3) = 1&lt;/DIV&gt;

&lt;DIV&gt;JOB_B_DDNSCSR (4) = 2&lt;/DIV&gt;

&lt;DIV&gt;JOB_B_DDNSCSR (5) = NON_ZERO_OF_B &amp;nbsp; &amp;nbsp; ! NON_ZERO_OF_B = 5 * (N**2) - ( 4*N) - 4 = 12797&lt;/DIV&gt;

&lt;DIV&gt;JOB_B_DDNSCSR (6) = 1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;V_N_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_INT_DGESV &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;V_INT_DGESV &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N1_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;V_N1_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;P_N1_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;U_N &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;V_N &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;U_INT &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;V_INT &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;U_N1 &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;V_N1 &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;P_N1 &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;IPRINT = 1&lt;/DIV&gt;

&lt;DIV&gt;DO ITERATION = &amp;nbsp;1 , 1000 &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!**************************************** TO MAKE THE MATRICES ( IN EACH ITERATION ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_U_DGESV &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_V_DGESV &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_P_DGESV &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;RHS_U_V &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;RHS_P &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 1 : DIRICHLET BOUNDARY FOR " U " AND " V " ON THE LEFT SIDE OF THE DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N_DGESV ( I , 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;V_N_DGESV ( I , 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N_DGESV ( N2 - 1 , 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N_DGESV ( N2 &amp;nbsp; &amp;nbsp; , 1 ) = 2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N_DGESV ( N2 + 1 , 1 ) = 0.75D0 * 2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( (I-1)*N + 1 , (I-1)*N + 1 ) = 1.0D0&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_U_DGESV ( (I-1)*N + 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_V_DGESV ( (I-1)*N + 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_U_DGESV ( (N2-2)*N + 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_U_DGESV ( (N2-1)*N + 1 ) = 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_U_DGESV ( (N2-0)*N + 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 1 FOR "PARDISO"&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; U_N ( I , 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; V_N ( I , 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;U_N ( N2 - 1 , 1 ) &amp;nbsp;= 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;U_N ( N2 &amp;nbsp; &amp;nbsp; , 1 ) &amp;nbsp;= 2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;U_N ( N2 + 1 , 1 ) &amp;nbsp;= 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;RHS_U_V ( (N2-2)*N + 1 , 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;RHS_U_V ( (N2-1)*N + 1 , 1 ) = 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;RHS_U_V ( (N2-0)*N + 1 , 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 2 : ALL NODES OF THE DOMAIN EXCEPT THE NODES WHICH ARE ON THE BOUNDARIES&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO J = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C_A_DGESV = ( V_N_DGESV (I,J) / ( 2 * DELTA_Y ) ) - ( ( 1 / REYNOLDS ) * ( 1 / ( DELTA_Y * DELTA_Y ) ) ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! UPPER NODE&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C_B_DGESV = -1 * ( U_N_DGESV (I,J) / ( 2 * DELTA_X ) ) - ( (1 / REYNOLDS) * ( 1/(DELTA_X * DELTA_X ) ) ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! LEFT NODE&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C_C_DGESV = ( 1 / DELTA_T ) + ( ( 1 / REYNOLDS ) * ( ( 2 / ( DELTA_X * DELTA_X ) ) + ( 2 / ( DELTA_Y * DELTA_Y ) ) ) ) &amp;nbsp;! THE NODE ITSELF&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C_D_DGESV = ( U_N_DGESV (I,J) / ( 2 * DELTA_X ) ) - ( ( 1 / REYNOLDS ) * ( 1 / ( DELTA_X * DELTA_X ) ) ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! RIGHT NODE&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C_E_DGESV = -1 * ( V_N_DGESV (I,J) / ( 2 * DELTA_Y ) ) - ( ( 1 / REYNOLDS ) * ( 1 / &amp;nbsp;(DELTA_Y * DELTA_Y ) ) ) &amp;nbsp; ! LOWER NODE&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( (I-1)*N + J , (I-1)*N + J - N ) = C_A_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! COEFFICIENT FOR THE UPPER NODE &amp;nbsp;: ( I - 1 , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( (I-1)*N + J , (I-1)*N + J - 1 ) = C_B_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! COEFFICIENT FOR THE LEFT NODE &amp;nbsp; : ( I &amp;nbsp; &amp;nbsp; , J - 1 )&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( (I-1)*N + J , (I-1)*N + J &amp;nbsp; &amp;nbsp; ) = C_C_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! COEFFICIENT FOR THE NODE ITSELF : ( I &amp;nbsp; &amp;nbsp; , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( (I-1)*N + J , (I-1)*N + J + 1 ) = C_D_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! COEFFICIENT FOR THE RIGHT NODE &amp;nbsp;: ( I &amp;nbsp; &amp;nbsp; , J + 1 )&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( (I-1)*N + J , (I-1)*N + J + N ) = C_E_DGESV &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! COEFFICIENT FOR THE LOWER NODE &amp;nbsp;: ( I + 1 , J &amp;nbsp; &amp;nbsp; ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_U_DGESV ( (I-1)*N + J ) = U_N_DGESV ( I , J ) / DELTA_T&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_V_DGESV ( (I-1)*N + J ) = V_N_DGESV ( I , J ) / DELTA_T &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 2 FOR "PARDISO"&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; DO J = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; C_A = ( V_N (I,J) / ( 2 * DELTA_Y ) ) - ( ( 1 / REYNOLDS ) * ( 1 / ( DELTA_Y * DELTA_Y ) ) ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! UPPER NODE&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; C_B = -1 * ( U_N (I,J) / ( 2 * DELTA_X ) ) - ( ( 1 / REYNOLDS ) * ( 1 / ( DELTA_X * DELTA_X ) ) ) &amp;nbsp; ! LEFT NODE&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; C_C = ( 1 / DELTA_T ) + ( ( 1 / REYNOLDS ) * ( ( 2 / ( DELTA_X * DELTA_X ) ) + ( 2 / ( DELTA_Y * DELTA_Y ) ) ) ) &amp;nbsp; ! THE NODE ITSELF&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; C_D = ( U_N (I,J) / ( 2 * DELTA_X ) ) - ( ( 1 / REYNOLDS ) * ( 1 / ( DELTA_X * DELTA_X ) ) ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! RIGHT NODE&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; C_E = -1 * ( V_N (I,J) / ( 2 * DELTA_Y ) ) - ( ( 1 / REYNOLDS ) * ( 1 / ( DELTA_Y * DELTA_Y ) ) ) &amp;nbsp; ! LOWER NODE&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RHS_U_V ( (I-1)*N + J , 1 ) = U_N ( I , J ) / DELTA_T&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RHS_U_V ( (I-1)*N + J , 2 ) = V_N ( I , J ) / DELTA_T &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 3 : THE HOMOGENOUS BOUNDARY CONDITION FOR THE UPPER &amp;amp; THE LOWER SIDE OF THE DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;! (ROUND U / ROUND Y = ROUND V / ROUND Y = 0) &amp;nbsp;(2nd Order Neumann)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO J = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( J , J ) &amp;nbsp; &amp;nbsp; &amp;nbsp; = -3.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( 1 , J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( J , J + N ) &amp;nbsp; = &amp;nbsp;4.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( 2 , J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( J , J + 2*N ) = -1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( 3 , J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_U_DGESV ( J ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_V_DGESV ( J ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( (N-1)*N + J , (N-1)*N + J &amp;nbsp; &amp;nbsp; &amp;nbsp; ) = -3.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( N &amp;nbsp; &amp;nbsp; , J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( (N-1)*N + J , (N-1)*N + J - N &amp;nbsp; ) = &amp;nbsp;4.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( N - 1 , J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( (N-1)*N + J , (N-1)*N + J - 2*N ) = -1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( N - 2 , J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_U_DGESV ( (N-1)*N + J ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_V_DGESV ( (N-1)*N + J ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 3 FOR "PARDISO"&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO J = 2 , N-1&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; RHS_U_V ( J , 1 ) &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; RHS_U_V ( J , 2 ) &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; RHS_U_V ( (N-1)*N + J , 1 ) &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; RHS_U_V ( (N-1)*N + J , 2 ) &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 4 : THE HOMOGENOUS BOUNDARY CONDITION ON THE RIGHT SIDE OF THE DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;! ( ROUND U / ROUND Y = 0 ) &amp;amp; ( ROUND V / ROUND X = 0 ) (2nd Order Neumann)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( I*N , I*N &amp;nbsp; &amp;nbsp; ) &amp;nbsp;= -3.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( I , N ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( I*N , I*N - 1 ) &amp;nbsp;= &amp;nbsp;4.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( I , N-1 ) &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A_DGESV ( I*N , I*N - 2 ) &amp;nbsp;= -1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( I , N-2 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_U_DGESV ( I*N ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_V_DGESV ( I*N ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 4 FOR "PARDISO"&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; RHS_U_V ( I*N , 1 ) &amp;nbsp;= 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; RHS_U_V ( I*N , 2 ) &amp;nbsp;= 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!******************** INITIALIZING THE VARIABLES WHICH NEEDED FOR CALLING PARDISO (FOR VELOCITIES)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 1 ) &amp;nbsp;= 1&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 2 ) &amp;nbsp;= 3&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 3 ) &amp;nbsp;= 1&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 4 ) &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 5 ) &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 6 ) &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 7 ) &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 8 ) &amp;nbsp;= -1000 &amp;nbsp; ! 10&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 9 ) &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 10 ) = 13&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 11 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 12 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 13 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 14 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 15 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 16 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 17 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 18 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 19 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 20 ) = -1 &amp;nbsp; &amp;nbsp; ! 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 21 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 22 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 23 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 24 ) = 1 &amp;nbsp; &amp;nbsp; &amp;nbsp;! 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 25 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 26 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 27 ) = 1&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 28 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 29 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 30 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 31 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 32 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 33 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 34 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 35 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 36 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 37 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 38 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 39 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 40 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 41 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 42 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 43 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 44 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 45 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 46 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 47 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 48 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 49 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 50 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 51 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 52 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 53 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 54 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 55 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 56 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 57 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 58 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 59 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 60 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 61 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 62 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_A ( 63 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_A ( 64 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE THE RIGHT HAND SIDE MATRIX "B_A" FOR PARDISO (FOR VELOCITIES)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 1 , NN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; DO J = 1 , 2&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_A ( (J-1)*NN + I ) = RHS_U_V ( I , J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO SOLVE THE SYSTEM OF EQUATIONS TO OBTAIN INTERMEDIATE VELOCITIES&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INFO_DDNSCSR = 0&lt;/DIV&gt;

&lt;DIV&gt;CALL MKL_DDNSCSR ( JOB_A_DDNSCSR , NN , NN , A_DGESV , NN , A_CSR_DDNSCSR , J_A_DDNSCSR , I_A_DDNSCSR , INFO_DDNSCSR )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C_DGESV = A_DGESV &amp;nbsp; ! REPLACE THE ARRAYS OF MATRICE "A" INTO MATRICE "C" BECAUSE "DGESV" WILL CHANGE "A" !!!&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;INFO_DGESV = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CALL DGESV ( NN , 1 , A_DGESV , NN , IPIV_DGESV , RHS_U_DGESV , NN , INFO_DGESV )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;INFO_DGESV = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CALL DGESV ( NN , 1 , C_DGESV , NN , IPIV_DGESV , RHS_V_DGESV , NN , INFO_DGESV )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO J = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_INT_DGESV ( I , J ) = RHS_U_DGESV ( (I-1)*N + J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;V_INT_DGESV ( I , J ) = RHS_V_DGESV ( (I-1)*N + J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_INT_DGESV ( I , 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;V_INT_DGESV ( I , 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_INT_DGESV ( N2 - 1 , 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_INT_DGESV ( N2 &amp;nbsp; &amp;nbsp; , 1 ) = 2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_INT_DGESV ( N2 + 1 , 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!----------------------------------------------------------------- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! Only Analysis, Reordering And Symbolic Factorization, This Step Also Allocates All Memory That Is Necessary For The Factorization :&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;PHASE_A = 11&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;CALL PARDISO ( PT_A, MAXFCT_A, MNUM_A, MTYPE_A, PHASE_A, N_A, A_CSR_DDNSCSR, I_A_DDNSCSR, J_A_DDNSCSR, PERM_A, NRHS_A, IPARM_A, MSGLVL_A, B_A, X_A, ERROR_A)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! CALL PARDISO ( PT_A, MAXFCT_A, MNUM_A, MTYPE_A, PHASE_A, N_A, A_CSR, RowINDEX_A, COLUMN_A, PERM_A, NRHS_A, IPARM_A, MSGLVL_A, B_A, X_A, ERROR_A)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;IF (ERROR_A .NE. 0) THEN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; WRITE ( * , * ) 'The following ERROR was detected in Analysis, Reordering and Symbolic Factorization for solving VELOCITIES at ITERATION : ', ERROR_A , ITERATION&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; READ &amp;nbsp;( * , * )&lt;/DIV&gt;

&lt;DIV&gt;END IF&lt;/DIV&gt;

&lt;DIV&gt;!-----------------------------------------------------------------&lt;/DIV&gt;

&lt;DIV&gt;! Only Numerical Factorization :&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;PHASE_A = 22 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;CALL PARDISO ( PT_A, MAXFCT_A, MNUM_A, MTYPE_A, PHASE_A, N_A, A_CSR_DDNSCSR, I_A_DDNSCSR, J_A_DDNSCSR, PERM_A, NRHS_A, IPARM_A, MSGLVL_A, B_A, X_A, ERROR_A)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! CALL PARDISO ( PT_A, MAXFCT_A, MNUM_A, MTYPE_A, PHASE_A, N_A, A_CSR, RowINDEX_A, COLUMN_A, PERM_A, NRHS_A, IPARM_A, MSGLVL_A, B_A, X_A, ERROR_A)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;IF (ERROR_A .NE. 0) THEN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; WRITE ( * , * ) 'The following ERROR was detected in Numerical Factorization for solving VELOCITIES at ITERATION : ', ERROR_A , ITERATION&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; READ &amp;nbsp;( * , * )&lt;/DIV&gt;

&lt;DIV&gt;END IF&lt;/DIV&gt;

&lt;DIV&gt;!-----------------------------------------------------------------&lt;/DIV&gt;

&lt;DIV&gt;! Solving With Back Substitution And Iterative Refinement :&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;PHASE_A = 33&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;CALL PARDISO ( PT_A, MAXFCT_A, MNUM_A, MTYPE_A, PHASE_A, N_A, A_CSR_DDNSCSR, I_A_DDNSCSR, J_A_DDNSCSR, PERM_A, NRHS_A, IPARM_A, MSGLVL_A, B_A, X_A, ERROR_A)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! CALL PARDISO ( PT_A, MAXFCT_A, MNUM_A, MTYPE_A, PHASE_A, N_A, A_CSR, RowINDEX_A, COLUMN_A, PERM_A, NRHS_A, IPARM_A, MSGLVL_A, B_A, X_A, ERROR_A)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!-----------------------------------------------------------------&lt;/DIV&gt;

&lt;DIV&gt;! Termination And Release Internal Memory :&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;PHASE_A = -1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;CALL PARDISO ( PT_A, MAXFCT_A, MNUM_A, MTYPE_A, PHASE_A, N_A, A_CSR_DDNSCSR, I_A_DDNSCSR, J_A_DDNSCSR, PERM_A, NRHS_A, IPARM_A, MSGLVL_A, B_A, X_A, ERROR_A)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! CALL PARDISO ( PT_A, MAXFCT_A, MNUM_A, MTYPE_A, PHASE_A, N_A, A_CSR, RowINDEX_A, COLUMN_A, PERM_A, NRHS_A, IPARM_A, MSGLVL_A, B_A, X_A, ERROR_A)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE THE INTERMEDIATE VELOCITIES "U_INT" , "V_INT" FOR PARDISO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; DO J = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; U_INT ( I , J ) = X_A ( (I-1)*N + J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; V_INT ( I , J ) = X_A ( (I-1)*N + J + NN )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; U_INT ( I , 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; V_INT ( I , 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;U_INT ( N2 - 1 , 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;U_INT ( N2 &amp;nbsp; &amp;nbsp; , 1 ) = 2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;U_INT ( N2 + 1 , 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!***************************** TO CALCULATE THE EDITED PRESSURE "P_N1" FROM OBTAINED INTERMEDIATE VELOCITIES&lt;/DIV&gt;

&lt;DIV&gt;!***************************** (AT THE END OF THE FIRST STEP IN EACH IETRATION)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SUM_DGESV = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO J = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_P_DGESV ( (I-1)*N + J ) = (DELTA_X / (2*DELTA_T)) * ( U_INT_DGESV (I,J+1) - U_INT_DGESV (I,J-1) + V_INT_DGESV (I-1,J) - V_INT_DGESV (I+1,J) )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SUM_DGESV = SUM_DGESV + RHS_P_DGESV ( N*(I-1)+J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SUM_DGESV = SUM_DGESV / ((N - 2)*(N - 2))&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_P_DGESV = RHS_P_DGESV - SUM_DGESV&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!***************************** FOR PARDISO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;SUM = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; DO J = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RHS_P ( (I-1)*N + J ) = (DELTA_X / (2*DELTA_T)) * ( U_INT(I,J+1) - U_INT(I,J-1) + V_INT(I-1,J) - V_INT(I+1,J) )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;SUM = SUM + RHS_P ( (I-1)*N + J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;SUM = SUM / ( (N-2) * (N-2) )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;RHS_P = RHS_P - SUM&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!********** TO DETERMINE THE OTHER COEFFICIENTS IN THE MATRIX OF COEFFICCNETS FOR PRESSURES IN EACH ITERATION&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO J = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (I-1)*N + J , (I-1)*N + J - N ) = &amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! COEFFICIENT FOR THE UPPER NODE &amp;nbsp;: ( I - 1 , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (I-1)*N + J , (I-1)*N + J - 1 ) = &amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! COEFFICIENT FOR THE LEFT NODE &amp;nbsp; : ( I &amp;nbsp; &amp;nbsp; , J - 1 )&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (I-1)*N + J , (I-1)*N + J &amp;nbsp; &amp;nbsp; ) = -4 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! COEFFICIENT FOR THE NODE ITSELF : ( I &amp;nbsp; &amp;nbsp; , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (I-1)*N + J , (I-1)*N + J + 1 ) = &amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! COEFFICIENT FOR THE RIGHT NODE &amp;nbsp;: ( I &amp;nbsp; &amp;nbsp; , J + 1 )&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (I-1)*N + J , (I-1)*N + J + N ) = &amp;nbsp;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! COEFFICIENT FOR THE LOWER NODE &amp;nbsp;: ( I + 1 , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = N2 , N2&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO J = N2 , N2&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (I-1)*N + J , (I-1)*N + J - N ) = 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! COEFFICIENT FOR THE UPPER NODE &amp;nbsp;: ( I - 1 , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (I-1)*N + J , (I-1)*N + J - 1 ) = 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! COEFFICIENT FOR THE LEFT NODE &amp;nbsp; : ( I &amp;nbsp; &amp;nbsp; , J - 1 )&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (I-1)*N + J , (I-1)*N + J &amp;nbsp; &amp;nbsp; ) = 1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! COEFFICIENT FOR THE NODE ITSELF : ( I &amp;nbsp; &amp;nbsp; , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (I-1)*N + J , (I-1)*N + J + 1 ) = 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! COEFFICIENT FOR THE RIGHT NODE &amp;nbsp;: ( I &amp;nbsp; &amp;nbsp; , J + 1 )&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (I-1)*N + J , (I-1)*N + J + N ) = 0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! COEFFICIENT FOR THE LOWER NODE &amp;nbsp;: ( I + 1 , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_P_DGESV ( (I-1)*N + J ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 0 : THE ARTIFICIAL BOUNDARY CONDITION FOR PRESSURES&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** ON THE LEFT SIDE AND THE RIGHT SIDE OF THE DOMAIN&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 2 , N-1 &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( (I-1)*N + 1 , (I-1)*N + 1 &amp;nbsp; &amp;nbsp; ) = -4.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( I &amp;nbsp; &amp;nbsp; , 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( (I-1)*N + 1 , (I-1)*N + 1 - N ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( I - 1 , 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( (I-1)*N + 1 , (I-1)*N + 1 + N ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( I + 1 , 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( (I-1)*N + 1 , (I-1)*N + 1 + 1 ) = &amp;nbsp;2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( I &amp;nbsp; &amp;nbsp; , 2 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RHS_P_DGESV ( (I-1)*N + 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( I*N , I*N &amp;nbsp; &amp;nbsp; ) = -4.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( I &amp;nbsp; &amp;nbsp; , N &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( I*N , I*N - 1 ) = &amp;nbsp;2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( I &amp;nbsp; &amp;nbsp; , N-1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( I*N , I*N - N ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( I - 1 , N &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( I*N , I*N + N ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( I + 1 , N &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RHS_P_DGESV ( I*N ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 0 FOR PARDISO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! IT DID IN "B_CSR", "COLUMN_B" AND "RowINDEX_B"&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 1 FOR PARDISO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 2 , N-1 &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR THE LEFT SIDE OF THE DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; RHS_P ( (I-1)*N + 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 2 , N-1 &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR THE RIGHT SIDE OF THE DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;RHS_P ( I*N ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 2 : THE ARTIFICIAL BOUNDARY CONDITION FOR PRESSURES&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** ON THE UPPER SIDE AND THE LOWER SIDE OF THE DOMAIN&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO J = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( J , J &amp;nbsp; &amp;nbsp; ) = -4.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( 1 , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( J , J + N ) = &amp;nbsp;2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( 2 , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( J , J + 1 ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( 1 , J + 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( J , J - 1 ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( 1 , J - 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RHS_P_DGESV ( J ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( (N-1)*N + J , (N-1)*N + J &amp;nbsp; &amp;nbsp; ) = -4.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( N &amp;nbsp; &amp;nbsp; , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( (N-1)*N + J , (N-1)*N + J + 1 ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( N &amp;nbsp; &amp;nbsp; , J + 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( (N-1)*N + J , (N-1)*N + J - 1 ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( N &amp;nbsp; &amp;nbsp; , J - 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; B_DGESV ( (N-1)*N + J , (N-1)*N + J - N ) = &amp;nbsp;2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( N - 1 , J &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RHS_P_DGESV ( (N-1)*N + J ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 2 FOR PARDISO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO J = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;RHS_P ( J ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;RHS_P ( (N-1)*N + J ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 3 : AVERAGING OF TWO ADJACENT NODES FOR 4 CORNERS&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!*** FOR POINT ( 1 , 1 ) OF THE DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( 1 , 1 &amp;nbsp; &amp;nbsp; ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( 1 , 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( 1 , 2 &amp;nbsp; &amp;nbsp; ) = -0.5D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( 1 , 2 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( 1 , 1 + N ) = -0.5D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( 2 , 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_P_DGESV ( 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!*** FOR POINT ( 1 , N ) OF THE DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( N , N &amp;nbsp; &amp;nbsp; ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( 1 , N &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( N , N - 1 ) = -0.5D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( 1 , N - 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( N , N + N ) = -0.5D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( 2 , N &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_P_DGESV ( 51 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!*** FOR POINT ( N , 1 ) OF THE DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (N-1)*N + 1 , (N-1)*N + 1 &amp;nbsp; &amp;nbsp; ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( N &amp;nbsp; &amp;nbsp; , 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (N-1)*N + 1 , (N-1)*N + 2 &amp;nbsp; &amp;nbsp; ) = -0.5D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( N &amp;nbsp; &amp;nbsp; , 2 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( (N-1)*N + 1 , (N-1)*N + 1 - N ) = -0.5D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ! FOR POINT ( N - 1 , 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_P_DGESV ( (N-1)*N + 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!*** FOR POINT ( N , N ) OF THE DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( N*N , N*N &amp;nbsp; &amp;nbsp; ) = &amp;nbsp;1.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( N &amp;nbsp; &amp;nbsp; , N &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( N*N , N*N - 1 ) = -0.5D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( N &amp;nbsp; &amp;nbsp; , N - 1 ) &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B_DGESV ( N*N , N*N - N ) = -0.5D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;! FOR POINT ( N - 1 , N &amp;nbsp; &amp;nbsp; )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RHS_P_DGESV ( N*N ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE PART 3 FOR PARDISO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ********** FOR POINT ( 1 , 1 ) OF DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;RHS_P ( 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ********** FOR POINT ( 1 , N ) OF DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;RHS_P ( 51 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ********** FOR POINT ( N , 1 ) OF DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;RHS_P ( (N-1)*N + 1 ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ********** FOR POINT ( N , N ) OF DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;RHS_P ( N*N ) = 0.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!******************** INITIALIZING THE VARIABLES WHICH NEEDED FOR CALLING PARDISO (FOR PRESSURES)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 1 ) &amp;nbsp;= 1&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 2 ) &amp;nbsp;= 3&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 3 ) &amp;nbsp;= 1&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 4 ) &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 5 ) &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 6 ) &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 7 ) &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 8 ) &amp;nbsp;= -1000 &amp;nbsp; ! 10&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 9 ) &amp;nbsp;= 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 10 ) = 13&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 11 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 12 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 13 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 14 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 15 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 16 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 17 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 18 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 19 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 20 ) = -1 &amp;nbsp; &amp;nbsp; ! 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 21 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 22 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 23 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 24 ) = 1 &amp;nbsp; &amp;nbsp; &amp;nbsp;! 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 25 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 26 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 27 ) = 1&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 28 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 29 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 30 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 31 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 32 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 33 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 34 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 35 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 36 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 37 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 38 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 39 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 40 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 41 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 42 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 43 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 44 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 45 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 46 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 47 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 48 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 49 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 50 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 51 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 52 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 53 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 54 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 55 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 56 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 57 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 58 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 59 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 60 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 61 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 62 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;IPARM_B ( 63 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IPARM_B ( 64 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO MAKE THE RIGHT HAND SIDE MATRIX "B_A" FOR PARDISO (FOR PRESSURES)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 1 , NN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; B_B ( I ) = RHS_P ( I )&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ****************************** TO SOLVE THE SYSTEM OF EQUATIONS TO OBTAIN FINAL PRESSURES&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;INFO_DDNSCSR = 0&lt;/DIV&gt;

&lt;DIV&gt;CALL MKL_DDNSCSR ( JOB_B_DDNSCSR , NN , NN , B_DGESV , NN , B_CSR_DDNSCSR , J_B_DDNSCSR , I_B_DDNSCSR , INFO_DDNSCSR )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;INFO_DGESV = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CALL DGESV ( NN , 1 , B_DGESV , NN , IPIV_DGESV , RHS_P_DGESV , NN , INFO_DGESV )&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO J = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;P_N1_DGESV ( I , J ) = RHS_P_DGESV ( N*(I-1) + J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!----------------------------------------------------------------- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! Only Analysis, Reordering And Symbolic Factorization, This Step Also Allocates All Memory That Is Necessary For The Factorization :&lt;/DIV&gt;

&lt;DIV&gt;! PHASE_B = 11&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! CALL PARDISO ( PT_B, MAXFCT_B, MNUM_B, MTYPE_B, PHASE_B, N_B, B_CSR_DDNSCSR, I_B_DDNSCSR, J_B_DDNSCSR, PERM_B, NRHS_B, IPARM_B, MSGLVL_B, B_B, X_B, ERROR_B)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! CALL PARDISO ( PT_B, MAXFCT_B, MNUM_B, MTYPE_B, PHASE_B, N_B, B_CSR, RowINDEX_B, COLUMN_B, PERM_B, NRHS_B, IPARM_B, MSGLVL_B, B_B, X_B, ERROR_B)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! IF (ERROR_B .NE. 0) THEN&lt;/DIV&gt;

&lt;DIV&gt;! &amp;nbsp; &amp;nbsp; WRITE ( * , * ) 'The following ERROR was detected in Analysis, Reordering and Symbolic Factorization for solving VELOCITIES at ITERATION : ', ERROR_B , ITERATION&lt;/DIV&gt;

&lt;DIV&gt;! &amp;nbsp; &amp;nbsp; READ &amp;nbsp;( * , * )&lt;/DIV&gt;

&lt;DIV&gt;! END IF&lt;/DIV&gt;

&lt;DIV&gt;!-----------------------------------------------------------------&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! Only Numerical Factorization :&lt;/DIV&gt;

&lt;DIV&gt;! PHASE_B = 22 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! CALL PARDISO ( PT_B, MAXFCT_B, MNUM_B, MTYPE_B, PHASE_B, N_B, B_CSR_DDNSCSR, I_B_DDNSCSR, J_B_DDNSCSR, PERM_B, NRHS_B, IPARM_B, MSGLVL_B, B_B, X_B, ERROR_B)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! CALL PARDISO ( PT_B, MAXFCT_B, MNUM_B, MTYPE_B, PHASE_B, N_B, B_CSR, RowINDEX_B, COLUMN_B, PERM_B, NRHS_B, IPARM_B, MSGLVL_B, B_B, X_B, ERROR_B)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! IF (ERROR_B .NE. 0) THEN&lt;/DIV&gt;

&lt;DIV&gt;! &amp;nbsp; &amp;nbsp; WRITE ( * , * ) 'The following ERROR was detected in Numerical Factorization for solving VELOCITIES at ITERATION : ', ERROR_B , ITERATION&lt;/DIV&gt;

&lt;DIV&gt;! &amp;nbsp; &amp;nbsp; READ &amp;nbsp;( * , * )&lt;/DIV&gt;

&lt;DIV&gt;! END IF&lt;/DIV&gt;

&lt;DIV&gt;!-----------------------------------------------------------------&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! Solving With Back Substitution And Iterative Refinement :&lt;/DIV&gt;

&lt;DIV&gt;! PHASE_B = 33&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! CALL PARDISO ( PT_B, MAXFCT_B, MNUM_B, MTYPE_B, PHASE_B, N_B, B_CSR_DDNSCSR, I_B_DDNSCSR, J_B_DDNSCSR, PERM_B, NRHS_B, IPARM_B, MSGLVL_B, B_B, X_B, ERROR_B)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! CALL PARDISO ( PT_B, MAXFCT_B, MNUM_B, MTYPE_B, PHASE_B, N_B, B_CSR, RowINDEX_B, COLUMN_B, PERM_B, NRHS_B, IPARM_B, MSGLVL_B, B_B, X_B, ERROR_B)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!-----------------------------------------------------------------&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! Termination And Release Internal Memory :&lt;/DIV&gt;

&lt;DIV&gt;! PHASE_B = -1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! CALL PARDISO ( PT_B, MAXFCT_B, MNUM_B, MTYPE_B, PHASE_B, N_B, B_CSR_DDNSCSR, I_B_DDNSCSR, J_B_DDNSCSR, PERM_B, NRHS_B, IPARM_B, MSGLVL_B, B_B, X_B, ERROR_B)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! CALL PARDISO ( PT_B, MAXFCT_B, MNUM_B, MTYPE_B, PHASE_B, N_B, B_CSR, RowINDEX_B, COLUMN_B, PERM_B, NRHS_B, IPARM_B, MSGLVL_B, B_B, X_B, ERROR_B)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!***********************************************************************************************************************************************&lt;/DIV&gt;

&lt;DIV&gt;PERM (1) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! INITIALIZE THE SOLVER :&lt;/DIV&gt;

&lt;DIV&gt;ERROR = DSS_CREATE ( HANDLE , MKL_DSS_DEFAULTS )&lt;/DIV&gt;

&lt;DIV&gt;IF ( ERROR /= MKL_DSS_SUCCESS ) GOTO 999&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! DEFINE THE NON-ZERO STRUCTURE OF THE MATRIX :&lt;/DIV&gt;

&lt;DIV&gt;ERROR = DSS_DEFINE_STRUCTURE ( HANDLE , MKL_DSS_NON_SYMMETRIC , I_B_DDNSCSR , NN , NN , J_B_DDNSCSR , NON_ZERO_OF_B )&lt;/DIV&gt;

&lt;DIV&gt;IF ( ERROR /= MKL_DSS_SUCCESS ) GOTO 999&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! REORDER THE MATRIX ;&lt;/DIV&gt;

&lt;DIV&gt;ERROR = DSS_REORDER ( HANDLE , MKL_DSS_DEFAULTS , PERM )&lt;/DIV&gt;

&lt;DIV&gt;IF ( ERROR /= MKL_DSS_SUCCESS ) GOTO 999&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! FACTOR THE MATRIX :&lt;/DIV&gt;

&lt;DIV&gt;ERROR = DSS_FACTOR_REAL ( HANDLE , MKL_DSS_DEFAULTS , B_CSR_DDNSCSR )&lt;/DIV&gt;

&lt;DIV&gt;IF ( ERROR /= MKL_DSS_SUCCESS ) GOTO 999&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! SOLVE THE PROBLEM :&lt;/DIV&gt;

&lt;DIV&gt;ERROR = DSS_SOLVE_REAL ( HANDLE , MKL_DSS_DEFAULTS , B_B , 1 , X_B )&lt;/DIV&gt;

&lt;DIV&gt;IF ( ERROR /= MKL_DSS_SUCCESS ) GOTO 999&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! DEALLOCATE SOLVER STORAGE AND VARIOUS LOCAL ARRAYS :&lt;/DIV&gt;

&lt;DIV&gt;ERROR = DSS_DELETE ( HANDLE , MKL_DSS_DEFAULTS )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! PRINT THE ERROR MESSAGE :&lt;/DIV&gt;

&lt;DIV&gt;999 WRITE ( * , * ) "SOLVER RETURNED THE ERROR CODE :", ERROR&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; READ &amp;nbsp;( * , * )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;!***********************************************************************************************************************************************&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; DO J = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; P_N1 ( I , J ) = X_B ( (I-1)*N + J )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ******************** TO CALCULATE "GRADIENT P" AND THEN CALCULATE "U_N1" AND "V_N1" AT THE END OF EACH ITERATION&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO J = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N1_DGESV (I,J) = U_INT_DGESV (I,J) - ( DELTA_T * ( (P_N1_DGESV (I,J+1) - P_N1_DGESV (I,J-1)) / (2*DELTA_X) ) )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;V_N1_DGESV (I,J) = V_INT_DGESV (I,J) - ( DELTA_T * ( (P_N1_DGESV (I-1,J) - P_N1_DGESV (I+1,J)) / (2*DELTA_Y) ) )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ******************** FOR PARDISO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; DO J = 2 , N-1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; U_N1 (I,J) = U_INT (I,J) - ( DELTA_T * ( (P_N1 (I,J+1) - P_N1 (I,J-1)) / (2*DELTA_X) ) )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; V_N1 (I,J) = V_INT (I,J) - ( DELTA_T * ( (P_N1 (I-1,J) - P_N1 (I+1,J)) / (2*DELTA_Y) ) )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ******************** ENFORCE THE DIRICHLET BOUNDARY CONDITION OF ON THE LEFT SIDE OF THE DOMAIN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N1_DGESV ( I , 1 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;V_N1_DGESV ( I , 1 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N1_DGESV ( N2-1 , 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N1_DGESV ( N2 &amp;nbsp; , 1 ) = 2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N1_DGESV ( N2+1 , 1 ) = 0.75D0 * 2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DO J = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;U_N_DGESV (I,J) = U_N1_DGESV (I,J)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;V_N_DGESV (I,J) = V_N1_DGESV (I,J)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ******************** FOR PARDISO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; U_N1 ( I , 1 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; V_N1 ( I , 1 ) = 0&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;U_N1 ( N2 - 1 , 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;U_N1 ( N2 &amp;nbsp; &amp;nbsp; , 1 ) = 2.0D0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;U_N1 ( N2 + 1 , 1 ) = 0.75D0 * 2.0D0&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;DO I = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; DO J = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; U_N (I,J) = U_N1 (I,J)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; V_N (I,J) = V_N1 (I,J)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ******************** EXPORTING RESULTS FOR TECHPLOT&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;XITERATION = ITERATION&lt;/DIV&gt;

&lt;DIV&gt;IF ( ITERATION / IPRINT == XITERATION / IPRINT ) THEN&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; FORMAT_STRING = "(A14,I6)"&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; WRITE ( FILE_NAME_1 &amp;nbsp;, FORMAT_STRING ) "PARDISO" &amp;nbsp; &amp;nbsp; &amp;nbsp; , ITERATION&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; WRITE ( FILE_NAME_2 &amp;nbsp;, FORMAT_STRING ) "DGESV" &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , ITERATION&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; FINAL_NAME_1 &amp;nbsp;= TRIM(FILE_NAME_1)//".TXT"&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; FINAL_NAME_2 &amp;nbsp;= TRIM(FILE_NAME_2)//".TXT" &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; OPEN ( 1 , FILE = FINAL_NAME_1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; 101 &amp;nbsp; FORMAT (7F30.16)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; DO I = N , 1 , -1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DO J = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; WRITE ( 1 , 101 ) DELTA_X * (J-1) , DELTA_Y * (N-I) , U_INT (I,J) , V_INT (I,J) , U_N1 (I,J) , V_N1 (I,J) , P_N1 (I,J)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; CLOSE ( 1 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; OPEN ( 2 , FILE = FINAL_NAME_2 ) &amp;nbsp; &amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; DO I = N , 1 , -1&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DO J = 1 , N&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; WRITE ( 2 , 101 ) DELTA_X * (J-1) , DELTA_Y * (N-I) , U_INT_DGESV (I,J) , V_INT_DGESV (I,J) , U_N1_DGESV (I,J) , V_N1_DGESV (I,J) , P_N1_DGESV (I,J)&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END DO&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; CLOSE ( 2 )&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;END IF&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;

&lt;DIV&gt;! ********************************************************************************&lt;/DIV&gt;

&lt;DIV&gt;END DO&lt;/DIV&gt;

&lt;DIV&gt;! ********************************************************************************&lt;/DIV&gt;

&lt;DIV&gt;&amp;nbsp; &amp;nbsp; END PROGRAM DGESV_VS_DDNSCSR_PARDISO&lt;/DIV&gt;</description>
      <pubDate>Fri, 11 Aug 2017 09:17:11 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/problem-with-PARDISO-and-DSS/m-p/1166757#M28292</guid>
      <dc:creator>Abdolreza_A_</dc:creator>
      <dc:date>2017-08-11T09:17:11Z</dc:date>
    </item>
    <item>
      <title>There are several</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/problem-with-PARDISO-and-DSS/m-p/1166758#M28293</link>
      <description>&lt;P&gt;There are several deficiencies in your post, which make it next to impossible to give you a useful response. Here are some suggestions to improve the help request.&lt;/P&gt;

&lt;P&gt;1. Simplify the program to just what is needed to display one problem at a time. For example, make one pair of programs that solve just for the u-velocity with a small value of N, say as 5. In the first program, use DGESV and, in the second, use MKL_DDNSCSR + Pardiso. Do the two results agree to, say, seven digits? If so, repeat with larger values of N until you see a pair of solutions that are different more than you find tolerable, and report just that case.&lt;/P&gt;

&lt;P&gt;2. Similarly, make a second pair of programs in which you solve just for the u-velocity using (i) your own assembly of the CSR representation and (ii) MKL_DDNSCSR. Do the two index arrays IA,JA, the values array V and the RHS array agree between the two versions? If they do not, report just that set of results and the programs that we can use to reproduce the problem.&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
	&lt;P&gt;In the second part of each iteration, I send the the matrix of coefficients (A , B , C) to the DDNSCSR to make it in CSR form.Then I send it to the PARDISO and it gives me almost the same results as which DGESV had returned to me.&amp;nbsp;MY PROBLEM IS : when I make the CSR format by myself and send it to the PARDISO, the results are not the same!&amp;nbsp;&lt;SPAN style="font-size: 1em;"&gt;I should note that the CSR format which I made is EXACTLY ( !!! ) the same as the CSR format which was made by DDNSCSR .&lt;/SPAN&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;

&lt;P&gt;&amp;nbsp;I do not find that believable. A problem description is passed to Pardiso solely through the arguments in the CALL PARDISO statement. If two identical sequences of calls with the same values of the arguments were passed and the results differed, that would be a serious bug in Pardiso and many other users would have noticed and reported such a bug. I have used Pardiso extensively for over a decade, and have never encountered such a bug in it.&lt;/P&gt;

&lt;P&gt;The DSS calls in MKL are provided only to help users of other compilers such as Compaq/DEC Visual Fortran and Sun Fortran which are provided with a library (CXML for Compaq VF; Sun Perflib for Sun Fortran) that contained DSS. The DSS calls in MKL are just wrappers that convert DSS arguments to the corresponding Pardiso arguments and call Pardiso. For this reason, the DSS interface is a portability feature that should be of no interest to you.&lt;/P&gt;</description>
      <pubDate>Fri, 11 Aug 2017 21:54:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/problem-with-PARDISO-and-DSS/m-p/1166758#M28293</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2017-08-11T21:54:00Z</dc:date>
    </item>
    <item>
      <title>Hi dear mecej4</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/problem-with-PARDISO-and-DSS/m-p/1166759#M28294</link>
      <description>Hi dear mecej4
I do not find that believable too ! That is exactly why I have posted this problem !
I compared several times the matrices which I made myself to the matrices which were made by DNSCSR. all of them are exactly the same !
So I send my code to believe my words !
It just need copy and paste into the fortran and run (it doesn't need any import file). accept my appolofy for wasting your time.
MY MATRICES &amp;gt;&amp;gt; DGESV returns the excellent results.
MY MATRICES &amp;gt;&amp;gt; DNSCSR &amp;gt;&amp;gt; PARDISO returns almost the same results (just little differencies)
MY OWN CSR MATRICES (WHICH DOESN'T ANY DIFFERENCES WITH WHICH HAVE MADE BY "DNSCSR") &amp;gt;&amp;gt; PARDISO : doesn't return the same results.</description>
      <pubDate>Sat, 12 Aug 2017 08:50:08 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/problem-with-PARDISO-and-DSS/m-p/1166759#M28294</guid>
      <dc:creator>Abdolreza_A_</dc:creator>
      <dc:date>2017-08-12T08:50:08Z</dc:date>
    </item>
    <item>
      <title>Morover the code will print 2</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/problem-with-PARDISO-and-DSS/m-p/1166760#M28295</link>
      <description>Morover the code will print 2 files at each iteration : 
THE FIRST AT EACH ITERATION : the result of DGESV 
THE SECOND AT EACH ITERATION : the result of PARDISO (in the first code which I have posted, it is the result of MY GENERAL MATRICES &amp;gt;&amp;gt; DDNSCSR &amp;gt;&amp;gt; PARDISO 's results  ****   in the second code which I have posted : the result of MY OWN CSR &amp;gt;&amp;gt; directly to PARDSIO 's results)</description>
      <pubDate>Sat, 12 Aug 2017 09:00:27 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/problem-with-PARDISO-and-DSS/m-p/1166760#M28295</guid>
      <dc:creator>Abdolreza_A_</dc:creator>
      <dc:date>2017-08-12T09:00:27Z</dc:date>
    </item>
    <item>
      <title>The second code that you</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/problem-with-PARDISO-and-DSS/m-p/1166761#M28296</link>
      <description>&lt;P&gt;The second code that you posted (in #3) has syntax errors and cannot be compiled:&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;The &lt;SPAN style="font-size: 11.382px;"&gt;statement&amp;nbsp;&lt;/SPAN&gt;USE MKL_DSS is out of order. The PERM argument that you use with DSS_REORDER is not declared.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;If you actually ran the code, as you said, the version that you posted is different from the version that you were able to compile. That puts a stop to any discussion of results and their differences.&lt;/P&gt;

&lt;P&gt;Please do not post code longer than, say, 100 lines in the body of a message. Zip the source file(s) and attach the zip to your post.&lt;/P&gt;

&lt;P&gt;As I said in #4, it would help if your code did just enough to display a problem. I see no part of your codes where A_CSR is computed, or even declared. I do not wish to plow through long codes that do lots of extraneous calculations that are of no relevance to the MKL problem being reported.&lt;/P&gt;

&lt;P&gt;As a first step, please construct an example with a small value of N that does just one iteration and shows different solutions for the u-velocity with 1) your own code for computing the CSR representation and 2) MKL_DDNSCSR.&lt;/P&gt;</description>
      <pubDate>Sat, 12 Aug 2017 13:10:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/problem-with-PARDISO-and-DSS/m-p/1166761#M28296</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2017-08-12T13:10:00Z</dc:date>
    </item>
  </channel>
</rss>

