copyright (C) 2001  MSC-RPN COMM  %%%MC2%%%
***s/r invtdy_c -- Invert levels of a 3D dynamics matrix
*

      subroutine invtdy_c (fnew, nif, njf, nkf, 9
     $                    f, lminx, lmaxx, lminy, lmaxy, lnk)
      implicit none
*
      integer nif,njf,nkf,lminx,lmaxx,lminy,lmaxy,lnk
      real fnew(nif*njf,nkf),f(lminx:lmaxx,lminy:lmaxy,lnk)
*
*AUTHOR    Michel Desgagne                      Mar 1996
*
*REVISION
*
*LANGUAGE   Fortran 77
*
*OBJECT (invtdy2)
*      Invert the levels from f and stores them in fnew
*
*FILES
*
*ARGUMENTS
*    NAMES     I/O  TYPE  A/S        DESCRIPTION
*
*    fnew       O    R     A    field containing inverted levels
*      f        I    R     A    input field to invert
*     nif       I    I     S    first  hor. dimension of fnew
*     njf       I    I     S    second hor. dimension of fnew
*     nkf       I    I     S    vertical dimension of fnew
*     nis       I    I     S    first  dimension of f
*     njs       I    I     S    second dimension of f
*      nk       I    I     S    vertical dimension of f and fnew
*      ni       I     I    S    computational hor. dimension along X
*      nj       I     I    S    computational hor. dimension along Y
*      
*IMPLICIT
#include "lcldim.cdk"
*
*MODULES
*
**
      integer i,j,k,nkompte
*----------------------------------------------------------------------
*
      nkompte=lnk/2    
      do 1 k=1,nkompte
         do 1 j=1,ldnj
            do 1 i=1,ldni
               fnew((j-1)*ldni+i,k)      = max(f (i,j,lnk-k+1),0.)
               fnew((j-1)*ldni+i,lnk-k+1)= max(f (i,j,k),0.)
 1    continue
      if (mod(lnk,2).ne.0) then
         do 2 j=1,ldnj
            do 2 i=1,ldni
               fnew((j-1)*ldni+i,nkompte+1) = max(f(i,j,nkompte+1),0.)
 2       continue
      endif
*
      if (nkf.gt.lnk) then
         do 3 j=1,ldnj
            do 3 i=1,ldni
               fnew((j-1)*ldni+i,nkf)=fnew((j-1)*ldni+i,nkf-1)
 3       continue
      endif
*
      do 4 k=1,nkf
         do 4 i=ldni*ldnj+1,nif*njf
            fnew(i,k) = fnew(ldni*ldnj,k)
 4    continue
*            
*----------------------------------------------------------------------
      return
      end