Arakawa et al. Progress in Earth and Planetary Science
https://doi.org/10.1186/s40645-019-0320-z(2020) 7:6

Progress in Earth andPlanetary Science

REVIEW

Open Access

Coupling library Jcup3: its philosophy
and application
Takashi Arakawa1*, Takahiro Inoue2 , Hisashi Yashiro3 and Masaki Satoh4

Abstract
In this paper, we describe the design of the coupling library, Jcup, and report its various applications, including thecoupling between global atmospheric and oceanic models of different grid systems. Jcup is a software library mainly
focused on weather/climate models and was developed for coupling the components of various models. Jcup has
the flexibility to be applied to an unspecified number of components of earth system models. To achieve a high levelof safety and versatility, we classified the processes of the general coupling software into processes that change thevalue of the data and those that do not and placed the former outside of the program and under the control of theuser. Consequently, Jcup exhibits two features: (1) the correspondence relationship between grid indexes is used as
input information, and (2) the user can implement an arbitrary interpolation code. Jcup was applied toatmosphere-ocean coupling, IO component coupling, and the coupling between the seismic model and structure
model, and the validity and usefulness of the design were demonstrated.
Keywords: Earth system modeling, Coupler, Coupled simulation

Introduction
A typical weather/climate model is generally composed ofseveral submodels, such as an atmospheric model, ocean
model, and land surface model. However, as the required
accuracy of reproduction increases, the number of submodels also increases. For example, according to the transition of the components of the NCAR CCSM (2009), at
the beginning of its development, the model comprised
two components, namely, the atmosphere (land surface)
and the ocean. In the 1990s, the sea ice and aerosol components were added, and the vegetation and carbon cycle
modules are currently being incorporated.
In the structure of such a model, it is necessary to
exchange relevant information on the appropriate spatiotemporal scale, corresponding to each component,
when executing the model. In this situation, a grid remapping is required according to the spatial scale of each component; however, it is not preferable from the viewpointof development efficiency and maintainability to separately develop and implement such a remapping programfor each component. For this reason, dedicated software*Correspondence: arakawa@rist.jp
Research Organization for Information Science and Technology, 1-18-16
Hamamatsu-cho, Minato-ku, Tokyo 105-0013, Japan
Full list of author information is available at the end of the article1

responsible for the coupling between components has
been developed and used.
In this paper, software that executes such tasks is called
coupling software or couplers. Generally, there are two
types of coupling software. One is a program that targets
a specific model.
In this case, because target components are predetermined, coupling software specialized for a specific grid
system, time scale, or coupling pattern may be sufficient.
An example of this type of coupling software is the coupler used in NCAR CESM. The other type is the coupling
software developed for general use. As the specific target is not assumed, the structures of both the interface
and program are determined depending on the extent of
support on the grid system, the coupling pattern, andthe interpolation method. As a representative of this typeof coupler, the OASIS coupler was developed mainly by
CERFACS and is widely used among European meteorological research groups (Valcke et al. 2006; Valcke 2013).
YAC is also a coupling software developed by European
research institutions (Hanke et al. 2016). YAC is developed as a lightweight library that supports various grid
systems. YAC 1.2.0 is utilized in the coupling of the Icosahedral Nonhydrostatic general circulation model. As its
name suggests, ESMF is a software framework for earth© The Author(s). 2020 Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0
International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, andreproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to theCreative Commons license, and indicate if changes were made.

(2020) 7:6

Page 2 of 17

system modeling (Hill et al. 2004). ESMF provides several
functions for various component models that make up theearth system model, and it can flexibly couple component
models that have various grid systems.
C-Coupler2 has state-of-the-art functions supporting
variable vertical coordinates in time integration (this function is also supported by ESMF) and a user-friendly interface using XML (XML is also supported by YAC) to deal
with complex couplings (Liu et al. 2018).
Scup was developed to target models of the Japanese
Meteorological Agency and Meteorological ResearchInstitute but has a general-purpose interface that can beused for other models (Yoshimura and Yukimoto 2008).
Furthermore, MCT was developed as a basic software
library for constructing coupling software and cannot perform coupling alone. However, it can be thought of as
general-purpose coupling software (Larson et al. 2005;
Jacob et al. 2005). In addition to being used for CESM couplers, MCT is also utilized as a basic library for constructing the latest version of the OASIS coupler (OASIS3MCT, Craig et al. 2017).
These couplers have developed various functions in
response to the demands of component models that
progress in larger and more complex directions. For example, OASIS3-MCT, ESMF, and YAC support concurrent
and sequential coupling. OASIS3 and ESMF can generateinterpolation weights offline. For many of these couplers,
the diversity of grid systems that can be adapted has been
discussed, and that diversity is particularly noticeable in
YAC, ESMF, and OASIS3-MCT.
Jcup has also been developed for application in a variety
of models, but its approach is different from the existing
couplers.
These couplers support existing grid systems and interpolation methods and provide coupled computing environments; however, to deal with future grid systems andinterpolation calculations that the software does not currently support, some kind of software modification will be
required. Meanwhile, Jcup is a library developed to correspond to various grid systems and interpolation algorithms without the need for future modification of its codeand enable coupled calculations of various patterns.
To achieve this goal, first, the general characteristics ofweather/climate models need to be considered as a target of a coupled simulation. These may be summarized asfollows:

the calculation cost of Legendre transformations,models using grid structures that differ from those inconventional models, such as icosahedral grids,
Yinyang grids (Baba et al. 2010), and cubic grids(Adcroft et al. 2004), have recently been developed.
Regarding the ocean model, grid point concentrationin the polar region (Arctic Ocean) is a classicalproblem, which is typically resolved by the use of
stretch and tri-polar grids. Furthermore, river models,
for which an irregular grid system is used to express
the catchment along the river channel (Yamazaki
et al. 2014), might become a coupling target.
• The interpolation method between models varies
depending on the physical requirements of eachmodel and cannot be uniquely determined. The cases
in which the integration period is relatively short or
the system is not physically closed; it is unnecessary
to strictly satisfy conservativity, whereby, simple
linear interpolation might be sufficient. However, insimulations that require long integration times andhave physically closed systems, such as climate
simulations, the preservation of physical quantities is
crucial, and interpolation algorithms that satisfy
conservativity are required. Furthermore, it can beassumed that the physical quantity to be interpolatedor the interpolation algorithm itself might change
depending on the physical condition in the model, forexample, the solar altitude and coverage degree of ice.
• In many cases, coupled simulations entail
multiphysics and multiscale nonlinear calculations,making computational bugs extremely difficult tofind. In complex-system simulations, results are
difficult to predict because of the nonlinearity of thesystem and are complexly altered by slight changes in
the parameters. Therefore, even if there are bugs in
the program, their detection is generally difficult,requiring intensive labor, except fatal bugs for which
the results would change radically.

