1 / 24

A Generic Coupler for Data Registration, Match, and Model Coupling

A Generic Coupler for Data Registration, Match, and Model Coupling. Shujia Zhou NASA GSFC SIVO/Northrop Grumman Contributors: Joseph Spahr (UCLA) Carlos Cruz (NASA GSFC SIVO/Northrop Grumman). *This work was funded by the NASA ESTO/CT Project. Outline.

konala
Download Presentation

A Generic Coupler for Data Registration, Match, and Model Coupling

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A Generic Coupler for Data Registration, Match, and Model Coupling Shujia Zhou NASA GSFC SIVO/Northrop Grumman Contributors: Joseph Spahr (UCLA) Carlos Cruz (NASA GSFC SIVO/Northrop Grumman) *This work was funded by the NASA ESTO/CT Project

  2. Outline • Background in Earth system model coupling via components • A tool is needed to reduce complexity in coupling among hierarchical components • Generic Coupler • Architecture • Current capabilities • Summary • Next step

  3. Earth System Model Coupling • Several ways of coupling • Many to one • One to one • One to many atm land ocean ? sea ice

  4. ESMF Component and State • An ESMF model component should be developed independent of other components • Its functions are “producer” only while its data are “producer”(export) as well as “consumer” (import) • Couplers resolve all the mismatches to ensure model components to interact setEntryPoint(…) impAtm InitAtm (compAtm, impAtm, expAtm, clock) RunAtm (compAtm, impAtm, expAtm, clock) FinalAtm(compAtm, impAtm, expAtm, clock) expAtm atmosphere

  5. CplAtm2Ocn ESMF Component, State, Coupling At the parent level, atm, land, ocean, sea ice are coupled --> No hierarchy, easy to implement climate impAtm impOcn expAtm land sea ice atm ocean

  6. Generic Coupler:Standard Name (e.g., CF) in Coupling Atmo Ssta neededsource field Destination field Ua Sst_o ssta Va T_surf ssta Ptr_Ssta Atmos U_o ua U_surf ua Ptr_ua register V_o va V_surf va Ptr_va Match name T_surf Sst_o Ptr_Sst_o Output import state remake export state S_surf S_o Ptr_S_o Ocean U_surf U_o Ptr_U_o Ptr_Sst_o regrid Ptr_Ssta V_surf V_o Ptr_V_o Ptr_U_o Ptr_ua Sea_level Sea_o Ptr_Sea_o Ptr_V_o Ptr_va frazil F_o Ptr_F_o Presented in the ESMF Community Meeting, MIT, August 2005

  7. Generic Coupler ESMF_Initialize Atmos Atm imp Atm imp state atm exp Atm2ocn atm exp state Atm2lnd Land Atm imp Atm imp state atm exp Lnd2atm Ocn2atm atm exp state ocean Atm imp GC register Atm imp state register atm exp create atm exp state user GC factory ESMF_Run Transport data, regrid User code ESMF code Presented in the conference of Parallel Computational Fluid Dynamics 2005

  8. A parent is responsible for arranging the coupling between its child and grand child sdyn expClimate= expland + expAtm + expOcean expAtm= expPhys + expSdyn expSdyn= expDyn + expGwd climate --> Difficult expAtm impOcn land atm ocean expSdyn phys expDyn u,v gwd dyn

  9. ESMF Component Coupling • Coupling tasks • An export variable of a component (1) matches, (2) transports, and (3) transforms (if needed) to an import variable of the other component • ESMF utilities • ESMF State is used to contain those variables and perform match • ESMF_StateAddNameOnly(exportState, “U”, rc) • ESMF_StateIsNeeded(importstate, dataname(I), rc) • Nested ESMF State is used to deal with coupling with multiple components • Nested ESMF component is used to deal with hierarchy component • ESMF coupler is used to deal with the variable transformation such as regridding and unit conversion.

  10. New Generic Coupler Component Data registration (Plain text Or Function call) ESMF Component Coupler (Stub codes Or Functional call

  11. ESMF Component Coupling:Match • “Match” task • Generic Coupler does it outside the user code directly with the string matching

  12. ESMF Component Coupling:Transport • “Transport” task • If there is no need for transformation, then assigning the export variable to its matched import variables via pointers or copies. • If there is a need for transformation, then ESMF state and coupler are needed. • A ESMF component needs to use nested ESMF state to contain all the matched export variables of its children component • Generic Coupler uses a tree data structure

  13. ESMF Component Coupling:Coupling • If an export variable of a component (e.g., “DYN”) has been matched to an import variable of the other component “OCN” and transported to the grand parent (e.g., “ATM”) which is the sibling to the component “OCN”. • A coupler is needed to transform the variable as needed via regrid and unit changes etc. • To ensure flexibility, Generic Coupler provides the stub code for users to customize.

  14. Input For Generic Coupler componentstart AGCM childstart SDYN PHYS childend parentstart GCM AANA parentend importstatestart DUDT DVDT DTDT DPEDT DQVDT DO3DT importstateend exportstatestart DUDT_ANA DVDT_ANA DTDT_ANA DPEDT_ANA DQVDT_ANA DO3DT_ANA QVFILL O3FILL TROPP TROPT TROPQ exportstateend componentend • One input plain text file • component name • import field name • export field name • child component name • parent component name • local name • Advantage • Easy-to-use • Less intrusion • Dynamic configuration Example with AGCM of GEOS5

  15. Output of Generic Coupler • All the connections from the matched export to import field names • Create the stub code of ESMF components with matched import/export field variables • Diagram the connection relationship automatically • The connections can be filtered with the information of component hierarchy tree • Only the couplers between the siblings will be created • The component has the import/export field names of its child components

  16. Use of Generic Coupler • To run • gc.exe inputFile outLogFile outConnectFile selectComponent • To create a connection diagram • dot outConnectFile.dot -Tjpg > outConnectFile.jpg

  17. Component Hierarchy Tree in GEOS-5

  18. Partial Component Export-To-Import Pair Relationship in GEOS-5 ----> : pair relation (export to import)

  19. Component Export-To-Import Pair Relationship in PHYS of GEOS-5

  20. Component Export-To-Import Pair Relationship in SURF of GEOS-5

  21. ESMF Component Stub Code (Sample):AGCM module AGCMMod use ESMF_Mod public AGCM_register ! Arrays public: TROPP, DPEDT, DTDT, DUDT, DVDT ! Fields type(ESMF_Field), save:: field_TROPP, field_DPEDT, field_DTDT, field_DUDT, field_DVDT contains !------------------------------------------------------------ Only those matched field variables are created.

  22. ESMF Component Stub Code (Sample): AGCM (Continued) subroutine AGCM_register(comp, rc) type(ESMF_GridComp), intent(inout):: comp integer, intent(out) :: rc ESMF_GridCompSetEntryPoint(comp, ESMF_SETINIT, AGCM_init1, 1, rc) ESMF_GridCompSetEntryPoint(comp, ESMF_SETRUN, AGCM_run, ESMF_SINGLEPHASE, rc) ESMF_GridCompSetEntryPoint(comp, ESMF_SETFINAL, AGCM_final, ESMF_SINGLEPHASE, rc) end subroutine subroutine AGCM_init1(gcomp, importState, exportState, clock, rc) type(ESMF_GridComp), intent(inout):: gcomp type(ESMF_State), intent(inout):: importState, exportState type(ESMF_Clock), intent(in):: clock integer, intent(out) :: rc ESMF_StateAddField(importState, field_DPEDT, rc) ESMF_StateAddField(importState, field_DTDT, rc) ESMF_StateAddField(importState, field_DUDT, rc) ESMF_StateAddField(importState, field_DVDT, rc) ESMF_StateAddField(exportState, field_TROPP, rc) end subroutine AGCM_init1 No more matching for field variables

  23. Summary • A data registration and match tool has been developed to facilitate ESMF component coupling, in particular coupling among hierarchical components • Generate ESMF stub codes of components and couplers • Generate diagrams showing the export-to-import pair relationship among components.

  24. Next Step • User interface will be refined with the feedback • Input text file • API • Assemble components and execute • CCA-style?

More Related