Skip to content

Commit 0010743

Browse files
committed
Merge branch 'master' into cmake
2 parents c0b7b3c + 8fc72f9 commit 0010743

31 files changed

Lines changed: 254 additions & 192 deletions

src/Rules.make

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -875,12 +875,14 @@ ifndef MOSSCO_FABM_BINARY_DIR
875875
(cd $(FABM_BINARY_DIR) && $(CMAKE) $(FABMDIR)/src \
876876
-DCMAKE_INSTALL_PREFIX=$(FABM_PREFIX) -DFABM_HOST=$(FABMHOST) \
877877
-DCMAKE_Fortran_FLAGS="$(FABM_FFLAGS)" \
878-
-DCMAKE_Fortran_COMPILER="$(MOSSCO_F90COMPILER)")
878+
-DCMAKE_Fortran_COMPILER="$(MOSSCO_F90COMPILER)" \
879+
-DCMAKE_POLICY_VERSION_MINIMUM=3.5)
879880
else
880881
(cd $(FABM_BINARY_DIR) && $(CMAKE) $(FABMDIR) \
881882
-DCMAKE_INSTALL_PREFIX=$(FABM_PREFIX) -DFABM_HOST=$(FABMHOST) \
882883
-DCMAKE_Fortran_FLAGS="$(FABM_FFLAGS)" \
883-
-DCMAKE_Fortran_COMPILER="$(MOSSCO_F90COMPILER)")
884+
-DCMAKE_Fortran_COMPILER="$(MOSSCO_F90COMPILER)" \
885+
-DCMAKE_POLICY_VERSION_MINIMUM=3.5)
884886
endif
885887
endif
886888
endif
@@ -901,7 +903,8 @@ ifndef MOSSCO_JSON_BINARY_DIR
901903
@mkdir -p $(JSON_BINARY_DIR)
902904
(cd $(JSON_BINARY_DIR) && $(CMAKE) $(JSONDIR)/src \
903905
-DCMAKE_INSTALL_PREFIX=$(JSON_PREFIX) \
904-
-DCMAKE_Fortran_COMPILER="$(MOSSCO_F90COMPILER)")
906+
-DCMAKE_Fortran_COMPILER="$(MOSSCO_F90COMPILER)" \
907+
-DCMAKE_POLICY_VERSION_MINIMUM=3.5)
905908
endif
906909
endif
907910

@@ -939,7 +942,8 @@ ifndef MOSSCO_GOTM_BINARY_DIR
939942
(cd $(GOTM_BINARY_DIR) && $(CMAKE) $(GOTMDIR) -DCMAKE_INSTALL_PREFIX=$(GOTM_PREFIX) \
940943
-DGOTM_USE_FABM=OFF -DCMAKE_Fortran_FLAGS="$(GOTM_FFLAGS)"\
941944
-DCMAKE_Fortran_COMPILER="$(MOSSCO_F90COMPILER)" \
942-
-DNetCDF_ROOT=$(ESMF_LIBSDIR)/..)
945+
-DNetCDF_ROOT=$(ESMF_LIBSDIR)/.. \
946+
-DCMAKE_POLICY_VERSION_MINIMUM=3.5)
943947
endif
944948
endif
945949

src/components/benthos_component.F90

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
!> @brief Implementation of an ESMF component that calculates benthos effects
22
!
33
! This computer program is part of MOSSCO.
4-
!> @copyright Copyright (C) 2013, 2014, 2015, 2016, 2017, 2018
4+
!> @copyright Copyright (C) 2013-20218
55
!> Helmholtz-Zentrum Geesthacht, Bundesanstalt für Wasserbau
66
!> @author M. Hassan Nasermoaddeli
77
!> @author Carsten Lemmen
@@ -104,6 +104,7 @@ subroutine InitializeP0(gridComp, importState, exportState, parentClock, rc)
104104
type(ESMF_Time) :: currTime
105105
integer(ESMF_KIND_I4) :: localrc
106106
logical :: isPresent
107+
type(ESMF_Info) :: info
107108

108109
rc=ESMF_SUCCESS
109110

@@ -113,13 +114,11 @@ subroutine InitializeP0(gridComp, importState, exportState, parentClock, rc)
113114

114115
InitializePhaseMap(1) = "IPDv00p1=1"
115116

116-
call ESMF_AttributeAdd(gridComp, convention="NUOPC", purpose="General", &
117-
attrList=(/"InitializePhaseMap"/), rc=localrc)
117+
call ESMF_InfoGetFromHost(gridComp, info=info, rc=localrc)
118118
_MOSSCO_LOG_AND_FINALIZE_ON_ERROR_(rc)
119119