Arakawa et al. Progress in Earth and Planetary Science• Each model has a grid structure suitable for thephysical state expressed by the model. In addition,
the optimum grid structure may change depending
on external factors, such as computer architecture.
For example, in the conventional global atmosphericmodel, latitude and longitude grids and spectral
methods were used. However, to avoid an increase in

To deal with such models, Jcup contains the following
two features.
• Correspondence of grid points in an interpolation
calculation is used as input information.
• Interpolation calculation code can be freely
implemented by the user.
In this paper, the design, implementation, and application examples of Jcup are described. First, the structure
and justification for the design of Jcup is described. Next,
an implementation that realizes the above two features
is described. And finally, we clarify the usefulness ofthe design adopted by Jcup in three cases: atmosphereocean coupling, coupling of IO components, and coupling
between the seismic model and structure model.

Arakawa et al. Progress in Earth and Planetary Science(2020) 7:6

Review
Overview of JcupFirst, the general features of Jcup are addressed. Like theother couplers mentioned in the introduction (OASIS3MCT, ESMF, YAC), Jcup also supports concurrent andsequential coupling. Figure 1 shows an example of such a
coupling pattern. There are three binaries, namely, A, B,
and C, in the figure. Component A is executed in binaryA, components B, C, and D are executed in binary B, andcomponent E is executed in binary C. In binary B, component B is executed in all MPI processes. Subsequently,
component C is executed in certain processes, while component D is executed in the other process in parallel. The
solid line in the figure indicates parallel exchange, andthe dotted line indicates sequential exchange. In reality, it
seems that there is no case where such complicated execution and data exchange patterns are required, but Jcup
is designed to deal with such complicated cases. The timeinterval for data exchange is constant for each record ofdata. The interval is set for each record of data throughthe Jcup API subroutine in the initialization process. Theinterface related to data exchange is detailed in Arakawa
et al. (2011). In this paper, we refer to Jcup as a “coupling
library,” rather than a “coupler,” because Jcup is delivered
as subroutine libraries.
Design philosophy
Relationship between research community and development
community

As mentioned in the introduction, coupling software isroughly categorized as those targeting specific models
and those intended to be used generically without specifying a model. In the former case, the majority of the

Page 3 of 17

coupling software development community is close to or
included in the model research and development community. The direction of model improvement is wellorganized, and the development community also works
with limited partners. Consequently, the developers ofcoupling software can respond quickly and appropriately
to changes in model components. However, in the caseof coupling software developed for general purpose use,
the relationship between the development entity and theuser community varies. For example, they can belong to
the same community, as in the case of Scup, they candevelop software independently without belonging to a
specific research community, as in the case of MCT, or
development can be promoted by maintaining a relatively
close relationship with multiple research institutions, asin the case of OASIS. In particular, when the development
community does not have a relationship with a specificresearch community and develops coupling software targeting an unspecified number of models, the direction ofmodel improvement is not determined. In such a case,the relationship between the research community andthe development community tends to be distant. Fromthe view of the research community, this means that therequired improvement of the coupling software accompanying the improvement of their own model might not be
performed promptly or at all. Moreover, for research communities, the coupler code is a black box, which meansthat it is difficult to detect and trace a non-fatal bug.
Essential functions of coupling software

The essential functions of coupling software in the largescale parallel computing environment is as follows: (1)coupling between two or more component models, (2)Fig. 1 Example of complex coupling pattern. The solid line indicates parallel exchange, and the dotted line indicates serial exchange

Arakawa et al. Progress in Earth and Planetary Science(2020) 7:6

appropriate timing, (3) performing appropriate time interpolation according to the time scale of each model, (4)performing appropriate interpolation calculations according to the grid shape, and (5) exchanging data between
appropriate nodes. Here, the condition that the time stepof each model is a divisor of the data exchange interval
is set. This condition seems to be reasonable in coupling components such as atmospheric and ocean models
that involve large-scale phenomena and long- term, constant interaction. In this case, the essential functions ofcoupling software are to perform interpolation calculation and data exchange at appropriate times. Since thecharacteristics of Jcup are related to data exchange andinterpolation calculation, the following sections focus on
these two characteristics in the explanation of the design
and implementation of Jcup.
Basic design of Jcup

Jcup is a general purpose coupler that does not cover specific models, and the relationship between the coupler
developer and user community is one-to-many and notdense. In this case, the required design concepts can besummarized as follows:• Since Jcup is a black box for users, it is desirable tominimize the possibility of bugs caused by the
coupler.
• Since Jcup is used over a wide range, it must respondflexibly to various grid systems and interpolation
methods that exist or will be developed.
The design philosophy of Jcup is to realize the abovementioned two functions under these requirements.
• Data exchange Based on the implementation of Jcup,
we assumed that the spatial interpolation calculation
was performed by the receiving-side component.
Furthermore, we assumed that each component wasparallelized by region. In this case, data exchangemeans that the value of each grid point of the sending
component is transmitted and received by an areathat requires its value in the receiving component,that is, it uses the value of that point in theinterpolation calculation. Therefore, to perform
appropriate data exchange, information on the grid
point index of the sending-side component used for
calculating each grid point value of the receiving-side
component was necessary. The correspondence
between the grid point index of the sending-side
component and that of the receiving-side component
in the interpolation calculation is referred to as a
mapping table here. Moreover, since eachcomponent is parallelized by region, it suffices that apoint index for each grid point is assigned to eachregion of each component to perform the appropriate

Page 4 of 17

data exchange. The problem here is how to obtainthe mapping table. In general coupling software, theposition of the grid points and the grid shape are
given as input information, and mapping tables andinterpolation coefficients are calculated in the
coupling software. This method, however, has thefollowing problems:
1. Coupling software can only deal with grid shapes
and interpolation algorithms that are alreadyinstalled, and portability/extensibility is poor.
2. Depending on the grid shape, it might be difficult
to eliminate the possibility of bug contamination,for example, requiring complicated calculations or
accurate judgment considering the rounding error.
This can be a serious disadvantage forgeneral-purpose coupling software, for which there isa distance between the software developer and users
and which is recognized as a black box by the user.
Therefore, Jcup does not calculate the mapping tableinternally but uses the mapping table itself as input
information. This enables the elimination ofproblems caused by the mapping table calculationfrom the coupling software, as described above. The
idea of using the mapping table as input information
is not unique to Jcup; there are other coupling
software that can give a mapping table in addition to
grid information, such as OASIS3-MCT or YAC
coupler. What is significant about Jcup is not that the
mapping table can “also” be used as input
information but that input information is limited tothe mapping table only.
As a result, increases in the size and complexity of thecode of the coupling software are suppressed, and thefuture extensibility and security of the software are"clearly" secured. This is considered to be an essentialcondition for an unspecified number of researchcommunities that cannot necessarily uniquely control
the tendency of a coupling software developer.
• Interpolation calculation
As with data exchange, in interpolation calculation, it
is important to ensure future extensibility andportability and to eliminate the possibility of bug
contamination. For this purpose, the interpolation
calculation program should not be implemented as a
black box in Jcup but should be placed in a locationsuch that it can be controlled by the user. The
difference between the mapping table and theinterpolation calculation is that the former can becalculated with a program independent of the model
before model execution, whereas the interpolation
calculation must be performed at each data exchange
step during model execution. This means that theArakawa et al. Progress in Earth and Planetary Science(2020) 7:6

