*IF DEF,OCEAN                                                              CALCDIFF.2      
C ******************************COPYRIGHT******************************    CALCDIFF.3      
C (c) CROWN COPYRIGHT 1998, METEOROLOGICAL OFFICE, All Rights Reserved.    CALCDIFF.4      
C                                                                          CALCDIFF.5      
C Use, duplication or disclosure of this code is subject to the            CALCDIFF.6      
C restrictions as set forth in the contract.                               CALCDIFF.7      
C                                                                          CALCDIFF.8      
C                Meteorological Office                                     CALCDIFF.9      
C                London Road                                               CALCDIFF.10     
C                BRACKNELL                                                 CALCDIFF.11     
C                Berkshire UK                                              CALCDIFF.12     
C                RG12 2SZ                                                  CALCDIFF.13     
C                                                                          CALCDIFF.14     
C If no contract has been raised with this copy of the code, the use,      CALCDIFF.15     
C duplication or disclosure of it is strictly prohibited.  Permission      CALCDIFF.16     
C to do so must first be obtained in writing from the Head of Numerical    CALCDIFF.17     
C Modelling at the above address.                                          CALCDIFF.18     
C ******************************COPYRIGHT******************************    CALCDIFF.19     
C                                                                          CALCDIFF.20     
CLL   Subroutine CALCDIFF                                                  CALCDIFF.21     
CLL                                                                        CALCDIFF.22     
CLL   Author: M J Roberts                                                  CALCDIFF.23     
CLL                                                                        CALCDIFF.24     
CLL   Description: Mirrors subroutine CALCESAV for the Griffies            CALCDIFF.25     
CLL                isopycnal diffusion scheme - calls isopycnal            CALCDIFF.26     
CLL                diffusion routines to initialise variables for the      CALCDIFF.27     
CLL                first row of a block.                                   CALCDIFF.28     
CLL                                                                        CALCDIFF.29     
CLL   External documentation:                                              CALCDIFF.30     
CLL                                                                        CALCDIFF.31     
CLL   Implemented at UM vn 4.5 26 June 1998                                CALCDIFF.32     
CLL                                                                        CALCDIFF.33     
CLL   Modification History  :                                              CALCDIFF.34     
CLL   Version   Date     Comment & Name                                    CALCDIFF.35     
CLL   ------- --------  --------------------------------------------       CALCDIFF.36     
CLL                                                                        CALCDIFF.37     
CLL   Subroutine dependencies.                                             CALCDIFF.38     
CLL   Called by BLOKINIT                                                   CALCDIFF.39     
CLL   Calls subroutines VERTCOFT, ISOPYC_M, ISOFLUX, STATED, STATEC,       CALCDIFF.40     
CLL   CALC_MLD_LARGEG or CALC_MLD_LARGEB.                                  CALCDIFF.41     
CLL                                                                        CALCDIFF.42     
CLLEND------------------------------------------------------------------   CALCDIFF.43     
C                                                                          CALCDIFF.44     

      SUBROUTINE CALCDIFF(                                                  1,9CALCDIFF.45     
*CALL ARGSIZE                                                              CALCDIFF.46     
*CALL COCAWRKA                                                             CALCDIFF.47     
     &  ,j,cstr,dyur,dxur,dz2r,dzz,dzz2r,athkdftu,athkdftv,ahi,athkdf,     CALCDIFF.48     
     &  dz,dyu,dxu,cs,dxt4r,dyt4r,dxtr,dytr,cst,csjm,dyurjm,j_1,           CALCDIFF.49     
     &  KMP,NERGY,FKAPB_SI,CSR,ITT,                                        CALCDIFF.50     
     &  KAPPA_B_SI,J_OFFSET,                                               CALCDIFF.51     
     &  WSXM,WSYM,OCEANHEATFLUX,CARYHEAT,FLXTOICE,                         CALCDIFF.52     
     &  max_Large_levels,no_layers_in_lev,                                 CALCDIFF.53     
     &  waterflux_ice,L_OBULKRI,L_OWINDMIX,L_OBULKMAXMLD,                  CALCDIFF.54     
     &  lambda_Large,phit,                                                 CALCDIFF.55     
     &  ISX,ISY,WSX_LEADS,WSY_LEADS,                                       CALCDIFF.56     
     &  ISXM,ISYM,WSX_LEADSM,WSY_LEADSM,                                   CALCDIFF.57     
     &  ZDZZ,ZDZ,                                                          CALCDIFF.58     
     &  adv_vetiso,                                                        CALCDIFF.59     
     &  adv_vbtiso,adv_fbiso)                                              CALCDIFF.60     
