Skip to content

Commit

Permalink
corrections to ofrac and atm enthalpy terms
Browse files Browse the repository at this point in the history
  • Loading branch information
jedwards4b committed Sep 22, 2023
1 parent 58c6bb6 commit ac2ed86
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 18 deletions.
8 changes: 1 addition & 7 deletions mediator/esmFldsExchange_cesm_mod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1784,7 +1784,7 @@ subroutine esmFldsExchange_cesm(gcomp, phase, rc)
call addfld_from(compatm, 'Faxa_snowl')
call addfld_to(compocn, 'Faxa_snow' )
else
! TODO: why are we not merging Faxa_rain and Faxa_snow if they are sent from atm wiht ofrac
! TODO: why are we not merging Faxa_rain and Faxa_snow if they are sent from atm with ofrac
! Note that the mediator atm/ocn flux calculation needs Faxa_rainc for the gustiness parameterization
! which by default is not actually used
if ( fldchk(is_local%wrap%FBImp(compatm,compatm), 'Faxa_rainl', rc=rc) .and. &
Expand Down Expand Up @@ -2007,22 +2007,16 @@ subroutine esmFldsExchange_cesm(gcomp, phase, rc)
if ( fldchk(is_local%wrap%FBImp(compatm,compatm), 'Faxa_hrain', rc=rc) .and. &
fldchk(is_local%wrap%FBExp(compocn) , 'Faxa_hrain', rc=rc)) then
call addmap_from(compatm, 'Faxa_hrain', compocn, mapconsf, 'one', atm2ocn_map)
call addmrg_to(compocn, 'Faxa_hrain', &
mrg_from=compatm, mrg_fld='Faxa_hrain', mrg_type='copy')
end if
if ( fldchk(is_local%wrap%FBImp(compatm,compatm), 'Faxa_hsnow', rc=rc) .and. &

fldchk(is_local%wrap%FBExp(compocn) , 'Faxa_hsnow', rc=rc)) then
call addmap_from(compatm, 'Faxa_hsnow', compocn, mapconsf, 'one', atm2ocn_map)
call addmrg_to(compocn, 'Faxa_hsnow', &
mrg_from=compatm, mrg_fld='Faxa_hsnow', mrg_type='copy')
end if
if ( fldchk(is_local%wrap%FBImp(compatm,compatm), 'Faxa_hevap', rc=rc) .and. &

fldchk(is_local%wrap%FBExp(compocn) , 'Faxa_hevap', rc=rc)) then
call addmap_from(compatm, 'Faxa_hevap', compocn, mapconsf, 'one', atm2ocn_map)
call addmrg_to(compocn, 'Faxa_hevap', &
mrg_from=compatm, mrg_fld='Faxa_hevap', mrg_type='copy')
end if
end if

Expand Down
22 changes: 11 additions & 11 deletions mediator/med_enthalpy_mod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -146,14 +146,14 @@ subroutine med_compute_enthalpy(is_local, rc)
allocate(hrofi(nmax))
endif

call fldbun_getdata1d(is_local%wrap%FBImp(compocn,compocn), 'So_omask', ofrac, rc)
call FB_GetFldPtr(is_local%wrap%FBfrac(compocn), 'ofrac' , ofrac, rc=rc)
if (ChkErr(rc,__LINE__,u_FILE_u)) return

if (FB_fldchk(is_local%wrap%FBExp(compatm), 'Faxa_hrain' , rc=rc)) then
call FB_GetFldPtr(is_local%wrap%FBExp(compatm), 'Faxa_hrain', hrain_a, rc=rc)
if (FB_fldchk(is_local%wrap%FBImp(compatm,compocn), 'Faxa_hrain' , rc=rc)) then
call FB_GetFldPtr(is_local%wrap%FBImp(compatm,compocn), 'Faxa_hrain', hrain_a, rc=rc)
if (ChkErr(rc,__LINE__,u_FILE_u)) return
do n = 1,nmax
hrain(n) = hrain_a(n) - tkfrz*rain(n)*cpfw * ofrac(n)
hrain(n) = (hrain_a(n) - tkfrz*rain(n)*cpfw) * ofrac(n)
enddo
else
if (FB_fldchk(is_local%wrap%FBExp(compocn), 'Sa_tbot' , rc=rc)) then
Expand All @@ -168,12 +168,12 @@ subroutine med_compute_enthalpy(is_local, rc)
hrain_a => hrain
endif

if (FB_fldchk(is_local%wrap%FBExp(compatm), 'Faxa_hevap' , rc=rc)) then
call FB_GetFldPtr(is_local%wrap%FBExp(compatm), 'Faxa_hevap', hevap_a, rc=rc)
if (FB_fldchk(is_local%wrap%FBImp(compatm, compocn), 'Faxa_hevap' , rc=rc)) then
call FB_GetFldPtr(is_local%wrap%FBImp(compatm, compocn), 'Faxa_hevap', hevap_a, rc=rc)
if (ChkErr(rc,__LINE__,u_FILE_u)) return
do n = 1,nmax
hevap(n) = min(hevap_a(n),0._r8) - tkfrz * min(evap(n),0._r8) * cpwv * ofrac(n)
hcond(n) = max(hevap_a(n),0._r8) - tkfrz * max(evap(n),0._r8) * cpwv * ofrac(n)
hevap(n) = (min(hevap_a(n),0._r8) - tkfrz * min(evap(n),0._r8) * cpwv) * ofrac(n)
hcond(n) = (max(hevap_a(n),0._r8) - tkfrz * max(evap(n),0._r8) * cpwv) * ofrac(n)
enddo
else
do n = 1,nmax
Expand All @@ -183,11 +183,11 @@ subroutine med_compute_enthalpy(is_local, rc)
hevap_a => hevap
endif

if (FB_fldchk(is_local%wrap%FBExp(compatm), 'Faxa_hsnow' , rc=rc)) then
call FB_GetFldPtr(is_local%wrap%FBExp(compatm), 'Faxa_hsnow', hsnow_a, rc=rc)
if (FB_fldchk(is_local%wrap%FBImp(compatm, compocn), 'Faxa_hsnow' , rc=rc)) then
call FB_GetFldPtr(is_local%wrap%FBImp(compatm, compocn), 'Faxa_hsnow', hsnow_a, rc=rc)
if (ChkErr(rc,__LINE__,u_FILE_u)) return
do n = 1,nmax
hsnow(n) = hsnow_a(n) - tkfrz * snow(n) * cpice * ofrac(n)
hsnow(n) = (hsnow_a(n) - tkfrz * snow(n) * cpice) * ofrac(n)
enddo
else

Expand Down

0 comments on commit ac2ed86

Please sign in to comment.