*IF DEF,OCEAN                                                              INITTRAC.2      
C ******************************COPYRIGHT******************************    INITTRAC.3      
C (c) CROWN COPYRIGHT 1996, METEOROLOGICAL OFFICE, All Rights Reserved.    INITTRAC.4      
C                                                                          INITTRAC.5      
C Use, duplication or disclosure of this code is subject to the            INITTRAC.6      
C restrictions as set forth in the contract.                               INITTRAC.7      
C                                                                          INITTRAC.8      
C                Meteorological Office                                     INITTRAC.9      
C                London Road                                               INITTRAC.10     
C                BRACKNELL                                                 INITTRAC.11     
C                Berkshire UK                                              INITTRAC.12     
C                RG12 2SZ                                                  INITTRAC.13     
C                                                                          INITTRAC.14     
C If no contract has been raised with this copy of the code, the use,      INITTRAC.15     
C duplication or disclosure of it is strictly prohibited.  Permission      INITTRAC.16     
C to do so must first be obtained in writing from the Head of Numerical    INITTRAC.17     
C Modelling at the above address.                                          INITTRAC.18     
C ******************************COPYRIGHT******************************    INITTRAC.19     
C                                                                          INITTRAC.20     
CLL  Subroutine INITTRAC --------------------------------------------      INITTRAC.21     
CLL                                                                        INITTRAC.22     
CLL  Author   : R. Hill                                                    INITTRAC.23     
CLL                                                                        INITTRAC.24     
CLL  Reviewer :                                                            INITTRAC.25     
CLL                                                                        INITTRAC.26     
CLL  Date     : September 1996                                             INITTRAC.27     
CLL                                                                        INITTRAC.28     
CLL  UM Version  : 4.2                                                     INITTRAC.29     
CLL                                                                        INITTRAC.30     
CLL  Description : This subroutine populates arrays TX,TBX,TMX,TBMX,       INITTRAC.31     
CLL                TPX and TBPX with tracer values for ocean rows          INITTRAC.32     
CLL                which are required when the ocean model is run          INITTRAC.33     
CLL                parallel (Autotasked or MPP). The values are            INITTRAC.34     
CLL                required in the initial calculations performed          INITTRAC.35     
CLL                within BLOKINIT at block (domain) boundaries.           INITTRAC.36     
CLL                                                                        INITTRAC.37     
CLL  History  :                                                            INITTRAC.38     
CLL  Version    Date     Comment & Name                                    INITTRAC.39     
!    4.5      05/08/97  Ensure southernmost row is read. M.Bell/S.I.       OSI1F405.77     
CLL  4.5     3/11/98   Fill row j+2 (TPP etc) with boundary data           OOM3F405.213    
CLL                    if needed      M. Roberts                           OOM3F405.214    
CLL  -------  --------  --------------------------------------------       INITTRAC.40     
CLL --------------------------------------------------------------------   INITTRAC.41     

      SUBROUTINE INITTRAC(                                                  1,18INITTRAC.42     
*CALL ARGSIZE                                                              INITTRAC.43     
*CALL ARGD1                                                                INITTRAC.44     
*CALL ARGDUMO                                                              INITTRAC.45     
*CALL ARGPTRO                                                              INITTRAC.46     
*CALL ARGOINDX                                                             INITTRAC.47     
     &      LABS,NDISKB,NDISK,NDISKA,FKMP,FKMQ                             INITTRAC.48     
     &    , TX,TBX,TMX,TBMX,TPX,TBPX                                       INITTRAC.49     
     &,   TPPX, TBPPX, L_OBIMOM, L_OBIHARMGM                               OOM3F405.215    
     &    , NBLOCK,JROWS                                                   INITTRAC.50     
     &     )                                                               INITTRAC.51     
                                                                           INITTRAC.52     
      IMPLICIT NONE                                                        INITTRAC.53     
                                                                           INITTRAC.54     