120-
call ESMF_AttributeSet(gridComp, name="InitializePhaseMap", &
121-
valueList=InitializePhaseMap, &
122-
convention="NUOPC", purpose="General", rc=localrc)
120+
call ESMF_InfoSet(info, key="NUOPC/General/InitializePhaseMap", &
121+
values=InitializePhaseMap, rc=localrc)
123122
_MOSSCO_LOG_AND_FINALIZE_ON_ERROR_(rc)
124123

125124
call ESMF_GridCompGet(gridComp, importStateIsPresent=isPresent, rc=localrc)

src/components/clm_netcdf_component.F90

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
#undef ESMF_FILENAME
1818
#define ESMF_FILENAME "clm_netcdf_component.F90"
1919

20+
#define _MOSSCO_LOG_AND_FINALIZE_ON_ERROR_(X) if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=X)) call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
21+
2022
!> This module encapsulates the CLM atmospheric interface.
2123
module clm_netcdf_component
2224

@@ -116,6 +118,7 @@ subroutine InitializeP0(gridComp, importState, exportState, parentClock, rc)
116118
character(len=ESMF_MAXSTR) :: name, message
117119
type(ESMF_Time) :: currTime
118120
integer :: localrc
121+
type(ESMF_Info) :: info
119122

120123
rc=ESMF_SUCCESS
121124

@@ -125,13 +128,12 @@ subroutine InitializeP0(gridComp, importState, exportState, parentClock, rc)
125128

126129
InitializePhaseMap(1) = "IPDv00p1=1"
127130

128-
call ESMF_AttributeAdd(gridComp, convention="NUOPC", purpose="General", &
129-
attrList=(/"InitializePhaseMap"/), rc=localrc)
130-
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
131+
call ESMF_InfoGetFromHost(gridComp, info=info, rc=localrc)
132+
_MOSSCO_LOG_AND_FINALIZE_ON_ERROR_(rc)
131133

132-
call ESMF_AttributeSet(gridComp, name="InitializePhaseMap", valueList=InitializePhaseMap, &
133-
convention="NUOPC", purpose="General", rc=localrc)
134-
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
134+
call ESMF_InfoSet(info, key="NUOPC/General/InitializePhaseMap", &
135+
values=InitializePhaseMap, rc=localrc)
136+
_MOSSCO_LOG_AND_FINALIZE_ON_ERROR_(rc)
135137

136138
call MOSSCO_CompExit(gridComp, rc=localrc)
137139
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)

src/components/cmaq_component.F90

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ subroutine InitializeP0(gridComp, importState, exportState, parentClock, rc)
9898
character(len=ESMF_MAXSTR) :: name, message
9999
type(ESMF_Time) :: currTime
100100
integer :: localrc
101+
type(ESMF_Info) :: info
101102

102103
!----------------------------------------------------------------------------------
103104
rc=ESMF_SUCCESS
@@ -109,12 +110,11 @@ subroutine InitializeP0(gridComp, importState, exportState, parentClock, rc)
109110
InitializePhaseMap(1) = "IPDv00p1=1"
110111
InitializePhaseMap(2) = "IPDv00p2=2"
111112

112-
call ESMF_AttributeAdd(gridComp, convention="NUOPC", purpose="General", &
113-
attrList=(/"InitializePhaseMap"/), rc=localrc)
113+
call ESMF_InfoGetFromHost(gridComp, info=info, rc=localrc)
114114
_MOSSCO_LOG_AND_FINALIZE_ON_ERROR_(rc)
115115

116-
call ESMF_AttributeSet(gridComp, name="InitializePhaseMap", valueList=InitializePhaseMap, &
117-
convention="NUOPC", purpose="General", rc=localrc)
116+
call ESMF_InfoSet(info, key="NUOPC/General/InitializePhaseMap", &
117+
values=InitializePhaseMap, rc=localrc)
118118
_MOSSCO_LOG_AND_FINALIZE_ON_ERROR_(rc)
119119

120120
call MOSSCO_CompExit(gridComp, rc=localrc)

src/components/default_component.F90

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ subroutine InitializeP0(gridComp, importState, exportState, parentClock, rc)
9595
type(ESMF_Time) :: currTime
9696
integer :: localrc
9797
logical :: isPresent
98+
type(ESMF_Info) :: info
9899

99100
rc=ESMF_SUCCESS
100101

@@ -105,12 +106,11 @@ subroutine InitializeP0(gridComp, importState, exportState, parentClock, rc)
105106

