Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
!< @brief an example of using SFX/INMCM interface
program sfx_inmcm_ex
!> SFX data structures
use sfx_data, only: meteoDataType, sfxDataType
!> SFX-INMCM interface
use sfx_api_inmcm
!> actual interface of ESM model
use sfx_esm, only: &
get_surface_fluxes_esm => get_surface_fluxes, &
numericsType_esm => numericsType
implicit none
type(meteoDataType) :: meteo_cell
type(sfxDataType) :: sfx_cell
type(numericsType_esm) :: numerics
!> INMCM surface layer uses legacy INMCM AR arrays for input/output
real :: AR1(6), AR2(11)
! --- setting some dummy data
! *: the actual values should be supplied by model
AR1(1) = 10.0 ! wind speed
AR1(2) = 0.0 ! difference between surface and air temperature
AR1(3) = 273.15 ! semi-sum of surface and air temperature
AR1(4) = 0.0 ! difference in surface and air specific humidity
AR1(5) = 2.0 ! height at which fluxes are evaluated
AR1(6) = 1.0e-3 ! surface roughness parameter
! --- converting AR input to SFX format -> meteo cell
call inmcm_to_sfx_in_cell(meteo_cell, AR1)
! --- calculating fluxes
call get_surface_fluxes_esm(sfx_cell, meteo_cell, numerics)
! --- converting SFX cell output to AR format
call sfx_to_inmcm_out_cell(AR2, sfx_cell)
! *: now AR can be passed to other parts of INMCM
stop
end program sfx_inmcm_ex