Ignore:
Timestamp:
Oct 21, 2024, 2:58:45 PM (22 hours ago)
Author:
abarral
Message:

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

File:
1 moved

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/dyn3dmem/rotat_nfil_loc.f90

    r5245 r5246  
    1       SUBROUTINE rotat_nfil_loc (klevel, x, y, rot )
    2 c
    3 c    Auteur :   P.Le Van
    4 c**************************************************************
    5 c.          Calcule le rotationnel  non filtre   ,
    6 c      a tous les niveaux d'1 vecteur de comp. x et y ..
    7 c       x  et  y etant des composantes  covariantes  ...
    8 c********************************************************************
    9 c   klevel, x  et y   sont des arguments d'entree pour le s-prog
    10 c        rot          est  un argument  de sortie pour le s-prog
    11 c
    12       USE parallel_lmdz
    13       IMPLICIT NONE
    14 c
    15       INCLUDE "dimensions.h"
    16       INCLUDE "paramet.h"
    17       INCLUDE "comgeom.h"
    18 c
    19 c   .....  variables en arguments  ......
    20 c
    21       INTEGER klevel
    22       REAL rot( ijb_v:ije_v,klevel )
    23       REAL x( ijb_u:ije_u,klevel ), y( ijb_v:ije_v,klevel )
    24 c
    25 c  ...   variables  locales  ...
    26 c
    27       INTEGER l, ij
    28       INTEGER :: ijb,ije
    29 c
    30 c
    31       ijb=ij_begin
    32       ije=ij_end
    33       if(pole_sud) ije=ij_end-iip1
    34 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)       
    35       DO  10 l = 1,klevel
    36 c
    37         DO   ij = ijb, ije - 1
    38          rot( ij,l )  =    y( ij+1 , l )  -  y( ij,l )   +
    39      *                   x(ij +iip1, l )  -  x( ij,l ) 
    40         ENDDO
    41 c
    42 c    .... correction pour rot( iip1,j,l)  ....
    43 c    ....   rot(iip1,j,l)= rot(1,j,l) ...
    44 CDIR$ IVDEP
    45         DO  ij = ijb+iip1-1, ije, iip1
    46          rot( ij,l ) = rot( ij -iim,l )
    47         ENDDO
    48 c
    49   10  CONTINUE
    50 c$OMP END DO NOWAIT
    51       RETURN
    52       END
     1SUBROUTINE rotat_nfil_loc (klevel, x, y, rot )
     2  !
     3  !    Auteur :   P.Le Van
     4  !**************************************************************
     5  !.          Calcule le rotationnel  non filtre   ,
     6  !  a tous les niveaux d'1 vecteur de comp. x et y ..
     7  !   x  et  y etant des composantes  covariantes  ...
     8  !********************************************************************
     9  !   klevel, x  et y   sont des arguments d'entree pour le s-prog
     10  !        rot          est  un argument  de sortie pour le s-prog
     11  !
     12  USE parallel_lmdz
     13  IMPLICIT NONE
     14  !
     15  INCLUDE "dimensions.h"
     16  INCLUDE "paramet.h"
     17  INCLUDE "comgeom.h"
     18  !
     19  !   .....  variables en arguments  ......
     20  !
     21  INTEGER :: klevel
     22  REAL :: rot( ijb_v:ije_v,klevel )
     23  REAL :: x( ijb_u:ije_u,klevel ), y( ijb_v:ije_v,klevel )
     24  !
     25  !  ...   variables  locales  ...
     26  !
     27  INTEGER :: l, ij
     28  INTEGER :: ijb,ije
     29  !
     30  !
     31  ijb=ij_begin
     32  ije=ij_end
     33  if(pole_sud) ije=ij_end-iip1
     34!$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
     35  DO l = 1,klevel
     36  !
     37    DO   ij = ijb, ije - 1
     38     rot( ij,l )  =    y( ij+1 , l )  -  y( ij,l )   + &
     39           x(ij +iip1, l )  -  x( ij,l )
     40    ENDDO
     41  !
     42  !    .... correction pour rot( iip1,j,l)  ....
     43  !    ....   rot(iip1,j,l)= rot(1,j,l) ...
     44  !DIR$ IVDEP
     45    DO  ij = ijb+iip1-1, ije, iip1
     46     rot( ij,l ) = rot( ij -iim,l )
     47    ENDDO
     48  !
     49  END DO
     50!$OMP END DO NOWAIT
     51  RETURN
     52END SUBROUTINE rotat_nfil_loc
Note: See TracChangeset for help on using the changeset viewer.