SURFEX v8.1
General documentation of Surfex
mode_extend_grid_parameter.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 !##################
7 !##################
8 !
9 CONTAINS
10 !
11 ! Author
12 ! M.Moge 01/03/2015
13 !
14 ! #############################################################
15  SUBROUTINE extend_grid_parameterx1(HPROGRAM,HGRID,HREC,KDIM,KSIZE,KIMAX_ll,KJMAX_ll,PFIELD,PFIELD_EXTEND)
16 ! #############################################################
17 !
18 !!**** * - routine to extend a real splitted array on SURFEX halo
19 !
20 USE yomhook ,ONLY : lhook, dr_hook
21 USE parkind1 ,ONLY : jprb
22 !
23 #ifdef OL
24 !USE MODE_EXTEND_GRID_PARAMETER_OL
25 #endif
26 #ifdef MNH
27 USE modi_extend_grid_parameterx1_mnh
28 #endif
29 !
30 IMPLICIT NONE
31 !
32 !* 0.1 Declarations of arguments
33 !
34  CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! calling program
35  CHARACTER(LEN=10), INTENT(IN) :: HGRID ! grid type
36  CHARACTER(LEN=6), INTENT(IN) :: HREC ! name of the parameter
37 INTEGER, INTENT(IN) :: KDIM ! size of PFIELD
38 INTEGER, INTENT(IN) :: KSIZE ! size of PFIELD_EXTEND
39 INTEGER, INTENT(IN) :: KIMAX_ll !(global) dimension of the domain - X direction
40 INTEGER, INTENT(IN) :: KJMAX_ll !(global) dimension of the domain - Y direction
41 REAL, DIMENSION(KDIM ), INTENT(IN) :: PFIELD ! real field for complete grid
42 REAL, DIMENSION(KSIZE), INTENT(OUT):: PFIELD_EXTEND! real field for splitted grid
43 !
44 !* 0.2 Declarations of local variables
45 !
46 REAL(KIND=JPRB) :: ZHOOK_HANDLE
47 !-------------------------------------------------------------------------------
48 IF (lhook) CALL dr_hook('MODE_EXTEND_GRID_PARAMETER:EXTEND_GRID_PARAMETERX1',0,zhook_handle)
49 !
50 IF (hprogram=='MESONH') THEN
51 #ifdef MNH
52  CALL extend_grid_parameterx1_mnh(hgrid,hrec,kdim,ksize,kimax_ll,kjmax_ll,pfield,pfield_extend)
53 #endif
54 ENDIF
55 !
56 !
57 IF (hprogram=='OFFLIN') THEN
58 #ifdef OL
59 ! CALL EXTEND_GRID_PARAMETERX1_OL(HPROGRAM,HGRID,HREC,KDIM,KSIZE,PFIELD,PFIELD_EXTEND)
60 !TODO : write subroutine EXTEND_GRID_PARAMETERX1_OL
61 #endif
62 ENDIF
63 !
64 IF (lhook) CALL dr_hook('MODE_EXTEND_GRID_PARAMETER:EXTEND_GRID_PARAMETERX1',1,zhook_handle)
65 !
66 !-------------------------------------------------------------------------------
67 END SUBROUTINE extend_grid_parameterx1
68 !
69 !
70 ! #############################################################
71  SUBROUTINE extend_grid_parametern0(HPROGRAM,HGRID,HREC,KFIELD,KFIELD_EXTEND)
72 ! #############################################################
73 !
74 !!**** * - routine to "extend" a integer related to splitted grid on SURFEX halo
75 !
76 USE yomhook ,ONLY : lhook, dr_hook
77 USE parkind1 ,ONLY : jprb
78 !
79 #ifdef OL
80 !USE MODE_EXTEND_GRID_PARAMETER_OL
81 #endif
82 #ifdef MNH
83 USE modi_extend_grid_parametern0_mnh
84 #endif
85 !
86 IMPLICIT NONE
87 !
88 !* 0.1 Declarations of arguments
89 !
90  CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! calling program
91  CHARACTER(LEN=10), INTENT(IN) :: HGRID ! grid type
92  CHARACTER(LEN=6), INTENT(IN) :: HREC ! name of the parameter
93 INTEGER, INTENT(IN) :: KFIELD ! integer scalar for complete grid
94 INTEGER, INTENT(OUT):: KFIELD_EXTEND ! integer scalar for splitted grid
95 !* 0.2 Declarations of local variables
96 !
97 REAL(KIND=JPRB) :: ZHOOK_HANDLE
98 !-------------------------------------------------------------------------------
99 IF (lhook) CALL dr_hook('MODE_EXTEND_GRID_PARAMETER:EXTEND_GRID_PARAMETERN0',0,zhook_handle)
100 !
101 !-------------------------------------------------------------------------------
102 !
103 IF (hprogram=='MESONH') THEN
104 #ifdef MNH
105  CALL extend_grid_parametern0_mnh(hgrid,hrec,kfield,kfield_extend)
106 #endif
107 ENDIF
108 !
109 IF (hprogram=='OFFLIN') THEN
110 #ifdef OL
111 ! CALL EXTEND_GRID_PARAMETERN0_OL(HPROGRAM,HGRID,HREC,KFIELD,KFIELD_EXTEND)
112 !TODO : write subroutine EXTEND_GRID_PARAMETERN0_OL
113 #endif
114 ENDIF
115 !
116 IF (lhook) CALL dr_hook('MODE_EXTEND_GRID_PARAMETER:EXTEND_GRID_PARAMETERN0',1,zhook_handle)
117 !
118 !-------------------------------------------------------------------------------
119 END SUBROUTINE extend_grid_parametern0
120 !
subroutine extend_grid_parametern0(HPROGRAM, HGRID, HREC, KFIELD, KFIELD_EXTEND)
subroutine extend_grid_parameterx1(HPROGRAM, HGRID, HREC, KDIM, KSIZE, KIMAX_ll, KJMAX_ll, PFIELD, PFIELD_EXTEND)
integer, parameter jprb
Definition: parkind1.F90:32
logical lhook
Definition: yomhook.F90:15