SURFEX v8.1
General documentation of Surfex
update_esm_flaken.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 update_esm_flake_n (F,KI,KSW,PZENITH,PDIR_ALB, &
7  PSCA_ALB,PEMIS,PTSRAD,PTSURF )
8 ! ############################################################
9 !
10 !!**** *UPDATE_ESM_FLAKE_n* - routine to update FLAKE radiative and physical properties in
11 !! Earth System Model after the call to OASIS coupler in order
12 !! to close the energy budget between radiative scheme and surfex
13 !!
14 !! PURPOSE
15 !! -------
16 !!
17 !!** METHOD
18 !! ------
19 !!
20 !! EXTERNAL
21 !! --------
22 !!
23 !!
24 !! IMPLICIT ARGUMENTS
25 !! ------------------
26 !!
27 !! REFERENCE
28 !! ---------
29 !!
30 !!
31 !! AUTHOR
32 !! ------
33 !! B. Decharme
34 !!
35 !! MODIFICATIONS
36 !! -------------
37 !! Original 04/2013
38 !-------------------------------------------------------------------------------
39 !
40 !* 0. DECLARATIONS
41 ! ------------
42 !
43 !
44 USE modd_flake_n, ONLY : flake_t
45 !
46 USE modd_csts, ONLY : xtt
47 USE modd_surf_par, ONLY : xundef
48 !
49 USE modi_update_rad_flake
50 !
51 !
52 USE yomhook ,ONLY : lhook, dr_hook
53 USE parkind1 ,ONLY : jprb
54 !
55 IMPLICIT NONE
56 !
57 !* 0.1 Declarations of arguments
58 ! -------------------------
59 !
60 !
61 TYPE(flake_t), INTENT(INOUT) :: F
62 !
63 INTEGER, INTENT(IN) :: KI ! number of points
64 INTEGER, INTENT(IN) :: KSW ! number of short-wave spectral bands
65 !
66 REAL, DIMENSION(KI), INTENT(IN) :: PZENITH ! solar zenithal angle
67 !
68 REAL, DIMENSION(KI,KSW),INTENT(OUT) :: PDIR_ALB ! direct albedo for each band
69 REAL, DIMENSION(KI,KSW),INTENT(OUT) :: PSCA_ALB ! diffuse albedo for each band
70 REAL, DIMENSION(KI), INTENT(OUT) :: PEMIS ! emissivity
71 REAL, DIMENSION(KI), INTENT(OUT) :: PTSRAD ! radiative temperature
72 REAL, DIMENSION(KI), INTENT(OUT) :: PTSURF ! effective temperature
73 REAL(KIND=JPRB) :: ZHOOK_HANDLE
74 !
75 !
76 !* 0.2 Declarations of local variables
77 ! -------------------------------
78 !
79 !-------------------------------------------------------------------------------
80 !
81 !
82 !* Albedo and emissivity on open sea and sea ice
83 ! ---------------------------------------------
84 !
85 IF (lhook) CALL dr_hook('UPDATE_ESM_FLAKE_N',0,zhook_handle)
86 !
87  CALL update_rad_flake(f,pzenith,pdir_alb,psca_alb,pemis,ptsrad )
88 !
89 ptsurf(:) = f%XTS(:)
90 !
91 IF (lhook) CALL dr_hook('UPDATE_ESM_FLAKE_N',1,zhook_handle)
92 !
93 !-------------------------------------------------------------------------------
94 !
95 END SUBROUTINE update_esm_flake_n
real, parameter xundef
integer, parameter jprb
Definition: parkind1.F90:32
subroutine update_rad_flake(F, PZENITH, PDIR_ALB_ATMOS, PSCA_ALB_ATMOS, PEMIS_ATMOS, PTRAD)
logical lhook
Definition: yomhook.F90:15
subroutine update_esm_flake_n(F, KI, KSW, PZENITH, PDIR_ALB, PSCA_ALB, PEMIS, PTSRAD, PTSURF)
real, save xtt
Definition: modd_csts.F90:66