Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cam6_3_150: Adding convective gustiness to U10: Add UGUST output to CAM #943

Merged
merged 7 commits into from
Feb 23, 2024
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Externals.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ externals = Externals.cfg
required = True

[cmeps]
tag = cmeps0.14.43
tag = cmeps0.14.49
protocol = git
repo_url = https://github.com/ESCOMP/CMEPS.git
local_path = components/cmeps
Expand Down Expand Up @@ -64,7 +64,7 @@ local_path = libraries/parallelio
required = True

[cime]
tag = cime6.0.175
tag = cime6.0.198
protocol = git
repo_url = https://github.com/ESMCI/cime
local_path = cime
Expand Down
2 changes: 2 additions & 0 deletions src/control/camsrfexch.F90
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ module camsrfexch
real(r8) :: tref(pcols) ! ref height surface air temp
real(r8) :: qref(pcols) ! ref height specific humidity
real(r8) :: u10(pcols) ! 10m wind speed
real(r8) :: ugustOut(pcols) ! gustiness added
real(r8) :: ts(pcols) ! merged surface temp
real(r8) :: sst(pcols) ! sea surface temp
real(r8) :: snowhland(pcols) ! snow depth (liquid water equivalent) over land
Expand Down Expand Up @@ -218,6 +219,7 @@ subroutine hub2atm_alloc( cam_in )
cam_in(c)%tref (:) = 0._r8
cam_in(c)%qref (:) = 0._r8
cam_in(c)%u10 (:) = 0._r8
cam_in(c)%ugustOut (:) = 0._r8
cam_in(c)%ts (:) = 0._r8
cam_in(c)%sst (:) = 0._r8
cam_in(c)%snowhland(:) = 0._r8
Expand Down
14 changes: 14 additions & 0 deletions src/cpl/nuopc/atm_import_export.F90
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,7 @@ subroutine advertise_fields(gcomp, flds_scalar_name, rc)
call fldlist_add(fldsToAtm_num, fldsToAtm, 'So_ssq' )
call fldlist_add(fldsToAtm_num, fldsToAtm, 'So_re' )
call fldlist_add(fldsToAtm_num, fldsToAtm, 'Sx_u10' )
call fldlist_add(fldsToAtm_num, fldsToAtm, 'So_ugustOut')
call fldlist_add(fldsToAtm_num, fldsToAtm, 'Faxx_taux' )
call fldlist_add(fldsToAtm_num, fldsToAtm, 'Faxx_tauy' )
call fldlist_add(fldsToAtm_num, fldsToAtm, 'Faxx_lat' )
Expand Down Expand Up @@ -766,6 +767,19 @@ subroutine import_fields( gcomp, cam_in, restart_init, rc)
end do
end if

call state_getfldptr(importState, 'So_ugustOut', fldptr=fldptr1d, exists=exists, rc=rc)
if (ChkErr(rc,__LINE__,u_FILE_u)) return
if (exists) then
g = 1
do c = begchunk,endchunk
do i = 1,get_ncols_p(c)
cam_in(c)%ugustOut(i) = fldptr1d(g)
g = g + 1
end do
end do
end if


! bgc scenarios
call state_getfldptr(importState, 'Fall_fco2_lnd', fldptr=fldptr1d, exists=exists_fco2_lnd, rc=rc)
if (ChkErr(rc,__LINE__,u_FILE_u)) return
Expand Down
3 changes: 3 additions & 0 deletions src/physics/cam/cam_diagnostics.F90
Original file line number Diff line number Diff line change
Expand Up @@ -501,6 +501,7 @@ subroutine diag_init_moist(pbuf2d)
call addfld ('TREFHTMX', horiz_only, 'X','K','Maximum reference height temperature over output period')
call addfld ('QREFHT', horiz_only, 'A', 'kg/kg','Reference height humidity')
call addfld ('U10', horiz_only, 'A', 'm/s','10m wind speed')
call addfld ('UGUST', horiz_only, 'A', 'm/s','Gustiness term added to U10')
call addfld ('RHREFHT', horiz_only, 'A', 'fraction','Reference height relative humidity')

call addfld ('LANDFRAC', horiz_only, 'A', 'fraction','Fraction of sfc area covered by land')
Expand Down Expand Up @@ -1785,6 +1786,8 @@ subroutine diag_surf (cam_in, cam_out, state, pbuf)
call outfld('TREFHTMN', cam_in%tref, pcols, lchnk)
call outfld('QREFHT', cam_in%qref, pcols, lchnk)
call outfld('U10', cam_in%u10, pcols, lchnk)
call outfld('UGUST', cam_in%ugustOut, pcols, lchnk)

!
! Calculate and output reference height RH (RHREFHT)
call qsat(cam_in%tref(1:ncol), state%ps(1:ncol), tem2(1:ncol), ftem(1:ncol), ncol)
Expand Down