*CALL TYPSIZE                                                              INITTRAC.55     
*CALL TYPD1                                                                INITTRAC.56     
*CALL TYPDUMO                                                              INITTRAC.57     
*CALL TYPPTRO                                                              INITTRAC.58     
*CALL TYPOINDX                                                             INITTRAC.59     
                                                                           INITTRAC.60     
! Variables passed into this subroutine                                    INITTRAC.61     
      INTEGER NDISKB, NDISKA, NDISK                                        INITTRAC.62     
     &       ,LABS(3),NBLOCK,JROWS                                         INITTRAC.63     
      LOGICAL L_OBIMOM     ! biharmonic momentum diffusion                 OOM3F405.216    
     &,       L_OBIHARMGM  ! biharmonic GM diffusion                       OOM3F405.217    
                                                                           INITTRAC.64     
      REAL FKMP(IMT,JMT)                                                   INITTRAC.65     
     &    ,FKMQ(IMT,JMT)                                                   INITTRAC.66     
                                                                           INITTRAC.67     
! Variables passed out of this subroutine                                  INITTRAC.68     
      REAL TX(NSLAB,NBLOCK ) ! Initial values for T                        INITTRAC.69     
     &    ,TBX(NSLAB,NBLOCK) ! Initial values for TB                       INITTRAC.70     
     &    ,TMX(NSLAB,NBLOCK) ! Initial values for TM                       INITTRAC.71     
     &    ,TBMX(NSLAB,NBLOCK)! Initial values for TBM                      INITTRAC.72     
     &    ,TPX(NSLAB,NBLOCK) ! Initial values for TP  at JFIN+1            INITTRAC.73     
     &    ,TBPX(NSLAB,NBLOCK)! Initial values for TBP at JFIN+1            INITTRAC.74     
     &    ,TPPX(NSLAB,NBLOCK) ! Initial values for TPP  at JFIN+2          OOM3F405.218    
     &    ,TBPPX(NSLAB,NBLOCK)! Initial values for TBPP at JFIN+2          OOM3F405.219    
     &    ,TPASS(NSLAB,NBLOCK) ! Temporary variable for message passing    INITTRAC.75     
                                                                           INITTRAC.76     
! Variables local to this subroutine                                       INITTRAC.77     
      INTEGER I,IBLOCK,JIND,PE_SEND,PE_RECV,INFO                           INITTRAC.78     
     &, J_FROM_COMP    ! Starting J index for block of rows                OSI1F405.79     
                                                                           INITTRAC.79     
*IF DEF,MPP                                                                INITTRAC.80     
                                                                           INITTRAC.81     
      ! We must set up TX, TBX, TMX and TBMX  for the                      INITTRAC.82     
      ! pe deailing with row 1 - this is the only proc which               INITTRAC.83     
      ! reads data from its own domain.                                    INITTRAC.84     
      IF (JST.EQ.1) THEN                                                   INITTRAC.85     
         JIND = 1                                                          OSI1F405.78     
             CALL UMREAD(                                                  INITTRAC.87     
*CALL ARGSIZE                                                              INITTRAC.88     
*CALL ARGD1                                                                INITTRAC.89     
*CALL ARGDUMO                                                              INITTRAC.90     
*CALL ARGPTRO                                                              INITTRAC.91     
     &            LABS(NDISK),JIND+1,TX                                    INITTRAC.92     
     &,           NDISKB,NDISK,NDISKA,FKMP,FKMQ )                          INITTRAC.93     
             CALL UMREAD(                                                  INITTRAC.94     
*CALL ARGSIZE                                                              INITTRAC.95     
*CALL ARGD1                                                                INITTRAC.96     
*CALL ARGDUMO                                                              INITTRAC.97     
*CALL ARGPTRO                                                              INITTRAC.98     
     &            LABS(NDISKB),JIND+1,TBX                                  INITTRAC.99     
     &,           NDISKB,NDISK,NDISKA,FKMP,FKMQ )                          INITTRAC.100    
             CALL UMREAD(                                                  INITTRAC.101    
*CALL ARGSIZE                                                              INITTRAC.102    
*CALL ARGD1                                                                INITTRAC.103    
*CALL ARGDUMO                                                              INITTRAC.104    
*CALL ARGPTRO                                                              INITTRAC.105    
     &            LABS(NDISK),JIND,TMX                                     INITTRAC.106    
     &,           NDISKB,NDISK,NDISKA,FKMP,FKMQ )                          INITTRAC.107    
             CALL UMREAD(                                                  INITTRAC.108    
*CALL ARGSIZE                                                              INITTRAC.109    
*CALL ARGD1                                                                INITTRAC.110    
*CALL ARGDUMO                                                              INITTRAC.111    
*CALL ARGPTRO                                                              INITTRAC.112    
     &            LABS(NDISKB),JIND,TBMX                                   INITTRAC.113    
     &,           NDISKB,NDISK,NDISKA,FKMP,FKMQ )                          INITTRAC.114    
      ENDIF   ! If this is the PE dealing with the first model row.        INITTRAC.115    
                                                                           INITTRAC.116    