calculation performed during model execution aspart of the operation of the coupling software must
be placed under user control. To realize this in theinterpolation calculation, we ensured that theinterface subroutine was provided by the
coupling-software side, and the concreteinterpolation calculation code was implemented in
the interface subroutine by the user. The following
conditions were considered:
1. Interpolation algorithms used for one set of
coupling are not necessarily limited to one type but
may vary depending on data or other conditions.
2. Interpolation calculation is executed not only foreach type of data; it can also be computed by
combining multiple types of data, such as invector calculation.
Therefore, in the interface subroutine implementing
the interpolation calculation, it is indispensable tohave functions for identifying individual data points
and for simultaneously processing multiple kinds ofdata. Conversely, if these functions are provided,
arbitrary interpolation calculation code can be
implemented with a high degree of freedom.
Implementation

As described in the previous section, the unique functionof Jcup is that the user can implement the spatial interpolation calculation code. In this section, the data flow andcode structure for realizing this is explained.
Data flow

First, the data flow related to data exchange and interpolation calculation is described. Here, in order to facilitate
understanding, an explanation is provided based on theexample of Fig. 2. In the figure, data are exchanged fromcomponent A to component B. Both components have a
6 × 6 grid, and the positions of the grid points are assumed
to be the same. Therefore, the interpolation calculation
is equal to a copy of the value for each grid point. The
red lines drawn on each grid represent the dividing lineof the region. In the figure, component A is divided into
six parts of size 2 × 3, and component B is divided into
three parts of size 1 × 3. The grid points of component
B are color-coded. The gray circles represent the masked
value. In this case, only the values of the grid points represented by the blue circle are meaningful and are to besent and received. In the figure, the data exchange andinterpolation calculation relating to rank 2 of component
B are shown in detail. The grid point indexes, requiredby rank 2 of component B, are 33 on rank 3 of component A, 28, 33, and 34 on rank 4, and 29, 30, 35, and
36 on rank 5. Therefore, these grid point values are sentfrom ranks 3, 4, and 5 of component A to rank 2 ofPage 5 of 17

component B. These values are received by rank 2 of component B and passed to the interpolation subroutine in theorder of receipt. The interpolation calculation is executed
inside the interpolation subroutine(interpolated_data)
called from Jcup in the receiving-side component. In
this example, since the interpolation calculation is a data
copy from the grid point to the grid point, indicatedby the code below, it is sufficient to provide conversion tables is and ir of the array indexes from iterationindex i.
do i = 1, N
R(ir(i)) = S(is(i))
end doInitialization

The information necessary for the data exchange andinterpolation calculation is the following:
1. For the sending component, the rank numbers of thereceiving component that receives the value of eachgrid point value held by a sending rank.
2. For the receiving component, the rank numbers of
the sending component that holds the value of thesending-side grid point necessary for theinterpolation calculation.
3. The conversion tables representing the conversion
from the iteration index to the array indexes in theinterpolation calculation for each rank.
The first and second items of information can be calculated from the correspondence table showing the relationship between the grid point indexes and the rank
number to which they belong (index-rank table), alongwith the mapping table. The index-rank table can be easily constructed by gathering the grid point indexes ofeach rank into one rank. Figure 3 shows the exampleof how to calculate the rank of the target component.
The left square indicates the grid point indexes of rank 1of component A. The center square is a mapping table,
and the right square is the index-rank table of target
component B. As shown in the figure, the rank numberof each grid point of the sending destination/receiving
source can be obtained immediately from the mapping table and the index-rank table of the “opponent
component.”
The third piece of information corresponds to is and ir,
described in the previous section. In Jcup, the interpolation calculation is performed on the receiving component.
Thus, these tables can be calculated from the order of thegrid point indexes of each receive rank, mapping table,rank number of the sending component, and order ofthe grid point indexes within the send rank. In addition, the last two of these four conditions to calculate thetables are obtained from the second of the three items of
information discussed above.

Arakawa et al. Progress in Earth and Planetary Science(2020) 7:6

Page 6 of 17

Fig. 2 Data exchange diagram. The gray circles represent masked value. Therefore, only the grid point value indicated by the blue circle is passed
from component A to component B

Therefore, the information necessary to perform thedata exchange and interpolation calculation can be constructed from the grid point indexes held by eachrank and from the mapping table. Jcup provides APIs,
jcup_def_grid and jcup_set_mapping_table, to obtain thisinformation (Table 1). Users can provide information to
Jcup by calling these subroutines at the appropriate steps
in the initialization process.
Time integration

There are only three types of Jcup subroutines that auser must call during the time integration: jcup_set_time,
jcup_put_data, and jcup_get_data.
Figure 4 shows an overview of these three routine
calls and data processing within Jcup. In the figure, blue
squares indicate the API routines. Green squares referto the data processing in Jcup. The orange square represents the calling of the interpolation subroutine interpolate_data in which the interpolation code must be
implemented by users.
Jcup_put_data is a subroutine for applying the data to
Jcup. The argument “varp” is an identifier of the data,
and a unique value is set in advance by the initialization
subroutine jcup_def_varp. Jcup_get_data is a subroutine
for obtaining the data from Jcup. Same as jcup_put_data,
the argument “varg” is an identifier of the data. A uniquevalue is set in advance by the initialization subroutine

