Ignore:
Timestamp:
Oct 21, 2024, 2:58:45 PM (23 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/dyn3d_common/divergst.f90

    r5245 r5246  
    22! $Header$
    33!
    4       SUBROUTINE divergst(klevel,x,y,div)
    5       IMPLICIT NONE
    6 c
    7 c    P. Le Van
    8 c
    9 c  ******************************************************************
    10 c  ... calcule la divergence a tous les niveaux d'1 vecteur de compos. x et y...
    11 c           x et y  etant des composantes contravariantes   ...
    12 c  ****************************************************************
    13 c      x  et  y  sont des arguments  d'entree pour le s-prog
    14 c        div      est  un argument  de sortie pour le s-prog
    15 c
    16 c
    17 c   -------------------------------------------------------------------
    18 c
    19       INCLUDE "dimensions.h"
    20       INCLUDE "paramet.h"
    21       INCLUDE "comgeom.h"
     4SUBROUTINE divergst(klevel,x,y,div)
     5  IMPLICIT NONE
     6  !
     7  ! P. Le Van
     8  !
     9  !  ******************************************************************
     10  !  ... calcule la divergence a tous les niveaux d'1 vecteur de compos. x et y...
     11  !       x et y  etant des composantes contravariantes   ...
     12  !  ****************************************************************
     13  !  x  et  y  sont des arguments  d'entree pour le s-prog
     14  !    div      est  un argument  de sortie pour le s-prog
     15  !
     16  !
     17  !   -------------------------------------------------------------------
     18  !
     19  INCLUDE "dimensions.h"
     20  INCLUDE "paramet.h"
     21  INCLUDE "comgeom.h"
    2222
    23       INTEGER klevel
    24       REAL x( ip1jmp1,klevel ),y( ip1jm,klevel ),div( ip1jmp1,klevel )
    25       INTEGER ij,l,i
    26       REAL aiy1( iip1 ) , aiy2( iip1 )
    27       REAL sumypn,sumyps
     23  INTEGER :: klevel
     24  REAL :: x( ip1jmp1,klevel ),y( ip1jm,klevel ),div( ip1jmp1,klevel )
     25  INTEGER :: ij,l,i
     26  REAL :: aiy1( iip1 ) , aiy2( iip1 )
     27  REAL :: sumypn,sumyps
    2828
    29       REAL SSUM
    30 c
    31 c
    32       DO 10 l = 1,klevel
    33 c
    34       DO 1 ij = iip2, ip1jm - 1
    35       div( ij + 1, l ) = x(ij+1,l) - x(ij,l)+ y(ij-iim,l)-y(ij+1,l)
    36    1  CONTINUE
    37 c
    38 c    ....  correction pour  div( 1,j,l)  ......
    39 c    ....   div(1,j,l)= div(iip1,j,l) ....
    40 c
    41 CDIR$ IVDEP
    42       DO 3 ij = iip2,ip1jm,iip1
    43       div( ij,l ) = div( ij + iim,l )
    44    3  CONTINUE
    45 c
    46 c    ....  calcul  aux poles  .....
    47 c
    48 c
    49       DO 5 i  = 1,iim
    50       aiy1(i)= y(i,l)
    51       aiy2(i)= y(i+ip1jmi1,l)
    52    5  CONTINUE
    53       sumypn = SSUM ( iim,aiy1,1 )
    54       sumyps = SSUM ( iim,aiy2,1 )
    55       DO 7 i = 1,iip1
    56       div(     i    , l ) = - sumypn/iim
    57       div( i + ip1jm, l ) =   sumyps/iim
    58    7  CONTINUE
    59 c
    60   10  CONTINUE
    61       RETURN
    62       END
     29  REAL :: SSUM
     30  !
     31  !
     32  DO l = 1,klevel
     33  !
     34  DO ij = iip2, ip1jm - 1
     35  div( ij + 1, l ) = x(ij+1,l) - x(ij,l)+ y(ij-iim,l)-y(ij+1,l)
     36  END DO
     37  !
     38  ! ....  correction pour  div( 1,j,l)  ......
     39  ! ....   div(1,j,l)= div(iip1,j,l) ....
     40  !
     41  !DIR$ IVDEP
     42  DO ij = iip2,ip1jm,iip1
     43  div( ij,l ) = div( ij + iim,l )
     44  END DO
     45  !
     46  ! ....  calcul  aux poles  .....
     47  !
     48  !
     49  DO i  = 1,iim
     50  aiy1(i)= y(i,l)
     51  aiy2(i)= y(i+ip1jmi1,l)
     52  END DO
     53  sumypn = SSUM ( iim,aiy1,1 )
     54  sumyps = SSUM ( iim,aiy2,1 )
     55  DO i = 1,iip1
     56  div(     i    , l ) = - sumypn/iim
     57  div( i + ip1jm, l ) =   sumyps/iim
     58  END DO
     59  !
     60  END DO
     61  RETURN
     62END SUBROUTINE divergst
Note: See TracChangeset for help on using the changeset viewer.