copyright (C) 2001  MSC-RPN COMM  %%%MC2%%%
*

      subroutine setpnt2 (dynm0p,dim1,phytend,dim6,dynnes,dim2, 1,5
     $                    dyndiv,dim3,dyndxdy,dim4,vrtpil)
      implicit none
*
      logical vrtpil
      integer dim1,dim2,dim3,dim4,dim6
      real dynm0p (dim1), phytend (dim6), dynnes (dim2), dyndiv (dim3)
      real*8 dyndxdy(dim4)
*
#include "dynmem.cdk"
#include "phymem.cdk"
#include "physcom.cdk"
#include "physnml.cdk"
#include "bcsdim.cdk"
#include "bcsmem.cdk"
#include "topo.cdk"
*
      integer offset,i,dim,err
*------------------------------------------------------------------
*
      offset = 0
      pappm  =  loc(dynm0p(offset+              1))
      pauum  =  loc(dynm0p(offset+dim2d+1*dim3d+1))
      pavvm  =  loc(dynm0p(offset+dim2d+2*dim3d+1))
      pawwm  =  loc(dynm0p(offset+dim2d+3*dim3d+1))
      pabbm  =  loc(dynm0p(offset+dim2d+4*dim3d+1))
      pahum  =  loc(dynm0p(offset+dim2d+5*dim3d+1))
      if(ntr.gt.0) patrm  =  loc(dynm0p(offset+dim2d+6*dim3d+1))
*
      offset =   ndynvar*dim3d+dim2d
      papp0  =  loc(dynm0p(offset+              1))
      pauu0  =  loc(dynm0p(offset+dim2d+1*dim3d+1))
      pavv0  =  loc(dynm0p(offset+dim2d+2*dim3d+1))
      paww0  =  loc(dynm0p(offset+dim2d+3*dim3d+1))
      pabb0  =  loc(dynm0p(offset+dim2d+4*dim3d+1))
      pahu0  =  loc(dynm0p(offset+dim2d+5*dim3d+1))
      if(ntr.gt.0) patr0  =  loc(dynm0p(offset+dim2d+6*dim3d+1))
*
      offset =  (ndynvar*dim3d+dim2d)*2
      pappp  =  loc(dynm0p(offset+              1))
      pauup  =  loc(dynm0p(offset+dim2d+1*dim3d+1))
      pavvp  =  loc(dynm0p(offset+dim2d+2*dim3d+1))
      pawwp  =  loc(dynm0p(offset+dim2d+3*dim3d+1))
      pabbp  =  loc(dynm0p(offset+dim2d+4*dim3d+1))
      pahup  =  loc(dynm0p(offset+dim2d+5*dim3d+1))
      if(ntr.gt.0) patrp  =  loc(dynm0p(offset+dim2d+6*dim3d+1))
*
      err = min(0,dim1-(offset+dim2d+6*dim3d+ntr*dim3d))
      if (err.lt.0) write(6,101) 'DYNM0P'
      call mc2stop(err)
*
      dynm0p = 0.
*
      dim    = bcs_sz/gnk
      pbcspp = loc(dynnes(               1))
      pbcsuu = loc(dynnes(dim +   bcs_sz+1))
      pbcsvv = loc(dynnes(dim + 2*bcs_sz+1))
      pbcsww = loc(dynnes(dim + 3*bcs_sz+1))
      pbcsbb = loc(dynnes(dim + 4*bcs_sz+1))
      pbcshu = loc(dynnes(dim + 5*bcs_sz+1))
      if(ntr.gt.0) pbcstr = loc(dynnes(dim + 6*bcs_sz+1))
*
      offset  = dim + (6+ntr)*bcs_sz
      pbcsppa = loc(dynnes(offset                 +1))
      pbcsuua = loc(dynnes(offset + dim +   bcs_sz+1))
      pbcsvva = loc(dynnes(offset + dim + 2*bcs_sz+1))
      pbcswwa = loc(dynnes(offset + dim + 3*bcs_sz+1))
      pbcsbba = loc(dynnes(offset + dim + 4*bcs_sz+1))
      pbcshua = loc(dynnes(offset + dim + 5*bcs_sz+1))
      if(ntr.gt.0) pbcstra = loc(dynnes(offset + dim + 6*bcs_sz+1))
      offset  = offset * 2
*
      if (vrtpil) then
      papnt =  loc(dynnes(offset+              1))
      paunt =  loc(dynnes(offset+dim2d+1*dim3d+1))
      pavnt =  loc(dynnes(offset+dim2d+2*dim3d+1))
      pawnt =  loc(dynnes(offset+dim2d+3*dim3d+1))
      pabnt =  loc(dynnes(offset+dim2d+4*dim3d+1))
      pahnt =  loc(dynnes(offset+dim2d+5*dim3d+1))
      if(ntr.gt.0) patnt  =  loc(dynnes(offset+dim2d+6*dim3d+1))