106107
InitializePhaseMap(1) = "IPDv00p1=1"
107108

108-
call ESMF_AttributeAdd(gridComp, convention="NUOPC", purpose="General", &
109-
attrList=(/"InitializePhaseMap"/), rc=localrc)
109+
call ESMF_InfoGetFromHost(gridComp, info=info, rc=localrc)
110110
_MOSSCO_LOG_AND_FINALIZE_ON_ERROR_(rc)
111111

112-
call ESMF_AttributeSet(gridComp, name="InitializePhaseMap", valueList=InitializePhaseMap, &
113-
convention="NUOPC", purpose="General", rc=localrc)
112+
call ESMF_InfoSet(info, key="NUOPC/General/InitializePhaseMap", &
113+
values=InitializePhaseMap, rc=localrc)
114114
_MOSSCO_LOG_AND_FINALIZE_ON_ERROR_(rc)
115115

116116
call ESMF_GridCompGet(gridComp, importStateIsPresent=isPresent, rc=localrc)

src/components/dummy_component.F90

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
#undef ESMF_FILENAME
1717
#define ESMF_FILENAME "dummy_component.F90"
1818

19+
#define _MOSSCO_LOG_AND_FINALIZE_ON_ERROR_(X) if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=X)) call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
20+
1921
module dummy_component
2022

2123
use esmf
@@ -82,6 +84,7 @@ subroutine InitializeP0(gridComp, importState, exportState, parentClock, rc)
8284
character(len=ESMF_MAXSTR) :: name
8385
type(ESMF_Time) :: currTime
8486
integer :: localrc
87+
type(ESMF_Info) :: info
8588

8689
rc=ESMF_SUCCESS
8790

@@ -92,15 +95,12 @@ subroutine InitializeP0(gridComp, importState, exportState, parentClock, rc)
9295

9396
InitializePhaseMap(1) = "IPDv00p1=1"
9497

95-
call ESMF_AttributeAdd(gridComp, convention="NUOPC", purpose="General", &
96-
attrList=(/"InitializePhaseMap"/), rc=localrc)
97-
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) &
98-
call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
98+
call ESMF_InfoGetFromHost(gridComp, info=info, rc=localrc)
99+
_MOSSCO_LOG_AND_FINALIZE_ON_ERROR_(rc)
99100

100-
call ESMF_AttributeSet(gridComp, name="InitializePhaseMap", valueList=InitializePhaseMap, &
101-
convention="NUOPC", purpose="General", rc=localrc)
102-
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) &
103-
call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
101+
call ESMF_InfoSet(info, key="NUOPC/General/InitializePhaseMap", &
102+
values=InitializePhaseMap, rc=localrc)
103+
_MOSSCO_LOG_AND_FINALIZE_ON_ERROR_(rc)
104104

105105
call MOSSCO_CompExit(gridComp, rc=localrc)
106106
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) &

src/components/empty_component.F90

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ subroutine InitializeP0(gridComp, importState, exportState, parentClock, rc)
7878
character(len=ESMF_MAXSTR) :: name
7979
type(ESMF_Time) :: currTime
8080
integer :: localrc
81+
type(ESMF_Info) :: info
8182

8283
rc=ESMF_SUCCESS
8384

@@ -88,12 +89,11 @@ subroutine InitializeP0(gridComp, importState, exportState, parentClock, rc)
8889

8990
InitializePhaseMap(1) = "IPDv00p1=1"
9091

91-
call ESMF_AttributeAdd(gridComp, convention="NUOPC", purpose="General", &
92-
attrList=(/"InitializePhaseMap"/), rc=localrc)
92+
call ESMF_InfoGetFromHost(gridComp, info=info, rc=localrc)
9393
_MOSSCO_LOG_AND_FINALIZE_ON_ERROR_(rc)
9494

95-
call ESMF_AttributeSet(gridComp, name="InitializePhaseMap", valueList=InitializePhaseMap, &
96-
convention="NUOPC", purpose="General", rc=localrc)
95+
call ESMF_InfoSet(info, key="NUOPC/General/InitializePhaseMap", &
96+
values=InitializePhaseMap, rc=localrc)
9797
_MOSSCO_LOG_AND_FINALIZE_ON_ERROR_(rc)
9898

9999
call MOSSCO_CompExit(gridComp, rc=localrc)

src/components/erosed_component.F90

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@ subroutine InitializeP0(gridComp, importState, exportState, parentClock, rc)
171171
type(ESMF_Time) :: currTime
172172
integer :: localrc
173173
logical :: isPresent
174+
type(ESMF_Info) :: info
174175