C                                                                          CALCDIFF.61     
      IMPLICIT NONE                                                        CALCDIFF.62     
C                                                                          CALCDIFF.63     
*CALL OARRYSIZ                                                             CALCDIFF.64     
*CALL TYPSIZE                                                              CALCDIFF.65     
*CALL CNTLOCN                                                              CALCDIFF.66     
*CALL COCTWRKA                                                             CALCDIFF.67     
*CALL UMSCALAR                                                             CALCDIFF.68     
C                                                                          CALCDIFF.69     
      INTEGER                                                              CALCDIFF.70     
     &  I,J,K,M,N,L,                                                       CALCDIFF.71     
     &  KMP,                                                               CALCDIFF.72     
     &  NERGY,ITT,KS,J_OFFSET,j_1                                          CALCDIFF.73     
C                                                                          CALCDIFF.74     
      REAL                                                                 CALCDIFF.75     
     &  CSR(JMT),CSTR(JMT),DXUR(IMT),DYUR(JMT),DZ2R(km),dzz(km+1),         CALCDIFF.76     
     &  dzz2r(km+1),                                                       CALCDIFF.77     
     &  csjm,dyurjm,               ! IN cs and dyur at j-1                 CALCDIFF.78     
     &  athkdftu(imt_vis,jmt_vis), ! IN   thickness diffusion coeff        CALCDIFF.79     
     &  athkdftv(imt_vis,jmt_vis),   ! IN   thickness diffusion coeff      CALCDIFF.80     
c                          ! where u and v points are on a C-grid          CALCDIFF.81     
     &  ahi(km),          ! isopycnal diffusion                            CALCDIFF.82     
     &  athkdf(km),          ! thickness diffusion                         CALCDIFF.83     
                                                                           CALCDIFF.84     
     &  dz(km),dyu(jmt),dxu(imt),cs(jmt),DXT4R(IMT),DYT4R(JMT),            CALCDIFF.85     
     &  dxtr(imt),dytr(jmt),cst(jmt),ZDZ(KM),ZDZZ(KM+1),                   CALCDIFF.86     
     &  gnu(IMT,KM),      ! IN   coeff. of vertical diffusion at TOP of    CALCDIFF.87     
C                                  box. Av in Eq.1.10 (cm2/s)              CALCDIFF.88     
     &  rhosrn(IMT,KM),RHOSRNA(IMT,KM+1),RHOSRNB(IMT,KM+1),   !            CALCDIFF.89     
     &  KAPPA_B_SI(KM),CGFLUX(IMT,KM,NT)                                   CALCDIFF.90     
     &, mld_Large(imt)  ! mixed layer depth on T grid, row j, (cm)         CALCDIFF.91     
     &, waterflux_ice(imt)  ! IN Water flux from ice (Kg/m2/s)             CALCDIFF.92     
                                 ! on row j                                CALCDIFF.93     
     &, lambda_Large    ! IN Value used in calculating minimum mld         CALCDIFF.94     
     &, phit ! IN latitude of row j on tracer grid (radians)               CALCDIFF.95     
