1
- #include " ESMFConvenienceMacros.h"
2
-
3
1
!- ----------------------------------------------------------------------
4
2
!
5
3
MODULE module_EARTH_GRID_COMP
@@ -22,11 +20,7 @@ MODULE module_EARTH_GRID_COMP
22
20
!
23
21
! Main program
24
22
! |
25
- ! |
26
- ! NEMS component
27
- ! | |________________________.
28
- ! | |
29
- ! EARTH component Ensemble Coupler component
23
+ ! EARTH component
30
24
! /|\
31
25
! / | \
32
26
! ATM/OCN/ICE/WAV/LND/IPM/HYD .. components
@@ -35,11 +29,11 @@ MODULE module_EARTH_GRID_COMP
35
29
! | |
36
30
! | (MOM6, HYCOM, etc.)
37
31
! |
38
- ! CORE component (FV3, etc.)
32
+ ! (FV3, etc.)
39
33
!
40
34
!- ----------------------------------------------------------------------
41
35
!
42
- USE ESMF
36
+ use ESMF
43
37
44
38
use NUOPC
45
39
use NUOPC_Driver, &
@@ -92,24 +86,21 @@ MODULE module_EARTH_GRID_COMP
92
86
#ifdef FRONT_CMEPS
93
87
use MED, only: MED_SS = > SetServices
94
88
#endif
95
-
96
- USE module_NEMS_UTILS,ONLY: MESSAGE_CHECK
97
89
!
98
90
!- ----------------------------------------------------------------------
99
91
!
100
- IMPLICIT NONE
92
+ implicit none
101
93
!
102
94
!- ----------------------------------------------------------------------
103
95
!
104
- PRIVATE
96
+ private
105
97
!
106
- PUBLIC :: EARTH_REGISTER
107
- PUBLIC :: VERBOSE_DIAGNOSTICS
98
+ public :: earth_register
99
+ public :: verbose_diagnostics
108
100
!
109
101
!- ----------------------------------------------------------------------
110
102
!
111
-
112
- LOGICAL , PRIVATE :: flag_verbose_diagnostics = .false.
103
+ logical , private :: flag_verbose_diagnostics = .false.
113
104
logical , private :: printattr = .false.
114
105
115
106
character (len=* ),parameter :: u_FILE_u = &
@@ -145,73 +136,72 @@ end function ChkErr
145
136
! #######################################################################
146
137
!- ----------------------------------------------------------------------
147
138
!
148
- SUBROUTINE EARTH_REGISTER (EARTH_GRID_COMP ,RC_REG )
139
+ SUBROUTINE EARTH_REGISTER (EARTH_GRID_COMP ,RC )
149
140
!
150
141
!- ----------------------------------------------------------------------
151
142
!
152
143
!- -----------------------
153
144
! *** Argument Variables
154
145
!- -----------------------
155
146
!
156
- TYPE (ESMF_GridComp) :: EARTH_GRID_COMP ! <-- The EARTH component
147
+ type (ESMF_GridComp) :: EARTH_GRID_COMP ! <-- The EARTH component
157
148
!
158
- INTEGER , INTENT ( OUT ) :: RC_REG ! <-- Error return code
149
+ integer , intent ( out ) :: rc ! <-- Error return code
159
150
!
160
151
!- --------------------
161
152
! *** Local Variables
162
153
!- --------------------
163
154
!
164
- INTEGER :: RC
165
155
type (ESMF_Config) :: config
166
156
!
167
157
!- ----------------------------------------------------------------------
168
158
! ***********************************************************************
169
159
!- ----------------------------------------------------------------------
170
160
!
171
- RC_REG = ESMF_SUCCESS
161
+ RC = ESMF_SUCCESS
172
162
!
173
163
!- ----------------------------------------------------------------------
174
164
! ***********************************************************************
175
165
!- ----------------------------------------------------------------------
176
166
!
177
167
! Derive from NUOPC_Driver
178
168
call NUOPC_CompDerive(EARTH_GRID_COMP, Driver_routine_SS, rc= RC)
179
- ESMF_ERR_RETURN(RC,RC_REG)
169
+ if (ChkErr(rc,__LINE__,u_FILE_u)) return
180
170
181
171
! specializations:
182
172
183
173
call NUOPC_CompSpecialize(EARTH_GRID_COMP, &
184
174
specLabel= Driver_label_SetModelServices, specRoutine= SetModelServices, &
185
175
rc= RC)
186
- ESMF_ERR_RETURN(RC,RC_REG)
176
+ if (ChkErr(rc,__LINE__,u_FILE_u)) return
187
177
188
178
call NUOPC_CompSpecialize(EARTH_GRID_COMP, &
189
179
specLabel= Driver_label_SetRunSequence, specRoutine= SetRunSequence, &
190
180
rc= RC)
191
- ESMF_ERR_RETURN(RC,RC_REG)
181
+ if (ChkErr(rc,__LINE__,u_FILE_u)) return
192
182
193
183
#ifndef JEDI_DRIVER
194
184
! The NEMS Earth component is currently the top-level driver and
195
185
! does not need to coordinate Clocks with its parent.
196
- call ESMF_MethodRemove(EARTH_GRID_COMP, Driver_label_SetRunClock, rc= RC_REG )
197
- ESMF_ERR_RETURN(RC,RC_REG)
186
+ call ESMF_MethodRemove(EARTH_GRID_COMP, Driver_label_SetRunClock, rc= RC )
187
+ if (ChkErr(rc,__LINE__,u_FILE_u)) return
198
188
call NUOPC_CompSpecialize(EARTH_GRID_COMP, &
199
- specLabel= Driver_label_SetRunClock, specRoutine= NUOPC_NoOp, rc= RC_REG )
200
- ESMF_ERR_RETURN(RC,RC_REG)
189
+ specLabel= Driver_label_SetRunClock, specRoutine= NUOPC_NoOp, rc= RC )
190
+ if (ChkErr(rc,__LINE__,u_FILE_u)) return
201
191
#endif
202
192
203
193
! register an internal initialization method
204
194
call NUOPC_CompSetInternalEntryPoint(EARTH_GRID_COMP, ESMF_METHOD_INITIALIZE, &
205
195
phaseLabelList= (/ " IPDv04p2" / ), userRoutine= ModifyCplLists, rc= rc)
206
- ESMF_ERR_RETURN(RC,RC_REG)
196
+ if (ChkErr(rc,__LINE__,u_FILE_u)) return
207
197
208
198
! create, open, and set the config
209
199
config = ESMF_ConfigCreate(rc= RC)
210
- ESMF_ERR_RETURN(RC,RC_REG)
200
+ if (ChkErr(rc,__LINE__,u_FILE_u)) return
211
201
call ESMF_ConfigLoadFile(config, " nems.configure" , rc= RC)
212
- ESMF_ERR_RETURN(RC,RC_REG)
202
+ if (ChkErr(rc,__LINE__,u_FILE_u)) return
213
203
call ESMF_GridCompSet(EARTH_GRID_COMP, config= config, rc= RC)
214
- ESMF_ERR_RETURN(RC,RC_REG)
204
+ if (ChkErr(rc,__LINE__,u_FILE_u)) return
215
205
216
206
! Load the required entries from the fd_nems.yaml file
217
207
call NUOPC_FieldDictionarySetup(" fd_nems.yaml" , rc= rc)
0 commit comments