SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
mode_split_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 ! #############################################################
12  SUBROUTINE split_grid_parameterx1(HPROGRAM,HGRID,HREC,KDIM,KSIZE,PFIELD,PFIELD_SPLIT)
13 ! #############################################################
14 !
15 !!**** * - routine to split a real array on the splitted grid
16 !
17 USE yomhook ,ONLY : lhook, dr_hook
18 USE parkind1 ,ONLY : jprb
19 !
20 #ifdef SFX_OL
22 #endif
23 #ifdef SFX_MNH
24 USE modi_split_grid_parameterx1_mnh
25 #endif
26 !
27 IMPLICIT NONE
28 !
29 !* 0.1 Declarations of arguments
30 !
31  CHARACTER(LEN=6), INTENT(IN) :: hprogram ! calling program
32  CHARACTER(LEN=10), INTENT(IN) :: hgrid ! grid type
33  CHARACTER(LEN=6), INTENT(IN) :: hrec ! name of the parameter
34 INTEGER, INTENT(IN) :: kdim ! size of PFIELD
35 INTEGER, INTENT(IN) :: ksize ! size of PFIELD_SPLIT
36 REAL, DIMENSION(KDIM ), INTENT(IN) :: pfield ! real field for complete grid
37 REAL, DIMENSION(KSIZE), INTENT(OUT):: pfield_split! real field for splitted grid
38 !
39 !* 0.2 Declarations of local variables
40 !
41 REAL(KIND=JPRB) :: zhook_handle
42 !-------------------------------------------------------------------------------
43 IF (lhook) CALL dr_hook('MODE_SPLIT_GRID_PARAMETER:SPLIT_GRID_PARAMETERX1',0,zhook_handle)
44 !
45 IF (hprogram=='MESONH') THEN
46 #ifdef SFX_MNH
47  CALL split_grid_parameterx1_mnh(hgrid,hrec,kdim,ksize,pfield,pfield_split)
48 #endif
49 ENDIF
50 !
51 !
52 IF (hprogram=='OFFLIN') THEN
53 #ifdef SFX_OL
54  CALL split_grid_parameterx1_ol(hprogram,hgrid,hrec,kdim,ksize,pfield,pfield_split)
55 #endif
56 ENDIF
57 !
58 IF (lhook) CALL dr_hook('MODE_SPLIT_GRID_PARAMETER:SPLIT_GRID_PARAMETERX1',1,zhook_handle)
59 !
60 !-------------------------------------------------------------------------------
61 END SUBROUTINE split_grid_parameterx1
62 !
63 !
64 ! #############################################################
65  SUBROUTINE split_grid_parametern0(HPROGRAM,HGRID,HREC,KFIELD,KFIELD_SPLIT)
66 ! #############################################################
67 !
68 !!**** * - routine to define an integer related to splitted grid
69 !
70 USE yomhook ,ONLY : lhook, dr_hook
71 USE parkind1 ,ONLY : jprb
72 !
73 #ifdef SFX_OL
75 #endif
76 #ifdef SFX_MNH
77 USE modi_split_grid_parametern0_mnh
78 #endif
79 !
80 IMPLICIT NONE
81 !
82 !* 0.1 Declarations of arguments
83 !
84  CHARACTER(LEN=6), INTENT(IN) :: hprogram ! calling program
85  CHARACTER(LEN=10), INTENT(IN) :: hgrid ! grid type
86  CHARACTER(LEN=6), INTENT(IN) :: hrec ! name of the parameter
87 INTEGER, INTENT(IN) :: kfield ! integer scalar for complete grid
88 INTEGER, INTENT(OUT):: kfield_split ! integer scalar for splitted grid
89 !* 0.2 Declarations of local variables
90 !
91 REAL(KIND=JPRB) :: zhook_handle
92 !-------------------------------------------------------------------------------
93 IF (lhook) CALL dr_hook('MODE_SPLIT_GRID_PARAMETER:SPLIT_GRID_PARAMETERN0',0,zhook_handle)
94 !
95 !-------------------------------------------------------------------------------
96 !
97 IF (hprogram=='MESONH') THEN
98 #ifdef SFX_MNH
99  CALL split_grid_parametern0_mnh(hgrid,hrec,kfield,kfield_split)
100 #endif
101 ENDIF
102 !
103 IF (hprogram=='OFFLIN') THEN
104 #ifdef SFX_OL
105  CALL split_grid_parametern0_ol(hprogram,hgrid,hrec,kfield,kfield_split)
106 #endif
107 ENDIF
108 !
109 IF (lhook) CALL dr_hook('MODE_SPLIT_GRID_PARAMETER:SPLIT_GRID_PARAMETERN0',1,zhook_handle)
110 !
111 !-------------------------------------------------------------------------------
112 END SUBROUTINE split_grid_parametern0
113 !
114 END MODULE mode_split_grid_parameter
subroutine split_grid_parametern0_ol(HPROGRAM, HGRID, HREC, KFIELD, KFIELD_SPLIT)
subroutine split_grid_parametern0(HPROGRAM, HGRID, HREC, KFIELD, KFIELD_SPLIT)
subroutine split_grid_parameterx1_ol(HPROGRAM, HGRID, HREC, KDIM, KSIZE, PFIELD, PFIELD_SPLIT)
subroutine split_grid_parameterx1(HPROGRAM, HGRID, HREC, KDIM, KSIZE, PFIELD, PFIELD_SPLIT)