! If this PE's last row is less than JMT_GLOBAL, then read the informati   INITTRAC.117    
! from it and send to the process that's expecting it.                     INITTRAC.118    
      IF (J_PE_JFINP1.GE.0) THEN                                           INITTRAC.119    
                                                                           INITTRAC.120    
             JIND=J_JMT                                                    INITTRAC.121    
                                                                           INITTRAC.122    
             CALL UMREAD(                                                  INITTRAC.123    
*CALL ARGSIZE                                                              INITTRAC.124    
*CALL ARGD1                                                                INITTRAC.125    
*CALL ARGDUMO                                                              INITTRAC.126    
*CALL ARGPTRO                                                              INITTRAC.127    
     &            LABS(NDISK),JIND,TPASS                                   INITTRAC.128    
     &,           NDISKB,NDISK,NDISKA,FKMP,FKMQ )                          INITTRAC.129    
                                                                           INITTRAC.130    
             ! Now send the info to the PE which needs it:                 INITTRAC.131    
             PE_RECV = J_PE_JFINP1                                         INITTRAC.132    
             CALL GC_RSEND(3001,NSLAB,PE_RECV,INFO,TX,TPASS)               INITTRAC.133    
      ENDIF                                                                INITTRAC.134    
                                                                           INITTRAC.135    
      CALL GC_GSYNC(O_NPROC,INFO)                                          ORH3F403.349    
      IF (J_PE_JSTM1.GE.0) THEN                                            INITTRAC.136    
         ! We're expecting to receive a message:                           INITTRAC.137    
         PE_SEND = J_PE_JSTM1                                              INITTRAC.138    
         CALL GC_RRECV (3001,NSLAB,PE_SEND,INFO,TX,TPASS)                  INITTRAC.139    
      ENDIF                                                                INITTRAC.140    
                                                                           INITTRAC.141    
      CALL GC_GSYNC(O_NPROC,INFO)                                          ORH3F403.350    
      IF (J_PE_JFINP1.GE.0) THEN                                           INITTRAC.142    
             JIND=J_JMT                                                    INITTRAC.143    
                                                                           INITTRAC.144    
             CALL UMREAD(                                                  INITTRAC.145    
*CALL ARGSIZE                                                              INITTRAC.146    
*CALL ARGD1                                                                INITTRAC.147    
*CALL ARGDUMO                                                              INITTRAC.148    
*CALL ARGPTRO                                                              INITTRAC.149    
     &            LABS(NDISKB),JIND,TPASS                                  INITTRAC.150    
     &,           NDISKB,NDISK,NDISKA,FKMP,FKMQ )                          INITTRAC.151    
                                                                           INITTRAC.152    
                                                                           INITTRAC.153    
             ! Now send the info to the PE which needs it:                 INITTRAC.154    
             PE_RECV = J_PE_JFINP1                                         INITTRAC.155    
             CALL GC_RSEND(3002,NSLAB,PE_RECV,INFO,TBX,TPASS)              INITTRAC.156    
      ENDIF                                                                INITTRAC.157    
                                                                           INITTRAC.158    
      CALL GC_GSYNC(O_NPROC,INFO)                                          ORH3F403.351    
      IF (J_PE_JSTM1.GE.0) THEN                                            INITTRAC.159    
         ! We're expecting to receive a message:                           INITTRAC.160    
         PE_SEND = J_PE_JSTM1                                              INITTRAC.161    
         CALL GC_RRECV (3002,NSLAB,PE_SEND,INFO,TBX,TPASS)                 INITTRAC.162    
                                                                           INITTRAC.163    
      ENDIF                                                                INITTRAC.164    
