diff --git a/src/opsinputs/CxWriterParameters.h b/src/opsinputs/CxWriterParameters.h index 0dd3be18..ac51b83e 100644 --- a/src/opsinputs/CxWriterParameters.h +++ b/src/opsinputs/CxWriterParameters.h @@ -101,6 +101,8 @@ class CxWriterParameters : public oops::ObsFilterParametersBase { oops::Parameter IC_YLen{"IC_YLen", 0, this}; /// Number of levels (PLEVELS). oops::Parameter IC_PLevels{"IC_PLevels", 0, this}; + /// Number of boundary layer levels (BLEVELS). + oops::Parameter IC_BLevels{"IC_BLevels", 0, this}; /// Number of wet levels (QLEVELS). oops::Parameter IC_WetLevels{"IC_WetLevels", 0, this}; /// First rho level at which height is constant. diff --git a/src/opsinputs/VarObsWriterParameters.h b/src/opsinputs/VarObsWriterParameters.h index c7449ac0..631e79e5 100644 --- a/src/opsinputs/VarObsWriterParameters.h +++ b/src/opsinputs/VarObsWriterParameters.h @@ -137,6 +137,8 @@ class VarObsWriterParameters : public oops::ObsFilterParametersBase { oops::Parameter IC_YLen{"IC_YLen", 0, this}; /// Number of levels (PLEVELS). oops::Parameter IC_PLevels{"IC_PLevels", 0, this}; + /// Number of boundary layer levels (BLEVELS). + oops::Parameter IC_BLevels{"IC_BLevels", 0, this}; /// Number of wet levels (QLEVELS). oops::Parameter IC_WetLevels{"IC_WetLevels", 0, this}; /// True if ship winds have been adjusted to 10m. diff --git a/src/opsinputs/opsinputs_cxwriter_mod.F90 b/src/opsinputs/opsinputs_cxwriter_mod.F90 index 6754a060..95726f69 100644 --- a/src/opsinputs/opsinputs_cxwriter_mod.F90 +++ b/src/opsinputs/opsinputs_cxwriter_mod.F90 @@ -151,6 +151,7 @@ module opsinputs_cxwriter_mod integer(integer64) :: IC_XLen integer(integer64) :: IC_YLen integer(integer64) :: IC_PLevels + integer(integer64) :: IC_BLevels integer(integer64) :: IC_WetLevels integer(integer64) :: IC_FirstConstantRhoLevel @@ -363,6 +364,9 @@ function opsinputs_cxwriter_create(self, f_conf, geovars) call f_conf % get_or_die("IC_PLevels", IntValue) self % IC_PLevels = IntValue +call f_conf % get_or_die("IC_BLevels", IntValue) +self % IC_BLevels = IntValue + call f_conf % get_or_die("IC_WetLevels", IntValue) self % IC_WetLevels = IntValue @@ -1416,6 +1420,7 @@ subroutine opsinputs_cxwriter_populateumheader(self, UMHeader) UmHeader % IntC(IC_XLen) = self % IC_XLen UmHeader % IntC(IC_YLen) = self % IC_Ylen UmHeader % IntC(IC_PLevels) = self % IC_PLevels +UmHeader % IntC(IC_BLevels) = self % IC_BLevels UmHeader % IntC(IC_WetLevels) = self % IC_WetLevels UmHeader % IntC(IC_FirstConstantRhoLevel) = self % IC_FirstConstantRhoLevel diff --git a/src/opsinputs/opsinputs_varobswriter_mod.F90 b/src/opsinputs/opsinputs_varobswriter_mod.F90 index 780effb6..78a20089 100644 --- a/src/opsinputs/opsinputs_varobswriter_mod.F90 +++ b/src/opsinputs/opsinputs_varobswriter_mod.F90 @@ -173,6 +173,7 @@ module opsinputs_varobswriter_mod integer(integer64) :: IC_XLen integer(integer64) :: IC_YLen integer(integer64) :: IC_PLevels + integer(integer64) :: IC_BLevels integer(integer64) :: IC_WetLevels real(real64) :: RC_LongSpacing @@ -462,6 +463,9 @@ function opsinputs_varobswriter_create(self, f_conf, comm_is_valid, comm, channe call f_conf % get_or_die("IC_PLevels", IntValue) self % IC_PLevels = IntValue +call f_conf % get_or_die("IC_BLevels", IntValue) +self % IC_BLevels = IntValue + call f_conf % get_or_die("IC_WetLevels", IntValue) self % IC_WetLevels = IntValue @@ -1531,6 +1535,7 @@ subroutine opsinputs_varobswriter_populatecxheader(self, CxHeader) CxHeader % IntC(IC_XLen) = self % IC_XLen CxHeader % IntC(IC_YLen) = self % IC_Ylen CxHeader % IntC(IC_PLevels) = self % IC_PLevels +CxHeader % IntC(IC_BLevels) = self % IC_BLevels CxHeader % IntC(IC_WetLevels) = self % IC_WetLevels CxHeader % RealC(RC_LongSpacing) = self % RC_LongSpacing