jcup_def_varg. The functions of both subroutines comprise only put/get data to/from data buffer in Jcup, andalmost all functions for exchanging the data are performed
inside the subroutine jcup_set_time.
Subroutine jcup_set_time is expected to be called at the
beginning of each time step. The argument “time” refers
to the current model time(YYYY/MO/DD/HH/MM/SS)
and “deltaT” is the T of the current time step. The
left side of the figure shows the data sending process. At
the beginning of the subroutine jcup_set_time, a judgment is made for each data record as to whether it istime to send. The data judged to be sent are extracted
from the buffer and rearranged based upon the firstpiece of information listed above. After the rearrangement, the data are sent to the appropriate ranks of thereceive-component.
The right side of the figure shows the data-receiving
process. Similar to the sending side, at the beginningof the subroutine, a judgment is made for each data
record as to whether it is time to receive. The data
judged to be received are received based upon thesecond piece of information from the list and rearranged into one array. After the receive-rearranging
loop, the data are passed to the interpolation subroutine interpolate_data, and after the interpolation basedon user implementation, the result (iA) is stored in thedata buffer.

Arakawa et al. Progress in Earth and Planetary Science(2020) 7:6

Page 7 of 17

Fig. 3 Example of how to calculate the rank of target component. Left square indicates the grid point indexes of rank 1. Center square is a mappingtable and right square is an index-rank table of target component

Interpolation

The subroutine interpolate_data is the realization of a key
concept of Jcup; thus, its interface and implementation
example are explained in this section. The arguments ofthis subroutine are listed in Table 2. Send_comp_name
and recv_comp_name are the names of send and receive
components, respectively. The argument mapping_tag is
the identifier of the mapping table set by the initialization subroutine set_mapping_table. The arguments sn1and sn2 and rn1 and rn2 indicate the size of arrays
send_data and recv_data, respectively. Jcup treats thespatial dimension to be interpolated as one dimension.
For example, assuming horizontal interpolation, sn1 andrn1 are the number of horizontal grid points of thesend- and receive-components, respectively. The arguments, sn2 and rn2, representing the size of the array ofthe second dimension, ordinally refer to the number of thevertical layer. The last argument, data_tag, is an identifier
for identifying the data. The value of this argument is set
at the initialization subroutine jcup_def_varg by the user.
For future extension, data_tag is to be given as an array,but each value of the array is the same.

Arakawa et al. Progress in Earth and Planetary Science(2020) 7:6

Page 8 of 17

Table 1 APIs for grid setting
Subroutine namejcup_def_grid

jcup_set_mapping_table

Argument type
Integer, intent(IN)Character(len=*), ,intent(IN)Character(len=*), intent(IN)Integer, optional, intent(IN)character(len=*), intent(IN)Character(len=*), intent(IN)Character(len=*), intent(IN)Character(len=*), intent(IN)Character(len=*), intent(IN)Integer, intent(IN)Integer, optional, intent(IN)Integer, optional, intent(IN)Argument namegrid_index(:)
comp_namegrid_namenum_of_vgrid
my_comp_namesend_comp_namesend_grid_namerecv_comp_namerecv_grid_namemapping_tag
send_grid_index(:)
recv_grid_index(:)

The interpolation calculation code will vary depending on the model, data, etc., but in a simple and typical case, the value of a grid point of receive-component
R is calculated from the values of some grid points ofsend-component S and interpolation coefficients C, as
expressed in the formula below.
R=nSi ∗ Ci(1)

i=1

In this case, the calculation is expressed as follows.
Do i = 1, ni
R (ir (i)) = R (ir (i)) + S (is (i))*Cl(i)End doA simple implementation of the subroutine interpolate_data on this example is shown in Fig. 5.
Jcup_get_local_operation_index(Table 3) is an API

Description
Array of grid index
Name of component
Name of grid
Number of vertical layers
Name of my component
Name of send component
Name of send gridName of receive component
Name of receive grid
Identifier of the mapping table
Index of send gridIndex of receive grid

subroutine for obtaining number of iterations ni andindex conversion tables is and ir from arguments rname,sname, and mapping_tag.
The example shown by Fig. 2 was a data copy case,and an interpolation coefficient was not needed. However, in the case considered here, an interpolation coefficient should be taken into account. As for the interpolation coefficient, it is assumed that there is one
coefficient for each correspondence of the grid points
listed in the mapping table. In this case, it is only necessary to extract the interpolation coefficient used forthe interpolation calculation of the local region fromthe array of interpolation coefficients of the global
region, and the subroutine for this, jcup_get_local_coef,
is provided by Jcup API (Table 4). In the example
of Fig. 5, Cg means an array of interpolation coefficient for the global region that is calculated in advanceFig. 4 Overview of API routine calls and data processing within Jcup. Blue squares indicate the API routines. Green squares mean data processing in
Jcup. Orange square is a calling of interpolation subroutine interpolate_data in which the interpolation code must be implemented by users

Arakawa et al. Progress in Earth and Planetary Science(2020) 7:6

Page 9 of 17

Table 2 Interface of the interpolation subroutine interpolate_data
Subroutine nameArgument type

Argument name

Description

interpolate_data

Character(len=*), Intent(IN)recv_comp_name

Name of receive component

Character(len=*), intent(IN)send_comp_name

Name of send component

Integer, intent(IN)mapping_tag

Identifier of mapping table

Integer, intent(IN)sn1, sn2

Array size of send_data

Real(kind=8), ,intent(IN)send_data(sn1, sn2)

Array of send data

Integer, intent(IN)rn1, rn2

Array size of receive data

Real(kind=8), intent(INOUT)

recv_data(rn1, rn2)

Array of receive data

Integer, intent(IN)num_of_data

Number of data

Integer, intent(IN)tn

Number of data tag

Integer, intent(IN)data_tag(tn)Array of data tag

and stored in the module “mod_common.” By callingthe subroutine jcup_set_local_coef, localized interpolation coefficient Cl is obtained. In the figure, for simplicity, these subroutines are called in interpolate_data.
However, since these subroutines need only to be called
once, they are usually called during the initialization
process.
Application case studies

In this section, we describe cases where Jcup was applied,thereby showing that the Jcup features mentioned above
are effective for coupling various models.

MIROC coupling

The first case is the coupling of the atmospheric andocean models in the climate model MIROC. MIROC isa global climate model jointly developed by the University of Tokyo, Japan Agency for Marine-Earth Science andTechnology and the Institute for Environmental Studies. It
is a representative climate model in Japan, and its results
have been referenced in the Intergovernmental Panel on
Climate Change report(Watanabe et al. 2010). MIROC
consists of four subcomponents: atmosphere, ocean, land
surface, and rivers, and the atmospheric model and ocean
model are coupled by MIROC’s proprietary coupling

Fig. 5 A simple implementation example of the subroutine interpolate_dataArakawa et al. Progress in Earth and Planetary Science(2020) 7:6

Page 10 of 17

Table 3 Interface of jcup_get_local_operation_index
Subroutine nameArgument type

Argument name

Description

jcup_get_local_operation_index

character(len=*), intent(IN)recv_comp_name