! Get tracers for JST - 2 at current timestep                              INITTRAC.165    
      CALL GC_GSYNC(O_NPROC,INFO)                                          ORH3F403.352    
                                                                           INITTRAC.166    
      IF (J_PE_JFINP2.GE.0) THEN                                           INITTRAC.167    
         IF ((JFIN-JST+1).GE.2) THEN                                       INITTRAC.168    
            ! If there is more than 1 row for this PE then only            INITTRAC.169    
            ! the last but 1 row is sent.                                  INITTRAC.170    
            JIND = J_JMT-1                                                 INITTRAC.171    
         ELSE                                                              INITTRAC.172    
            ! otherwise, we send the one and only row                      INITTRAC.173    
            JIND = J_JMT                                                   INITTRAC.174    
         ENDIF                                                             INITTRAC.175    
                                                                           INITTRAC.176    
         CALL UMREAD(                                                      INITTRAC.177    
*CALL ARGSIZE                                                              INITTRAC.178    
*CALL ARGD1                                                                INITTRAC.179    
*CALL ARGDUMO                                                              INITTRAC.180    
*CALL ARGPTRO                                                              INITTRAC.181    
     &            LABS(NDISK),JIND,TPASS                                   INITTRAC.182    
     &,           NDISKB,NDISK,NDISKA,FKMP,FKMQ )                          INITTRAC.183    
                                                                           INITTRAC.184    
         ! Now send the info to the PE which needs it:                     INITTRAC.185    
         PE_RECV = J_PE_JFINP2                                             INITTRAC.186    
         CALL GC_RSEND(3003,NSLAB,PE_RECV,INFO,TMX,TPASS)                  INITTRAC.187    
      ENDIF                                                                INITTRAC.188    
      CALL GC_GSYNC(O_NPROC,INFO)                                          ORH3F403.353    
      IF (J_PE_JSTM2.GE.0) THEN                                            INITTRAC.189    
         ! We're expecting to receive a message:                           INITTRAC.190    
         PE_SEND = J_PE_JSTM2                                              INITTRAC.191    
         CALL GC_RRECV (3003,NSLAB,PE_SEND,INFO,TMX,TPASS)                 INITTRAC.192    
      ENDIF                                                                INITTRAC.193    
      CALL GC_GSYNC(O_NPROC,INFO)                                          ORH3F403.354    
                                                                           INITTRAC.194    
      IF (J_PE_JFINP2.GE.0) THEN                                           INITTRAC.195    
         IF ((JFIN-JST+1).GE.2) THEN                                       INITTRAC.196    
            ! If there is more than 1 row for this PE then only            INITTRAC.197    
            ! the last but 1 row is sent.                                  INITTRAC.198    
            JIND = J_JMT-1                                                 INITTRAC.199    
         ELSE                                                              INITTRAC.200    
            ! Otherwise, we send the one and only row                      INITTRAC.201    
            JIND = J_JMT                                                   INITTRAC.202    
         ENDIF                                                             INITTRAC.203    
                                                                           INITTRAC.204    
         CALL UMREAD(                                                      INITTRAC.205    
*CALL ARGSIZE                                                              INITTRAC.206    
*CALL ARGD1                                                                INITTRAC.207    
*CALL ARGDUMO                                                              INITTRAC.208    
*CALL ARGPTRO                                                              INITTRAC.209    
     &            LABS(NDISKB),JIND,TPASS                                  INITTRAC.210    
     &,           NDISKB,NDISK,NDISKA,FKMP,FKMQ )                          INITTRAC.211    
         ! Now send the info to the PE which needs it:                     INITTRAC.212    
         PE_RECV = J_PE_JFINP2                                             INITTRAC.213    
         CALL GC_RSEND(3004,NSLAB,PE_RECV,INFO,TBMX,TPASS)                 INITTRAC.214    
      ENDIF                                                                INITTRAC.215    
      CALL GC_GSYNC(O_NPROC,INFO)                                          ORH3F403.355    
      IF (J_PE_JSTM2.GE.0) THEN                                            INITTRAC.216    
         ! We're expecting to receive a message:                           INITTRAC.217    
         PE_SEND = J_PE_JSTM2                                              INITTRAC.218    
         CALL GC_RRECV (3004,NSLAB,PE_SEND,INFO,TBMX,TPASS)                INITTRAC.219    
      ENDIF                                                                INITTRAC.220    
                                                                           INITTRAC.221    
      CALL GC_GSYNC(O_NPROC,INFO)                                          ORH3F403.356    
                                                                           INITTRAC.222    
      IF (J_PE_JSTM1.GE.0) THEN                                            INITTRAC.223    
                                                                           INITTRAC.224    
         ! we pass the first row one PE backwards.                         INITTRAC.225    
         JIND = J_1                                                        INITTRAC.226    
                                                                           INITTRAC.227    
         CALL UMREAD(                                                      INITTRAC.228    
*CALL ARGSIZE                                                              INITTRAC.229    
*CALL ARGD1                                                                INITTRAC.230    
*CALL ARGDUMO                                                              INITTRAC.231    
*CALL ARGPTRO                                                              INITTRAC.232    
     &            LABS(NDISK),JIND,TPASS                                   INITTRAC.233    
     &,           NDISKB,NDISK,NDISKA,FKMP,FKMQ )                          INITTRAC.234    
         ! Now send the info to the PE which needs it:                     INITTRAC.235    
         PE_RECV = J_PE_JSTM1                                              INITTRAC.236    
         CALL GC_RSEND(3005,NSLAB,PE_RECV,INFO,TPX,TPASS)                  INITTRAC.237    
      ENDIF                                                                INITTRAC.238    
      CALL GC_GSYNC(O_NPROC,INFO)                                          ORH3F403.357    
      IF (J_PE_JFINP1.GE.0) THEN                                           INITTRAC.239    
         ! We're expecting to receive a message:                           INITTRAC.240    
         PE_SEND = J_PE_JFINP1                                             INITTRAC.241    
         CALL GC_RRECV (3005,NSLAB,PE_SEND,INFO,TPX,TPASS)                 INITTRAC.242    
      ENDIF                                                                INITTRAC.243    
                                                                           INITTRAC.244    
      CALL GC_GSYNC(O_NPROC,INFO)                                          ORH3F403.358    
