This chapter explains the essential features of the co-array programming model. Programmers use co-array syntax to move data objects from one local memory to another local memory. To ensure that the values moved from one memory to another are the correct values, programmers insert explicit synchronization statements to control execution order.