Name of receive component

Character(len=*), intent(IN)send_comp_name

Name of send component

Integer, intent(IN)mapping_tag

Mapping table indentifier

Integer, intent(OUT)ni

Number of local iterations

Integer, pointeris(:)

Conversion table of send gridInteger, pointerir(:)

Conversion table of receive grid

software. The first test case in the development of Jcup is
to replace the original coupling code of MIROC with Jcup.
Importantly, when replacing the coupling code with Jcup,
the calculation results do not change before or after the
replacement, that is, the results of both are identical at thebinary level. By guaranteeing matching at the binary level,
there will be no bug in Jcup internally or in the couplingcode using Jcup.
In the coupling of the original MIROC code, the coupling procedure consists of three steps: (1) collecting thedata on the root processor and transmitting it to theroot processor of the other component, (2) executing theinterpolation calculation on the root processor of thereceiving-side component, and (3) distributing the result
to each rank. Meanwhile, in Jcup, data exchange is performed local-to-local, and the interpolation calculation is
individually performed for each rank on the receiving side.
Since there is no change in the values during data transfer, the interpolation calculation must at least be the same,
including the calculation order, to match the results at thebinary level.
This was made possible by the design of Jcup in thatusers can arbitrarily implement an interpolation calculation code. A part of the interpolation calculation code
implemented in MIROC is shown in Fig. 6.
The interpolation code is composed of calculation formulas, including branching by IF statement and the addition and multiplication of constants. This code was ported
to Jcup’s interpolation calculation subroutine interpolate_data with only minor modifications, such as changing the name of the variable. As a result, it was possible to replace the coupling code of MIROC with Jcup
while maintaining binary compatibility. (This coupling

was conducted as a Jcup test, and Jcup is not used in thecurrent MIROC (MIROC6) atmosphere-ocean coupling.)
NICAM-COCO coupling

As a second example, we describe coupling of anotheratmospheric model and ocean model. The target atmospheric model is NICAM. NICAM is a global atmospheric model that uses a non-hydrostatic equation system (Tomita and Satoh 2004; Satoh et al. 2008; Satohet al. 2014). The discretization method is a finite volume method, and the grid system employs an icosahedral
grid. This model has been mainly utilized for research on
phenomena with time scales of several days to months,
such as typhoons and MJO, and in such research, simulation is carried out with the atmosphere-only model by
specifying the sea surface temperature (SST) or assuming a slab ocean model (Miyakawa et al. 2014). However,
NICAM is expected to be applied not only to such shortto medium- term simulations but also to climate simulations with time scales of several decades to centuries(Kodama et al. 2015; Haarsma et al. 2016). In such longterm simulations, although the current simulations are
conducted with the atmosphere-only model under the
specified sea surface temperature (SST) condition, it isnatural to extend NICAM to be coupled with an ocean
model for use as an atmosphere-ocean coupled model tointernally reproduce SST in the model. The ocean model
coupled to NICAM in this study was COCO (Hasumi2006). COCO is a global ocean model that uses theBoussinesq approximate hydrostatic equation and a general orthogonal coordinate system. The version of COCO
used for this coupling adopts the tri-polar grid. The tripolar grid has an irregular grid shape, such that the North

Table 4 Interface of jcup_set_local_coef
Subroutine namejcup_set_local_coef

Argument type

Argument name

Description

character(len=*), intent(IN)recv_comp_name

Name of receive component

Character(len=*), intent(IN)send_comp_name

Name of send component

Integer, intent(IN)mapping_tag

Mapping table indentifier

Real(kind=8), intent(IN)Cg(:)

Global coefficientReal(kind=8), pointerCl(:)

Local coefficientArakawa et al. Progress in Earth and Planetary Science(2020) 7:6

Fig. 6 A part of MIROC interpolation code. Owing to the design ofJcup, this code could be ported directly to the Jcup interpolation
subroutine

pole is stretched to the North American and Eurasian continents. In fact, a study using the NICAM-COCO coupledmodel with Jcup has already been conducted by Miyakawa
et al. (2017).
In this way, both NICAM and COCO are irregular gridsystem models covering a spherical surface, and a large
number of calculations are required to determine thegrid point correspondence and interpolation coefficients
necessary for coupling. This is because it is necessary
to search for polygons, including individual grid points,
in the calculation of the grid correspondence. In addition, the calculation of the interpolation coefficients mustaccount for the preservation of water, energy balance, etc.,
during the time integration. An interpolation algorithm
that satisfies the preservations is formulated by Jones(1999). According to Jones, the interpolation coefficient isrepresented by the area ratio of the overlapping portionof the polygon formed by each grid point. The calculation algorithm and execution performance are reported
in Arakawa et al. (2014). As reported in that paper, alarge number of calculations are required to determine themapping table and coefficients. Meanwhile, in meteorological simulations, the grid shape is generally constant,irrespective of time, and the pattern of resolution is also
generally limited. For example, in NICAM, there is a constraint condition in which the number of grid points is
specified by the power of two, and the pattern of resolution that can normally be employed is limited to five to six
patterns.

Page 11 of 17

In summary, in NICAM-COCO coupling, it can besaid that the mapping table calculation might be computationally expensive compared with processing the precalculated table, and the required pattern is limited. For
these reasons, the design of Jcup in which the mappingtable is calculated in advance and used as input information is well adapted to NICAM-COCO coupling.
In the experiment, three cases were considered according to the number of horizontal grid points of NICAM,
which could be calculated by the function 10 ∗ (2glevel )2 .
The correspondence between the cases and grid points isshown in Table 5
Experimental conditions are listed in Table 6. The conditions of COCO were fixed in all experiments. Size m52
corresponded to the number of horizontal grid points
360 (West– East) × 256 (South–North). The number ofthe process was 16, and T was 15 min. The number
of NICAM processes was represented by the r-level as
equation 10 ∗ 4rlevel . T and duration time are shown in
the table. The data exchange interval is 1 h.
The results of the performance measurement are shownin Fig. 7. The bar graph indicates the number of days
that can be simulated by the one day calculation. Theline graph is a scaling factor on the basis of 10 (or 40)
processes.
The most notable difference between the cases was thestate of the change in the scaling factor. In case 1, thescaling factor was reduced according to the number ofprocessors, but it was almost constant in case 3.
Two reasons can be postulated for this difference:
1. Efficiency of NICAM itself
The number of grid points per processor was smaller
in case 1 than in case 2 or 3, as shown in Table 7.
Therefore, the calculation time, which was scalable,
became relatively short, and the non-parallelized
process became longer. This could have caused thelow scalability.
2. Load imbalance between NICAM and COCOIn case 1, the time step calculation of NICAM wasfaster, and NICAM had to wait for data from COCO.
Therefore, the execution time did not decrease withan increase in the number of processors. In contrast,
in case 3, NICAM did not need to wait for the data.
Therefore, the execution time was determined by the
number of processors assigned to NICAM.

