From b1da466d0f9d695e4a731bfa0577c9830a1d9aa2 Mon Sep 17 00:00:00 2001 From: "Hernan G. Arango" Date: Fri, 7 Feb 2025 22:07:25 -0500 Subject: [PATCH 1/3] Import Planetary Boundary Layer Height from Coupling --- ESM/coupling_esmf.in | 1 + ESM/coupling_esmf.yaml | 15 +++++ ESM/coupling_esmf_wrf.yaml | 15 +++++ ESM/roms_cmeps.yaml | 15 +++++ Master/cmeps_roms.h | 42 +++++++++++++- Master/esmf_atm_wrf.h | 21 +++++++ Master/esmf_roms.h | 42 +++++++++++++- ROMS/External/roms_basin.in | 2 + ROMS/External/roms_benchmark1.in | 2 + ROMS/External/roms_benchmark2.in | 2 + ROMS/External/roms_benchmark3.in | 2 + ROMS/External/roms_bio_toy.in | 2 + ROMS/External/roms_bl_test.in | 2 + ROMS/External/roms_canyon2d.in | 2 + ROMS/External/roms_canyon3d.in | 2 + ROMS/External/roms_channel.in | 2 + ROMS/External/roms_damee_4.in | 2 + ROMS/External/roms_dogbone_composite.in | 2 + ROMS/External/roms_dogbone_refined.in | 2 + ROMS/External/roms_dogbone_whole.in | 2 + ROMS/External/roms_double_gyre.in | 2 + ROMS/External/roms_estuary_test.in | 2 + ROMS/External/roms_flt_test2d.in | 2 + ROMS/External/roms_flt_test3d.in | 2 + ROMS/External/roms_grav_adj.in | 2 + ROMS/External/roms_inlet_test.in | 2 + ROMS/External/roms_kelvin.in | 2 + ROMS/External/roms_lab_canyon.in | 2 + ROMS/External/roms_lake_jersey.in | 2 + ROMS/External/roms_lake_signell.in | 2 + ROMS/External/roms_lmd_test.in | 2 + ROMS/External/roms_overflow.in | 2 + ROMS/External/roms_riverplume1.in | 2 + ROMS/External/roms_riverplume2.in | 2 + ROMS/External/roms_seamount.in | 2 + ROMS/External/roms_sed_test1.in | 2 + ROMS/External/roms_sed_toy.in | 2 + ROMS/External/roms_shoreface.in | 2 + ROMS/External/roms_soliton.in | 2 + ROMS/External/roms_test_chan.in | 2 + ROMS/External/roms_test_head.in | 2 + ROMS/External/roms_upwelling.in | 2 + ROMS/External/roms_wc13.in | 2 + ROMS/External/roms_weddell.in | 2 + ROMS/External/roms_windbasin.in | 2 + ROMS/External/varinfo.yaml | 11 ++++ ROMS/Modules/mod_forces.F | 24 +++++++- ROMS/Modules/mod_ncparam.F | 3 + ROMS/Nonlinear/bulk_flux.F | 43 +++++++++++---- ROMS/Utility/checkdefs.F | 7 +++ ROMS/Utility/def_quick.F | 73 +++++++++++++++++++++++++ ROMS/Utility/wrt_quick.F | 56 +++++++++++++++++++ User/External/roms_adria02.in | 2 + User/External/roms_cblast.in | 2 + User/External/roms_doppio.in | 2 + User/External/roms_eac_4.in | 2 + User/External/roms_eac_8.in | 2 + User/External/roms_ias.in | 2 + User/External/roms_ias_40.in | 2 + User/External/roms_natl.in | 2 + User/External/roms_nena.in | 2 + User/External/roms_nj_bight.in | 2 + User/External/roms_scb.in | 2 + User/External/roms_sw06_fine.in | 2 + User/External/roms_wcofs.in | 2 + 65 files changed, 451 insertions(+), 19 deletions(-) diff --git a/ESM/coupling_esmf.in b/ESM/coupling_esmf.in index 09180536..98e545d3 100644 --- a/ESM/coupling_esmf.in +++ b/ESM/coupling_esmf.in @@ -253,6 +253,7 @@ WeightsFile(atmos) = meld_weights_atm.nc ! Ustr atmos roms, cice surface U-momentum stress ! Vstr atmos roms, cice surface V-momentum stress ! Wstar atmos roms turbulent frictional wind magnitude +! pblh atmos roms atmosphere boundary layer thickness ! ! zlvl atmos cice atmspheric height lowest level ! rhoa atmos cice surface air density diff --git a/ESM/coupling_esmf.yaml b/ESM/coupling_esmf.yaml index 122f45f5..1f3395da 100644 --- a/ESM/coupling_esmf.yaml +++ b/ESM/coupling_esmf.yaml @@ -349,3 +349,18 @@ metadata: connected_to: *ATM regrid_method: bilinear extrapolate_method: nearest + + - standard_name: atmosphere_boundary_layer_thickness + long_name: atmosphere boundary layer thickness + short_name: pblh + data_variables: [pblh, time] + source_units: m + destination_units: m + source_grid: cell_center + destination_grid: cell_center + add_offset: 0.0d0 + scale: 1.0d0 + debug_write: false + connected_to: *ATM + regrid_method: bilinear + extrapolate_method: nearest diff --git a/ESM/coupling_esmf_wrf.yaml b/ESM/coupling_esmf_wrf.yaml index b60ba12d..17d5d98c 100644 --- a/ESM/coupling_esmf_wrf.yaml +++ b/ESM/coupling_esmf_wrf.yaml @@ -469,3 +469,18 @@ metadata: connected_to: *ATM regrid_method: bilinear extrapolate_method: nearest + + - standard_name: atmosphere_boundary_layer_thickness + long_name: atmosphere boundary layer thickness + short_name: pblh + data_variables: [pblh, time] + source_units: m + destination_units: m + source_grid: cell_center + destination_grid: cell_center + add_offset: 0.0d0 + scale: 1.0d0 + debug_write: false + connected_to: *ATM + regrid_method: bilinear + extrapolate_method: nearest diff --git a/ESM/roms_cmeps.yaml b/ESM/roms_cmeps.yaml index ddd14755..45a4b096 100644 --- a/ESM/roms_cmeps.yaml +++ b/ESM/roms_cmeps.yaml @@ -431,3 +431,18 @@ import: connected_to: *ATM map_type: mapbilnr map_norm: none + + - standard_name: atmosphere_boundary_layer_thickness + long_name: atmosphere boundary layer thickness + short_name: pblh + data_variables: [pblh, time] + source_units: m + destination_units: m + source_grid: cell_center + destination_grid: cell_center + add_offset: 0.0d0 + scale: 1.0d0 + debug_write: false + connected_to: *ATM + map_type: mapbilnr + map_norm: none diff --git a/Master/cmeps_roms.h b/Master/cmeps_roms.h index a72d26bd..df86f102 100644 --- a/Master/cmeps_roms.h +++ b/Master/cmeps_roms.h @@ -126,9 +126,9 @@ USE mod_iounits, ONLY : Iname, SourceFile, stdout USE mod_mixing, ONLY : MIXING USE mod_ncparam, ONLY : Iinfo, idLdwn, idLrad, idPair, & - & idQair, idrain, idSrad, idTair, & - & idTsur, idUair, idUsms, idVair, & - & idVsms + & idPBLh, idQair, idrain, idSrad, & + & idTair, idTsur, idUair, idUsms, & + & idVair, idVsms # ifdef TIME_INTERP USE mod_netcdf, ONLY : netcdf_get_ivar, & & netcdf_get_svar, & @@ -5538,6 +5538,42 @@ & Vstress) END IF # endif +# if defined BULK_FLUXES & defined PBLH +! +! Atmosphere boundary layer thickness (m). +! + CASE ('pblh', 'PBLh') + romsScale=scale + ifield=idPBLh + gtype=r2dvar + Tindex=3-Iinfo(8,ifield,ng) + DO j=JstrR,JendR + DO i=IstrR,IendR + IF (ABS(ptr2d(i,j)).lt.TOL_dp) THEN + Fval=scale*ptr2d(i,j)+add_offset + ELSE + Fval=0.0_dp + END IF + MyFmin(1)=MIN(MyFmin(1),ptr2d(i,j)) + MyFmax(1)=MAX(MyFmax(1),ptr2d(i,j)) + MyFmin(2)=MIN(MyFmin(2),Fval) + MyFmax(2)=MAX(MyFmax(2),Fval) + FORCES(ng)%PBLh(i,j)=Fval + END DO + END DO + IF (localDE.eq.localDEcount-1) THEN + IF (EWperiodic(ng).or.NSperiodic(ng)) THEN + CALL exchange_r2d_tile (ng, tile, & + & LBi, UBi, LBj, UBj, & + & FORCES(ng)%PBLh) + END IF + CALL mp_exchange2d (ng, tile, iNLM, 1, & + & LBi, UBi, LBj, UBj, & + & NghostPoints, & + & EWperiodic(ng), NSperiodic(ng), & + & FORCES(ng)%PBLh) + END IF +# endif # if defined WIND_MINUS_CURRENT && !defined BULK_FLUXES ! ! Surface air density (kg/m3). diff --git a/Master/esmf_atm_wrf.h b/Master/esmf_atm_wrf.h index 29924ae6..d23cc4d5 100644 --- a/Master/esmf_atm_wrf.h +++ b/Master/esmf_atm_wrf.h @@ -4580,6 +4580,27 @@ ptr2d(i,j)=Fval END DO END DO +# if defined BULK_FLUXES & defined PBLH +! +! Atmosphere boundary layer thickness (m). +! + CASE ('pblh', 'PBLh') + MyFmin(1)= MISSING_dp + MyFmax(1)=-MISSING_dp + DO j=Jstr,Jend + DO i=Istr,Iend +# ifdef WRF_TIMEAVG +! Fval=REAL(grid%pblhavg(i,j),dp) + Fval=REAL(grid%pblh(i,j),dp) +# else + Fval=REAL(grid%pblh(i,j),dp) +# endif + MyFmin(1)=MIN(MyFmin(1),Fval) + MyFmax(1)=MAX(MyFmax(1),Fval) + ptr2d(i,j)=Fval + END DO + END DO +# endif ! ! Surface (2m) air temperature (K). ! diff --git a/Master/esmf_roms.h b/Master/esmf_roms.h index 80667574..5a6bf885 100644 --- a/Master/esmf_roms.h +++ b/Master/esmf_roms.h @@ -108,9 +108,9 @@ USE mod_iounits, ONLY : Iname, SourceFile, stdout USE mod_mixing, ONLY : MIXING USE mod_ncparam, ONLY : Iinfo, idLdwn, idLrad, idPair, & - & idQair, idrain, idSrad, idTair, & - & idTsur, idUair, idUsms, idVair, & - & idVsms + & idPBLh, idQair, idrain, idSrad, & + & idTair, idTsur, idUair, idUsms, & + & idVair, idVsms # ifdef TIME_INTERP USE mod_netcdf, ONLY : netcdf_get_ivar, & & netcdf_get_svar, & @@ -3934,6 +3934,42 @@ & Vstress) END IF # endif +# if defined BULK_FLUXES & defined PBLH +! +! Atmosphere boundary layer thickness (m). +! + CASE ('pblh', 'PBLh') + romsScale=scale + ifield=idPBLh + gtype=r2dvar + Tindex=3-Iinfo(8,ifield,ng) + DO j=JstrR,JendR + DO i=IstrR,IendR + IF (ABS(ptr2d(i,j)).lt.TOL_dp) THEN + Fval=scale*ptr2d(i,j)+add_offset + ELSE + Fval=0.0_dp + END IF + MyFmin(1)=MIN(MyFmin(1),ptr2d(i,j)) + MyFmax(1)=MAX(MyFmax(1),ptr2d(i,j)) + MyFmin(2)=MIN(MyFmin(2),Fval) + MyFmax(2)=MAX(MyFmax(2),Fval) + FORCES(ng)%PBLh(i,j)=Fval + END DO + END DO + IF (localDE.eq.localDEcount-1) THEN + IF (EWperiodic(ng).or.NSperiodic(ng)) THEN + CALL exchange_r2d_tile (ng, tile, & + & LBi, UBi, LBj, UBj, & + & FORCES(ng)%PBLh) + END IF + CALL mp_exchange2d (ng, tile, iNLM, 1, & + & LBi, UBi, LBj, UBj, & + & NghostPoints, & + & EWperiodic(ng), NSperiodic(ng), & + & FORCES(ng)%PBLh) + END IF +# endif # if defined WIND_MINUS_CURRENT && !defined BULK_FLUXES ! ! Surface air density (kg/m3). diff --git a/ROMS/External/roms_basin.in b/ROMS/External/roms_basin.in index 45c5548f..23871d5d 100644 --- a/ROMS/External/roms_basin.in +++ b/ROMS/External/roms_basin.in @@ -744,6 +744,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2830,6 +2831,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_benchmark1.in b/ROMS/External/roms_benchmark1.in index f6dafb6e..c0cc2cfc 100644 --- a/ROMS/External/roms_benchmark1.in +++ b/ROMS/External/roms_benchmark1.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_benchmark2.in b/ROMS/External/roms_benchmark2.in index abed3c95..61f50b12 100644 --- a/ROMS/External/roms_benchmark2.in +++ b/ROMS/External/roms_benchmark2.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_benchmark3.in b/ROMS/External/roms_benchmark3.in index f443b0e3..58949305 100644 --- a/ROMS/External/roms_benchmark3.in +++ b/ROMS/External/roms_benchmark3.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_bio_toy.in b/ROMS/External/roms_bio_toy.in index c9ce0542..18203db3 100644 --- a/ROMS/External/roms_bio_toy.in +++ b/ROMS/External/roms_bio_toy.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2839,6 +2840,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_bl_test.in b/ROMS/External/roms_bl_test.in index c737ac27..96005e6d 100644 --- a/ROMS/External/roms_bl_test.in +++ b/ROMS/External/roms_bl_test.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_canyon2d.in b/ROMS/External/roms_canyon2d.in index 2d8ab933..1d7629fe 100644 --- a/ROMS/External/roms_canyon2d.in +++ b/ROMS/External/roms_canyon2d.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_canyon3d.in b/ROMS/External/roms_canyon3d.in index 23d5394e..65d2f6c9 100644 --- a/ROMS/External/roms_canyon3d.in +++ b/ROMS/External/roms_canyon3d.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_channel.in b/ROMS/External/roms_channel.in index 45d9b97c..113b0390 100644 --- a/ROMS/External/roms_channel.in +++ b/ROMS/External/roms_channel.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_damee_4.in b/ROMS/External/roms_damee_4.in index 1335f26a..1e86ad62 100644 --- a/ROMS/External/roms_damee_4.in +++ b/ROMS/External/roms_damee_4.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_dogbone_composite.in b/ROMS/External/roms_dogbone_composite.in index 7817cf4e..0d016073 100644 --- a/ROMS/External/roms_dogbone_composite.in +++ b/ROMS/External/roms_dogbone_composite.in @@ -774,6 +774,7 @@ Qout(idWdis) == 2*F ! Dissip_roller wave roller dissipation Qout(idWrol) == 2*F ! roller_action wave roller action density Qout(idPair) == 2*F ! Pair surface air pressure +Qout(idPBLh) == 2*F ! PBLh atmosphere boundary layer thickness Qout(idTair) == 2*F ! Tair surface air temperature Qout(idUair) == 2*F ! Uair surface U-wind Qout(idVair) == 2*F ! Vair surface V-wind @@ -2869,6 +2870,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_dogbone_refined.in b/ROMS/External/roms_dogbone_refined.in index 4545e3b7..c098b0e2 100644 --- a/ROMS/External/roms_dogbone_refined.in +++ b/ROMS/External/roms_dogbone_refined.in @@ -774,6 +774,7 @@ Qout(idWdis) == 2*F ! Dissip_roller wave roller dissipation Qout(idWrol) == 2*F ! roller_action wave roller action density Qout(idPair) == 2*F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == 2*F ! Tair surface air temperature Qout(idUair) == 2*F ! Uair surface U-wind Qout(idVair) == 2*F ! Vair surface V-wind @@ -2869,6 +2870,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_dogbone_whole.in b/ROMS/External/roms_dogbone_whole.in index 1d4c2797..05621b86 100644 --- a/ROMS/External/roms_dogbone_whole.in +++ b/ROMS/External/roms_dogbone_whole.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_double_gyre.in b/ROMS/External/roms_double_gyre.in index 6ccb2b0e..69d2b663 100644 --- a/ROMS/External/roms_double_gyre.in +++ b/ROMS/External/roms_double_gyre.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_estuary_test.in b/ROMS/External/roms_estuary_test.in index dcb7c590..0631b5fe 100644 --- a/ROMS/External/roms_estuary_test.in +++ b/ROMS/External/roms_estuary_test.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_flt_test2d.in b/ROMS/External/roms_flt_test2d.in index a92d13e7..bf756b80 100644 --- a/ROMS/External/roms_flt_test2d.in +++ b/ROMS/External/roms_flt_test2d.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_flt_test3d.in b/ROMS/External/roms_flt_test3d.in index c8f9d0bd..8b7447cb 100644 --- a/ROMS/External/roms_flt_test3d.in +++ b/ROMS/External/roms_flt_test3d.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_grav_adj.in b/ROMS/External/roms_grav_adj.in index a436f032..a6441f1e 100644 --- a/ROMS/External/roms_grav_adj.in +++ b/ROMS/External/roms_grav_adj.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_inlet_test.in b/ROMS/External/roms_inlet_test.in index f7f52dbe..df7dc7a3 100644 --- a/ROMS/External/roms_inlet_test.in +++ b/ROMS/External/roms_inlet_test.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_kelvin.in b/ROMS/External/roms_kelvin.in index 937a2078..81246873 100644 --- a/ROMS/External/roms_kelvin.in +++ b/ROMS/External/roms_kelvin.in @@ -752,6 +752,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2838,6 +2839,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_lab_canyon.in b/ROMS/External/roms_lab_canyon.in index c06e21f4..667f6ad1 100644 --- a/ROMS/External/roms_lab_canyon.in +++ b/ROMS/External/roms_lab_canyon.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_lake_jersey.in b/ROMS/External/roms_lake_jersey.in index b7555b21..45b422c9 100644 --- a/ROMS/External/roms_lake_jersey.in +++ b/ROMS/External/roms_lake_jersey.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_lake_signell.in b/ROMS/External/roms_lake_signell.in index 671ca0bd..36ddc60b 100644 --- a/ROMS/External/roms_lake_signell.in +++ b/ROMS/External/roms_lake_signell.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_lmd_test.in b/ROMS/External/roms_lmd_test.in index db62e4b0..edaa6ed3 100644 --- a/ROMS/External/roms_lmd_test.in +++ b/ROMS/External/roms_lmd_test.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_overflow.in b/ROMS/External/roms_overflow.in index 7347b59f..b4bac3c3 100644 --- a/ROMS/External/roms_overflow.in +++ b/ROMS/External/roms_overflow.in @@ -744,6 +744,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2830,6 +2831,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_riverplume1.in b/ROMS/External/roms_riverplume1.in index e6ac1816..82d2a13a 100644 --- a/ROMS/External/roms_riverplume1.in +++ b/ROMS/External/roms_riverplume1.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_riverplume2.in b/ROMS/External/roms_riverplume2.in index 135476ae..ef555961 100644 --- a/ROMS/External/roms_riverplume2.in +++ b/ROMS/External/roms_riverplume2.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_seamount.in b/ROMS/External/roms_seamount.in index 880bb8e4..12966852 100644 --- a/ROMS/External/roms_seamount.in +++ b/ROMS/External/roms_seamount.in @@ -743,6 +743,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2829,6 +2830,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_sed_test1.in b/ROMS/External/roms_sed_test1.in index 2cddc82d..daa295d0 100644 --- a/ROMS/External/roms_sed_test1.in +++ b/ROMS/External/roms_sed_test1.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_sed_toy.in b/ROMS/External/roms_sed_toy.in index 776328ec..c3158ad4 100644 --- a/ROMS/External/roms_sed_toy.in +++ b/ROMS/External/roms_sed_toy.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_shoreface.in b/ROMS/External/roms_shoreface.in index 20730782..1dc25d22 100644 --- a/ROMS/External/roms_shoreface.in +++ b/ROMS/External/roms_shoreface.in @@ -746,6 +746,7 @@ Qout(idWdis) == T ! Dissip_roller wave roller dissipation Qout(idWrol) == T ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_soliton.in b/ROMS/External/roms_soliton.in index 418a0500..e6286847 100644 --- a/ROMS/External/roms_soliton.in +++ b/ROMS/External/roms_soliton.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_test_chan.in b/ROMS/External/roms_test_chan.in index 9d5f5bc8..7bb35665 100644 --- a/ROMS/External/roms_test_chan.in +++ b/ROMS/External/roms_test_chan.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_test_head.in b/ROMS/External/roms_test_head.in index 9bdd3aa9..dec97ce4 100644 --- a/ROMS/External/roms_test_head.in +++ b/ROMS/External/roms_test_head.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_upwelling.in b/ROMS/External/roms_upwelling.in index a6e66a41..4ab6738e 100644 --- a/ROMS/External/roms_upwelling.in +++ b/ROMS/External/roms_upwelling.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_wc13.in b/ROMS/External/roms_wc13.in index e146a7fd..ae739283 100644 --- a/ROMS/External/roms_wc13.in +++ b/ROMS/External/roms_wc13.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == T ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == T ! Tair surface air temperature Qout(idUair) == T ! Uair surface U-wind Qout(idVair) == T ! Vair surface V-wind @@ -2838,6 +2839,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_weddell.in b/ROMS/External/roms_weddell.in index aa549a89..ddb2cee3 100644 --- a/ROMS/External/roms_weddell.in +++ b/ROMS/External/roms_weddell.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/roms_windbasin.in b/ROMS/External/roms_windbasin.in index ad2c18eb..637860df 100644 --- a/ROMS/External/roms_windbasin.in +++ b/ROMS/External/roms_windbasin.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/ROMS/External/varinfo.yaml b/ROMS/External/varinfo.yaml index cff097a3..613bdd95 100644 --- a/ROMS/External/varinfo.yaml +++ b/ROMS/External/varinfo.yaml @@ -1624,6 +1624,17 @@ metadata: add_offset: 0.0d0 scale: 1.0d0 + - variable: PBLh # Input + standard_name: atmosphere_boundary_layer_thickness + long_name: atmosphere boundary layer thickness + units: m # [m] + field: planetary boundary layer height + time: pblh_time + index_code: idPBLh + type: r2dvar + add_offset: 0.0d0 + scale: 1.0d0 + - variable: Tair # Input standard_name: surface_air_temperature long_name: surface air temperature diff --git a/ROMS/Modules/mod_forces.F b/ROMS/Modules/mod_forces.F index d795957e..c73ea1e0 100644 --- a/ROMS/Modules/mod_forces.F +++ b/ROMS/Modules/mod_forces.F @@ -70,6 +70,13 @@ MODULE mod_forces ! cloud Cloud fraction (percentage/100). ! ! cloudG Latest two-time snapshots of input "cloud" grided ! ! data used for interpolation. ! + +#if defined BULK_FLUXES && defined FRC_COUPLING && defined PBLH +! ! +! Atmosphere boundary layer. ! +! ! +! PBLh Planetary boundary layer height (m). ! +#endif ! ! ! Surface heat fluxes, Atmosphere-Ocean bulk parameterization. ! ! ! @@ -224,7 +231,9 @@ MODULE mod_forces real(r8), pointer :: PairG(:,:,:) # endif #endif - +#if defined BULK_FLUXES && defined FRC_COUPLING && defined PBLH + real(r8), pointer :: PBLh(:,:) +#endif #ifdef WAVES_DIR real(r8), pointer :: Dwave(:,:) # ifndef ANA_WWAVE @@ -629,6 +638,11 @@ SUBROUTINE allocate_forces (ng, LBi, UBi, LBj, UBj) # endif #endif +#if defined BULK_FLUXES && defined FRC_COUPLING && defined PBLH + allocate ( FORCES(ng) % PBLh(LBi:UBi,LBj:UBj) ) + Dmem(ng)=Dmem(ng)+size2d +#endif + #ifdef WAVES_DIR allocate ( FORCES(ng) % Dwave(LBi:UBi,LBj:UBj) ) Dmem(ng)=Dmem(ng)+size2d @@ -1207,6 +1221,11 @@ SUBROUTINE deallocate_forces (ng) # endif # endif +#if defined BULK_FLUXES && defined FRC_COUPLING && defined PBLH + IF (.not.destroy(ng, FORCES(ng)%PBLh, MyFile, & + & __LINE__, 'FORCES(ng)%PBLh')) RETURN +# endif + # ifdef WAVES_DIR IF (.not.destroy(ng, FORCES(ng)%Dwave, MyFile, & & __LINE__, 'FORCES(ng)%Dwave')) RETURN @@ -1834,6 +1853,9 @@ SUBROUTINE initialize_forces (ng, tile, model) FORCES(ng) % PairG(i,j,2) = IniVal # endif #endif +#if defined BULK_FLUXES && defined FRC_COUPLING && defined PBLH + FORCES(ng) % PBLh(i,j) = IniVal +#endif #ifdef WAVES_DIR FORCES(ng) % Dwave(i,j) = IniVal # ifndef ANA_WWAVE diff --git a/ROMS/Modules/mod_ncparam.F b/ROMS/Modules/mod_ncparam.F index c495a0b7..9862c971 100644 --- a/ROMS/Modules/mod_ncparam.F +++ b/ROMS/Modules/mod_ncparam.F @@ -261,6 +261,7 @@ MODULE mod_ncparam integer :: idOvel ! omega vertical velocity integer :: idOvil ! omega vertical velocity implicit integer :: idPair ! surface air pressure + integer :: idPBLh ! planetary boundary layer height integer :: idPbar ! streamfunction integer :: idPwet ! wet/dry mask on PSI-points integer :: idpmdx ! inverse grid x-spacing @@ -1725,6 +1726,8 @@ SUBROUTINE initialize_ncparam idVwet=varid CASE ('idPair') idPair=varid + CASE ('idPBLh') + idPBLh=varid CASE ('idTair') idTair=varid CASE ('idQair') diff --git a/ROMS/Nonlinear/bulk_flux.F b/ROMS/Nonlinear/bulk_flux.F index ea38bc6a..9326d349 100644 --- a/ROMS/Nonlinear/bulk_flux.F +++ b/ROMS/Nonlinear/bulk_flux.F @@ -155,6 +155,9 @@ SUBROUTINE bulk_flux (ng, tile) # ifdef CLOUDS & FORCES(ng) % cloud, & # endif +# if defined FRC_COUPLING && defined PBLH + & FORCES(ng) % PBLh, & +# endif # if defined COARE_TAYLOR_YELLAND || defined DRENNAN & FORCES(ng) % Hwave, & # endif @@ -226,6 +229,9 @@ SUBROUTINE bulk_flux_tile (ng, tile, & # ifdef CLOUDS & cloud, & # endif +# if defined FRC_COUPLING && defined PBLH + & PBLh, & +# endif # if defined COARE_TAYLOR_YELLAND || defined DRENNAN & Hwave, & # endif @@ -296,18 +302,21 @@ SUBROUTINE bulk_flux_tile (ng, tile, & # ifdef CLOUDS real(r8), intent(in ) :: cloud(LBi:,LBj:) # endif -# if defined COARE_TAYLOR_YELLAND || defined DRENNAN +# if defined FRC_COUPLING && defined PBLH + real(r8), intent(in ) :: PBLh(LBi:,LBj:) +# endif +# if defined COARE_TAYLOR_YELLAND || defined DRENNAN real(r8), intent(in ) :: Hwave(LBi:,LBj:) -# endif -# if defined COARE_TAYLOR_YELLAND || defined COARE_OOST || \ +# endif +# if defined COARE_TAYLOR_YELLAND || defined COARE_OOST || \ defined DRENNAN real(r8), intent(in ) :: Pwave_top(LBi:,LBj:) -# endif -# if !defined DEEPWATER_WAVES && \ +# endif +# if !defined DEEPWATER_WAVES && \ (defined COARE_TAYLOR_YELLAND || defined COARE_OOST || \ defined DRENNAN) real(r8), intent(in ) :: Lwavep(LBi:,LBj:) -# endif +# endif # if defined ICE_MODEL && defined ICE_BULK_FLUXES && \ defined ICE_ALBEDO && defined SHORTWAVE real(r8), intent(in ) :: albedo_ice(LBi:,LBj:) @@ -364,19 +373,22 @@ SUBROUTINE bulk_flux_tile (ng, tile, & # ifdef CLOUDS real(r8), intent(in ) :: cloud(LBi:UBi,LBj:UBj) # endif -# if defined COARE_TAYLOR_YELLAND || \ +# if defined FRC_COUPLING && defined PBLH + real(r8), intent(in ) :: PBLh(LBi:UBi,LBj:UBj) +# endif +# if defined COARE_TAYLOR_YELLAND || \ defined DRENNAN real(r8), intent(in ) :: Hwave(LBi:UBi,LBj:UBj) -# endif -# if defined COARE_TAYLOR_YELLAND || defined COARE_OOST || \ +# endif +# if defined COARE_TAYLOR_YELLAND || defined COARE_OOST || \ defined DRENNAN real(r8), intent(in ) :: Pwave_top(LBi:UBi,LBj:UBj) -# endif -# if !defined DEEPWATER_WAVES && \ +# endif +# if !defined DEEPWATER_WAVES && \ (defined COARE_TAYLOR_YELLAND || defined COARE_OOST || \ defined DRENNAN) real(r8), intent(in ) :: Lwavep(LBi:UBi,LBj:UBj) -# endif +# endif # if defined ICE_MODEL && defined ICE_BULK_FLUXES && \ defined ICE_ALBEDO && defined SHORTWAVE real(r8), intent(in ) :: albedo_ice(LBi:UBi,LBj:UBj) @@ -881,11 +893,18 @@ SUBROUTINE bulk_flux_tile (ng, tile, & & (LOG(blk_ZQ(ng)/ZoQ(i))-Qpsi(i)) ! ! Compute gustiness in wind speed. +# if defined FRC_COUPLING && defined PBLH +! Use atmosphere boundary layer thickness from coupled model. +# endif ! Bf=-g/TairK(i)* & & Wstar(i)*(Tstar(i)+0.61_r8*TairK(i)*Qstar(i)) IF (Bf.gt.0.0_r8) THEN +# if defined FRC_COUPLING && defined PBLH + Wgus(i)=blk_beta*(Bf*PBLh(i,j))**r3 +# else Wgus(i)=blk_beta*(Bf*blk_Zabl)**r3 +# endif ELSE Wgus(i)=0.2_r8 END IF diff --git a/ROMS/Utility/checkdefs.F b/ROMS/Utility/checkdefs.F index 957103c8..40e34a25 100644 --- a/ROMS/Utility/checkdefs.F +++ b/ROMS/Utility/checkdefs.F @@ -2031,6 +2031,13 @@ SUBROUTINE checkdefs is=LEN_TRIM(Coptions)+1 Coptions(is:is+13)=' PARALLEL_IO,' #endif +#if defined PBLH && defined BULK_FLUXES && defined FRC_COUPLING +! + IF (Master) WRITE (stdout,20) 'PBLH', & + & 'Use atmosphere boundary layer thickness for wind gustiness' + is=LEN_TRIM(Coptions)+1 + Coptions(is:is+10)=' PBLH,' +#endif #if defined CARBON && defined BIO_FENNEL # if defined PCO2AIR_DATA ! diff --git a/ROMS/Utility/def_quick.F b/ROMS/Utility/def_quick.F index 880dbe2f..788fe3bc 100644 --- a/ROMS/Utility/def_quick.F +++ b/ROMS/Utility/def_quick.F @@ -1170,6 +1170,27 @@ SUBROUTINE def_quick_nf90 (ng, model, ldef) & NF_FOUT, nvd3, t2dgrd, Aval, Vinfo, ncname) IF (FoundError(exit_flag, NoError, __LINE__, MyFile)) RETURN END IF +# endif +# if defined BULK_FLUXES && defined FRC_COUPLING && defined PBLH +! +! Define atmosphere boundary layer thickness. +! + IF (Qout(idPBLh,ng)) THEN + Vinfo( 1)=Vname(1,idPBLh) + Vinfo( 2)=Vname(2,idPBLh) + Vinfo( 3)=Vname(3,idPBLh) + Vinfo(14)=Vname(4,idPBLh) + Vinfo(16)=Vname(1,idtime) +# if defined WRITE_WATER && defined MASKING + Vinfo(20)='mask_rho' +# endif + Vinfo(21)=Vname(6,idPBLh) + Vinfo(22)='coordinates' + Aval(5)=REAL(Iinfo(1,idPBLh,ng),r8) + status=def_var(ng, model, QCK(ng)%ncid, QCK(ng)%Vid(idPBLh), & + & NF_FOUT, nvd3, t2dgrd, Aval, Vinfo, ncname) + IF (FoundError(exit_flag, NoError, __LINE__, MyFile)) RETURN + END IF # endif # if defined BULK_FLUXES || defined ECOSIM ! @@ -1741,6 +1762,11 @@ SUBROUTINE def_quick_nf90 (ng, model, ldef) got_var(idPair)=.TRUE. QCK(ng)%Vid(idPair)=var_id(i) # endif +# if defined BULK_FLUXES && defined FRC_COUPLING && defined PBLH + ELSE IF (TRIM(var_name(i)).eq.TRIM(Vname(1,idPBLh))) THEN + got_var(idPBLh)=.TRUE. + QCK(ng)%Vid(idPBLh)=var_id(i) +# endif # if defined BULK_FLUXES || defined ECOSIM ELSE IF (TRIM(var_name(i)).eq.TRIM(Vname(1,idUair))) THEN got_var(idUair)=.TRUE. @@ -2037,6 +2063,14 @@ SUBROUTINE def_quick_nf90 (ng, model, ldef) RETURN END IF # endif +# if defined BULK_FLUXES && defined FRC_COUPLING && defined PBLH + IF (.not.got_var(idPBLh).and.Qout(idPBLh,ng)) THEN + IF (Master) WRITE (stdout,70) TRIM(Vname(1,idPBLh)), & + & TRIM(ncname) + exit_flag=3 + RETURN + END IF +# endif # if defined BULK_FLUXES || defined ECOSIM IF (.not.got_var(idUair).and.Qout(idUair,ng)) THEN IF (Master) WRITE (stdout,70) TRIM(Vname(1,idUair)), & @@ -3436,6 +3470,31 @@ SUBROUTINE def_quick_pio (ng, model, ldef) IF (FoundError(exit_flag, NoError, __LINE__, MyFile)) RETURN END IF # endif +# if defined BULK_FLUXES && defined FRC_COUPLING && defined PBLH +! +! Define atmosphere boundary layer thickness. +! + IF (Qout(idPBLh,ng)) THEN + Vinfo( 1)=Vname(1,idPBLh) + Vinfo( 2)=Vname(2,idPBLh) + Vinfo( 3)=Vname(3,idPBLh) + Vinfo(14)=Vname(4,idPBLh) + Vinfo(16)=Vname(1,idtime) +# if defined WRITE_WATER && defined MASKING + Vinfo(20)='mask_rho' +# endif + Vinfo(21)=Vname(6,idPBLh) + Vinfo(22)='coordinates' + Aval(5)=REAL(Iinfo(1,idPBLh,ng),r8) + QCK(ng)%pioVar(idPBLh)%dkind=PIO_FOUT + QCK(ng)%pioVar(idPBLh)%gtype=r2dvar +! + status=def_var(ng, model, QCK(ng)%pioFile, & + & QCK(ng)%pioVar(idPBLh)%vd, & + & PIO_FOUT, nvd3, t2dgrd, Aval, Vinfo, ncname) + IF (FoundError(exit_flag, NoError, __LINE__, MyFile)) RETURN + END IF +# endif # if defined BULK_FLUXES || defined ECOSIM ! ! Define surface winds. @@ -4138,6 +4197,12 @@ SUBROUTINE def_quick_pio (ng, model, ldef) QCK(ng)%pioVar(idPair)%dkind=PIO_FOUT QCK(ng)%pioVar(idPair)%gtype=r2dvar # endif +# if defined BULK_FLUXES && defined FRC_COUPLING && defined PBLH + got_var(idPBLh)=.TRUE. + QCK(ng)%pioVar(idPBLh)%vd=var_desc(i) + QCK(ng)%pioVar(idPBLh)%dkind=PIO_FOUT + QCK(ng)%pioVar(idPBLh)%gtype=r2dvar +# endif # if defined BULK_FLUXES || defined ECOSIM ELSE IF (TRIM(var_name(i)).eq.TRIM(Vname(1,idUair))) THEN got_var(idUair)=.TRUE. @@ -4472,6 +4537,14 @@ SUBROUTINE def_quick_pio (ng, model, ldef) RETURN END IF # endif +# if defined BULK_FLUXES && defined FRC_COUPLING && defined PBLH + IF (.not.got_var(idPBLh).and.Qout(idPBLh,ng)) THEN + IF (Master) WRITE (stdout,70) TRIM(Vname(1,idPBLh)), & + & TRIM(ncname) + exit_flag=3 + RETURN + END IF +# endif # if defined BULK_FLUXES || defined ECOSIM IF (.not.got_var(idUair).and.Qout(idUair,ng)) THEN IF (Master) WRITE (stdout,70) TRIM(Vname(1,idUair)), & diff --git a/ROMS/Utility/wrt_quick.F b/ROMS/Utility/wrt_quick.F index 2fe918a4..1ebbd507 100644 --- a/ROMS/Utility/wrt_quick.F +++ b/ROMS/Utility/wrt_quick.F @@ -1064,6 +1064,31 @@ SUBROUTINE wrt_quick_nf90 (ng, model, tile, & END IF END IF # endif +# if defined BULK_FLUXES && defined FRC_COUPLING && defined PBLH +! +! Write atmosphere boundary layer thickness. +! + IF (Qout(idPBLh,ng)) THEN + scale=1.0_dp + gtype=gfactor*r2dvar + status=nf_fwrite2d(ng, model, QCK(ng)%ncid, idPBLh, & + & QCK(ng)%Vid(idPBLh), & + & QCK(ng)%Rindex, gtype, & + & LBi, UBi, LBj, UBj, scale, & +# ifdef MASKING + & GRID(ng) % rmask, & +# endif + & FORCES(ng) % PBLh) + IF (FoundError(status, nf90_noerr, __LINE__, MyFile)) THEN + IF (Master) THEN + WRITE (stdout,20) TRIM(Vname(1,idPBLh)), QCK(ng)%Rindex + END IF + exit_flag=3 + ioerror=status + RETURN + END IF + END IF +# endif # if defined BULK_FLUXES ! ! Write out surface air temperature. @@ -2679,6 +2704,37 @@ SUBROUTINE wrt_quick_pio (ng, model, tile, & END IF END IF # endif +# if defined BULK_FLUXES && defined FRC_COUPLING && defined PBLH +! +! Write atmosphere boundary layer thickness. +! + IF (Qout(idPBLh,ng)) THEN + scale=1.0_dp + IF (QCK(ng)%pioVar(idPBLh)%dkind.eq.PIO_double) THEN + ioDesc => ioDesc_dp_r2dvar(ng) + ELSE + ioDesc => ioDesc_sp_r2dvar(ng) + END IF + status=nf_fwrite2d(ng, model, QCK(ng)%pioFile, idPBLh, & + & QCK(ng)%pioVar(idPBLh), & + & QCK(ng)%Rindex, & + & ioDesc, & + & LBi, UBi, LBj, UBj, scale, & +# ifdef MASKING + & GRID(ng) % rmask, & +# endif + & FORCES(ng) % PBLh) + IF (FoundError(status, nf90_noerr, __LINE__, MyFile)) THEN + IF (Master) THEN + WRITE (stdout,20) TRIM(Vname(1,idPBLh)), QCK(ng)%Rindex + END IF + exit_flag=3 + ioerror=status + RETURN + END IF + END IF + +# endif # if defined BULK_FLUXES ! ! Write out surface air temperature. diff --git a/User/External/roms_adria02.in b/User/External/roms_adria02.in index b5feaceb..43b3be8a 100644 --- a/User/External/roms_adria02.in +++ b/User/External/roms_adria02.in @@ -745,6 +745,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2835,6 +2836,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/User/External/roms_cblast.in b/User/External/roms_cblast.in index 1e5e22df..45edccf8 100644 --- a/User/External/roms_cblast.in +++ b/User/External/roms_cblast.in @@ -745,6 +745,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2834,6 +2835,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/User/External/roms_doppio.in b/User/External/roms_doppio.in index 335f27ac..16af537d 100644 --- a/User/External/roms_doppio.in +++ b/User/External/roms_doppio.in @@ -746,6 +746,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2839,6 +2840,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/User/External/roms_eac_4.in b/User/External/roms_eac_4.in index bfae6aec..3ba54dd8 100644 --- a/User/External/roms_eac_4.in +++ b/User/External/roms_eac_4.in @@ -745,6 +745,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2831,6 +2832,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/User/External/roms_eac_8.in b/User/External/roms_eac_8.in index 9120207f..20c1fdf4 100644 --- a/User/External/roms_eac_8.in +++ b/User/External/roms_eac_8.in @@ -745,6 +745,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2831,6 +2832,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/User/External/roms_ias.in b/User/External/roms_ias.in index 3c8f8e68..b525c512 100644 --- a/User/External/roms_ias.in +++ b/User/External/roms_ias.in @@ -745,6 +745,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2831,6 +2832,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/User/External/roms_ias_40.in b/User/External/roms_ias_40.in index ba94a9c9..0f142996 100644 --- a/User/External/roms_ias_40.in +++ b/User/External/roms_ias_40.in @@ -744,6 +744,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2830,6 +2831,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/User/External/roms_natl.in b/User/External/roms_natl.in index 92bbfd05..5130b151 100644 --- a/User/External/roms_natl.in +++ b/User/External/roms_natl.in @@ -745,6 +745,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2831,6 +2832,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/User/External/roms_nena.in b/User/External/roms_nena.in index dd3d676d..98bb01a7 100644 --- a/User/External/roms_nena.in +++ b/User/External/roms_nena.in @@ -745,6 +745,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2832,6 +2833,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/User/External/roms_nj_bight.in b/User/External/roms_nj_bight.in index efacc5af..88bfc20d 100644 --- a/User/External/roms_nj_bight.in +++ b/User/External/roms_nj_bight.in @@ -751,6 +751,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2844,6 +2845,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/User/External/roms_scb.in b/User/External/roms_scb.in index fa9c0e14..33c8ad16 100644 --- a/User/External/roms_scb.in +++ b/User/External/roms_scb.in @@ -745,6 +745,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2831,6 +2832,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/User/External/roms_sw06_fine.in b/User/External/roms_sw06_fine.in index 3ab5787c..b96805d6 100644 --- a/User/External/roms_sw06_fine.in +++ b/User/External/roms_sw06_fine.in @@ -745,6 +745,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2831,6 +2832,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. diff --git a/User/External/roms_wcofs.in b/User/External/roms_wcofs.in index 6f83bff1..0864723d 100644 --- a/User/External/roms_wcofs.in +++ b/User/External/roms_wcofs.in @@ -743,6 +743,7 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure +Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness Qout(idTair) == F ! Tair surface air temperature Qout(idUair) == F ! Uair surface U-wind Qout(idVair) == F ! Vair surface V-wind @@ -2829,6 +2830,7 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. +! Qout(idPBLh) Write out atmosphere boundary layer height. ! Qout(idTair) Write out surface air temperature. ! Qout(idUair) Write out surface U-wind component. ! Qout(idVair) Write out surface V-wind component. From 70d24e0f41ac138e27cb05e6134ac3d8a36f5ba8 Mon Sep 17 00:00:00 2001 From: "Hernan G. Arango" Date: Sun, 2 Mar 2025 18:10:36 -0500 Subject: [PATCH 2/3] Add missing logic to set Qout(idPBLh) --- ROMS/Nonlinear/bulk_flux.F | 9 ++++++++- ROMS/Utility/read_phypar.F | 15 +++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/ROMS/Nonlinear/bulk_flux.F b/ROMS/Nonlinear/bulk_flux.F index 9326d349..9d4a9b2c 100644 --- a/ROMS/Nonlinear/bulk_flux.F +++ b/ROMS/Nonlinear/bulk_flux.F @@ -36,7 +36,7 @@ MODULE bulk_flux_mod ! 409-438. ! ! ! ! Fairall, C.W., Bradley, E.F., Hare, J.E., Grachev, A.A. and ! -! Edson, J.B., 2003. Bulk parameterization of air–sea fluxes: ! +! Edson, J.B., 2003. Bulk parameterization of air-sea fluxes: ! ! Updates and verification for the COARE algorithm. Journal of ! ! Climate, 16, 571-591. ! ! ! @@ -758,6 +758,9 @@ SUBROUTINE bulk_flux_tile (ng, tile, & Cd=(vonKar/LOG(blk_ZW(ng)/Zo10(i)))**2 ! ! Compute Richardson number. +# if defined FRC_COUPLING && defined PBLH +! Use atmosphere boundary layer thickness from coupled model. +# endif ! Ct(i)=vonKar/LOG(blk_ZT(ng)/ZoT10(i)) ! T transfer coefficient CC(i)=vonKar*Ct(i)/Cd @@ -765,7 +768,11 @@ SUBROUTINE bulk_flux_tile (ng, tile, & # ifdef COOL_SKIN delTc(i)=blk_dter # endif +# if defined FRC_COUPLING && defined PBLH + Ribcu(i)=-blk_ZW(ng)/(PBLh(i,j)*0.004_r8*blk_beta**3) +# else Ribcu(i)=-blk_ZW(ng)/(blk_Zabl*0.004_r8*blk_beta**3) +# endif Ri(i)=-g*blk_ZW(ng)*((delT(i)-delTc(i))+ & & 0.61_r8*TairK(i)*delQ(i))/ & & (TairK(i)*delW(i)*delW(i)+eps) diff --git a/ROMS/Utility/read_phypar.F b/ROMS/Utility/read_phypar.F index 16811b95..03c3c0ae 100644 --- a/ROMS/Utility/read_phypar.F +++ b/ROMS/Utility/read_phypar.F @@ -2510,6 +2510,16 @@ SUBROUTINE read_PhyPar (model, inp, out, Lwrite) Npts=load_l(Nval, Cval, Ngrids, Lswitch) Qout(idPair,1:Ngrids)=Lswitch(1:Ngrids) # endif +# if defined BULK_FLUXES && defined FRC_COUPLING && defined PBLH + CASE ('Qout(idPBLh)') + IF (idPBLh.eq.0) THEN + IF (Master) WRITE (out,280) 'idPBLh' + exit_flag=5 + RETURN + END IF + Npts=load_l(Nval, Cval, Ngrids, Lswitch) + Qout(idPBLh,1:Ngrids)=Lswitch(1:Ngrids) +# endif # if defined BULK_FLUXES CASE ('Qout(idTair)') Npts=load_l(Nval, Cval, Ngrids, Lswitch) @@ -6525,6 +6535,11 @@ SUBROUTINE read_PhyPar (model, inp, out, Lwrite) & 'Qout(idPair)', & & 'Write out surface air pressure.' # endif +# if defined BULK_FLUXES && defined FRC_COUPLING && defined PBLH + IF (Qout(idPBLh,ng)) WRITE (out,170) Qout(idPBLh,ng), & + & 'Qout(idPBLh)', & + & 'Write out atmosphere boundary layer thickness.' +# endif # if defined BULK_FLUXES IF (Qout(idTair,ng)) WRITE (out,170) Qout(idTair,ng), & & 'Qout(idTair)', & From 3dac379a70fa0dbf1029ea48c4ab3e01ace5d924 Mon Sep 17 00:00:00 2001 From: "Hernan G. Arango" Date: Sun, 9 Mar 2025 17:10:20 -0400 Subject: [PATCH 3/3] Merging latest develop into feature/pblh_coupling https://www.myroms.org/projects/src/ticket/980 --- User/External/roms_scb.in | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/User/External/roms_scb.in b/User/External/roms_scb.in index a80e97ab..bcc3ea5a 100644 --- a/User/External/roms_scb.in +++ b/User/External/roms_scb.in @@ -767,20 +767,12 @@ Qout(idWdis) == F ! Dissip_roller wave roller dissipation Qout(idWrol) == F ! roller_action wave roller action density Qout(idPair) == F ! Pair surface air pressure -<<<<<<< HEAD Qout(idPBLh) == F ! PBLh atmosphere boundary layer thickness -Qout(idTair) == F ! Tair surface air temperature -Qout(idUair) == F ! Uair surface U-wind -Qout(idVair) == F ! Vair surface V-wind -Qout(idUaiE) == F ! Uwind_eastward surface Eastward U-wind -Qout(idVaiN) == F ! Vwind_northward surface Northward V-wind -======= Qout(idTair) == F ! Tair near surface air temperature Qout(idUair) == F ! Uair near surface U-wind Qout(idVair) == F ! Vair near surface V-wind Qout(idUaiE) == F ! Uwind_eastward near surface Eastward U-wind Qout(idVaiN) == F ! Vwind_northward near surface Northward V-wind ->>>>>>> develop Qout(idTsur) == F F ! shflux, ssflux surface net heat and salt flux Qout(idLhea) == F ! latent latent heat flux @@ -2895,20 +2887,12 @@ PIO_I2C_Preq = 65 ! Maximum pending I2C requests ! Qout(idWrol) Write out wave roller action density. ! ! Qout(idPair) Write out surface air pressure. -<<<<<<< HEAD ! Qout(idPBLh) Write out atmosphere boundary layer height. -! Qout(idTair) Write out surface air temperature. -! Qout(idUair) Write out surface U-wind component. -! Qout(idVair) Write out surface V-wind component. -! Qout(idUaiE) Write out surface Eastward U-wind component. -! Qout(idVaiN) Write out surface Northward V-wind component. -======= ! Qout(idTair) Write out near surface air temperature. ! Qout(idUair) Write out near surface U-wind component. ! Qout(idVair) Write out near surface V-wind component. ! Qout(idUaiE) Write out near surface Eastward U-wind. ! Qout(idVaiN) Write out near surface Northward V-wind. ->>>>>>> develop ! ! Qout(idTsur) Write out surface net heat and salt flux ! Qout(idLhea) Write out latent heat flux.