175176
rc=ESMF_SUCCESS
176177

@@ -181,12 +182,11 @@ subroutine InitializeP0(gridComp, importState, exportState, parentClock, rc)
181182
InitializePhaseMap(1) = "IPDv00p1=1"
182183
InitializePhaseMap(2) = "IPDv00p2=2"
183184

184-
call ESMF_AttributeAdd(gridComp, convention="NUOPC", purpose="General", &
185-
attrList=(/"InitializePhaseMap"/), rc=localrc)
185+
call ESMF_InfoGetFromHost(gridComp, info=info, rc=localrc)
186186
_MOSSCO_LOG_AND_FINALIZE_ON_ERROR_(rc)
187187

188-
call ESMF_AttributeSet(gridComp, name="InitializePhaseMap", valueList=InitializePhaseMap, &
189-
convention="NUOPC", purpose="General", rc=localrc)
188+
call ESMF_InfoSet(info, key="NUOPC/General/InitializePhaseMap", &
189+
values=InitializePhaseMap, rc=localrc)
190190
_MOSSCO_LOG_AND_FINALIZE_ON_ERROR_(rc)
191191

192192
call ESMF_GridCompGet(gridComp, importStateIsPresent=isPresent, rc=localrc)

src/components/fabm_benthic_component.F90

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
!! MOSSCO benthic component.
55
!
66
! This computer program is part of MOSSCO.
7-
!> @copyright Copyright (C) 2013, 2014, 2015, 2016, 2018 Helmholtz-Zentrum Geesthacht
7+
!> @copyright Copyright (C) 2021-2021 Helmholtz-Zentrum hereon GmbH
8+
!> @copyright Copyright (C) 2013-2021 Helmholtz-Zentrum Geesthacht GmbH
89
!> @author Carsten Lemmen <carsten.lemmen@hereon.de>
910
!> @author Richard Hofmeister <richard.hofmeister@hereon.de>
1011
!
@@ -118,24 +119,19 @@ subroutine InitializeP0(gridComp, importState, exportState, parentClock, rc)
118119

119120
call MOSSCO_CompEntry(gridComp, parentClock, name=name, currTime=currTime, importState=importState, &
120121
exportState=exportState, rc=localrc)
121-
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) &
122-
call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
122+
_MOSSCO_LOG_AND_FINALIZE_ON_ERROR_(rc)
123123

124124
InitializePhaseMap(1) = "IPDv00p1=1"
125125

126-
call ESMF_AttributeAdd(gridComp, convention="NUOPC", purpose="General", &
127-
attrList=(/"InitializePhaseMap"/), rc=localrc)
128-
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) &
129-
call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
126+
call ESMF_InfoGetFromHost(gridComp, info=info, rc=localrc)
127+
_MOSSCO_LOG_AND_FINALIZE_ON_ERROR_(rc)
130128

131-
call ESMF_AttributeSet(gridComp, name="InitializePhaseMap", valueList=InitializePhaseMap, &
132-
convention="NUOPC", purpose="General", rc=localrc)
133-
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) &
134-
call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
129+
call ESMF_InfoSet(info, key="NUOPC/General/InitializePhaseMap", &
130+
values=InitializePhaseMap, rc=localrc)
131+
_MOSSCO_LOG_AND_FINALIZE_ON_ERROR_(rc)
135132

136133
call MOSSCO_CompExit(gridComp, rc=localrc)
137-
if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) &
138-
call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
134+
_MOSSCO_LOG_AND_FINALIZE_ON_ERROR_(rc)
139135

140136
end subroutine InitializeP0
141137

@@ -342,7 +338,7 @@ subroutine InitializeP1(gridComp, importState, exportState, parentClock, rc)
342338
integer,dimension(:,:) ,allocatable,target :: minIndexPDe,maxIndexPDe
343339
integer,dimension(:,:,:),allocatable,target :: deBlockList
344340
integer :: day_of_year, day, seconds_of_day
345-
logical, dimension(:,:,:), pointer :: mask=>null()
341+
integer, dimension(:,:,:), pointer :: mask=>null()
346342
integer, dimension(:,:,:), pointer :: gridmask=>null()
347343
real(ESMF_KIND_R8), dimension(:) , pointer :: coord1d=>null()
348344
real(ESMF_KIND_R8), dimension(:,:), pointer :: coord2d=>null()
@@ -569,7 +565,7 @@ subroutine InitializeP1(gridComp, importState, exportState, parentClock, rc)
569565
allocate(mask(1-totalLWidth3(1,1):inum+totalUWidth3(1,1), &
570566
1-totalLWidth3(2,1):jnum+totalUWidth3(2,1), &
571567
1-totalLWidth3(3,1):numlayers+totalUWidth3(3,1)))
572-
mask = .false.
568+
mask = 0
573569
allocate(ben%is_openboundary(1-totalLWidth3(1,1):inum+totalUWidth3(1,1), &
574570
1-totalLWidth3(2,1):jnum+totalUWidth3(2,1), &
575571
1-totalLWidth3(3,1):numlayers+totalUWidth3(3,1)))
@@ -581,7 +577,7 @@ subroutine InitializeP1(gridComp, importState, exportState, parentClock, rc)
581577