*
      offset =  offset + ndynvar*dim3d+dim2d
      papna =  loc(dynnes(offset+              1))
      pauna =  loc(dynnes(offset+dim2d+1*dim3d+1))
      pavna =  loc(dynnes(offset+dim2d+2*dim3d+1))
      pawna =  loc(dynnes(offset+dim2d+3*dim3d+1))
      pabna =  loc(dynnes(offset+dim2d+4*dim3d+1))
      pahna =  loc(dynnes(offset+dim2d+5*dim3d+1))
      if(ntr.gt.0) patna  =  loc(dynnes(offset+dim2d+6*dim3d+1))
      offset =  offset + ndynvar*dim3d+dim2d
      endif
*
      err = min(0,dim2-offset)
      if (err.lt.0) write(6,101) 'DYNNES'
      call mc2stop(err)
*
      offset =  0
      pafcor =  loc(dyndiv(offset+        1))
      pasmap =  loc(dyndiv(offset+1*dim2d+1))
      pasbxy =  loc(dyndiv(offset+2*dim2d+1))
      pasbx  =  loc(dyndiv(offset+3*dim2d+1))
      pasby  =  loc(dyndiv(offset+4*dim2d+1))
*
      offset =  (5)*dim2d
      pagg1  =  loc(dyndiv(offset+        1))
      pagg2  =  loc(dyndiv(offset+1*dim3d+1))
      pagg0r =  loc(dyndiv(offset+2*dim3d+1))
      pag0wr =  loc(dyndiv(offset+3*dim3d+1))
      pag0ur =  loc(dyndiv(offset+4*dim3d+1))
      pag0vr =  loc(dyndiv(offset+5*dim3d+1))
      padhdt =  loc(dyndiv(offset+6*dim3d+1))
*
      offset =  (5)*dim2d+(7)*dim3d
      pagots =  loc(dyndiv(offset+                1))
      paorts =  loc(dyndiv(offset+1*dim3d+        1))
      paqstr =  loc(dyndiv(offset+2*dim3d+1*dim2d+1))
      panssq =  loc(dyndiv(offset+3*dim3d+2*dim2d+1))
*
      offset =  (7)*dim2d+(11)*dim3d
      pahw   =  loc(dyndiv(offset+               1))
      paht   =  loc(dyndiv(offset+1*dim3d+       1))
      pahm   =  loc(dyndiv(offset+2*dim3d+       1))
*
      offset =  (8)*dim2d+(14)*dim3d
      dim    =  (maxx-minx+2)*(maxy-miny+2)
      pahh0  =  loc(dyndiv(offset+               1))
      pahh0i =  loc(dyndiv(offset+ 2* dim2d     +1))
      pahh0f =  loc(dyndiv(offset+ 2*(dim2d+dim)+1))
*
      err = min(0,dim3-(offset+2*(dim2d+dim)+2*dim))
      if (err.lt.0) write(6,101) 'DYNDIV'
      call mc2stop(err)
*
      paodx  =  loc(dyndxdy(        1))
      paodxu =  loc(dyndxdy(        2))
      paody  =  loc(dyndxdy(        3))
      paodyv =  loc(dyndxdy(1*dim2d+3))
      palaty =  loc(dyndxdy(2*dim2d+3))
      palatyv=  loc(dyndxdy(3*dim2d+3))
*
      err = min(0,dim4-(4*dim2d+3))
      if (err.lt.0) write(6,101) 'DYNDXDY'
      call mc2stop(err)
*
      if (dim6.gt.0) then
         offset =  0
         pautp1 =  loc(phytend(offset+        1))
         pavtp1 =  loc(phytend(offset+  dim3d+1))
         pattp1 =  loc(phytend(offset+2*dim3d+1))
         pahutp1=  loc(phytend(offset+3*dim3d+1))
         offset =  4*dim3d
         if (diffuw) then
            paswtp1 = loc(phytend(offset+        1))
            offset  = offset + dim3d
         endif
         if (ntrphy.gt.0) then
            pacltp1 = loc(phytend(offset+        1))
            offset  = offset + ntrphy*dim3d
         endif
         if (gnpfb.gt.1) then
         pautp2 =  loc(phytend(offset+        1))
         pavtp2 =  loc(phytend(offset+  dim3d+1))
         pattp2 =  loc(phytend(offset+2*dim3d+1))
         pahutp2=  loc(phytend(offset+3*dim3d+1))
         offset =  offset + 4*dim3d
         if (diffuw) then
            paswtp2 = loc(phytend(offset+        1))
            offset  = offset + dim3d
         endif
         if (ntrphy.gt.0) then
            pacltp2 = loc(phytend(offset+        1))
            offset  = offset + ntrphy*dim3d
         endif
         endif
         err = min(0,dim6-offset)
         if (err.lt.0) write(6,101) 'PHYTEND'
         call mc2stop(err)
         phytend = 0.
      endif
*
 101  format (' ERROR WITH DYNAMIC MEM ALLOC IN SETPNT2: ',a)
*------------------------------------------------------------------
      return
      end