!  Get tracers for JFIN+1 at previous timestep                             INITTRAC.245    
      IF (J_PE_JSTM1.GE.0) THEN                                            INITTRAC.246    
                                                                           INITTRAC.247    
         ! we pass the first row one PE backwards.                         INITTRAC.248    
         JIND = J_1                                                        INITTRAC.249    
                                                                           INITTRAC.250    
             CALL UMREAD(                                                  INITTRAC.251    
*CALL ARGSIZE                                                              INITTRAC.252    
*CALL ARGD1                                                                INITTRAC.253    
*CALL ARGDUMO                                                              INITTRAC.254    
*CALL ARGPTRO                                                              INITTRAC.255    
     &            LABS(NDISKB),JIND,TPASS                                  INITTRAC.256    
     &,           NDISKB,NDISK,NDISKA,FKMP,FKMQ )                          INITTRAC.257    
         ! Now send the info to the PE which needs it:                     INITTRAC.258    
         PE_RECV = J_PE_JSTM1                                              INITTRAC.259    
         CALL GC_RSEND(3006,NSLAB,PE_RECV,INFO,TBPX,TPASS)                 INITTRAC.260    
      ENDIF                                                                INITTRAC.261    
      CALL GC_GSYNC(O_NPROC,INFO)                                          ORH3F403.359    
      IF (J_PE_JFINP1.GE.0) THEN                                           INITTRAC.262    
         ! We're expecting to receive a message:                           INITTRAC.263    
         PE_SEND = J_PE_JFINP1                                             INITTRAC.264    
         CALL GC_RRECV(3006,NSLAB,PE_SEND,INFO,TBPX,TPASS)                 INITTRAC.265    
      ENDIF                                                                INITTRAC.266    
      CALL GC_GSYNC(O_NPROC,INFO)                                          ORH3F403.360    
      IF (L_OBIMOM.or.L_OBIHARMGM) then                                    OOM3F405.220    
                                                                           OOM3F405.221    
      IF (J_PE_JSTM1.GE.0) THEN                                            OOM3F405.222    
                                                                           OOM3F405.223    
         ! we pass the second row one PE backwards.                        OOM3F405.224    
         JIND = J_1+1                                                      OOM3F405.225    
                                                                           OOM3F405.226    
         CALL UMREAD(                                                      OOM3F405.227    
*CALL ARGSIZE                                                              OOM3F405.228    
*CALL ARGD1                                                                OOM3F405.229    
*CALL ARGDUMO                                                              OOM3F405.230    
*CALL ARGPTRO                                                              OOM3F405.231    
     &            LABS(NDISK),JIND,TPASS                                   OOM3F405.232    
     &,           NDISKB,NDISK,NDISKA,FKMP,FKMQ )                          OOM3F405.233    
         ! Now send the info to the PE which needs it:                     OOM3F405.234    
         PE_RECV = J_PE_JSTM1                                              OOM3F405.235    
         CALL GC_RSEND(3006,NSLAB,PE_RECV,INFO,TPPX,TPASS)                 OOM3F405.236    
      ENDIF                                                                OOM3F405.237    
      CALL GC_GSYNC(O_NPROC,INFO)                                          OOM3F405.238    
      IF (J_PE_JFINP1.GE.0) THEN                                           OOM3F405.239    
         ! We're expecting to receive a message:                           OOM3F405.240    
         PE_SEND = J_PE_JFINP1                                             OOM3F405.241    
         CALL GC_RRECV (3006,NSLAB,PE_SEND,INFO,TPPX,TPASS)                OOM3F405.242    
      ENDIF                                                                OOM3F405.243    
                                                                           OOM3F405.244    
      CALL GC_GSYNC(O_NPROC,INFO)                                          OOM3F405.245    