582578
call ESMF_GridGetItem(state_grid, ESMF_GRIDITEM_MASK, farrayPtr=gridmask, rc=localrc)
583579
if (localrc == ESMF_SUCCESS) then
584-
mask = ( gridmask.le.0 ) !>@todo: mask where gridmask /= 1
580+
mask = ( gridmask ) !>@todo: mask where gridmask /= 1
585581
ben%is_openboundary = ( gridmask > 1 )
586582
ben%is_openboundary_hz = ben%is_openboundary(:,:,1)
587583
end if
@@ -1475,7 +1471,7 @@ subroutine Run(gridComp, importState, exportState, parentClock, rc)
14751471
! integrate bottom upward fluxes
14761472
! todo: this does not work with the link coupler, yet. the bfl(:)%p pointers
14771473
! have to be updated from importState here in Run
1478-
if (any((ben%layer_height(RANGE2D,1) <= 0).and.(.not.ben%mask(RANGE2D,1)))) then
1474+
if (any((ben%layer_height(RANGE2D,1) <= 0).and.(ben%mask(RANGE2D,1)==0))) then
14791475
write(message,'(A)') ' non-positive layer height detected'
14801476
call ESMF_LogWrite(trim(message), ESMF_LOGMSG_ERROR)
14811477
call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
@@ -1559,8 +1555,8 @@ subroutine Run(gridComp, importState, exportState, parentClock, rc)
15591555
index(itemName,'_flux_at_water_surface')>0) then
15601556
farrayPtr3(RANGE2D,ben%knum) = farrayPtr3(RANGE2D,ben%knum) + ratePtr2(RANGE2D) * dt / ben%layer_height(RANGE2D,ben%knum)
15611557
elseif (index(itemName,'_flux_at_soil_surface')>0) then
1562-
!> @todo Skip if .not.ben%mask(RANGE2D,k)
1563-
! if (all(ratePtr2(RANGE2D) == 0.0 .or. ben%mask(RANGE2D,1)) cycle
1558+
!> @todo Skip if ben%mask(RANGE2D,k) == 0
1559+
! if (all(ratePtr2(RANGE2D) == 0.0 .or. ben%mask(RANGE2D,1) == 0) cycle
15641560
! Avoid overshoot of negative fluxes within a timestep
15651561
! where (farrayPtr3(RANGE2D,1) + ratePtr2(RANGE2D) * dt / ben%layer_height(RANGE2D,1) > 0)
15661562
farrayPtr3(RANGE2D,1) = farrayPtr3(RANGE2D,1) + ratePtr2(RANGE2D) * dt / ben%layer_height(RANGE2D,1)
@@ -1678,14 +1674,14 @@ subroutine integrate_flux_in_water(ben, importState)
16781674
end if
16791675

16801676
do k=1,ben%knum
1681-
if (any((ben%layer_height(RANGE2D,k) <= 0).and.(.not.ben%mask(RANGE2D,k)))) then
1677+
if (any((ben%layer_height(RANGE2D,k) <= 0).and.(ben%mask(RANGE2D,k) == 0))) then
16821678
write(message,'(A)') ' non-positive layer height detected'
16831679
call ESMF_LogWrite(trim(message), ESMF_LOGMSG_ERROR)
16841680
call ESMF_Finalize(rc=localrc, endflag=ESMF_END_ABORT)
16851681
endif
16861682

1687-
where (.not.ben%mask(RANGE2D,k))
1688-
ben%cell_per_column_volume(RANGE2D,k) = 1.0d0 / &
1683+
where (ben%mask(RANGE2D,k)==0)
1684+
ben%cell_per_column_volume(RANGE2D,k) = 1.0d0 / &
16891685
(sum(ben%layer_height(RANGE3D),dim=3)*ben%column_area(RANGE2D))
16901686
endwhere
16911687
enddo

0 commit comments

Comments
 (0)