SURFEX v8.1
General documentation of Surfex
extend_grid_on_halo.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 !! ###########################################################
6  SUBROUTINE extend_grid_on_halo(HPROGRAM,UG,U,KGRID_PAR,PGRID_PAR)
7 ! ###########################################################
8 !!
9 !! PURPOSE
10 !! -------
11 !! This program extends a splitted PGD grid on the SURFEX halo
12 !!
13 !! METHOD
14 !! ------
15 !!
16 !! EXTERNAL
17 !! --------
18 !!
19 !!
20 !! IMPLICIT ARGUMENTS
21 !! ------------------
22 !!
23 !!
24 !! REFERENCE
25 !! ---------
26 !!
27 !! AUTHOR
28 !! ------
29 !!
30 !! M.Moge CNRS - LA
31 !!
32 !! MODIFICATION
33 !! ------------
34 !!
35 !! Original 01/03/2015
36 !----------------------------------------------------------------------------
37 !
38 !* 0. DECLARATION
39 ! -----------
40 !
42 USE modd_surf_atm_n, ONLY : surf_atm_t
43 !
44 USE modi_extend_grid_on_halo_conf_proj
45 USE modi_extend_grid_on_halo_cartesian
46 USE modi_get_size_full_n
47 !
48 USE yomhook ,ONLY : lhook, dr_hook
49 USE parkind1 ,ONLY : jprb
50 !
51 !
52 IMPLICIT NONE
53 !
54 !* 0.1 Declaration of dummy arguments
55 ! ------------------------------
56 !
57  CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! program calling
58 TYPE(surf_atm_grid_t), INTENT(INOUT) :: UG
59 TYPE(surf_atm_t), INTENT(INOUT) :: U
60 INTEGER, INTENT(INOUT) :: KGRID_PAR ! size of PGRID_PAR pointer
61 REAL, DIMENSION(:), POINTER, INTENT(INOUT) :: PGRID_PAR ! parameters defining this grid
62 !
63 !
64 !* 0.2 Declaration of local variables
65 ! ------------------------------
66 !
67 REAL(KIND=JPRB) :: ZHOOK_HANDLE
68  CHARACTER(LEN=100) :: YCOMMENT
69 INTEGER :: IRESP ! error return code
70 INTEGER :: IHALO, ISIZE_FULL
71 !------------------------------------------------------------------------------
72 IF (lhook) CALL dr_hook('SPLIT_GRID',0,zhook_handle)
73 !
74 SELECT CASE(ug%G%CGRID)
75 
76  CASE('CONF PROJ ')
77  CALL extend_grid_on_halo_conf_proj(hprogram,u%NDIM_FULL,u%NSIZE_FULL,kgrid_par,pgrid_par)
78  CASE('CARTESIAN ')
79  CALL extend_grid_on_halo_cartesian(hprogram,u%NDIM_FULL,u%NSIZE_FULL,kgrid_par,pgrid_par)
80  CASE DEFAULT
81  CALL get_size_full_n(hprogram,u%NDIM_FULL,u%NSIZE_FULL,isize_full)
82  u%NSIZE_FULL = isize_full
83 
84 END SELECT
85 !
86 
87 IF (lhook) CALL dr_hook('SPLIT_GRID',1,zhook_handle)
88 !_______________________________________________________________________________
89 !
90 END SUBROUTINE extend_grid_on_halo
subroutine extend_grid_on_halo_conf_proj(HPROGRAM, KDIM_FULL, KSIZE_
subroutine get_size_full_n(HPROGRAM, KDIM_FULL, KSIZE_FULL_IN, KSIZE
integer, parameter jprb
Definition: parkind1.F90:32
logical lhook
Definition: yomhook.F90:15
subroutine extend_grid_on_halo_cartesian(HPROGRAM, KDIM_FULL, KSIZE_
subroutine extend_grid_on_halo(HPROGRAM, UG, U, KGRID_PAR, PGRID_PAR)