C                                                                          CALCDIFF.96     
      INTEGER                                                              CALCDIFF.97     
     &  max_Large_levels ! IN Max no of levs for Large scheme              CALCDIFF.98     
     &, no_layers_in_lev ! IN No of layers in a level to calc mld_Large    CALCDIFF.99     
      LOGICAL L_OBULKRI,L_OWINDMIX,L_OBULKMAXMLD                           CALCDIFF.100    
                                                                           CALCDIFF.101    
       REAL                                                                CALCDIFF.102    
     & OCEANHEATFLUX(IMT) !HTN:NON-PEN SURF HEATFLUX INTO OCEAN BUDGET     CALCDIFF.103    
     &,CARYHEAT(IMT) !MISCELLANEOUS HEATFLUX FROM ICE                      CALCDIFF.104    
     &,FLXTOICE(IMT) !OCEAN TO ICE HEATFLUX                                CALCDIFF.105    
                                                                           CALCDIFF.106    
      REAL WSXM(IMT),WSYM(IMT) ! wind stress on row j-1                    CALCDIFF.107    
     &,RiT(imt_gnu,km_gnu-1)  ! Richardson number for tracer grid          CALCDIFF.108    
     &,hT(imt_qlarge)      ! Maximum depth, quadratic Large scheme         CALCDIFF.109    
     &,L_T(imt)  ! Monin Obukhov Length, Large scheme (tracer)             CALCDIFF.110    
     &,Rimldcalc(imt,kmm1) ! Richardson no from mld calculation            CALCDIFF.111    
     &,ISX(IMT_idr)        ! IN Stress under sea ice fraction, row j       CALCDIFF.112    
     &,ISY(IMT_idr)        ! IN Stress under sea ice fraction, row j       CALCDIFF.113    
     &,WSX_LEADS(IMT_idr)  ! IN Stress under leads fraction, row j         CALCDIFF.114    
     &,WSY_LEADS(IMT_idr)  ! IN Stress under leads fraction, row j         CALCDIFF.115    
     &,ISXM(IMT_idr)       ! IN Stress under sea ice fraction, row j-1     CALCDIFF.116    
     &,ISYM(IMT_idr)       ! IN Stress under sea ice fraction, row j-1     CALCDIFF.117    
     &,WSX_LEADSM(IMT_idr) ! IN Stress under leads fraction, row j-1       CALCDIFF.118    
     &,WSY_LEADSM(IMT_idr) ! IN Stress under leads fraction, row j-1       CALCDIFF.119    
                                                                           CALCDIFF.120    
      REAL FXA                                                             CALCDIFF.121    
                                                                           CALCDIFF.122    
      REAL Ai_ez(imt_iso,km_iso,0:1,0:1),Ai_bx(imt_iso,km_iso,0:1,0:1),    CALCDIFF.123    
     &     Ai_by(imt_iso,km_iso,0:1,0:1),Ai_nz(imt_iso,km_iso,0:1,0:1),    CALCDIFF.124    
     &     K11(imt_iso,km_iso),K22(imt_iso,km_iso),K33(imt_iso,km_iso)     CALCDIFF.125    
                                                                           CALCDIFF.126    
C        Declare local variables                                           CALCDIFF.127    
C                                                                          CALCDIFF.128    
      REAL                                                                 CALCDIFF.129    
     &  worka(IMT,KM),    !      workspace                                 CALCDIFF.130    
     &  workb(IMT,KM),    !      workspace                                 CALCDIFF.131    
     &  workc(IMT,KM)     !      workspace                                 CALCDIFF.132    
                                                                           CALCDIFF.133    
      REAL                                                                 CALCDIFF.134    
     & XSTRESS_ICE(IMT_idr)  !IN Total stress under sea ice row j          CALCDIFF.135    
     &,YSTRESS_ICE(IMT_idr)  ! (Wind stress at ice free points)            CALCDIFF.136    
     &,XSTRESS_ICEM(IMT_idr) !IN Total stress under sea ice row j-1        CALCDIFF.137    
     &,YSTRESS_ICEM(IMT_idr) ! (Wind stress at ice free points)            CALCDIFF.138    
C                                                                          CALCDIFF.139    
C OISOGM variables                                                         CALCDIFF.140    
      REAL adv_vetiso(imt_gmm,km_gmm),                                     CALCDIFF.141    
     &     adv_vbtiso(imt_gmm,0:km_gmm),adv_fbiso(imt_gmm,0:km_gmm)        CALCDIFF.142    
      REAL srho(imt,km)                                                    CALCDIFF.143    
C                                                                          CALCDIFF.144    
C                                                                          CALCDIFF.145    
C*                                                                         CALCDIFF.146    
C*L---- External subroutines called ------------------------------------   CALCDIFF.147    
C     VERTCOFT                                                             CALCDIFF.148    
C     ISOPYC_M                                                             CALCDIFF.149    
C     ISOFLUX                                                              CALCDIFF.150    
C     STATED                                                               CALCDIFF.151    
C ----------------------------------------------------------------         CALCDIFF.152    
C  First we must calculate gnu                                             CALCDIFF.153    
C ----------------------------------------------------------------         CALCDIFF.154    
C                                                                          CALCDIFF.155    
      IF (L_ORICHARD) THEN                                                 CALCDIFF.156    
C                                                                          CALCDIFF.157    
       IF(L_OSTATEC)THEN                                                   CALCDIFF.158    
