!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !--------------- special set of characters for RCS information !----------------------------------------------------------------- ! $Source: /srv/cvsroot/MNH-VX-Y-Z/src/MNH/ini_cturb.f90,v $ $Revision: 1.2.4.1.2.2.2.1.2.2 $ $Date: 2014/01/09 15:01:55 $ !----------------------------------------------------------------- !----------------------------------------------------------------- ! ####################### MODULE MODI_IBM_FORCING_BOUND ! ####################### ! INTERFACE ! SUBROUTINE IBM_FORCING_BOUND(PTAB) ! REAL, DIMENSION(:,:,:) ,INTENT(INOUT) :: PTAB ! END SUBROUTINE IBM_FORCING_BOUND ! END INTERFACE ! END MODULE MODI_IBM_FORCING_BOUND ! ! ! ! ################################## SUBROUTINE IBM_FORCING_BOUND(PTAB) ! ################################## ! !!**** *IBM_FORCING_BOUND* - routine to force all desired fields !! !! PURPOSE !! ------- ! The purpose of this routine is to compute variables in the virtual ! embedded solid region in regard of variables computed in the real ! fluid region ! !! METHOD !! ------ !! !! EXTERNAL !! -------- !! NONE !! !! IMPLICIT ARGUMENTS !! ------------------ !! !! REFERENCE !! --------- !! !! AUTHOR !! ------ !! Franck Auguste * CERFACS(AE) * !! !! MODIFICATIONS !! ------------- !! Original 01/01/2015 !! !------------------------------------------------------------------------------ ! !**** 0. DECLARATIONS ! --------------- ! ! module USE MODE_POS USE MODE_ll USE MODE_IO_ll ! ! declaration USE MODD_PARAMETERS, ONLY: JPVEXT,JPHEXT USE MODD_IBM_PARAM_n USE MODD_LBC_n USE MODD_PARAM_n USE MODD_CONF ! ! interface ! IMPLICIT NONE ! !------------------------------------------------------------------------------ ! ! 0.1 declarations of arguments REAL, DIMENSION(:,:,:) ,INTENT(INOUT) :: PTAB ! !------------------------------------------------------------------------------ ! ! 0.2 declaration of local variables INTEGER :: IIB,IIE,IJB,IJE,IKU,IKB,IKE ! !------------------------------------------------------------------------------ ! !**** 0. ALLOCATIONS ! -------------- ! CALL GET_PHYSICAL_ll(IIB,IJB,IIE,IJE) IKB = 1 + JPVEXT IKE = SIZE(PTAB,3) - JPVEXT ! ! !------------------------------------------------------------------------------ ! IF (LWEST_ll( )) THEN ! SELECT CASE ( CLBCX(1) ) ! CASE ('WALL') ! PTAB(IIB-1,:,:) = PTAB(IIB,:,:) ! CASE ('OPEN') ! PTAB(IIB-1,:,:) = 2.*PTAB(IIB,:,:)-PTAB(IIB+1,:,:) ! END SELECT ! END IF ! IF (LEAST_ll( )) THEN ! SELECT CASE ( CLBCX(2) ) ! CASE ('WALL') ! PTAB(IIE+1,:,:) = PTAB(IIE,:,:) ! CASE ('OPEN') ! PTAB(IIE+1,:,:) = 2.*PTAB(IIE,:,:)-PTAB(IIE-1,:,:) ! END SELECT ! END IF ! IF (LSOUTH_ll( )) THEN ! SELECT CASE ( CLBCY(1) ) ! CASE ('WALL') ! PTAB(:,IJB-1,:) = PTAB(:,IJB,:) ! CASE ('OPEN') ! PTAB(:,IJB-1,:) = 2.*PTAB(:,IJB,:)-PTAB(:,IJB+1,:) ! END SELECT ! END IF ! IF (LNORTH_ll( )) THEN ! SELECT CASE ( CLBCY(2) ) ! CASE ('WALL') ! PTAB(:,IJE+1,:) = PTAB(:,IJE,:) ! CASE ('OPEN') ! PTAB (:,IJE+1,:) = 2.*PTAB(:,IJE,:)-PTAB(:,IJE-1,:) ! END SELECT ! END IF ! PTAB(:,:,IKB-1) = PTAB(:,:,IKB) ! PTAB(:,:,IKE+1) = PTAB(:,:,IKE) ! RETURN ! END SUBROUTINE IBM_FORCING_BOUND