!< @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