C ----------------------------------------------------------------         CALCDIFF.159    
C  COMPUTE RHOSRNA/RHOSRNB FOR CALL TO VERTCOFT USING STATEC               CALCDIFF.160    
C ----------------------------------------------------------------         CALCDIFF.161    
      CALL STATEC(TB(1,1,1),TB(1,1,2),RHOSRNA,WORKA,WORKB,1,               CALCDIFF.162    
     &            IMT,KM,J,JMT)                                            CALCDIFF.163    
      CALL STATEC(TB(1,1,1),TB(1,1,2),RHOSRNB,WORKA,WORKB,2,               CALCDIFF.164    
     &            IMT,KM,J,JMT)                                            CALCDIFF.165    
      DO I=1,IMT                                                           CALCDIFF.166    
      RHOSRNA(I,KM+1)=RHOSRNA(I,KM)                                        CALCDIFF.167    
      RHOSRNB(I,KM+1)=RHOSRNB(I,KM)                                        CALCDIFF.168    
      ENDDO                                                                CALCDIFF.169    
C                                                                          CALCDIFF.170    
       ELSE                                                                CALCDIFF.171    
C                                                                          CALCDIFF.172    
C ----------------------------------------------------------------         CALCDIFF.173    
C  Compute rhosrn for call to VERTCOFT USING STATED                        CALCDIFF.174    
C ----------------------------------------------------------------         CALCDIFF.175    
      CALL STATED(TB(1,1,1),TB(1,1,2),rhosrn,worka,workb,IMT,KM            CALCDIFF.176    
     &  ,J,KM,JMT                                                          CALCDIFF.177    
     & )                                                                   CALCDIFF.178    
C                                                                          CALCDIFF.179    
       ENDIF   ! L_OSTATEC                                                 CALCDIFF.180    
C                                                                          CALCDIFF.181    
C ----------------------------------------------------------------         CALCDIFF.182    
C  Calculate mixed layer depth                                             CALCDIFF.183    
C ----------------------------------------------------------------         CALCDIFF.184    
      IF (L_OFULARGE) THEN                                                 CALCDIFF.185    
        IF (L_OBULKRI) THEN                                                CALCDIFF.186    
        CALL CALC_MLD_LARGEB(J,KM,IMT,NT                                   CALCDIFF.187    
     &, RHO_WATER_SI,GRAV_SI,SPECIFIC_HEAT_SI,CRIT_RI_FL                   CALCDIFF.188    
     &, ZDZ,DZ,ZDZZ,DZZ,L_OCYCLIC,L_SEAICE                                 CALCDIFF.189    
     &, UB,VB,UBM,VBM,TB,RHOSRN,HTN                                        CALCDIFF.190    
     &, PME,WATERFLUX_ICE,SOL,WME,OCEANHEATFLUX,CARYHEAT,FLXTOICE          CALCDIFF.191    
     &, FM,MLD_LARGE,RIMLDCALC                                             CALCDIFF.192    
     &  )                                                                  CALCDIFF.193    
        ELSE                                                               CALCDIFF.194    
        CALL CALC_MLD_LARGEG(J,KM,IMT                                      CALCDIFF.195    
     &, RHO_WATER_SI,GRAV_SI,CRIT_RI_FL,NO_LAYERS_IN_LEV                   CALCDIFF.196    
     &, ZDZ,DZ,DZZ,L_OCYCLIC                                               CALCDIFF.197    
     &, UB,VB,UBM,VBM                                                      CALCDIFF.198    
     &, FM,RHOSRN,MLD_LARGE,RIMLDCALC                                      CALCDIFF.199    
     &  )                                                                  CALCDIFF.200    
        ENDIF                                                              CALCDIFF.201    
      ENDIF      ! L_OFULARGE                                              CALCDIFF.202    
C                                                                          CALCDIFF.203    
C ----------------------------------------------------------------         CALCDIFF.204    
C  Call subroutine to calculate vertical coefficient of diffusion          CALCDIFF.205    
C ----------------------------------------------------------------         CALCDIFF.206    
C                                                                          CALCDIFF.207    
      IF (L_SEAICE.AND.L_ICEFREEDR) THEN                                   CALCDIFF.208    
      do i=1,imt                                                           CALCDIFF.209    
        XSTRESS_ICE(I) = WSX_LEADS(I)+ISX(I)                               CALCDIFF.210    
        YSTRESS_ICE(I) = WSY_LEADS(I)+ISY(I)                               CALCDIFF.211    
        XSTRESS_ICEM(I) = WSX_LEADSM(I)+ISXM(I)                            CALCDIFF.212    
        YSTRESS_ICEM(I) = WSY_LEADSM(I)+ISYM(I)                            CALCDIFF.213    
      enddo                                                                CALCDIFF.214    
