anchor.diff:        mwPointer, intent(in) :: mx
   !-LOC
         real(8), pointer :: mp(:,:,:,:,:)
  +      mwSize :: n1, n2, n3, n4, n5
   !-----
         mp => fpGetPr5(mx)
         if( .not.associated(mp) ) then
             nullify(fp)
             return
         endif
  -      fp => fpAllocate(size(mp,1),size(mp,2),size(mp,3),size(mp,4),     &
  -     &                 size(mp,5))
  +      n1 = size(mp,1)
  +      n2 = size(mp,2)
  +      n3 = size(mp,3)
  +      n4 = size(mp,4)
  +      n5 = size(mp,5)
  +      fp => fpAllocate(n1,n2,n3,n4,n5)
         if( .not.associated(fp) ) then
             return
         endif
  
positive.code:       mwPointer, intent(in) :: mx
  !-LOC
        real(8), pointer :: mp(:,:,:), mi(:,:,:)
  !-----
        mp => fpGetPr3(mx)
        if( .not.associated(mp) ) then
            nullify(fz)
            return
        endif
        fz => fpAllocateZ(size(mp,1),size(mp,2),size(mp,3))
        mi => fpGetPi3(mx)
        if( associated(mi) ) then
            call mxCopyReal88ToComplex16(mp, mi, fz, size(fz))
  
negative.code:       mwPointer, intent(in) :: mx
  !-LOC
        real(8), pointer :: mp(:,:,:,:,:)
        mwSize :: n1,n2,n3,n4,n5
  !-----
        mp => fpGetPi5(mx)
        if( .not.associated(mp) ) then
            nullify(fp)
            return
        endif
        n1 = size(mp,1)
        n2 = size(mp,2)
        n3 = size(mp,3)
        n4 = size(mp,4)
        n5 = size(mp,5)
        fp => fpAllocate(n1,n2,n3,n4,n5)
        if( .not.associated(fp) ) then
            return
        endif
  