Table 5 Correspondence between the cases and grid points
Case

glevelGrid points

Case 1

5

10240

Case 2

7163840Case 392621440(2020) 7:6

Arakawa et al. Progress in Earth and Planetary Science

Page 12 of 17

Table 6 Experimental conditions of NICAM–COCO coupling
Case 1COCO

NICAM

Case 2

Case 3

Size

m52

m52

m52

m52

m52

m52

m52

m52

m52

Process

16

16

16

16

16

16

16

16

16

T[min]

15

15

15

15

15

15

15

15

15

glevel

5

5

5

7

7

7

9

9

9

rlevel

0

1

2

0

1

2

1

2

3

Process

10

40

160

10

40

160

40

160

640

T[min]

15

15

15

4

4

4

1

1

1

Duration time [day]

10

10

10

2

2

2

1

1

1

To confirm these assumptions, the execution time of
NICAM’s time integration loop is listed in Table 8. “MainALL” is the execution time of the entire time-integration
loop. “Coupler Put” is the time required to move the datafrom NICAM to the coupler, and “Coupler Get” is the timerequired for the reverse process. “Coupler Exchange” isthe time required for the data exchange; the load imbalance is included in this time. “Atmos” is the calculation
time without coupling.
To examine the scalability of NICAM itself, we calculated the scalability factor from the execution time of“Atmos”. The result is shown in Fig. 8. In case 1, thescalability factor decreased, even though there was nodata exchange.
However, it should be noted that with the examination of the load imbalance, the time “Coupler Exchange”
in case 1 was significantly longer than that in the othercases. This suggests that the reception waiting occurredon the NICAM side during the data exchange. The latency
became larger as the execution time was reduced so as
to keep the time of “Main All” constant. This constanttime was determined by the execution time of COCO,
and it can be concluded that the decrease in the parallel
efficiency was mainly caused by the load imbalance.

Fig. 7 Results of performance measurement on NICAM–COCO coupling. Bar graph is the number of days that can be simulated in 1 day’s
calculation. Line graph is a scaling factor

(2020) 7:6

Arakawa et al. Progress in Earth and Planetary Science

Page 13 of 17

Table 7 Number of horizontal grid points per processor
Case 1Case 2

Case 3glevel

5

5

5

7

7

7

9

9

9

rlevel

0

1

2

0

1

2

1

2

3

The number of grid points

1024

256

64

16384

4096

1024

65536

16384

4096

In contrast to case 1, the scaling factor in highresolution case 3 remained mostly constant. Therefore, it
can be concluded that the effect of coupling was minimal.
NICAM-IO coupling

The coupling of NICAM and IO components showsthat “users can implement their own interpolation code,”which is one of the features of Jcup features that worked
effectively.
As mentioned above, NICAM is an icosahedral gridmodel. This grid system may be inconvenient for postprocess visualization and analysis. This is because manyof the visualization and analysis tools that are currently
widely available are predicated on the latitude-longitude
grid (although the situation is improving).
For this reason, a program was developed to convert theresults of NICAM into a latitude-longitude grid. This program is called NICAMIO. The overview of NICAMIO isshown in Fig. 9. In the figure, the area surrounded by theblue square represents NICAMIO.
NICAMIO operates in parallel with NICAM in multiple processes, simultaneously converting the result to thelatitude-longitude grid with the calculations of NICAM
and outputting them to files. Jcup is utilized to couple
NICAM and NICAMIO, and the grid conversion code is
implemented in the Jcup interpolation subroutine interpolate_data.
The interpolation algorithms implemented in
NICAMIO are the following:
1. Area weighting method
2. Distance weighting method by three grid points
3. Nearest neighbor method
Among these three methods, the nearest neighborapproximation is a method that was later added owing

to user request, and the interpolation code implementation is an example in which Jcup’s feature that interpolation code can be freely implemented worked effectively.
Figure 10 illustrates the outline of the distance weighting method and the nearest neighbor method used in
NICAMIO. The values of the latitude-longitude grid represented by blue circles are calculated from the threepoints of the NICAM grid represented by orange squares
and the coefficients that are inversely proportional to the
distances. Here, the grid point indexes and coefficients arecalculated and given in advance. For the nearest neighborapproximation method, the value with the largest coefficient among the three coefficients in the distance weight
method is adopted. To be precise, this algorithm does notnecessarily obtain the nearest value. This is because when
the grid is irregular, there may be points closer to the threepoints used in the calculation. Nevertheless, this threepoint method was adopted because it is not necessary
to search for the nearest point exactly, and the accuracy
required by the user is sufficient. In this way, the designthat the interpolation code can be freely implemented has
made it possible to flexibly respond to user needs.
Seismic model-structure model coupling

The coupling of the seismic model and the structure
model can be easily implemented, depending on the conditions, although the model grid is complex. The structural model used here is FrontISTR ++, which has an
unstructured grid employing the finite element method(Okuda 2019), and the seismic model is Seism3D, which
is a finite difference model with a regular rectangular grid
(Furumura 2005). The coupled calculation of these models involves the conversion of the ground motion speed
calculated by Seism3D into the displacement by Jcup andtransmission to FrontISTR++, where it is considered toTable 8 Execution time of NICAM (s)Case 1Case 2

Case 3glevel

5

5

5

7

7

7

9

9

9

rlevel

0

1

2

0

1

2

1

2

3

Main ALL

386

265

258

2096

564

177

19070

4379

1318

Coupler Put

2

3

3

3

12

6

305

127

106

Coupler Exchange

36

114

172

4

1

1

18

17

3

Coupler Get

1

2

3

1

1

1

2

6

19

Atmos

338

141

75

2039

538

163

17613

3969

1078

Arakawa et al. Progress in Earth and Planetary Science(2020) 7:6

Page 14 of 17

Fig. 8 Execution time and scaling factor of “Atmos.” Bar graph illustrates execution time (s). Line graph represents scaling factor

vibrate the building (Matsumoto et al. 2015). Figure 11
shows the grid used by the structure model for this calculation. The grid is largely divided into a part representing
the building and a part representing the ground, and theground grid is embedded in the seismic model grid. In

this case, the data exchange is one-way, from the seismic
model to the structure model, and physical quantity conservation in the interpolation calculation does not haveto be strict, in contrast to the NICAM-COCO case. The
seismic model has a regular rectangular grid in which

Fig. 9 The overview of IO component for NICAM. A blue square indicates NICAMIO process

