Warning, /pkg/atm_ocn_coupler/README is written in an unsupported language. File is not indexed.
view on githubraw file Latest commit 7f58e894 on 2006-06-15 23:29:18 UTC
7f58e89433 Jean*0001
0002 ***************************************************************************************
0003 | Initialisation |
0004 ***************************************************************************************
0005
0006 MITCOMPONENT_init
0007 =================
0008
0009 CALL MITCOMPONENT_init(
0010 I name,
0011 O comm )
0012
0013 name - Name of component to register e.g.
0014 'ocean', 'atmos', 'ice', 'land'. Up to
0015 MAX_COMPONENTS ( see "CPLR_SIG.h" )
0016 are allowed. Default is MAX_COMPONENTS = 10.
0017
0018 comm - MPI_Communicator which includes all procs.
0019 that registered as component type 'name.
0020
0021 Each process can only register as one component type.
0022
0023 Every process has to call MITCOMPONENT_init at the
0024 same point otherwise everything deadlocks or dies.
0025 Except the coupler process which calls MITCOUPLER_init.
0026
0027 Initialises the MPI context for a particular component
0028 model. On return the component is given a communicator
0029 that can be used for communication based on MPI
0030 for the processes of the component. Internal
0031 coupler data structures are also populated that
0032 hold information about the component. Typical start-up
0033 sequence is
0034
0035 Ocean model (N processes)
0036 :
0037 :
0038 MPI_Init
0039 MITCOMPONENT_init('Ocean', MPI_COMM_Ocean )
0040
0041 Atmos model (M processes)
0042 :
0043 :
0044 MPI_Init
0045 MITCOMPONENT_init('Atmos', MPI_COMM_Atmos )
0046
0047 Coupler (one process only)
0048 :
0049 :
0050 MPI_Init
0051 MITCOUPLER_init( 'Coupler', MPI_COMM_Coupler )
0052
0053
0054 MITCOMPONENT_tile_register
0055 ==========================
0056 MITCOMPONENT_tile_register(
0057 I ntx, nty, ireg, rreg )
0058 ntx - number of tiles in X to register
0059 nty - number of tiles in Y to register
0060 ireg - array of integer tile attributes.
0061 Current attributes are:
0062 ireg(1,bi,bj) - tile size in X
0063 ireg(2,bi,bj) - tile size in Y
0064 ireg(3,bi,bj) - tile base coordinate on global grid in X
0065 ireg(4,bi,bj) - tile base coordinate on global grid in Y
0066 Declared:
0067 INTEGER IREG(4,NTX,NTY)
0068
0069 rreg - array of float (32-bit) tile attributes
0070 Current attributes are:
0071 rreg is not used at the moment.
0072 Declared:
0073 REAL*4 RREG(4,NTX,NTY)
0074
0075 MITCOMPONENT_register
0076 =====================
0077 MITCOMPONENT_register(
0078 I nx, ny, 1, 1 )
0079 routine for registering tile size for a single tile model.
0080 Deprecated - use MITCOMPONENT_tile_register with ntx and nty
0081 set to 1. This routine will not be supported in future coupler releases.
0082
0083
0084
0085
0086
0087
0088
0089 ***************************************************************************************
0090 | Sending data |
0091 ***************************************************************************************
0092 COMPSEND_R4
0093 ===========
0094 COMPSEND_R4('Q_a',nx,0,ny,0,Q_surf)
0095 REAL*4 Q_surf(nx,ny)
0096
0097 COMPSEND_R4TILES
0098 ================
0099 COMPSEND_R4TILES('SST_o',nx,0,ny,0,1,nSx,nSy, SST)
0100 REAK*4 SST(SNX,SNY,NSX,NSY)
0101
0102 COMPSEND_R8TILES
0103 ================
0104 COMPSEND_R8TILES('Ocean Mask',nx,0,ny,0,1,nSx,nSy, landmask)
0105 REAK*8 LANDMASK(SNX,SNY,NSX,NSY)
0106
0107
0108
0109
0110
0111
0112 ***************************************************************************************
0113 | Receiving data |
0114 ***************************************************************************************
0115 COMPRECV_R4
0116 ===========
0117 COMPRECV_R4('SST_a',nx,0,ny,0,SST)
0118 REAL*4 SST(nx,ny)
0119 CALL COMPRECV_R4(dataname,sNx,OLx,sNy,OLy,array)
0120 REAL*4 array(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0121
0122 COMPRECV_R8
0123 ===========
0124 COMPRECV_R8('Ocean Mask',nx,0,ny,0,landmask)
0125 REAL*8 landmask(nx,ny)
0126 CALL COMPRECV_R8(dataname,sNx,OLx,sNy,OLy,array)
0127 REAL*8 array(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0128