fct_mesh.f90

### TABLE OF CONTENTS

- 1. UTI/USER/fct_mesh

## UTI/USER/fct_mesh [ Modules ]

[ Top ] [ Modules ]

NOM

     fct_mesh(x,y,z,ifct,nrb)

DESCRIPTION

     Initialisation du niveau de raffinement d un bloc par une fonction utilisateur

     Initialise the refinement level of a block using a user function

        ENTREES / INPUT
        x,y,z : coordonnees / coordinates
        ifct  : numero de la fonction definissant le niveau de raffinement / number of the function defining the refinement level

        SORTIES / OUTPUT
        nrb    : niveau de raffinement / refinement level

SOURCE

    ! Ce logiciel est regi par la licence [CeCILL-B]
    ! This software is governed by the [CeCILL-B] license
    !=========================== DEBUT DES DECLARATIONS ====================
    !.1-----  Implicit, Use
       use phy_typ
       IMPLICIT NONE
    !.2-----  Declaration
       real(kind=kind(0.d0)), intent(in)                :: x,y,z !! Centre du bloc / Block center
       integer, intent(in)                              :: ifct !! Numero de la fonction / Function number
       integer, intent(out)                             :: nrb  !! Niveau de raffinement du bloc / Mesh refinement level

    !=========================== DEBUT DU CODE EXECUTABLE ==================

    nrb=0*int(x*y*z)

       SELECT CASE (ifct)

    !------ Cas de Montfaucon
        CASE (1)
          nrb=0
          IF(x.gt.0.D0 .and. x.le.2.d0 .and. y.le.6.4d0)nrb=2
          IF(x.gt.2.D0 .and. x.le.16.d0 .and. y.le. (6.4d0-(x-2.d0)*3.5d0/14.d0))nrb=2
          IF(x.gt.16.D0 .and. x.le.22.d0 .and. y.le.2.9d0)nrb=0
          IF(x.gt.22.D0 .and. x.le.30.d0 .and. y.le. (2.9d0-(x-22.d0)*2.7d0/8.d0))nrb=0

        CASE DEFAULT
          call print_err('fct_mesh', 'No user function defined')

       END SELECT
    !===========================   FIN DE LA ROUTINE    ====================
    END SUBROUTINE fct_mesh