################# Atmosphere module ################# The atmosphere module is called by its parent module and runs the WRF. The pseudo code of the atmosphere module is:: module mod_esmf_atm # set atmosphere services subroutine ATM_SetServices call NUOPC_CompDerive(NUOPC_SetServices) call NUOPC_CompSetEntryPoint(ESMF_METHOD_INITIALIZE, ATM_Init1) call NUOPC_CompSetEntryPoint(ESMF_METHOD_INITIALIZE, ATM_Init2) call NUOPC_CompSpecialize(NUOPC_SetClock, ATM_SetClock) call NUOPC_CompSpecialize(NUOPC_Label_Advance, ATM_run) # call ESMF_GridCompSetEntryPoint(ESMF_METHOD_FINALIZE, ATM_final) end subroutine ATM_SetServices # set in/out fields subroutine ATM_Init1 call wrf_init() call wrf_getDecompInfo() call NUOPC_Advertise(importState, "fields_in") call NUOPC_Advertise(exportState, "fields_out") end subroutine ATM_Init1 # set grid data and initialize the fields subroutine ATM_Init2 # WRF--ESMF implementations will initialize the grid/field call wrf_state_populate(); end subroutine ATM_Init2 # run atmosphere model subroutine ATM_run # WRF--ESMF will get/put the data when running call wrf_run(); end subroutine ATM_run # WRF can finalize itself? # subroutine ATM_final # call wrf_final(); # end subroutine ATM_final end module