Arakawa et al. Progress in Earth and Planetary Science(2020) 7:6

Page 15 of 17

X, Y , and Z are constant. Therefore, the grid pointindexes of the seismic model surrounding the individual
grid points of the structure model can be easily calculated, and the interpolation coefficient can be calculatedby tri-linear interpolation from the eight grid points of theseismic model surrounding the grid points of the structure
model. As shown in this case, by using a mapping table as
an input, even if the model grid is unstructured and has
a complicated shape, it is possible to easily couple them
depending on the conditions.

Conclusions
Features and future of a coupling library Jcup

Fig. 10 The interpolation method from NICAM grid to lat-lon grid.
Orange squares indicate NICAM grid points and blue circles indicate
lat-lon grid points. The lat-lon grid point value is calculated from thevalues of the vertices of the triangle of the NICAM grid in which thepoint is included

In this paper, we discussed the design concept and implementation of a coupling library, Jcup, to indicate how
coupling software should be implemented under the conditions listed below. The conditions are as follows: (1)developer does not belong to a specific research community, and the software is used generically. (2)Coupling
software must adapt to changes in the grid system andinterpolation algorithm, and the possibility of bug contamination should be as low as possible.
Conceptual answers to these issues can be summarized
as follows: (1) dividing the function of the coupling software into those that change the values and those that do
not change the values. (2) Enabling users to manage andimplement the code in which values are changed as a glassbox.
Based upon this basic concept, Jcup is constructed sothat (1) correspondence relations of grid points in theinterpolation calculation (mapping table) are utilized as
input information, and (2) interpolation calculation codes
can be freely implemented by the user.
Through these features, Jcup has high flexibility withrespect to coupling various components, but there are
restrictions on the timing of data exchange. That is, dataexchange is only performed at predetermined time intervals for each element of data, and the model time mustmatch each exchange time. This constraint might not
be a problem when the time constant of interaction islong, such as in atmosphere-ocean coupling. However,when component T varies irregularly, and interaction isrequired on such a time interval, the current Jcup cannot cope. Therefore, the next modification for Jcup is toremove this restriction on the data exchange interval andenable the coupling at an arbitrary time interval.
Concluding remark

Fig. 11 Grid shape of the structure model FrontISTR++ used in theseismic model-structure model coupling. A grid representing abuilding is set at the center of the grid representing the ground

Jcup is not software for easily coupling specific models
but is designed and implemented as a library that provides a wide range of users with limited functions. Such aminimal approach would not necessarily match the direction of development of many modern coupling software.
However, considering the continuity and safety of usage(2020) 7:6

Page 16 of 17

under a specific relationship between the developer anduser communities, we think that the design philosophy of
Jcup has a certain generality and usefulness.

Craig A., Valcke S., Coquart L. (2017) Development and performance of a newversion of the OASIS coupler OASIS3mct3.0. Geosci. Model Dev.
10:3297–3308. https://doi.org/10.5194/gmd-10-3297-2017
Furumura T. (2005) Large-scale parallel simulation of seismic wave
propagation and string ground motion for the past and futureearthquakes in Japan. J. Earth Simul. 3:29–38
Haarsma R. J., Roberts M., Vidale P. L., Senior C., Bellucci A., Corti S., Fuckar N.,
Guemas V., von Hardenberg J., Hazeleger W., Kodama C., Koenigk T., Leung
R., Lu J., Luo J.-J., Mao J., Mizielinsky M., Mizuta R., Nobre P., Satoh M.,
Scoccimarro E., Semmler T., Small J., von Storch J.-S. (2016) High resolution
model intercomparison project (highresmip v1.0) for cmip6. Geosci. Model
Dev. 9:4185–4208. https://doi.org/10.5194/gmd-2016-66
Hanke M., Redler R., Holfeld T., Yastremsky M. (2016) Yac 1.2.0: new aspects forcoupling software in earth system modelling. Geosci. Model Dev.
9:2755–2769. https://doi.org/10.5194/gmd-9-2755-2016
Hasumi H. (2006) CCSR Ocean Component Model (COCO) Version 4.0. Centerfor Climate System Research Report. vol 25:103. https://ccsr.aori.u-tokyo.ac.
jp/~hasumi/COCO/coco4.pdf
Hill C., DeLuca C., Balaji V., Suarez M., DaSilva A., ESMFJointSpecificationTeam(2004) The architecture of the earth system modeling framework. Comp.
Sci. Eng. 6:12–28
Jacob R., Larson J., Ong E. (2005) Mxn communication and parallelinterpolation in community climate system model version 3 using themodel coupling toolkit. Int. J. High Perform. Comput. Appl. 19(3):293–307.
https://doi.org/10.1177/1094342005056116
Jones P. H. (1999) First- and second-order conservative remapping schemes
for grids in spherical coordinates. Mon. Weather Rev. 127:2204–2210
Kodama C., Yamada Y., Noda A. T., Kikuchi K., Kajikawa Y., Nasuno T., Tomita T.,
Yamaura T., Takahashi T. G., Hara M., Kawatani Y., Satoh M., Sugi M. (2015) A
20-year climatology of a NICAM AMIP-type simulation. J. Meteor. Soc.
Japan 93:393–424. https://doi.org/10.2151/jmsj.2015-024
Larson J., Jacob R., Ong E. (2005) The model coupling toolkit: a new Fortran90
toolkit for building multiphysics parallel coupled models. Int. J. High
Perform. Comput. Appl. 19(3). https://doi.org/10.1177/1094342005056115
Liu L., Zhang C., Li R., Wang B., Yang G. (2018) C-coupler2: a flexible anduser-friendly community coupler for model coupling and nesting. Geosci.
Model Dev. 11:3557–3586. https://doi.org/10.5194/gmd-11-3557-2018
Matsumoto M., Arakawa T., Kitayama T., Mori F., Okuda H., Furumura T.,
Nakajima K. (2015) Multi-scale coupling simulation of seismic waves andbuilding vibrations using ppopen-hpc. Procedia Comput. Sci.
52:1514–1523. https://doi.org/10.1016/j.procs.2015.05.341
Miyakawa T., Satoh M., Miura H., Tomita H., Yashiro H., Noda A. T., Yamada Y.,
Kodama C., Kimoto M., Yoneyama K. (2014) Madden-Julian Oscillation
prediction skill of a new-generation global model. Nat. Commun. 5:3769.
https://doi.org/10.1038/ncomms4769
Miyakawa T., Yashiro H., Suzuki T., Tatebe H., Satoh M. (2017) A Madden-Julian
Oscillation event remotely accelerates ocean upwelling to abruptly
terminate the 1997/1998 super El Nino. Geophys. Res. Lett. 44:9489–9495.
https://doi.org/10.1002/2017GL074683
Okuda H. (2019) Nonlinear structual analysis open software FrontISTR. https://
frontistr-commons.gitlab.io/FrontISTR/manual_en/index.html
Satoh M., Matsuno T., Tomita H., Miura H., Nasuno T., Iga S. (2008) J. Comput.
Phys. Spec. Issue Predicting Weather Clim. Extreme Events 227:3486–3514.
https://doi.org/10.1016/j.jcp.2007.02.006
Satoh M., Tomita H., Yashiro H., Miura H., Kodama C., Seiki T., Noda A. T.,
Yamada Y., Goto D., Sawada M., Miyoshi T., Niwa Y., Hara M., Ohno T., Iga
S-i., Arakawa T., Inoue T., Kubokawa H. (2014) The non-hydrostatic
icosahedral atmospheric model: description and development. Prog. Earth
Planet. Sci.:1–18. https://doi.org/10.1186/s40645-014-0018-1
Tomita H., Satoh M. (2004) A new dynamical framework of nonhydrostatic
global model using the icosahedral grid. Fluid Dyn. Res. 34:357–400
Valcke S., Budich R., Carter M., Guilyardi E., Foujols M.-A., Lautenschlager M.,
Redler R., Steenman-Clark L., Wedi N (2006) The PRISM Software Frameworkand the OASIS Coupler. In: Hollies A. J., Kariko A. P. (eds). (ACCESS) - Changes
and Opportunities, BMRC Research Report. Bur. Met., Australia. pp 132–140
Valcke S. (2013) The OASIS3 coupler: a European climate modelling
community software. Geosci. Model Dev. 6:373–388. https://doi.org/10.
5194/gmd-6-373-2013
Washington W. M., Buja L., Craig A. (2009) The computational future for climate
and Earth system models: on the path to petaflop and beyond. Phil. Trans.
R. Soc. A 367:833–846

