Back to home page

MITgcm

 
 

    


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