--- trunk/Sources/dyn3d/Dissipation/nxgraro2.f 2015/05/06 15:51:03 137 +++ trunk/dyn3d/Dissipation/nxgraro2.f 2018/04/19 17:54:55 266 @@ -6,36 +6,35 @@ SUBROUTINE nxgraro2(xcov, ycov, lr, grx, gry, crot) - ! From LMDZ4/libf/dyn3d/nxgraro2.F, version 1.1.1.1 2004/05/19 12:53:06 + ! From LMDZ4/libf/dyn3d/nxgraro2.F, version 1.1.1.1, 2004/05/19 12:53:06 ! P. Le Van - ! Calcul de nxgrad(rot) du vecteur v + ! Calcul de nxgrad(rot) du vecteur (xcov, ycov). - USE dimens_m, ONLY: iim, jjm USE filtreg_v_m, ONLY: filtreg_v use nr_util, only: assert, assert_eq + use nxgrad_m, only: nxgrad use rotatf_m, only: rotatf - ! Composantes covariantes de v : - REAL, intent(in):: xcov(:, :, :) ! (iim + 1, jjm + 1, :) - REAL, intent(in):: ycov(:, :, :) ! (iim + 1, jjm, :) + ! Composantes covariantes : + REAL, intent(in):: xcov(:, :, :) ! (iim + 1, jjm + 1, klevel) + REAL, intent(in):: ycov(:, :, :) ! (iim + 1, jjm, klevel) integer, intent(in):: lr - REAL, intent(out):: grx(:, :, :) ! (iim + 1, jjm + 1, :) - REAL, intent(out):: gry(:, :, :) ! (iim + 1, jjm, :) + REAL, intent(out):: grx(:, :, :) ! (iim + 1, jjm + 1, klevel) + REAL, intent(out):: gry(:, :, :) ! (iim + 1, jjm, klevel) real, intent(in):: crot - ! Variables locales - + ! Local: INTEGER klevel, iter - REAL rot(iim + 1, jjm, size(xcov, 3)) , nugradrs + REAL rot(size(ycov, 1), size(ycov, 2), size(ycov, 3)) , nugradrs !---------------------------------------------------------- - call assert((/size(xcov, 1), size(ycov, 1), size(grx, 1), size(gry, 1)/) & - == iim + 1, "nxgraro2 iim") - call assert((/size(xcov, 2) - 1, size(ycov, 2), size(grx, 2) - 1, & - size(gry, 2)/) == jjm, "nxgraro2 jjm") + call assert(size(xcov, 1) == [size(ycov, 1), size(grx, 1), size(gry, 1)], & + "nxgraro2 iim") + call assert(size(xcov, 2) - 1 == [size(ycov, 2), size(grx, 2) - 1, & + size(gry, 2)], "nxgraro2 jjm") klevel = assert_eq(size(xcov, 3), size(ycov, 3), size(grx, 3), & size(gry, 3), "nxgraro2 klevel")