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

update to esmf bs47; add export field openwater_frac_in_atm #266

Merged
merged 84 commits into from
Apr 5, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
9328c87
Merge pull request #1 from NOAA-EMC/develop
DeniseWorthen Nov 18, 2019
cb908e9
Merge pull request #2 from NOAA-EMC/develop
DeniseWorthen Dec 2, 2019
c96eaef
Merge pull request #3 from NOAA-EMC/develop
DeniseWorthen Dec 6, 2019
1067e95
Merge pull request #4 from NOAA-EMC/develop
DeniseWorthen Jan 4, 2020
c8abdc6
Merge pull request #9 from NOAA-EMC/develop
DeniseWorthen Jan 16, 2020
3e0e847
Merge pull request #10 from NOAA-EMC/develop
DeniseWorthen Jan 25, 2020
5b2831e
Merge pull request #12 from NOAA-EMC/develop
DeniseWorthen Feb 18, 2020
69b7a01
Merge pull request #13 from NOAA-EMC/develop
DeniseWorthen Mar 23, 2020
2a2b89a
Merge pull request #15 from NOAA-EMC/develop
DeniseWorthen Apr 3, 2020
0671b18
Merge pull request #16 from NOAA-EMC/develop
DeniseWorthen Apr 17, 2020
1e25e61
Merge pull request #17 from NOAA-EMC/develop
DeniseWorthen Apr 17, 2020
fce0b06
Merge pull request #18 from NOAA-EMC/develop
DeniseWorthen Apr 23, 2020
e655629
Merge pull request #19 from NOAA-EMC/develop
DeniseWorthen Apr 24, 2020
3df3898
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Jun 26, 2020
7f89d1f
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Aug 1, 2020
d3a9665
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Aug 12, 2020
c2aae4e
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Aug 16, 2020
a1e05e0
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Aug 27, 2020
24d4fe6
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Sep 2, 2020
ebfcf47
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Sep 2, 2020
ff8c950
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Nov 2, 2020
7e1489d
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Nov 3, 2020
9619fe7
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Nov 12, 2020
9416382
add ocean fraction exported back to mediator
DeniseWorthen Nov 12, 2020
f25c9b0
try fixing dumpfield hang
DeniseWorthen Nov 13, 2020
6cef110
multiply ifrac*ofrac before export
DeniseWorthen Nov 13, 2020
a87558f
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Nov 16, 2020
76842e3
Merge branch 'develop' into feature/sa_ofrac
DeniseWorthen Nov 16, 2020
4e636ba
add frac restart fix from Shan fix_frac_rst_20201114
DeniseWorthen Nov 16, 2020
8d3f100
Add shan's latest fix to sfcprop slmsk
DeniseWorthen Nov 17, 2020
d8e5772
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Nov 18, 2020
cf5cb3e
Merge branch 'develop' into feature/sa_ofrac
DeniseWorthen Nov 18, 2020
484782a
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Nov 30, 2020
f651180
Merge branch 'develop' into feature/sa_ofrac
DeniseWorthen Nov 30, 2020
5514ecc
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Dec 2, 2020
69532f7
Merge branch 'develop' into feature/sa_ofrac
DeniseWorthen Dec 2, 2020
7beaa31
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Dec 16, 2020
d5f09e3
Merge branch 'develop' into feature/sa_ofrac
DeniseWorthen Dec 16, 2020
624b4e2
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Dec 18, 2020
6f22d25
Merge branch 'develop' into feature/sa_ofrac
DeniseWorthen Dec 18, 2020
e174f2a
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Jan 12, 2021
9ecc2c2
Merge branch 'develop' into feature/sa_ofrac
DeniseWorthen Jan 12, 2021
57bd7a7
make export the ocean fraction
DeniseWorthen Jan 14, 2021
1f2356a
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Jan 14, 2021
de55f5b
Merge branch 'develop' into feature/sa_ofrac
DeniseWorthen Jan 14, 2021
13d34f7
change alias for Sa_ofrac; correct field for export
DeniseWorthen Jan 18, 2021
3000a5f
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Jan 20, 2021
f3c4eef
Merge branch 'develop' into feature/sa_ofrac
DeniseWorthen Jan 20, 2021
c3475dc
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Jan 27, 2021
ccd81ee
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Jan 30, 2021
ad408ee
Merge branch 'develop' into feature/sa_ofrac
DeniseWorthen Jan 30, 2021
147e4eb
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Feb 8, 2021
52cf9c2
Merge branch 'develop' into feature/sa_ofrac
DeniseWorthen Feb 8, 2021
006e6f9
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Feb 16, 2021
cd060b4
Merge branch 'develop' into feature/sa_ofrac
DeniseWorthen Feb 16, 2021
38041e6
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Feb 19, 2021
4af44c9
Merge branch 'develop' into feature/sa_ofrac
DeniseWorthen Feb 19, 2021
0a76011
add changes from upd_for_esmf81bs30
DeniseWorthen Feb 25, 2021
f61a8f7
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Feb 25, 2021
e7002ee
Merge branch 'develop' into feature/sa_ofrac
DeniseWorthen Feb 25, 2021
db6ed0f
Merge branch 'develop' into feature/testbs47
DeniseWorthen Feb 25, 2021
6ac245f
add missing code from cpl/module_cap_cpl
DeniseWorthen Feb 25, 2021
33e440e
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Mar 3, 2021
fa5ac47
Merge branch 'develop' into feature/testbs47
DeniseWorthen Mar 10, 2021
1276541
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Mar 11, 2021
93ac46b
Merge branch 'develop' into feature/sa_ofrac
DeniseWorthen Mar 11, 2021
e580af4
Merge branch 'develop' into feature/testbs47
DeniseWorthen Mar 11, 2021
44fff6d
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Mar 16, 2021
f9d0e5c
Merge branch 'develop' into feature/testbs47
DeniseWorthen Mar 16, 2021
1f9f47e
Merge branch 'develop' into feature/sa_ofrac
DeniseWorthen Mar 16, 2021
7ad23d9
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Mar 18, 2021
796aa4a
Merge branch 'develop' into feature/testbs47
DeniseWorthen Mar 18, 2021
a9889b8
Merge branch 'develop' into feature/sa_ofrac
DeniseWorthen Mar 18, 2021
e14c8e4
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Mar 21, 2021
5ce5f8e
Merge branch 'develop' into feature/sa_ofrac
DeniseWorthen Mar 21, 2021
078882e
Merge branch 'develop' into feature/testbs47
DeniseWorthen Mar 25, 2021
9b510fc
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Mar 26, 2021
3f5b8d4
Merge branch 'develop' into feature/testbs47
DeniseWorthen Mar 26, 2021
977615f
Merge branch 'develop' into feature/sa_ofrac
DeniseWorthen Mar 26, 2021
30c7a8a
Merge branch 'feature/sa_ofrac' into feature/testbs47
DeniseWorthen Mar 30, 2021
97d5e0f
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Mar 30, 2021
892bdc0
Merge branch 'develop' into feature/testbs47
DeniseWorthen Mar 30, 2021
54b76d7
Merge remote-tracking branch 'upstream/develop' into develop
DeniseWorthen Mar 31, 2021
cf06ff9
Merge branch 'develop' into feature/testbs47
DeniseWorthen Mar 31, 2021
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
14 changes: 14 additions & 0 deletions atmos_model.F90
Original file line number Diff line number Diff line change
Expand Up @@ -2620,6 +2620,20 @@ subroutine setup_exportdata (rc)
enddo
enddo
endif

