Skip to content

Commit da8b5f3

Browse files
authored
fabm_calendar_year: provide calendar_year and maximum_time_step to FABM (#64)
1 parent 11971f4 commit da8b5f3

1 file changed

Lines changed: 11 additions & 1 deletion

File tree

src/fabm/gotm_fabm.F90

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ module gotm_fabm
115115
REALTYPE,allocatable,dimension(:),target :: par,pres,swr,k_par,z,nuh_ct
116116

117117
! External variables
118-
REALTYPE :: dt,dt_eff ! External and internal time steps
118+
REALTYPE, target :: dt,dt_eff ! External and internal time steps
119119
integer :: w_adv_ctr ! Scheme for vertical advection (0 if not used)
120120
REALTYPE,pointer,dimension(:) :: nuh,h,bioshade,w,rho
121121
REALTYPE,pointer,dimension(:) :: SRelaxTau,sProf,salt
@@ -124,6 +124,7 @@ module gotm_fabm
124124
REALTYPE,pointer :: I_0,A,g1,g2
125125
integer,pointer :: yearday,secondsofday
126126
REALTYPE, target :: decimal_yearday
127+
REALTYPE, target :: decimal_year
127128
logical :: fabm_ready
128129

129130
REALTYPE,pointer :: fabm_airp
@@ -836,6 +837,13 @@ subroutine init_gotm_fabm_state(nlev)
836837

837838
!-----------------------------------------------------------------------
838839
!BOC
840+
841+
if ( model%variable_needs_values( standard_variables%calendar_year ) ) then
842+
if ( associated(fabm_calendar_date) .and. associated(fabm_julianday) ) then
843+
call model%link_scalar( standard_variables%calendar_year, decimal_year )
844+
end if
845+
end if
846+
839847
call fabm_check_ready(model)
840848
fabm_ready = .true.
841849

@@ -1032,6 +1040,7 @@ subroutine set_env_gotm_fabm(latitude,longitude,dt_,w_adv_method_,w_adv_ctr_,tem
10321040

10331041
! Calculate and save internal time step.
10341042
dt_eff = dt/split_factor
1043+
call model%link_scalar( standard_variables%maximum_time_step, dt_eff )
10351044

10361045
I_0 => I_0_
10371046
A => A_
@@ -1229,6 +1238,7 @@ subroutine do_gotm_fabm(nlev,itime)
12291238
do split=1,split_factor
12301239
if (has_date) then
12311240
call fabm_update_time(model, itime, yyyy, mm, dd, real(secondsofday, gotmrk))
1241+
decimal_year = real( yyyy, gotmrk )
12321242
else
12331243
call fabm_update_time(model, itime)
12341244
end if

0 commit comments

Comments
 (0)