!  Get tracers for JFIN+1 at previous timestep                             OOM3F405.246    
      IF (J_PE_JSTM1.GE.0) THEN                                            OOM3F405.247    
                                                                           OOM3F405.248    
         ! we pass the second row one PE backwards.                        OOM3F405.249    
         JIND = J_1+1                                                      OOM3F405.250    
                                                                           OOM3F405.251    
             CALL UMREAD(                                                  OOM3F405.252    
*CALL ARGSIZE                                                              OOM3F405.253    
*CALL ARGD1                                                                OOM3F405.254    
*CALL ARGDUMO                                                              OOM3F405.255    
*CALL ARGPTRO                                                              OOM3F405.256    
     &            LABS(NDISKB),JIND,TPASS                                  OOM3F405.257    
     &,           NDISKB,NDISK,NDISKA,FKMP,FKMQ )                          OOM3F405.258    
         ! Now send the info to the PE which needs it:                     OOM3F405.259    
         PE_RECV = J_PE_JSTM1                                              OOM3F405.260    
         CALL GC_RSEND(3007,NSLAB,PE_RECV,INFO,TBPPX,TPASS)                OOM3F405.261    
      ENDIF                                                                OOM3F405.262    
      CALL GC_GSYNC(O_NPROC,INFO)                                          OOM3F405.263    
      IF (J_PE_JFINP1.GE.0) THEN                                           OOM3F405.264    
         ! We're expecting to receive a message:                           OOM3F405.265    
         PE_SEND = J_PE_JFINP1                                             OOM3F405.266    
         CALL GC_RRECV(3007,NSLAB,PE_SEND,INFO,TBPPX,TPASS)                OOM3F405.267    
      ENDIF                                                                OOM3F405.268    
      CALL GC_GSYNC(O_NPROC,INFO)                                          OOM3F405.269    
                                                                           OOM3F405.270    
      ENDIF  ! L_OBIMOM or L_OBIHARMGM                                     OOM3F405.271    
                                                                           OOM3F405.272    
