/[lmdze]/trunk/dyn3d/nxgrad.f90
ViewVC logotype

Diff of /trunk/dyn3d/nxgrad.f90

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

trunk/dyn3d/nxgrad.f revision 80 by guez, Fri Nov 15 18:45:49 2013 UTC trunk/dyn3d/nxgrad.f90 revision 81 by guez, Wed Mar 5 14:38:41 2014 UTC
# Line 1  Line 1 
1  !  
2  ! $Header: /home/cvsroot/LMDZ4/libf/dyn3d/nxgrad.F,v 1.1.1.1 2004/05/19 12:53:05 lmdzadmin Exp $  ! $Header: /home/cvsroot/LMDZ4/libf/dyn3d/nxgrad.F,v 1.1.1.1 2004/05/19
3  !  ! 12:53:05 lmdzadmin Exp $
4        SUBROUTINE nxgrad (klevel, rot, x, y )  
5  c  SUBROUTINE nxgrad(klevel, rot, x, y)
6  c     P. Le Van  
7  c    ! P. Le Van
8  c   ********************************************************************  
9  c      calcul du gradient tourne de pi/2 du rotationnel du vect.v    ! ********************************************************************
10  c   ********************************************************************    ! calcul du gradient tourne de pi/2 du rotationnel du vect.v
11  c       rot          est un argument  d'entree pour le s-prog    ! ********************************************************************
12  c       x  et y    sont des arguments de sortie pour le s-prog    ! rot          est un argument  d'entree pour le s-prog
13  c    ! x  et y    sont des arguments de sortie pour le s-prog
14        use dimens_m  
15        use paramet_m    USE dimens_m
16        use comgeom    USE paramet_m
17        IMPLICIT NONE    USE comgeom
18  c    IMPLICIT NONE
19        INTEGER, intent(in):: klevel  
20        REAL rot( ip1jm,klevel ),x( ip1jmp1,klevel ),y(ip1jm,klevel )    INTEGER, INTENT (IN) :: klevel
21        INTEGER   l,ij    REAL rot(ip1jm, klevel), x(ip1jmp1, klevel), y(ip1jm, klevel)
22  c    INTEGER l, ij
23  c  
24        DO 10 l = 1,klevel  
25  c    DO l = 1, klevel
26        DO 1  ij = 2, ip1jm  
27        y( ij,l ) = (  rot( ij,l ) - rot( ij-1,l )  ) * cvsurcuv( ij )      DO ij = 2, ip1jm
28     1  CONTINUE        y(ij, l) = (rot(ij,l)-rot(ij-1,l))*cvsurcuv(ij)
29  c      END DO
30  c    ..... correction pour  y ( 1,j,l )  ......  
31  c      ! ..... correction pour  y ( 1,j,l )  ......
32  c    ....    y(1,j,l)= y(iip1,j,l) ....  
33  CDIR$ IVDEP      ! ....    y(1,j,l)= y(iip1,j,l) ....
34        DO 2  ij = 1, ip1jm, iip1      ! DIR$ IVDEP
35        y( ij,l ) = y( ij +iim,l )      DO ij = 1, ip1jm, iip1
36     2  CONTINUE        y(ij, l) = y(ij+iim, l)
37  c      END DO
38        DO 4  ij = iip2,ip1jm  
39        x( ij,l ) = (  rot( ij,l ) - rot( ij -iip1,l )  ) * cusurcvu( ij )      DO ij = iip2, ip1jm
40     4  CONTINUE        x(ij, l) = (rot(ij,l)-rot(ij-iip1,l))*cusurcvu(ij)
41        DO 6 ij = 1,iip1      END DO
42        x(    ij    ,l ) = 0.      DO ij = 1, iip1
43        x( ij +ip1jm,l ) = 0.        x(ij, l) = 0.
44     6  CONTINUE        x(ij+ip1jm, l) = 0.
45  c      END DO
46    10  CONTINUE  
47        RETURN    END DO
48        END    RETURN
49    END SUBROUTINE nxgrad

Legend:
Removed from v.80  
changed lines
  Added in v.81

  ViewVC Help
Powered by ViewVC 1.1.21