! oceanfrac used by atm to calculate fluxes
idx = queryfieldlist(exportFieldsList,'openwater_frac_in_atm')
if (idx > 0 ) then
!$omp parallel do default(shared) private(i,j,nb,ix)
do j=jsc,jec
do i=isc,iec
nb = Atm_block%blkno(i,j)
ix = Atm_block%ixp(i,j)
exportData(i,j,idx) = (one - GFS_Data(nb)%Sfcprop%fice(ix))*GFS_Data(nb)%Sfcprop%oceanfrac(ix)
enddo
enddo
endif

endif !cplflx

!---
Expand Down
44 changes: 20 additions & 24 deletions cpl/module_cap_cpl.F90
Original file line number Diff line number Diff line change
Expand Up @@ -139,50 +139,45 @@ subroutine realizeConnectedCplFields(state, grid,
isConnected = NUOPC_IsConnected(state, fieldName=trim(fieldNames(item)), rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return
if (isConnected) then
call ESMF_StateGet(state, field=field, itemName=trim(fieldNames(item)), rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return
call ESMF_FieldEmptySet(field, grid=grid, rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return
select case (fieldTypes(item))
case ('l','layer')
field = ESMF_FieldCreate(grid, typekind=ESMF_TYPEKIND_R8, &
name=trim(fieldNames(item)), &
call ESMF_FieldEmptyComplete(field, typekind=ESMF_TYPEKIND_R8, &
ungriddedLBound=(/1/), ungriddedUBound=(/numLevels/), rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return
case ('i','interface')
field = ESMF_FieldCreate(grid, typekind=ESMF_TYPEKIND_R8, &
name=trim(fieldNames(item)), &
call ESMF_FieldEmptyComplete(field, typekind=ESMF_TYPEKIND_R8, &
ungriddedLBound=(/1/), ungriddedUBound=(/numLevels+1/), rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return
case ('t','tracer')
field = ESMF_FieldCreate(grid, typekind=ESMF_TYPEKIND_R8, &
name=trim(fieldNames(item)), &
call ESMF_FieldEmptyComplete(field, typekind=ESMF_TYPEKIND_R8, &
ungriddedLBound=(/1, 1/), ungriddedUBound=(/numLevels, numTracers/), rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return
case ('u','tracer_up_flux')
field = ESMF_FieldCreate(grid, typekind=ESMF_TYPEKIND_R8, &
name=trim(fieldNames(item)), &
call ESMF_FieldEmptyComplete(field, typekind=ESMF_TYPEKIND_R8, &
ungriddedLBound=(/1/), ungriddedUBound=(/num_diag_sfc_emis_flux/), rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return
case ('d','tracer_down_flx')
field = ESMF_FieldCreate(grid, typekind=ESMF_TYPEKIND_R8, &
name=trim(fieldNames(item)), &
call ESMF_FieldEmptyComplete(field, typekind=ESMF_TYPEKIND_R8, &
ungriddedLBound=(/1, 1/), &
ungriddedUBound=(/num_diag_down_flux, num_diag_type_down_flux/), rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return
case ('b','tracer_anth_biom_emission')
field = ESMF_FieldCreate(grid, typekind=ESMF_TYPEKIND_R8, &
name=trim(fieldNames(item)), &
call ESMF_FieldEmptyComplete(field, typekind=ESMF_TYPEKIND_R8, &
ungriddedLBound=(/1/), ungriddedUBound=(/num_diag_burn_emis_flux/), rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return
case ('c','tracer_column_mass_density')
field = ESMF_FieldCreate(grid, typekind=ESMF_TYPEKIND_R8, &
name=trim(fieldNames(item)), &
call ESMF_FieldEmptyComplete(field, typekind=ESMF_TYPEKIND_R8, &
ungriddedLBound=(/1/), ungriddedUBound=(/num_diag_cmass/), rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return
case ('s','surface')
field = ESMF_FieldCreate(grid, typekind=ESMF_TYPEKIND_R8, &
name=trim(fieldNames(item)), rc=rc)
call ESMF_FieldEmptyComplete(field, typekind=ESMF_TYPEKIND_R8, rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return
case ('g','soil')
field = ESMF_FieldCreate(grid, typekind=ESMF_TYPEKIND_R8, &
name=trim(fieldNames(item)), &
call ESMF_FieldEmptyComplete(field, typekind=ESMF_TYPEKIND_R8, &
ungriddedLBound=(/1/), ungriddedUBound=(/numSoilLayers/), rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return
case default
Expand All @@ -194,7 +189,7 @@ subroutine realizeConnectedCplFields(state, grid,
call NUOPC_Realize(state, field=field, rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return

! -- zero out field
! -- zero out field
call ESMF_FieldFill(field, dataFillScheme="const", const1=0._ESMF_KIND_R8, rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return

Expand All @@ -216,16 +211,17 @@ end subroutine realizeConnectedCplFields
!-----------------------------------------------------------------------------

subroutine diagnose_cplFields(gcomp, importState, exportstate, clock_fv3, &
statewrite_flag, stdiagnose_flag, state_tag, timestr)
fcstpe, statewrite_flag, stdiagnose_flag, state_tag, timestr)

type(ESMF_GridComp), intent(in) :: gcomp
type(ESMF_State) :: importState, exportstate
type(ESMF_Clock),intent(in) :: clock_fv3
logical, intent(in) :: fcstpe
logical, intent(in) :: statewrite_flag
integer, intent(in) :: stdiagnose_flag
character(len=*), intent(in) :: state_tag !< Import or export.
character(len=*), intent(in) :: timestr !< Import or export.
integer :: timeslice = 1
integer :: timeslice = 1
!
character(len=160) :: nuopcMsg
character(len=160) :: filename
Expand All @@ -244,11 +240,11 @@ subroutine diagnose_cplFields(gcomp, importState, exportstate, clock_fv3, &
unit=nuopcMsg)
! call ESMF_LogWrite(nuopcMsg, ESMF_LOGMSG_INFO)

if(trim(state_tag) .eq. 'import')then
if(trim(state_tag) .eq. 'import')then
call ESMF_GridCompGet(gcomp, importState=importState, rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return

if(stdiagnose_flag > 0)then
if(stdiagnose_flag > 0 .and. fcstpe)then
call state_diagnose(importState, ':IS', rc=rc)
end if

Expand All @@ -264,7 +260,7 @@ subroutine diagnose_cplFields(gcomp, importState, exportstate, clock_fv3, &
call ESMF_GridCompGet(gcomp, exportState=exportState, rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return

if(stdiagnose_flag > 0)then
if(stdiagnose_flag > 0 .and. fcstpe)then
call state_diagnose(exportState, ':ES', rc=rc)
end if

Expand Down
11 changes: 6 additions & 5 deletions cpl/module_cplfields.F90
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ module module_cplfields
private

! Export Fields ----------------------------------------
integer, public, parameter :: NexportFields = 71
integer, public, parameter :: NexportFields = 72
type(ESMF_Field), target, public :: exportFields(NexportFields)
character(len=*), public, parameter :: exportFieldsList(NexportFields) = (/ &
"inst_pres_interface ", &
Expand Down Expand Up @@ -86,7 +86,8 @@ module module_cplfields
"inst_merid_wind_height_lowest ", &
"inst_pres_height_lowest ", &
"inst_height_lowest ", &
"mean_fprec_rate " &
"mean_fprec_rate ", &
"openwater_frac_in_atm " &
! "northward_wind_neutral ", &
! "eastward_wind_neutral ", &
! "upward_wind_neutral ", &
Expand All @@ -112,7 +113,7 @@ module module_cplfields
"s","s","s","s","s","s","s","s", &
"s","s","s","s","s","s","s","s", &
"s","s","s","s","s","s","s","s", &
"s","s","s","s","s" &
"s","s","s","s","s","s" &
! "l","l","l","l","l","l","l","s", &
/)
! Set exportFieldShare to .true. if field is provided as memory reference
Expand All @@ -132,7 +133,7 @@ module module_cplfields
.false.,.false.,.false.,.false.,.false., &
.false.,.false.,.false.,.true. ,.false., &
.false.,.false.,.false.,.false.,.false., &
.false. &
.false.,.false. &
! .false.,.false.,.false.,.false.,.false., &
! .false.,.false.,.false. &
/)
Expand Down Expand Up @@ -212,7 +213,7 @@ subroutine fillExportFields(data_a2oi, rc)
isCreated = ESMF_FieldIsCreated(exportFields(n), rc=localrc)
if (ESMF_LogFoundError(rcToCheck=localrc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__, rcToReturn=rc)) return
if (isCreated) then
! set data
! set data
call ESMF_FieldGet(exportFields(n), name=fieldname, dimCount=dimCount, typekind=datatype, rc=localrc)
if (ESMF_LogFoundError(rcToCheck=localrc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__, rcToReturn=rc)) return
!print *,'in fillExportFields, field created n=',n,size(exportFields),'name=', trim(fieldname)
Expand Down
Loading