From ac2ed8623be249cf9b6648a859fc443f2e6d86fa Mon Sep 17 00:00:00 2001 From: James Edwards Date: Fri, 22 Sep 2023 08:30:59 -0600 Subject: [PATCH] corrections to ofrac and atm enthalpy terms --- mediator/esmFldsExchange_cesm_mod.F90 | 8 +------- mediator/med_enthalpy_mod.F90 | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/mediator/esmFldsExchange_cesm_mod.F90 b/mediator/esmFldsExchange_cesm_mod.F90 index 7c978d70d..875b26c89 100644 --- a/mediator/esmFldsExchange_cesm_mod.F90 +++ b/mediator/esmFldsExchange_cesm_mod.F90 @@ -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. & @@ -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 diff --git a/mediator/med_enthalpy_mod.F90 b/mediator/med_enthalpy_mod.F90 index 434e6f336..59db94a23 100644 --- a/mediator/med_enthalpy_mod.F90 +++ b/mediator/med_enthalpy_mod.F90 @@ -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 @@ -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 @@ -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