22! > @brief 3D generic driver for the Framework for Aquatic Biogeochemical Models (FABM)
33! >
44! > This computer program is part of MOSSCO.
5- ! > @copyright Copyright 2021-2022 Helmholtz-Zentrum Hereon
6- ! > @copyright Copyright 2013-2021 Helmholtz-Zentrum Geesthacht
5+ ! > @copyright Copyright 2021-2025 Helmholtz-Zentrum hereon GmbH
6+ ! > @copyright Copyright 2013-2021 Helmholtz-Zentrum Geesthacht GmbH
77! > @author Richard Hofmeister
88! > @author Carsten Lemmen <carsten.lemmen@hereon.de
99!
@@ -217,8 +217,8 @@ subroutine initialize_domain(pf,inum,jnum,knum,dt,mask)
217217 class(type_mossco_fabm_pelagic) :: pf
218218 integer :: inum,jnum,knum
219219 real (rk) :: dt
220- logical , dimension (1 :inum,1 :jnum,1 :knum), optional :: mask
221- logical , dimension (1 :inum,1 :jnum), target :: mask_hz
220+ integer , dimension (1 :inum,1 :jnum,1 :knum), optional :: mask
221+ integer , dimension (1 :inum,1 :jnum), target :: mask_hz
222222
223223 type (export_state_type), pointer :: export_state
224224 integer :: n
@@ -240,9 +240,9 @@ subroutine initialize_domain(pf,inum,jnum,knum,dt,mask)
240240 if (present (mask)) then
241241 pf% mask= mask
242242 else
243- pf% mask(:,:,:) = .false.
243+ pf% mask(:,:,:) = 0
244244 end if
245- mask_hz = any (pf% mask, dim= 3 )
245+ mask_hz = maxval (pf% mask, dim= 3 )
246246
247247 call fabm_set_mask(pf% model, pf% mask, mask_hz)
248248
@@ -369,7 +369,7 @@ subroutine update_grid(pf)
369369 do i= 1 ,pf% inum
370370 do j= 1 ,pf% jnum
371371 do k= 1 ,pf% knum
372- if (.not. pf% mask(i,j,k)) &
372+ if (pf% mask(i,j,k) == 0 ) &
373373 pf% layer_height(i,j,k) = pf% zi(i,j,k0+ k) - pf% zi(i,j,k0+ k-1 )
374374 end do
375375 end do
@@ -402,7 +402,7 @@ subroutine get_rhs(rhs_driver,rhs)
402402 do i= 1 ,rhs_driver% inum
403403 rhs(i,j,rhs_driver% knum,:) = rhs(i,j,rhs_driver% knum,:)/ rhs_driver% layer_height(i,j,rhs_driver% knum)
404404 end do
405- ! if (.not. rhs_driver%mask(i,j,1)) then
405+ ! if (rhs_driver%mask(i,j,1) == 0 ) then
406406 ! call fabm_do_bottom()
407407 ! end if
408408 end do
@@ -803,7 +803,7 @@ subroutine light(pf)
803803
804804 do i= 1 ,pf% inum
805805 do j= 1 ,pf% jnum
806- ! if (.not. pf%mask(i,j,1)) then
806+ ! if (pf%mask(i,j,1) == 0 ) then
807807if ( pf% I_0(i,j) /= pf% I_0(i,j) ) write (0 ,* ) ' ERROR: fabm_pelagic_driver#800 pf%I_0 = ' ,i,j,pf% I_0(i,j)
808808if ( pf% albedo(i,j) /= pf% albedo(i,j) ) write (0 ,* ) ' ERROR: fabm_pelagic_driver#809 pf%albedo = ' ,i,j,pf% albedo(i,j)
809809if ( any (pf% par(i,j,:) /= pf% par(i,j,:)) ) write (0 ,* ) ' ERROR: fabm_pelagic_driver#810 pf%par = ' ,i,j,pf% par(i,j,:)
0 commit comments