SURFEX v8.1
General documentation of Surfex
Surfex_Git2
src
SURFEX
get_cpl_gcmn.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
get_cpl_gcm_n
(U, &
7
HPROGRAM,KI,PRAIN,PSNOW,PZ0,PZ0H,PQSURF)
8
! ######################################################
9
!
10
!!**** *GET_CPL_GCM_n* - routine to get physical fields
11
!! for initialise ARPEGE/ALADIN run
12
!!
13
!! PURPOSE
14
!! -------
15
!!
16
!!
17
!!** METHOD
18
!! ------
19
!!
20
!! EXTERNAL
21
!! --------
22
!!
23
!!
24
!!
25
!! IMPLICIT ARGUMENTS
26
!! ------------------
27
!!
28
!! REFERENCE
29
!! ---------
30
!!
31
!!
32
!! AUTHOR
33
!! ------
34
!! B. Decharme *Meteo France*
35
!!
36
!! MODIFICATIONS
37
!! -------------
38
!! Original 04/2013
39
!-------------------------------------------------------------------------------
40
!
41
!* 0. DECLARATIONS
42
! ------------
43
!
44
!
45
USE
modd_surf_atm_n
, ONLY
:
surf_atm_t
46
!
47
USE
modd_surf_atm
, ONLY
:
lcpl_gcm
48
!
49
USE
yomhook
,ONLY
:
lhook
,
dr_hook
50
USE
parkind1
,ONLY
:
jprb
51
!
52
USE
modi_get_luout
53
USE
modi_abor1_sfx
54
!
55
IMPLICIT NONE
56
!
57
!* 0.1 Declarations of arguments
58
! -------------------------
59
!
60
!
61
TYPE
(
surf_atm_t
),
INTENT(INOUT)
:: U
62
!
63
CHARACTER(LEN=6)
,
INTENT(IN)
:: HPROGRAM
64
INTEGER
,
INTENT(IN)
:: KI
! number of points
65
!
66
REAL
,
DIMENSION(KI)
,
INTENT(OUT)
:: PRAIN
! total rainfall rate (kg/m2/s)
67
REAL
,
DIMENSION(KI)
,
INTENT(OUT)
:: PSNOW
! total snowfall rate (kg/m2/s)
68
REAL
,
DIMENSION(KI)
,
INTENT(OUT)
:: PZ0
! roughness length for momentum (m)
69
REAL
,
DIMENSION(KI)
,
INTENT(OUT)
:: PZ0H
! roughness length for heat (m)
70
REAL
,
DIMENSION(KI)
,
INTENT(OUT)
:: PQSURF
! specific humidity at surface (kg/kg)
71
!
72
!* 0.2 Declarations of local variables
73
! -------------------------------
74
!
75
INTEGER
:: ILUOUT
76
!
77
REAL(KIND=JPRB)
:: ZHOOK_HANDLE
78
!
79
!-------------------------------------------------------------------------------
80
IF
(
lhook
)
CALL
dr_hook
(
'GET_CPL_GCM_N'
,0,zhook_handle)
81
!
82
CALL
get_luout
(hprogram,iluout)
83
!
84
IF
(
lcpl_gcm
)
THEN
85
!
86
IF
(
SIZE
(pz0)/=
SIZE
(u%XZ0H))
THEN
87
WRITE
(iluout,*)
'try to get Z0 field from atmospheric model, but size is not correct'
88
WRITE
(iluout,*)
'size of field expected by the atmospheric model (PZ0) :'
,
SIZE
(pz0)
89
WRITE
(iluout,*)
'size of field in SURFEX (XZ0) :'
,
SIZE
(u%XZ0)
90
CALL
abor1_sfx
(
'GET_CPL_GCMN: PZ0 ARGUMENT SIZE /= XZ0 MODULE SIZE'
)
91
ENDIF
92
!
93
prain(:) = u%XRAIN
94
psnow(:) = u%XSNOW
95
pz0(:) = u%XZ0
96
pz0h(:) = u%XZ0H
97
pqsurf(:) = u%XQSURF
98
!
99
ELSE
100
!
101
WRITE
(iluout,*)
'LCPL_GCM must be TRUE when you use atmospheric model'
102
CALL
abor1_sfx
(
'GET_CPL_GCMN: LCPL_GCM must be TRUE'
)
103
!
104
ENDIF
105
106
!
107
IF
(
lhook
)
CALL
dr_hook
(
'GET_CPL_GCM_N'
,1,zhook_handle)
108
!-------------------------------------------------------------------------------
109
!
110
END SUBROUTINE
get_cpl_gcm_n
modd_surf_atm_n::surf_atm_t
Definition:
modd_surf_atmn.F90:42
yomhook::dr_hook
Definition:
yomhook.F90:20
modd_surf_atm
Definition:
modd_surf_atm.F90:6
get_cpl_gcm_n
subroutine get_cpl_gcm_n(U, HPROGRAM, KI, PRAIN, PSNOW, PZ0, PZ0H, PQSURF)
Definition:
get_cpl_gcmn.F90:8
modd_surf_atm::lcpl_gcm
logical lcpl_gcm
Definition:
modd_surf_atm.F90:62
abor1_sfx
subroutine abor1_sfx(YTEXT)
Definition:
abor1_sfx.F90:7
parkind1::jprb
integer, parameter jprb
Definition:
parkind1.F90:32
modd_surf_atm_n
Definition:
modd_surf_atmn.F90:6
get_luout
subroutine get_luout(HPROGRAM, KLUOUT)
Definition:
get_luout.F90:7
yomhook::lhook
logical lhook
Definition:
yomhook.F90:15
parkind1
Definition:
parkind1.F90:1
yomhook
Definition:
yomhook.F90:1
Generated on Tue Jan 16 2018 16:23:28 for SURFEX v8.1 by
1.8.13