*ELSE                                                                      INITTRAC.267    
                                                                           INITTRAC.268    
      ! Non MPP version - caters for Cray autotasking                      INITTRAC.269    
      DO IBLOCK=1,NBLOCK                                                   INITTRAC.270    
                                                                           INITTRAC.271    
                                                                           INITTRAC.272    
C                                                                          OSI1F405.80     
C Set JIND, JST and JFROM                                                  OSI1F405.81     
C                                                                          OSI1F405.82     
!            Get tracers for J_FROM_COMP - 1 at current timestep           OSI1F405.89     
             JIND=3+((IBLOCK-1)*JROWS)                                     INITTRAC.274    
         IF(JIND.EQ.3) THEN                                                OSI1F405.83     
            JST=1                                                          OSI1F405.84     
         ELSE                                                              OSI1F405.85     
            JST=JIND                                                       OSI1F405.86     
         ENDIF                                                             OSI1F405.87     
         J_FROM_COMP = MAX(2,JST)                                          OSI1F405.88     
                                                                           INITTRAC.275    
             CALL UMREAD(                                                  INITTRAC.276    
*CALL ARGSIZE                                                              INITTRAC.277    
*CALL ARGD1                                                                INITTRAC.278    
*CALL ARGDUMO                                                              INITTRAC.279    
*CALL ARGPTRO                                                              INITTRAC.280    
     &            LABS(NDISK),J_FROM_COMP-1,TX(1,IBLOCK)                   OSI1F405.90     
     &,           NDISKB,NDISK,NDISKA,FKMP,FKMQ )                          INITTRAC.282    
                                                                           INITTRAC.283    
                                                                           INITTRAC.284    
!            Get tracers for J_FROM_COMP - 1 at previous timestep          OSI1F405.91     
                                                                           INITTRAC.286    
             CALL UMREAD(                                                  INITTRAC.287    
*CALL ARGSIZE                                                              INITTRAC.288    
*CALL ARGD1                                                                INITTRAC.289    
*CALL ARGDUMO                                                              INITTRAC.290    
*CALL ARGPTRO                                                              INITTRAC.291    
     &            LABS(NDISKB),J_FROM_COMP-1,TBX(1,IBLOCK)                 OSI1F405.92     
     &,           NDISKB,NDISK,NDISKA,FKMP,FKMQ )                          INITTRAC.293    
                                                                           INITTRAC.294    
                                                                           INITTRAC.295    
        IF (JIND.GT.3) THEN                                                OSI1F405.93     
