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