#include "dims.h" SUBROUTINE BNDCMP use cons_module,only: len1 implicit none C **** C **** CALCULATE MATRICES B(ZIMXP,2,2) AND VECTORS FB(ZIMXP,2) C **** REPRESENTING BOUNDARY CONDITION IN COMP, WHERE PSI1 C **** AND PSI2 ARE EVALUATED. C **** #include "params.h" #include "fcom.h" #include "vscr.h" #include "index.h" #include "buff.h" #include "cmpbnd.h" #include "lowbnd.h" #include "phys.h" #include "mwt.h" C **** C **** CURRENT BOUNDARY CONDITION IS: C **** C **** 0.5*(PSI1(-1/2)+PSI1(1/2)) = PSO2LB C **** 0.5*(PSI2(-1/2)+PSI2(1/2)) = XOXLB*RMOX(REAL)/MBAR C **** WHERE: C **** XOXLB = OX NUMBER DENSITY MIXING RATIO AT LOWER C **** BOUNDARY C **** PSO2LB= O2 MASS MIXING RATIO AT LOWER BOUNDARY C **** C **** THIS GIVES: C **** PSI1(-1/2) = B(1,1)*PSI1(1/2)+B(1,2)*PSI2(1/2)+FB(1) C **** PSI2(-1/2) = B(2,1)*PSI1(1/2)+B(2,2)*PSI2(1/2)+FB(2) C **** WHERE: C **** B(1,1) = B(2,2) = -1. C **** B(1,2) = B(2,1) = 0. C **** FB(1) = 2.*PSO2LB C **** FB(2) = 2.*XOXLB*RMOX(TRUE)/MBAR C **** ! ! Local: ! PSO2LB adjusted from 0.22 to 0.24, as per modsrc.kibo: real,parameter :: PSO2LB=0.24 integer :: i,k,kk,nmsk C **** C **** SET MATRIX B C **** DO 1 I = 1,LEN1 B(I,1,1) = -1. B(I,2,2) = -1. B(I,1,2) = 0. B(I,2,1) = 0. 1 CONTINUE C **** C **** T1, T2 = RMOX(TRUE), K = 1/2, 3/2 C **** DO K = 1,2 KK = (K-1)*LEN1 DO I = 1,LEN1 T1(I+KK) = RMO3 enddo enddo C **** C **** T1 = RMOX(TRUE), K=0 (EXTRAPOLATION) C **** SET FB(1) AND FB(2) C **** NMSK = NJ+NMS DO 3 I = 1,LEN1 T1(I) = 1.5*T1(I)-0.5*T2(I) FB(I,1) = 2.*PSO2LB FB(I,2) = 2.*XOXLB(J)*T1(I)/F(I,NMSK) 3 CONTINUE RETURN END C