!            Get tracers for J_FROM_COMP - 2 at current timestep           OSI1F405.94     
!            Since JIND >=3, we can do this for all processors             INITTRAC.297    
                 CALL UMREAD(                                              INITTRAC.298    
*CALL ARGSIZE                                                              INITTRAC.299    
*CALL ARGD1                                                                INITTRAC.300    
*CALL ARGDUMO                                                              INITTRAC.301    
*CALL ARGPTRO                                                              INITTRAC.302    
     &            LABS(NDISK),J_FROM_COMP-2,TMX(1,IBLOCK)                  OSI1F405.95     
     &,           NDISKB,NDISK,NDISKA,FKMP,FKMQ )                          INITTRAC.304    
                                                                           INITTRAC.305    
!                Get tracers for J_FROM_COMP - 2 at previous timestep      OSI1F405.96     
                                                                           INITTRAC.307    
                 CALL UMREAD(                                              INITTRAC.308    
*CALL ARGSIZE                                                              INITTRAC.309    
*CALL ARGD1                                                                INITTRAC.310    
*CALL ARGDUMO                                                              INITTRAC.311    
*CALL ARGPTRO                                                              INITTRAC.312    
     &            LABS(NDISKB),J_FROM_COMP-2,TBMX(1,IBLOCK)                OSI1F405.97     
     &,           NDISKB,NDISK,NDISKA,FKMP,FKMQ )                          INITTRAC.314    
                                                                           INITTRAC.315    
        ENDIF                                                              OSI1F405.98     
                                                                           INITTRAC.316    
!--------------------------------------------------------------------      INITTRAC.317    
!        For blocks 1 to NBLOCK - 1 we must obtain tracer values           INITTRAC.318    
!        for row JFIN + 1 prior to commencing block computaion.            INITTRAC.319    
!--------------------------------------------------------------------      INITTRAC.320    
                                                                           INITTRAC.321    
         ! We cant read the last plus 1 row for the final block            INITTRAC.322    
         ! but we do it for all the rest.                                  INITTRAC.323    
         IF (IBLOCK.LT.NBLOCK) THEN                                        INITTRAC.324    
                                                                           INITTRAC.325    
!  Get tracers for JFIN+1  at current timestep                             INITTRAC.326    
                                                                           INITTRAC.327    
             JFIN=MIN(JIND+JROWS-1,JMTM1)                                  INITTRAC.328    
             JIND=JFIN                                                     INITTRAC.329    
                                                                           INITTRAC.330    
             CALL UMREAD(                                                  INITTRAC.331    
*CALL ARGSIZE                                                              INITTRAC.332    
*CALL ARGD1                                                                INITTRAC.333    
*CALL ARGDUMO                                                              INITTRAC.334    
*CALL ARGPTRO                                                              INITTRAC.335    
     &            LABS(NDISK),JIND+1,TPX (1,IBLOCK)                        INITTRAC.336    
     &,           NDISKB,NDISK,NDISKA,FKMP,FKMQ )                          INITTRAC.337    
                                                                           INITTRAC.338    
!  Get tracers for JFIN+1 at previous timestep                             INITTRAC.339    
                                                                           INITTRAC.340    
             CALL UMREAD(                                                  INITTRAC.341    
*CALL ARGSIZE                                                              INITTRAC.342    
*CALL ARGD1                                                                INITTRAC.343    
*CALL ARGDUMO                                                              INITTRAC.344    
*CALL ARGPTRO                                                              INITTRAC.345    
     &            LABS(NDISKB),JIND+1,TBPX(1,IBLOCK)                       INITTRAC.346    
     &,           NDISKB,NDISK,NDISKA,FKMP,FKMQ )                          INITTRAC.347    
                                                                           INITTRAC.348    
                                                                           INITTRAC.349    
         ENDIF                                                             INITTRAC.350    
      ENDDO   ! OVER IBLOCK                                                INITTRAC.351    
                                                                           INITTRAC.352    
*ENDIF                                                                     INITTRAC.353    
      RETURN                                                               INITTRAC.354    
                                                                           INITTRAC.355    
      END                                                                  INITTRAC.356    
*ENDIF                                                                     INITTRAC.357