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/dyn3dmem/laplacien_loc.f90

    r5245 r5246  
    1       SUBROUTINE laplacien_loc ( klevel, teta, divgra )
    2 c
    3 c    P. Le Van
    4 c
    5 c   ************************************************************
    6 c    ....     calcul de  (div( grad ))   de   teta  .....
    7 c   ************************************************************
    8 c    klevel et teta  sont des arguments  d'entree pour le s-prog
    9 c      divgra     est  un argument  de sortie pour le s-prog
    10 c
    11       USE parallel_lmdz
    12       USE mod_filtreg_p
    13       IMPLICIT NONE
    14 c
    15       INCLUDE "dimensions.h"
    16       INCLUDE "paramet.h"
    17       INCLUDE "comgeom.h"
     1SUBROUTINE laplacien_loc ( klevel, teta, divgra )
     2  !
     3  ! P. Le Van
     4  !
     5  !   ************************************************************
     6  !    ....     calcul de  (div( grad ))   de   teta  .....
     7  !   ************************************************************
     8  ! klevel et teta  sont des arguments  d'entree pour le s-prog
     9  !  divgra     est  un argument  de sortie pour le s-prog
     10  !
     11  USE parallel_lmdz
     12  USE mod_filtreg_p
     13  IMPLICIT NONE
     14  !
     15  INCLUDE "dimensions.h"
     16  INCLUDE "paramet.h"
     17  INCLUDE "comgeom.h"
    1818
    19 c
    20 c    .........      variables  en arguments   ..............
    21 c
    22       INTEGER klevel
    23       REAL teta( ijb_u:ije_u,klevel ), divgra( ijb_u:ije_u,klevel )
    24       INTEGER :: l
    25 c
    26 c    ............     variables  locales      ..............
    27 c
    28       REAL ghy(ijb_v:ije_v,llm), ghx(ijb_u:ije_u,llm)
    29 c    .......................................................
     19  !
     20  !    .........      variables  en arguments   ..............
     21  !
     22  INTEGER :: klevel
     23  REAL :: teta( ijb_u:ije_u,klevel ), divgra( ijb_u:ije_u,klevel )
     24  INTEGER :: l
     25  !
     26  !    ............     variables  locales      ..............
     27  !
     28  REAL :: ghy(ijb_v:ije_v,llm), ghx(ijb_u:ije_u,llm)
     29  !    .......................................................
    3030
    31      
    32       INTEGER :: ijb,ije,jjb,jje
    33 c
    34 c      CALL SCOPY ( ip1jmp1 * klevel, teta, 1, divgra, 1 )
    3531
    36       ijb=ij_begin-iip1
    37       ije=ij_end+iip1
    38       if (pole_nord) ijb=ij_begin
    39       if (pole_sud ) ije=ij_end
     32  INTEGER :: ijb,ije,jjb,jje
     33  !
     34  !  CALL SCOPY ( ip1jmp1 * klevel, teta, 1, divgra, 1 )
    4035
    41 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    42       DO l=1,klevel     
    43         divgra(ijb:ije,l)=teta(ijb:ije,l)
    44       ENDDO
    45 c$OMP END DO NOWAIT
    46      
    47       jjb=jj_begin-1
    48       jje=jj_end+1
    49       if (pole_nord) jjb=jj_begin
    50       if (pole_sud ) jje=jj_end
    51      
    52       CALL filtreg_p( divgra,jjb_u,jje_u,jjb,jje,jjp1,
    53      &                klevel,  2, 1, .TRUE., 1 )
    54       CALL   grad_loc ( klevel,divgra,   ghx , ghy              )
    55       CALL  divergf_loc ( klevel, ghx , ghy  , divgra           )
     36  ijb=ij_begin-iip1
     37  ije=ij_end+iip1
     38  if (pole_nord) ijb=ij_begin
     39  if (pole_sud ) ije=ij_end
    5640
    57       RETURN
    58       END
     41!$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
     42  DO l=1,klevel
     43    divgra(ijb:ije,l)=teta(ijb:ije,l)
     44  ENDDO
     45!$OMP END DO NOWAIT
     46
     47  jjb=jj_begin-1
     48  jje=jj_end+1
     49  if (pole_nord) jjb=jj_begin
     50  if (pole_sud ) jje=jj_end
     51
     52  CALL filtreg_p( divgra,jjb_u,jje_u,jjb,jje,jjp1, &
     53        klevel,  2, 1, .TRUE., 1 )
     54  CALL   grad_loc ( klevel,divgra,   ghx , ghy              )
     55  CALL  divergf_loc ( klevel, ghx , ghy  , divgra           )
     56
     57  RETURN
     58END SUBROUTINE laplacien_loc
Note: See TracChangeset for help on using the changeset viewer.