Arakawa et al. Progress in Earth and Planetary Science

Acknowledgements
This research was supported by the Integrated Research Program for
Advancing Climate Models (TOUGOU program) of the Ministry of Education,
Culture, Sports, Science and Technology, Japan, and is supported by the Japan
Science and Technology Agency/Core Research for Evolutional Science andTechnology, and the Open Source Infrastructure for Development andExecution of Large-Scale Scientific Applications on Post-Peta-Scale
Supercomputers with Automatic Tuning. This research used thecomputational resources of the High Performance Computing Infrastructure(HPCI) system provided by the Information Technology Center of the Universityof Tokyo, through the HPCI System Research Project (Project ID:hp120190).
Authors’ contributions
T.A is in charge of designing and coding Jcup and has written this paper. T.I isa code reviewer of Jcup and also implemented a coupling code of
NICAM-COCO and NICAM-IO. Y.H conducted the coupled calculation of
NICAM and COCO and measured and evaluated its performance. M.S was thedevelopment manager of NICAM and led the development of a coupledsystem between NICAM and other components. All authors read andapproved the final manuscript.
Funding
This research was supported by the Integrated Research Program for
Advancing Climate Models (TOUGOU program) of the Ministry of Education,
Culture, Sports, Science and Technology, Japan, and is supported by the Japan
Science and Technology Agency/Core Research for Evolutional Science andTechnology, and the Open Source Infrastructure for Development andExecution of Large-Scale Scientific Applications on Post-Peta-Scale
Supercomputers with Automatic Tuning.
Availability of data and materials
The version of Jcup described in this paper is v.3.150100. Jcup code
(doi:10.5281/zenodo.1297240) is available from github website. In addition, forreaders who want to tray Jcup, sample programs(doi:10.5281/zenodo.1297250) also available from github website. The urls ofgithub are as follows. https://github.com/Jcuplib/jcup/releases/tag/3.150100.
https://github.com/Jcuplib/jcup_sample/releases/tag/3.150100.
Competing interests
The authors declare that they have no competing interest.
Author details
1 Research Organization for Information Science and Technology, 1-18-16
Hamamatsu-cho, Minato-ku, Tokyo 105-0013, Japan. 2 Japan Agency for
Marine-Earth Science and Technology, 3173-25 Showa-machi, Kanazawa-ku,
Yokohama 236-0001, Japan. 3 National Institute for Environmental Studies, 16-2
Onogawa, Tsukuba, Ibaraki 305-8506, Japan. 4 Atmosphere and Ocean
Research Institute, The University of Tokyo, 5-1-5 Kashiwanoha, Kashiwa, Chiba
277-8564, Japan.
Received: 23 May 2019 Accepted: 30 December 2019

References
Adcroft A., Campin J.-M., Hill C., Marshall J. (2004) Implementation of an
atmosphere-ocean general circulation model on the expanded sphericalcube. Mon. Weather Rev. 132:2845–2863
Arakawa T., Yoshimura H., Saito F., Ogochi K. (2011) Data exchange algorithm
and software design of KAKUSHIN coupler Jcup. Procedia Comput. Sci.
4:1516–1525
Arakawa T., Inoue T., Satoh M. (2014) Performance evaluation and case study ofa coupling software ppopen-math/mp. Procedia Comput. Sci. 29:924–935.
https://doi.org/10.1016/j.procs.2014.05.083
Baba Y., Takahashi K., Sugimura T., Goto K. (2010) Dynamical core of an
atmospheric general circulation model on a yin-yang grid. Mon. Weather
Rev. https://doi.org/10.1175/2010MWR3375.1

Arakawa et al. Progress in Earth and Planetary Science(2020) 7:6

Watanabe M., Suzuki T., O’ishi R., Komuro Y., Watanabe S., Emori S., Takemura T.,
Chikira M., Ogura T., Sekiguchi M., Takata K., Yamazaki D., Yokohata T.,
Nozawa T., Hasumi H., Tatebe H., Kimoto M. (2010) Improved climate
simulation by MIROC5: mean states, variability, and climate sensitivity. J.
Clim. 23:6312–6335. https://doi.org/10.1175/2010JCLI3679.1
Yamazaki D., Sato T., Kanae S., Hirabayashi Y., Bates P. D. (2014) Regional flood
dynamics in a bifurcating mega delta simulated in a global river model.
Geophys. Res. Lett. 41:3127–3135. https://doi.org/10.1002/2014GL059774
Yoshimura H., Yukimoto S. (2008) Development of a simple coupler (Scup) forearth system modeling. Pap. Met. Geophys. 59:19–29

Publisher’s NoteSpringer Nature remains neutral with regard to jurisdictional claims inpublished maps and institutional affiliations.

Page 17 of 17