source: LMDZ6/trunk/libf/dyn3dmem/covnat_loc.f90 @ 5254

Last change on this file since 5254 was 5246, checked in by abarral, 27 hours ago

Convert fixed-form to free-form sources .F -> .{f,F}90
(WIP: some .F remain, will be handled in subsequent commits)

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
File size: 1.7 KB
Line 
1!
2! $Header$
3!
4SUBROUTINE covnat_loc(klevel,ucov, vcov, unat, vnat )
5  USE parallel_lmdz
6  IMPLICIT NONE
7
8  !=======================================================================
9  !
10  !   Auteur:  F Hourdin Phu LeVan
11  !   -------
12  !
13  !   Objet:
14  !   ------
15  !
16  !  *********************************************************************
17  !    calcul des compos. naturelles a partir des comp.covariantes
18  !  ********************************************************************
19  !
20  !=======================================================================
21
22  INCLUDE "dimensions.h"
23  INCLUDE "paramet.h"
24  INCLUDE "comgeom.h"
25
26  INTEGER :: klevel
27  REAL :: ucov( ijb_u:ije_u,klevel ),  vcov( ijb_v:ije_v,klevel )
28  REAL :: unat( ijb_u:ije_u,klevel ), vnat( ijb_v:ije_v,klevel )
29  INTEGER :: l,ij
30  INTEGER :: ijb,ije
31
32
33  ijb=ij_begin
34  ije=ij_end
35
36  if (pole_nord) then
37
38!$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
39    DO l = 1,klevel
40       DO ij = 1, iip1
41          unat (ij,l) =0.
42       END DO
43    ENDDO
44!$OMP ENDDO NOWAIT
45  endif
46
47  if (pole_sud) then
48!$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
49    DO l = 1,klevel
50       DO ij = ip1jm+1, ip1jmp1
51        unat (ij,l) =0.
52       END DO
53    ENDDO
54!$OMP ENDDO NOWAIT
55  endif
56
57  ijb=ij_begin
58  ije=ij_end
59  if (pole_nord) ijb=ij_begin+iip1
60  if (pole_sud)  ije=ij_end-iip1
61
62!$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
63  DO l = 1,klevel
64     DO ij = ijb, ije
65        unat( ij,l ) = ucov( ij,l ) / cu(ij)
66     ENDDO
67  END DO
68!$OMP ENDDO NOWAIT
69
70  ijb=ij_begin-iip1
71  ije=ij_end
72  if (pole_nord) ijb=ij_begin
73  if (pole_sud)  ije=ij_end-iip1
74
75!$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
76  DO l = 1,klevel
77     DO ij = ijb,ije
78        vnat( ij,l ) = vcov( ij,l ) / cv(ij)
79     ENDDO
80  ENDDO
81!$OMP ENDDO NOWAIT
82
83  RETURN
84END SUBROUTINE covnat_loc
Note: See TracBrowser for help on using the repository browser.