/[lmdze]/trunk/dyn3d/dudv1.f
ViewVC logotype

Diff of /trunk/dyn3d/dudv1.f

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

trunk/dyn3d/dudv1.f90 revision 81 by guez, Wed Mar 5 14:38:41 2014 UTC trunk/dyn3d/dudv1.f revision 254 by guez, Mon Feb 5 10:39:38 2018 UTC
# Line 1  Line 1 
1    module dudv1_m
2    
 ! $Header: /home/cvsroot/LMDZ4/libf/dyn3d/dudv1.F,v 1.1.1.1 2004/05/19  
 ! 12:53:06 lmdzadmin Exp $  
   
 SUBROUTINE dudv1(vorpot, pbaru, pbarv, du, dv)  
   USE dimens_m  
   USE paramet_m  
3    IMPLICIT NONE    IMPLICIT NONE
4    
5    ! -----------------------------------------------------------------------  contains
6    
7    ! Auteur:   P. Le Van    SUBROUTINE dudv1(vorpot, pbaru, pbarv, du, dv)
   ! -------  
8    
9    ! Objet:      ! From LMDZ4/libf/dyn3d/dudv1.F, version 1.1.1.1, 2004/05/19 12:53:06
   ! ------  
   ! calcul du terme de  rotation  
   ! ce terme est ajoute a  d(ucov)/dt et a d(vcov)/dt  ..  
   ! vorpot, pbaru et pbarv sont des arguments d'entree  pour le s-pg ..  
   ! du  et dv              sont des arguments de sortie pour le s-pg ..  
10    
11    ! -----------------------------------------------------------------------      ! Author: P. Le Van
12    
13        ! Objet: calcul du terme de rotation. Ce terme est ajouté à
14        ! d(ucov)/dt et à d(vcov)/dt.
15    
16    REAL vorpot(ip1jm, llm), pbaru(ip1jmp1, llm), pbarv(ip1jm, llm), &      USE dimens_m, ONLY: iim, jjm, llm
17      du(ip1jmp1, llm), dv(ip1jm, llm)      USE paramet_m, ONLY: iip1, iip2, ip1jm, ip1jmp1
   INTEGER l, ij  
18    
19        REAL, intent(in):: vorpot(ip1jm, llm)
20        REAL, intent(in):: pbaru(ip1jmp1, llm), pbarv(ip1jm, llm)
21        real, intent(out):: du(iim + 2: (iim + 1) * jjm, llm), dv(ip1jm, llm)
22    
23    DO l = 1, llm      ! Local:
24        INTEGER l, ij
25    
26      DO ij = iip2, ip1jm - 1      !----------------------------------------------------------------------
       du(ij, l) = 0.125*(vorpot(ij-iip1,l)+vorpot(ij,l))* &  
         (pbarv(ij-iip1,l)+pbarv(ij-iim,l)+pbarv(ij,l)+pbarv(ij+1,l))  
     END DO  
27    
28      DO ij = 1, ip1jm - 1      DO l = 1, llm
29        dv(ij+1, l) = -0.125*(vorpot(ij,l)+vorpot(ij+1,l))*(pbaru(ij,l)+pbaru( &         DO ij = iip2, ip1jm - 1
30          ij+1,l)+pbaru(ij+iip1,l)+pbaru(ij+iip2,l))            du(ij, l) = 0.125 * (vorpot(ij - iip1, l) + vorpot(ij, l)) &
31      END DO                 * (pbarv(ij - iip1, l) + pbarv(ij - iim, l) + pbarv(ij, l) &
32                   + pbarv(ij + 1, l))
33           END DO
34    
35      ! .... correction  pour  dv( 1,j,l )  .....         DO ij = 1, ip1jm - 1
36      ! ....   dv(1,j,l)= dv(iip1,j,l) ....            dv(ij + 1, l) = - 0.125 * (vorpot(ij, l) + vorpot(ij + 1, l)) &
37                   * (pbaru(ij, l) + pbaru(ij + 1, l) + pbaru(ij + iip1, l) &
38                   + pbaru(ij + iip2, l))
39           END DO
40    
41      ! DIR$ IVDEP         ! correction pour dv(1, j, l)
42      DO ij = 1, ip1jm, iip1         ! dv(1, j, l) = dv(iip1, j, l)
43        dv(ij, l) = dv(ij+iim, l)         DO ij = 1, ip1jm, iip1
44              dv(ij, l) = dv(ij + iim, l)
45           END DO
46      END DO      END DO
47    
48    END DO    END SUBROUTINE dudv1
49    RETURN  
50  END SUBROUTINE dudv1  end module dudv1_m

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

  ViewVC Help
Powered by ViewVC 1.1.21