C                                                                          CALCDIFF.215    
      CALL VERTCOFT                                                        CALCDIFF.216    
     & (J,IMT,KM,KMM1,NT,                                                  CALCDIFF.217    
     &  IMT_QLARGE,L_OQLARGE,L_OCYCLIC,                                    CALCDIFF.218    
     &  IMT_FULARGE,L_OFULARGE,L_OUSTARWME,L_OWINDMIX,L_OBULKMAXMLD,       CALCDIFF.219    
     &  L_OROTATE,L_OSTATEC,L_SEAICE,L_OPANDP,PHIT,TB,                     CALCDIFF.220    
     &  UB,VB,UBM,VBM,                                                     CALCDIFF.221    
     &  XSTRESS_ICE,YSTRESS_ICE,XSTRESS_ICEM,YSTRESS_ICEM,                 CALCDIFF.222    
     &  ZDZZ,ZDZ,DZ,DZZ,                                                   CALCDIFF.223    
     &  DZZ2RQ,DZ2RQ,                                                      CALCDIFF.224    
     &  NERGY,GRAV_SI,FM,                                                  CALCDIFF.225    
     &  RHOSRN,RHOSRNA,RHOSRNB,                                            CALCDIFF.226    
     &  HT,RIT,MAX_QLARGE_DEPTH,CRIT_RI,                                   CALCDIFF.227    
     &  MLD_LARGE,MAX_LARGE_DEPTH,MAX_LARGE_LEVELS,RHO_WATER_SI,           CALCDIFF.228    
     &  HTN,PME,WATERFLUX_ICE,SOL,WME,L_T,LAMBDA_LARGE,                    CALCDIFF.229    
     &  SPECIFIC_HEAT_SI,                                                  CALCDIFF.230    
     &  GNU(1,1),FNU0_SI,FNUB_SI,STABLM_SI,FKAPB_SI,GNUMINT_SI,            CALCDIFF.231    
     &  KAPPA_B_SI,OCEANHEATFLUX,CARYHEAT,FLXTOICE,CGFLUX )                CALCDIFF.232    
      ELSE                                                                 CALCDIFF.233    
      CALL VERTCOFT                                                        CALCDIFF.234    
     & (J,IMT,KM,KMM1,NT,                                                  CALCDIFF.235    
     &  IMT_QLARGE,L_OQLARGE,L_OCYCLIC,                                    CALCDIFF.236    
     &  IMT_FULARGE,L_OFULARGE,L_OUSTARWME,L_OWINDMIX,L_OBULKMAXMLD,       CALCDIFF.237    
     &  L_OROTATE,L_OSTATEC,L_SEAICE,L_OPANDP,PHIT,TB,                     CALCDIFF.238    
     &  UB,VB,UBM,VBM,                                                     CALCDIFF.239    
     &  WSX, WSY,WSXM,WSYM,                                                CALCDIFF.240    
     &  ZDZZ,ZDZ,DZ,DZZ,                                                   CALCDIFF.241    
     &  DZZ2RQ,DZ2RQ,                                                      CALCDIFF.242    
     &  NERGY,GRAV_SI,FM,                                                  CALCDIFF.243    
     &  RHOSRN,RHOSRNA,RHOSRNB,                                            CALCDIFF.244    
     &  HT,RIT,MAX_QLARGE_DEPTH,CRIT_RI,                                   CALCDIFF.245    
     &  MLD_LARGE,MAX_LARGE_DEPTH,MAX_LARGE_LEVELS,RHO_WATER_SI,           CALCDIFF.246    
     &  HTN,PME,WATERFLUX_ICE,SOL,WME,L_T,LAMBDA_LARGE,                    CALCDIFF.247    
     &  SPECIFIC_HEAT_SI,                                                  CALCDIFF.248    
     &  GNU(1,1),FNU0_SI,FNUB_SI,STABLM_SI,FKAPB_SI,GNUMINT_SI,            CALCDIFF.249    
     &  KAPPA_B_SI,OCEANHEATFLUX,CARYHEAT,FLXTOICE,CGFLUX )                CALCDIFF.250    
      ENDIF                                                                CALCDIFF.251    
