C ********************************************************************** C * * C * SOFTWARE LICENSING * C * * C * This program is free software; you can redistribute * C * it and/or modify it under the terms of the GNU * C * General Public License as published by the Free * C * Software Foundation, either Version 2 of the * C * license, or (at your option) any later version. * C * * C * This program is distributed in the hope that it * C * will be useful, but without any warranty; without * C * even the implied warranty of merchantability or * C * fitness for a particular purpose. See the GNU * C * General Public License for more details. * C * * C * A copy of the GNU General Public License is * C * available at http://www.gnu.org/copyleft/gpl.html * C * or by writing to the Free Software Foundation, Inc.,* C * 59 Temple Place - Suite 330, Boston, MA 02111, USA. * C * * C ********************************************************************** !************************************************************************** SUBROUTINE WALLFRIC C THIS SUBROUTINE CALCULATES DRAG FORCES DUE TO BUILDING AND SIDE WALLS C REZA NARSOOLI, JANUARY 2015 C WALL FRICTION=CDWALL*SQRT(U)/DX C ----> ATTENTION: THIS SUBROUTINE IS NOT READY FOR USE YET INCLUDE 'comdeck' SAVE DO 10 J=1,JM DO 10 K=1,KBM1 DO 10 I=1,IM DWALLU3D(I,J,K)=0.0 DWALLV3D(I,J,K)=0.0 10 CONTINUE DO 20 J=1,JM DO 20 I=1,IM DWALLU2D(I,J)=0.0 DWALLV2D(I,J)=0.0 20 CONTINUE IF(TOR.NE.'BAROTROPIC') THEN DO 30 J=2,JMM1 DO 30 I=2,IMM1 !CALCULATE BUILDING DRAG COEFFICIENT !BASED ON CHAPTER 4 OF FEMA ENG. PRINCIPLES&PRACTICES CDBX=0.0 CDBY=0.0 IF(SVF(I,J).GT.0.0) THEN RATIOBH=SVF(I,J)*H2(I,J)/(0.5*(D(I,J)+D(I-1,J))) IF(RATIOBH.LT.12.0) CDBX=1.25 IF(RATIOBH.GE.12.0.AND.RATIOBH.LT.20.0) CDBX=1.3 IF(RATIOBH.GE.20.0.AND.RATIOBH.LT.32.0) CDBX=1.4 IF(RATIOBH.GE.32.0.AND.RATIOBH.LT.40.0) CDBX=1.5 IF(RATIOBH.GE.40.0.AND.RATIOBH.LT.80.0) CDBX=1.75 IF(RATIOBH.GE.80.0.AND.RATIOBH.LT.120.0) CDBX=1.8 IF(RATIOBH.GE.120.0) CDBX=2.0 RATIOBH=SVF(I,J)*H1(I,J)/(0.5*(D(I,J)+D(I,J-1))) IF(RATIOBH.LT.12.0) CDBY=1.25 IF(RATIOBH.GE.12.0.AND.RATIOBH.LT.20.0) CDBY=1.3 IF(RATIOBH.GE.20.0.AND.RATIOBH.LT.32.0) CDBY=1.4 IF(RATIOBH.GE.32.0.AND.RATIOBH.LT.40.0) CDBY=1.5 IF(RATIOBH.GE.40.0.AND.RATIOBH.LT.80.0) CDBY=1.75 IF(RATIOBH.GE.80.0.AND.RATIOBH.LT.120.0) CDBY=1.8 IF(RATIOBH.GE.120.0) CDBY=2.0 ENDIF DO 35 K=1,KBM1 VELMAGX=SQRT(U(I,J,K)**2+(0.25*(V(I,J,K)+V(I,J+1,K)+ . V(I-1,J,K)+V(I-1,J+1,K)))**2) VELMAGY=SQRT(V(I,J,K)**2+(0.25*(U(I,J,K)+U(I+1,J,K)+ . U(I,J-1,K)+U(I+1,J-1,K)))**2) !-----DRAG FORCE DUE TO BUILDINGS, MUST BE CORRECTED! !FOR X-MOMENTUM DWALLU3D(I,J,K)=-0.5*CDBX*SVF(I,J)*VELMAGX*ARU(I,J)* . (D(I,J)+D(I-1,J))/(H1(I,J)+H1(I-1,J)) !FOR Y-MOMENTUM DWALLV3D(I,J,K)=-0.5*CDBY*SVF(I,J)*VELMAGY*ARV(I,J)* . (D(I,J)+D(I,J-1))/(H2(I,J)+H2(I,J-1)) !-----DRAG FORCE DUE TO SIDE WALLS !FOR X-MOMENTUM IF(DUM(I,J).NE.0.0) THEN IF(DUM(I,J-1)*DUM(I,J+1).EQ.0.0) THEN DWALLU3D(I,J,K)=DWALLU3D(I,J,K)- . CDWALL*VELMAGX*ARU(I,J)* . (D(I,J)+D(I-1,J))/(0.5*(H2(I,J)+H2(I-1,J))) ENDIF ENDIF !FOR Y-MOMENTUM IF(DVM(I,J).NE.0.0) THEN IF(DVM(I-1,J)*DVM(I+1,J).EQ.0.0) THEN DWALLV3D(I,J,K)=DWALLV3D(I,J,K)- . CDWALL*VELMAGY*ARV(I,J)* . (D(I,J)+D(I,J-1))/(0.5*(H1(I,J)+H1(I,J-1))) ENDIF ENDIF 35 CONTINUE 30 CONTINUE DO 40 J=2,JMM1 DO 40 K=1,KBM1 DO 40 I=2,IMM1 DWALLU2D(I,J)=DWALLU2D(I,J)+DWALLU3D(I,J,K)*DZ(K) DWALLV2D(I,J)=DWALLV2D(I,J)+DWALLV3D(I,J,K)*DZ(K) 40 CONTINUE ELSE !BUILDING EFFECTS IS PRESENSTED BY MANNING COEF. IN 2D MODELING !use another approach DO 50 J=2,JMM1 DO 50 I=2,IMM1 !-----DRAG FORCE DUE TO SIDE WALLS !FOR X-MOMENTUM IF(DUM(I,J).NE.0.0) THEN IF(DUM(I,J-1)*DUM(I,J+1).EQ.0.0) THEN DWALLU2D(I,J)=DWALLU2D(I,J)- . CDWALL*SQRT(UA(I,J)**2+(0.25*(VA(I,J)+VA(I,J+1)+ . VA(I-1,J)+VA(I-1,J+1)))**2)*ARU(I,J)* . (D(I,J)+D(I-1,J)) / (0.5*(H2(I,J)+H2(I-1,J))) ENDIF ENDIF !FOR Y-MOMENTUM IF(DVM(I,J).NE.0.0) THEN IF(DVM(I-1,J)*DVM(I+1,J).EQ.0.0) THEN DWALLV2D(I,J)=DWALLV2D(I,J)- . CDWALL*SQRT(VA(I,J)**2+(0.25*(UA(I,J)+UA(I+1,J)+ . UA(I,J-1)+UA(I+1,J-1)))**2)*ARV(I,J)* . (D(I,J)+D(I,J-1)) / (0.5*(H1(I,J)+H1(I,J-1))) ENDIF ENDIF 50 CONTINUE ENDIF RETURN END