C                                                                          CALCDIFF.252    
      ELSE                                                                 CALCDIFF.253    
      DO K=1,KM                                                            CALCDIFF.254    
         DO I=1,IMT                                                        CALCDIFF.255    
            gnu(I,K)=FKPH                                                  CALCDIFF.256    
         ENDDO   ! Over I                                                  CALCDIFF.257    
      ENDDO      ! Over K                                                  CALCDIFF.258    
      ENDIF                                                                CALCDIFF.259    
C                                                                          CALCDIFF.260    
      do k=1,km                                                            CALCDIFF.261    
        do i=1,imt                                                         CALCDIFF.262    
          srho(i,k)=0.                                                     CALCDIFF.263    
        enddo                                                              CALCDIFF.264    
      enddo                                                                CALCDIFF.265    
C ------------------------------------------------------------------       CALCDIFF.266    
C  Having obtained required values of gnu,                                 CALCDIFF.267    
C  call subroutine to calculate isopycnal diffusion tensor                 CALCDIFF.268    
C ------------------------------------------------------------------       CALCDIFF.269    
C                                                                          CALCDIFF.270    
c                                                                          CALCDIFF.271    
      CALL ISOPYC_M(                                                       CALCDIFF.272    
*CALL ARGSIZE                                                              CALCDIFF.273    
*CALL COCAWRKA                                                             CALCDIFF.274    
     &  ,j,cstr,dyur,dxur,dz2r,dzz,dzz2r,athkdftu,athkdftv,ahi,athkdf,     CALCDIFF.275    
     &  slope_max,dz,dyu,dxu,cs,dxt4r,dyt4r,slopec,dslope,dxtr,dytr,       CALCDIFF.276    
     &  cst,csr,Ai_ez,Ai_nz,Ai_bx,Ai_by,K11,K22,K33,gnu(1,1),              CALCDIFF.277    
     &  adv_vetiso,adv_vbtiso,adv_fbiso,J_OFFSET,athkdf_bi,                CALCDIFF.278    
     &  csjm,dyurjm,j_1,srho)                                              CALCDIFF.279    
C                                                                          CALCDIFF.280    
C                                                                          CALCDIFF.281    
C --------------------------------------------------------------           CALCDIFF.282    
C Calculate diff_fn (equivalent to esav) ready for calculations            CALCDIFF.283    
C involving the first row in this parallel block.                          CALCDIFF.284    
C (Tracer values are unavoidably populated with spurious figures           CALCDIFF.285    
C  here but since they are kept local to this subroutine, the              CALCDIFF.286    
C  only problem should be one of performance.)                             CALCDIFF.287    
C --------------------------------------------------------------           CALCDIFF.288    
      ! Initialise TA and diff_fn                                          CALCDIFF.289    
      DO M  = 1, NT                                                        CALCDIFF.290    
         DO K = 1, KM                                                      CALCDIFF.291    
            DO I = 1, IMT                                                  CALCDIFF.292    
               TA(I,K,M) = 0.0                                             CALCDIFF.293    
               diff_fn(I,K,M,0) = 0.0                                      CALCDIFF.294    
               diff_fn(I,K,M,1) = 0.0                                      CALCDIFF.295    
            ENDDO ! over I                                                 CALCDIFF.296    
         ENDDO    ! over K                                                 CALCDIFF.297    
      ENDDO       ! over M                                                 CALCDIFF.298    
C                                                                          CALCDIFF.299    
c                                                                          CALCDIFF.300    
      DO M=1,NT                                                            CALCDIFF.301    
C                                                                          CALCDIFF.302    
      CALL ISOFLUX(                                                        CALCDIFF.303    
*CALL ARGSIZE                                                              CALCDIFF.304    
*CALL COCAWRKA                                                             CALCDIFF.305    
     & ,m,j,cstr,dyur,dxur,dz2r,cs,csjm,                                   CALCDIFF.306    
     & dytr,dxtr,cst,dxt4r,dyt4r,Ai_ez,Ai_nz,Ai_bx,Ai_by,K11,K22,K33,      CALCDIFF.307    
     & itt,adv_vbtiso,adv_fbiso,worka,workb,workc,j_1)                     CALCDIFF.308    
C                                                                          CALCDIFF.309    
C                                                                          CALCDIFF.310    
      ENDDO                                                                CALCDIFF.311    
                                                                           CALCDIFF.312    
      RETURN                                                               CALCDIFF.313    
      END                                                                  CALCDIFF.314    
*ENDIF                                                                     CALCDIFF.315