Ignore:
Timestamp:
Sep 11, 2013, 11:45:01 AM (11 years ago)
Author:
Laurent Fairhead
Message:

Création d'une nouvelle testing:

merge des modifications du trunk entre r1796 et r1860


New testing version

merged modifications between r1796 and r1860 from the trunk

i.e.
svn merge -r1796:1860 http://svn.lmd.jussieu.fr/LMDZ/LMDZ5/trunk

Location:
LMDZ5/branches/testing
Files:
2 deleted
102 edited
2 copied

Legend:

Unmodified
Added
Removed
  • LMDZ5/branches/testing

  • LMDZ5/branches/testing/libf/dyn3dmem/abort_gcm.F

    r1795 r1864  
    1212      USE ioipsl_getincom
    1313#endif
    14       USE parallel
     14      USE parallel_lmdz
    1515#include "iniprint.h"
    1616 
  • LMDZ5/branches/testing/libf/dyn3dmem/addfi_loc.F

    r1707 r1864  
    55     S          pucov, pvcov, pteta, pq   , pps ,
    66     S          pdufi, pdvfi, pdhfi,pdqfi, pdpfi  )
    7       USE parallel
     7      USE parallel_lmdz
    88      USE infotrac, ONLY : nqtot
    99      USE control_mod, ONLY : planet_type
  • LMDZ5/branches/testing/libf/dyn3dmem/advect_new_loc.F

    r1669 r1864  
    44      SUBROUTINE advect_new_loc(ucov,vcov,teta,w,massebx,masseby,
    55     &                        du,dv,dteta)
    6       USE parallel
     6      USE parallel_lmdz
    77      USE write_field_loc
    88      USE advect_new_mod
  • LMDZ5/branches/testing/libf/dyn3dmem/advect_new_mod.F90

    r1669 r1864  
    1515  SUBROUTINE advect_new_allocate
    1616  USE bands
    17   USE allocate_field
    18   USE parallel
    19   USE dimensions
     17  USE allocate_field_mod
     18  USE parallel_lmdz
     19  USE dimensions_mod
    2020  IMPLICIT NONE
    2121  TYPE(distrib),POINTER :: d
     
    3636 
    3737  SUBROUTINE advect_new_switch_caldyn(dist)
    38   USE allocate_field
     38  USE allocate_field_mod
    3939  USE bands
    40   USE parallel
     40  USE parallel_lmdz
    4141  IMPLICIT NONE
    4242    TYPE(distrib),INTENT(IN) :: dist
  • LMDZ5/branches/testing/libf/dyn3dmem/advtrac_loc.F

    r1707 r1864  
    1717c            M.A Filiberti (04/2002)
    1818c
    19       USE parallel
     19      USE parallel_lmdz
    2020      USE Write_Field_loc
    2121      USE Write_Field
     
    7979      DATA dum/.true./
    8080      integer ijb,ije,ijbu,ijbv,ijeu,ijev,j
    81       type(Request) :: testRequest
     81      type(Request),SAVE :: testRequest
     82!$OMP THREADPRIVATE(testRequest)
    8283
    8384c  test sur l'eventuelle creation de valeurs negatives de la masse
  • LMDZ5/branches/testing/libf/dyn3dmem/advtrac_mod.F90

    r1669 r1864  
    77  SUBROUTINE advtrac_allocate
    88  USE bands
    9   USE allocate_field
    10   USE parallel
     9  USE allocate_field_mod
     10  USE parallel_lmdz
    1111  USE infotrac
    1212  USE vlspltgen_mod
     
    2222 
    2323  SUBROUTINE advtrac_switch_vanleer(dist)
    24   USE allocate_field
     24  USE allocate_field_mod
    2525  USE bands
    26   USE parallel
     26  USE parallel_lmdz
    2727  USE vlspltgen_mod
    2828  IMPLICIT NONE
  • LMDZ5/branches/testing/libf/dyn3dmem/bands.F90

    r1707 r1864  
    33!
    44  module Bands
    5   USE parallel
     5  USE parallel_lmdz
    66    integer, parameter :: bands_caldyn=1
    77    integer, parameter :: bands_vanleer=2
     
    2727 
    2828  subroutine AllocateBands
    29     use parallel
     29    USE parallel_lmdz
    3030    implicit none
    3131   
     
    4141 
    4242  subroutine Read_distrib
    43     use parallel
     43    USE parallel_lmdz
    4444    implicit none
    4545
     
    104104   
    105105   SUBROUTINE  Set_Bands
    106      USE parallel
     106     USE parallel_lmdz
    107107#ifdef CPP_PHYS
    108108! Ehouarn: what follows is only related to // physics
     
    168168    subroutine AdjustBands_caldyn(new_dist)
    169169      use times
    170       use parallel
     170      USE parallel_lmdz
    171171      implicit none
    172172      TYPE(distrib),INTENT(INOUT) :: new_dist
     
    235235    subroutine AdjustBands_vanleer(new_dist)
    236236      use times
    237       use parallel
     237      USE parallel_lmdz
    238238      implicit none
    239239      TYPE(distrib),INTENT(INOUT) :: new_dist
     
    304304    subroutine AdjustBands_dissip(new_dist)
    305305      use times
    306       use parallel
     306      USE parallel_lmdz
    307307      implicit none
    308308      TYPE(distrib),INTENT(INOUT) :: new_dist
     
    377377      USE mod_phys_lmdz_para, only : klon_mpi_para_nb
    378378#endif
    379       USE parallel
     379      USE parallel_lmdz
    380380      implicit none
    381381
     
    428428
    429429    subroutine WriteBands
    430     USE parallel
     430    USE parallel_lmdz
    431431    implicit none
    432432    include "dimensions.h"
  • LMDZ5/branches/testing/libf/dyn3dmem/bernoui_loc.F

    r1669 r1864  
    11      SUBROUTINE bernoui_loc (ngrid,nlay,pphi,pecin,pbern)
    2       USE parallel
     2      USE parallel_lmdz
    33      USE mod_filtreg_p
    44      IMPLICIT NONE
  • LMDZ5/branches/testing/libf/dyn3dmem/bilan_dyn_loc.F

    r1707 r1864  
    1313      USE IOIPSL
    1414#endif
    15       USE parallel
     15      USE parallel_lmdz
    1616      USE mod_hallo
    1717      use misc_mod
     
    157157      real,SAVE,ALLOCATABLE :: rlong(:),rlatg(:)
    158158      integer :: jjb,jje,jjn,ijb,ije
    159       type(Request) :: Req
     159      type(Request),SAVE :: Req
     160!$OMP THREADPRIVATE(Req)
    160161
    161162! definition du domaine d'ecriture pour le rebuild
  • LMDZ5/branches/testing/libf/dyn3dmem/caladvtrac_loc.F

    r1707 r1864  
    77     *                   p ,masse, dq ,  teta,
    88     *                   flxw, pk, iapptrac)
    9       USE parallel
     9      USE parallel_lmdz
    1010      USE infotrac, ONLY : nqtot
    1111      USE control_mod, ONLY : iapp_tracvl,planet_type
     
    5353      INTEGER ::  ijb,ije,ijbu,ijbv,ijeu,ijev,j
    5454      INTEGER :: ij,l
    55       TYPE(Request) :: Request_vanleer
    56 
     55      TYPE(Request),SAVE :: Request_vanleer
     56!$OMP THREADPRIVATE(Request_vanleer)
    5757
    5858           
     
    122122c     1. calcul de w
    123123c     2. groupement des mailles pres du pole.
    124         pbarvg(:,:)=-1
    125         pbarvg_adv(:,:)=-2
     124
    126125        CALL groupe_loc( massem, pbaruc,pbarvc, pbarug,pbarvg,wg )
    127         flxw(ijb:ije,1:llm)=wg(ijb:ije,1:llm)/REAL(iapp_tracvl)
     126
     127c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)     
     128      DO l=1,llm
     129        flxw(ijb:ije,l)=wg(ijb:ije,l)/REAL(iapp_tracvl)
     130      ENDDO
     131c$OMP ENDDO NOWAIT
    128132
    129133#ifdef DEBUG_IO   
  • LMDZ5/branches/testing/libf/dyn3dmem/caladvtrac_mod.F90

    r1669 r1864  
    2121  SUBROUTINE caladvtrac_allocate
    2222  USE bands
    23   USE allocate_field
    24   USE parallel
     23  USE allocate_field_mod
     24  USE parallel_lmdz
    2525  USE infotrac
    2626  USE advtrac_mod, ONLY : advtrac_allocate
     
    5555 
    5656  SUBROUTINE caladvtrac_switch_caldyn(dist)
    57   USE allocate_field
     57  USE allocate_field_mod
    5858  USE bands
    59   USE parallel
     59  USE parallel_lmdz
    6060  USE groupe_mod
    6161  IMPLICIT NONE
     
    7474 
    7575  SUBROUTINE caladvtrac_switch_vanleer(dist)
    76   USE allocate_field
     76  USE allocate_field_mod
    7777  USE bands
    78   USE parallel
     78  USE parallel_lmdz
    7979  USE advtrac_mod, ONLY : advtrac_switch_vanleer
    8080  IMPLICIT NONE
  • LMDZ5/branches/testing/libf/dyn3dmem/caldyn_loc.F

    r1669 r1864  
    1010     $ (itau,ucov,vcov,teta,ps,masse,pk,pkf,phis ,
    1111     $  phi,conser,du,dv,dteta,dp,w,pbaru,pbarv,time )
    12       USE parallel
     12      USE parallel_lmdz
    1313      USE Write_Field_loc
    1414      USE caldyn_mod
  • LMDZ5/branches/testing/libf/dyn3dmem/caldyn_mod.F90

    r1669 r1864  
    2020  SUBROUTINE caldyn_allocate
    2121  USE bands
    22   USE allocate_field
    23   USE parallel
    24   USE dimensions
     22  USE allocate_field_mod
     23  USE parallel_lmdz
     24  USE dimensions_mod
    2525  USE advect_new_mod,ONLY : advect_new_allocate
    2626  IMPLICIT NONE
     
    4747 
    4848  SUBROUTINE caldyn_switch_caldyn(dist)
    49   USE allocate_field
     49  USE allocate_field_mod
    5050  USE bands
    51   USE parallel
     51  USE parallel_lmdz
    5252  USE advect_new_mod,ONLY : advect_new_switch_caldyn
    5353  IMPLICIT NONE
  • LMDZ5/branches/testing/libf/dyn3dmem/calfis_loc.F

    r1795 r1864  
    3737      USE IOPHY
    3838#endif
    39       USE parallel, ONLY : omp_chunk, using_mpi,jjb_u,jje_u,jjb_v,jje_v
     39      USE parallel_lmdz,ONLY:omp_chunk,using_mpi,jjb_u,jje_u,jjb_v,jje_v
    4040      USE Write_Field
    4141      Use Write_field_p
  • LMDZ5/branches/testing/libf/dyn3dmem/call_calfis_mod.F90

    r1795 r1864  
    3636  SUBROUTINE call_calfis_allocate
    3737  USE bands
    38   USE allocate_field
    39   USE parallel
    40   USE dimensions
     38  USE allocate_field_mod
     39  USE parallel_lmdz
     40  USE dimensions_mod
    4141  USE infotrac
    4242  IMPLICIT NONE
     
    7474  SUBROUTINE call_calfis(itau,lafin,clesphy0,ucov_dyn,vcov_dyn,teta_dyn,masse_dyn,ps_dyn, &
    7575                         phis_dyn,q_dyn,flxw_dyn)
    76   USE dimensions
    77   USE parallel
     76  USE dimensions_mod
     77  USE parallel_lmdz
    7878  USE times
    7979  USE mod_hallo
     
    111111    REAL :: jD_cur, jH_cur
    112112    CHARACTER(LEN=15) :: ztit
    113     TYPE(Request) :: Request_physic
     113    TYPE(Request),SAVE :: Request_physic
     114!$OMP THREADPRIVATE(Request_physic )
    114115    INTEGER :: ijb,ije,l,j
    115116   
     
    378379    IF (ip_ebil_dyn.ge.1 ) THEN
    379380      ztit='bil phys'
    380       CALL diagedyn(ztit,2,1,1,dtphys,ucov, vcov , ps, p ,pk , teta , q(:,:,1), q(:,:,2))
     381!      CALL diagedyn(ztit,2,1,1,dtphys,ucov, vcov , ps, p ,pk , teta , q(:,:,1), q(:,:,2))
     382      write(lunout,*)"call_calfis: diagedyn disabled in dyn3dmem !!"
    381383    ENDIF
    382384
  • LMDZ5/branches/testing/libf/dyn3dmem/call_dissip_mod.F90

    r1707 r1864  
    2222  SUBROUTINE call_dissip_allocate
    2323  USE bands
    24   USE allocate_field
    25   USE parallel
    26   USE dimensions
     24  USE allocate_field_mod
     25  USE parallel_lmdz
     26  USE dimensions_mod
    2727  USE dissip_mod, ONLY : dissip_allocate
    2828  IMPLICIT NONE
     
    5050 
    5151  SUBROUTINE call_dissip_switch_dissip(dist)
    52   USE allocate_field
     52  USE allocate_field_mod
    5353  USE bands
    54   USE parallel
     54  USE parallel_lmdz
    5555  USE dissip_mod, ONLY : dissip_switch_dissip
    5656  IMPLICIT NONE
     
    7878 
    7979  SUBROUTINE call_dissip(ucov_dyn,vcov_dyn,teta_dyn,p_dyn,pk_dyn,ps_dyn)
    80   USE dimensions
    81   USE parallel
     80  USE dimensions_mod
     81  USE parallel_lmdz
    8282  USE times
    8383  USE mod_hallo
     
    9898    REAL  SSUM
    9999    LOGICAL,PARAMETER :: dissip_conservative=.TRUE.
    100     TYPE(Request) :: Request_dissip
    101    
     100    TYPE(Request),SAVE :: Request_dissip
     101!$OMP THREADPRIVATE(Request_dissip )   
    102102    INTEGER :: ij,l,ijb,ije
    103103 
  • LMDZ5/branches/testing/libf/dyn3dmem/ce0l.F90

    r1795 r1864  
    2222  USE mod_const_mpi
    2323  USE infotrac
    24   USE parallel, ONLY: finalize_parallel
     24  USE parallel_lmdz, ONLY: finalize_parallel 
    2525  USE indice_sol_mod
    2626
  • LMDZ5/branches/testing/libf/dyn3dmem/conf_gcm.F

    r1795 r1864  
    1717      use mod_filtre_fft_loc, ONLY : use_filtre_fft_loc=>use_filtre_fft
    1818      use mod_hallo, ONLY : use_mpi_alloc
    19       use parallel, ONLY : omp_chunk
    2019      USE infotrac, ONLY : type_trac
    2120      use assert_m, only: assert
     
    908907      use_mpi_alloc=.FALSE.
    909908      CALL getin('use_mpi_alloc',use_mpi_alloc)
    910 
    911 !Config  Key  = omp_chunk
    912 !Config  Desc = taille des blocs openmp
    913 !Config  Def  = 1
    914 !Config  Help = defini la taille des packets d'it�ration openmp
    915 !Config         distribu�e � chaque t�che lors de l'entr�e dans une
    916 !Config         boucle parall�lis�e
    917  
    918       omp_chunk=1
    919       CALL getin('omp_chunk',omp_chunk)
    920909
    921910!Config key = ok_strato
     
    1006995      write(lunout,*)' use_filtre_fft = ', use_filtre_fft
    1007996      write(lunout,*)' use_mpi_alloc = ', use_mpi_alloc
    1008       write(lunout,*)' omp_chunk = ', omp_chunk
    1009997      write(lunout,*)' ok_strato = ', ok_strato
    1010998      write(lunout,*)' ok_gradsfile = ', ok_gradsfile
  • LMDZ5/branches/testing/libf/dyn3dmem/convflu_loc.F

    r1669 r1864  
    1515c     nbniv   est le nombre de niveaux vert. de  xflu et de yflu .
    1616c
    17       USE parallel
     17      USE parallel_lmdz
    1818      IMPLICIT NONE
    1919c
  • LMDZ5/branches/testing/libf/dyn3dmem/convmas1_loc.F

    r1669 r1864  
    11      SUBROUTINE convmas1_loc (pbaru, pbarv, convm )
    22c
    3       USE parallel
     3      USE parallel_lmdz
    44      USE mod_filtreg_p
    55      IMPLICIT NONE
  • LMDZ5/branches/testing/libf/dyn3dmem/convmas2_loc.F

    r1669 r1864  
    11      SUBROUTINE convmas2_loc ( convm )
    22c
    3       USE parallel
     3      USE parallel_lmdz
    44      IMPLICIT NONE
    55
  • LMDZ5/branches/testing/libf/dyn3dmem/convmas_loc.F

    r1669 r1864  
    11      SUBROUTINE convmas_loc (pbaru, pbarv, convm )
    22c
    3       USE parallel
     3      USE parallel_lmdz
    44      USE mod_filtreg_p
    55      IMPLICIT NONE
  • LMDZ5/branches/testing/libf/dyn3dmem/covcont_loc.F

    r1669 r1864  
    11      SUBROUTINE covcont_loc (klevel,ucov, vcov, ucont, vcont )
    2       USE parallel
     2      USE parallel_lmdz
    33      IMPLICIT NONE
    44
  • LMDZ5/branches/testing/libf/dyn3dmem/covnat_loc.F

    r1669 r1864  
    33!
    44      SUBROUTINE covnat_loc(klevel,ucov, vcov, unat, vnat )
    5       USE parallel
     5      USE parallel_lmdz
    66      IMPLICIT NONE
    77
  • LMDZ5/branches/testing/libf/dyn3dmem/dimensions_mod.F90

    r1669 r1864  
    1 MODULE dimensions
     1MODULE dimensions_mod
    22  INCLUDE 'dimensions.h'
    33  INCLUDE 'paramet.h'
    4 END MODULE dimensions
     4END MODULE dimensions_mod
  • LMDZ5/branches/testing/libf/dyn3dmem/dissip_loc.F

    r1669 r1864  
    11      SUBROUTINE dissip_loc( vcov,ucov,teta,p, dv,du,dh )
    22c
    3       USE parallel
     3      USE parallel_lmdz
    44      USE write_field_loc
    55      USE dissip_mod
     
    5656!$OMP THREADPRIVATE(first)
    5757
    58       PRINT *,"----> calldissip"
    5958      IF (first) THEN
    6059        CALL dissip_allocate
  • LMDZ5/branches/testing/libf/dyn3dmem/dissip_mod.F90

    r1669 r1864  
    77  SUBROUTINE dissip_allocate
    88  USE bands
    9   USE allocate_field
    10   USE parallel
    11   USE dimensions
     9  USE allocate_field_mod
     10  USE parallel_lmdz
     11  USE dimensions_mod
    1212  USE gradiv2_mod, ONLY : gradiv2_allocate
    1313  USE nxgraro2_mod, ONLY : nxgraro2_allocate
     
    2323 
    2424  SUBROUTINE dissip_switch_dissip(dist)
    25   USE allocate_field
     25  USE allocate_field_mod
    2626  USE bands
    27   USE parallel
     27  USE parallel_lmdz
    2828  USE gradiv2_mod,ONLY : gradiv2_switch_dissip
    2929  USE nxgraro2_mod,ONLY : nxgraro2_switch_dissip
  • LMDZ5/branches/testing/libf/dyn3dmem/diverg_gam_loc.F

    r1669 r1864  
    99c              x et y  etant des composantes covariantes   ...
    1010c  *********************************************************************
    11       USE parallel
     11      USE parallel_lmdz
    1212      IMPLICIT NONE
    1313c
  • LMDZ5/branches/testing/libf/dyn3dmem/diverg_p.F

    r1669 r1864  
    88c              x et y  etant des composantes covariantes   ...
    99c  *********************************************************************
    10       USE parallel
     10      USE parallel_lmdz
    1111      IMPLICIT NONE
    1212c
  • LMDZ5/branches/testing/libf/dyn3dmem/divergf_loc.F

    r1669 r1864  
    88c              x et y  etant des composantes covariantes   ...
    99c  *********************************************************************
    10       USE PARALLEL
     10      USE parallel_lmdz
    1111      USE mod_filtreg_p
    1212      IMPLICIT NONE
  • LMDZ5/branches/testing/libf/dyn3dmem/divgrad2_loc.F

    r1669 r1864  
    1010c         divgra     est  un argument  de sortie pour le s-prg
    1111c
    12       USE parallel
     12      USE parallel_lmdz
    1313      USE times
    1414      USE mod_hallo
     
    3131      INTEGER  l,ij,iter,lh
    3232c    ...................................................................
    33       Type(Request) :: request_dissip
     33      Type(Request),SAVE :: request_dissip
     34!$OMP THREADPRIVATE(request_dissip)
    3435      INTEGER ijb,ije
    3536
  • LMDZ5/branches/testing/libf/dyn3dmem/divgrad2_mod.F90

    r1669 r1864  
    77  SUBROUTINE divgrad2_allocate
    88  USE bands
    9   USE allocate_field
    10   USE parallel
    11   USE dimensions
     9  USE allocate_field_mod
     10  USE parallel_lmdz
     11  USE dimensions_mod
    1212  IMPLICIT NONE
    1313    TYPE(distrib),POINTER :: d
     
    2020 
    2121  SUBROUTINE divgrad2_switch_dissip(dist)
    22   USE allocate_field
     22  USE allocate_field_mod
    2323  USE bands
    24   USE parallel
     24  USE parallel_lmdz
    2525  IMPLICIT NONE
    2626    TYPE(distrib),INTENT(IN) :: dist
  • LMDZ5/branches/testing/libf/dyn3dmem/dteta1_loc.F

    r1669 r1864  
    11      SUBROUTINE dteta1_loc ( teta, pbaru, pbarv, dteta)
    2       USE parallel
     2      USE parallel_lmdz
    33      USE write_field_p
    44      USE mod_filtreg_p
  • LMDZ5/branches/testing/libf/dyn3dmem/dudv1_loc.F

    r1669 r1864  
    11      SUBROUTINE dudv1_loc ( vorpot, pbaru, pbarv, du, dv )
    2       USE parallel
     2      USE parallel_lmdz
    33      IMPLICIT NONE
    44c
  • LMDZ5/branches/testing/libf/dyn3dmem/dudv2_loc.F

    r1669 r1864  
    11      SUBROUTINE dudv2_loc ( teta, pkf, bern, du, dv  )
    2       USE parallel
     2      USE parallel_lmdz
    33      IMPLICIT NONE
    44c
  • LMDZ5/branches/testing/libf/dyn3dmem/dynetat0_loc.F

    r1707 r1864  
    66      USE infotrac
    77      use control_mod, only : planet_type
    8       USE parallel
     8      USE parallel_lmdz
    99      IMPLICIT NONE
    1010
  • LMDZ5/branches/testing/libf/dyn3dmem/dynredem_loc.F

    r1707 r1864  
    77      USE IOIPSL
    88#endif
    9       USE parallel
     9      USE parallel_lmdz
    1010      USE mod_hallo
    1111      USE infotrac
     
    528528      SUBROUTINE dynredem1_loc(fichnom,time,
    529529     .                     vcov,ucov,teta,q,masse,ps)
    530       USE parallel
     530      USE parallel_lmdz
    531531      USE mod_hallo
    532532      USE infotrac
  • LMDZ5/branches/testing/libf/dyn3dmem/dynredem_mod.F90

    r1707 r1864  
    77
    88  SUBROUTINE dynredem_write_u(ncid,id,var,ll)
    9   USE dimensions
    10   USE parallel
     9  USE dimensions_mod
     10  USE parallel_lmdz
    1111  USE mod_hallo
    1212  IMPLICIT NONE
     
    7272     
    7373  SUBROUTINE dynredem_write_v(ncid,id,var,ll)
    74   USE dimensions
    75   USE parallel
     74  USE dimensions_mod
     75  USE parallel_lmdz
    7676  USE mod_hallo
    7777  IMPLICIT NONE
     
    137137
    138138  SUBROUTINE dynredem_read_u(ncid,id,var,ll)
    139   USE dimensions
    140   USE parallel
     139  USE dimensions_mod
     140  USE parallel_lmdz
    141141  USE mod_hallo
    142142  IMPLICIT NONE
  • LMDZ5/branches/testing/libf/dyn3dmem/enercin_loc.F

    r1669 r1864  
    11      SUBROUTINE enercin_loc ( vcov, ucov, vcont, ucont, ecin )
    2       USE parallel
     2      USE parallel_lmdz
    33      IMPLICIT NONE
    44
  • LMDZ5/branches/testing/libf/dyn3dmem/exner_hyb_loc.F

    r1707 r1864  
    2929c
    3030c
    31       USE parallel
     31      USE parallel_lmdz
    3232      USE mod_filtreg_p
    3333      USE write_field_loc
  • LMDZ5/branches/testing/libf/dyn3dmem/exner_milieu_loc.F

    r1795 r1864  
    2626c    ( voir note de Fr.Hourdin )  ,
    2727c
    28       USE parallel
     28      USE parallel_lmdz
    2929      USE mod_filtreg_p
    3030      IMPLICIT NONE
  • LMDZ5/branches/testing/libf/dyn3dmem/filtreg_p.F

    r1707 r1864  
    33      SUBROUTINE filtreg_p ( champ, ibeg, iend, nlat, nbniv,
    44     &     ifiltre, iaire, griscal ,iter)
    5       USE Parallel, only : OMP_CHUNK
     5      USE parallel_lmdz, only : OMP_CHUNK
    66      USE mod_filtre_fft
    77      USE timer_filtre
  • LMDZ5/branches/testing/libf/dyn3dmem/flumass_loc.F

    r1669 r1864  
    11      SUBROUTINE flumass_loc(massebx,masseby,vcont,ucont,pbaru,pbarv)
    2       USE parallel
     2      USE parallel_lmdz
    33      IMPLICIT NONE
    44
  • LMDZ5/branches/testing/libf/dyn3dmem/friction_loc.F

    r1707 r1864  
    44c=======================================================================
    55      SUBROUTINE friction_loc(ucov,vcov,pdt)
    6       USE parallel
     6      USE parallel_lmdz
    77      USE control_mod
    88#ifdef CPP_IOIPSL
  • LMDZ5/branches/testing/libf/dyn3dmem/gcm.F

    r1795 r1864  
    1111
    1212      USE mod_const_mpi, ONLY: init_const_mpi
    13       USE parallel
     13      USE parallel_lmdz
    1414      USE infotrac
    1515      USE mod_interface_dyn_phys
  • LMDZ5/branches/testing/libf/dyn3dmem/geopot_loc.F

    r1669 r1864  
    11      SUBROUTINE geopot_loc ( ngrid, teta, pk, pks, phis, phi )
    2       USE parallel
     2      USE parallel_lmdz
    33      IMPLICIT NONE
    44     
  • LMDZ5/branches/testing/libf/dyn3dmem/getparam.F90

    r1669 r1864  
    1818CONTAINS
    1919  SUBROUTINE ini_getparam(fichier)
    20   USE parallel
     20  USE parallel_lmdz
    2121    !
    2222    IMPLICIT NONE
     
    2828
    2929  SUBROUTINE fin_getparam
    30   USE parallel
     30  USE parallel_lmdz
    3131    !
    3232    IMPLICIT NONE
     
    3737
    3838  SUBROUTINE getparamr(TARGET,def_val,ret_val,comment)
    39   USE parallel
     39  USE parallel_lmdz
    4040    !
    4141    IMPLICIT NONE
     
    6363
    6464  SUBROUTINE getparami(TARGET,def_val,ret_val,comment)
    65   USE parallel
     65  USE parallel_lmdz
    6666    !
    6767    IMPLICIT NONE
     
    9090
    9191  SUBROUTINE getparaml(TARGET,def_val,ret_val,comment)
    92   USE parallel
     92  USE parallel_lmdz
    9393    !
    9494    IMPLICIT NONE
  • LMDZ5/branches/testing/libf/dyn3dmem/gr_dyn_fi_p.F

    r1707 r1864  
    77      USE mod_interface_dyn_phys
    88      USE dimphy
    9       USE PARALLEL
     9      USE parallel_lmdz
    1010      IMPLICIT NONE
    1111c=======================================================================
  • LMDZ5/branches/testing/libf/dyn3dmem/gr_fi_dyn_p.F

    r1707 r1864  
    77      USE mod_interface_dyn_phys
    88      USE dimphy
    9       use parallel
     9      USE parallel_lmdz
    1010      IMPLICIT NONE
    1111c=======================================================================
  • LMDZ5/branches/testing/libf/dyn3dmem/gr_u_scal_loc.F

    r1669 r1864  
    2525c
    2626c=======================================================================
    27       USE parallel
     27      USE parallel_lmdz
    2828      IMPLICIT NONE
    2929c-----------------------------------------------------------------------
  • LMDZ5/branches/testing/libf/dyn3dmem/gr_v_scal_loc.F

    r1669 r1864  
    2525c
    2626c=======================================================================
    27       USE parallel
     27      USE parallel_lmdz
    2828      IMPLICIT NONE
    2929c-----------------------------------------------------------------------
  • LMDZ5/branches/testing/libf/dyn3dmem/grad_loc.F

    r1669 r1864  
    1010c       pgx  et  pgy    sont des arguments de sortie pour le s-prog
    1111c
    12       USE parallel
     12      USE parallel_lmdz
    1313      IMPLICIT NONE
    1414c
  • LMDZ5/branches/testing/libf/dyn3dmem/grad_p.F

    r1669 r1864  
    1010c       pgx  et  pgy    sont des arguments de sortie pour le s-prog
    1111c
    12       USE parallel
     12      USE parallel_lmdz
    1313      IMPLICIT NONE
    1414c
  • LMDZ5/branches/testing/libf/dyn3dmem/gradiv2_loc.F

    r1669 r1864  
    1313c
    1414c
    15       USE parallel
     15      USE parallel_lmdz
    1616      USE times
    1717      USE Write_field_p
     
    3838      INTEGER l,ij,iter,ld
    3939      INTEGER :: ijb,ije,jjb,jje
    40       Type(Request)  :: request_dissip
    41      
     40      Type(Request),SAVE  :: request_dissip
     41!$OMP THREADPRIVATE(request_dissip)     
    4242c    ........................................................
    4343c
  • LMDZ5/branches/testing/libf/dyn3dmem/gradiv2_mod.F90

    r1669 r1864  
    99  SUBROUTINE gradiv2_allocate
    1010  USE bands
    11   USE allocate_field
    12   USE parallel
    13   USE dimensions
     11  USE allocate_field_mod
     12  USE parallel_lmdz
     13  USE dimensions_mod
    1414  IMPLICIT NONE
    1515    TYPE(distrib),POINTER :: d
     
    2424 
    2525  SUBROUTINE gradiv2_switch_dissip(dist)
    26   USE allocate_field
     26  USE allocate_field_mod
    2727  USE bands
    28   USE parallel
     28  USE parallel_lmdz
    2929  IMPLICIT NONE
    3030    TYPE(distrib),INTENT(IN) :: dist
  • LMDZ5/branches/testing/libf/dyn3dmem/groupe_loc.F

    r1669 r1864  
    11      subroutine groupe_loc(pext,pbaru,pbarv,pbarum,pbarvm,wm)
    2       USE parallel
     2      USE parallel_lmdz
    33      USE Write_field_loc
    44      USE groupe_mod
  • LMDZ5/branches/testing/libf/dyn3dmem/groupe_mod.F90

    r1669 r1864  
    88  SUBROUTINE groupe_allocate
    99  USE bands
    10   USE allocate_field
    11   USE parallel
     10  USE allocate_field_mod
     11  USE parallel_lmdz
    1212  USE infotrac
    1313  USE advtrac_mod, ONLY : advtrac_allocate
     
    2525 
    2626  SUBROUTINE groupe_switch_caldyn(dist)
    27   USE allocate_field
     27  USE allocate_field_mod
    2828  USE bands
    29   USE parallel
     29  USE parallel_lmdz
    3030  IMPLICIT NONE
    3131    TYPE(distrib),INTENT(IN) :: dist
  • LMDZ5/branches/testing/libf/dyn3dmem/groupeun_loc.F

    r1669 r1864  
    11      SUBROUTINE groupeun_loc(jjmax,llmax,sb,se,jjb,jje,q)
    2       USE parallel
     2      USE parallel_lmdz
    33      USE Write_Field_p
    44      IMPLICIT NONE
     
    135135      SUBROUTINE init_groupeun_loc(airen_tab, aires_tab)
    136136
    137       USE parallel
     137      USE parallel_lmdz
    138138      IMPLICIT NONE
    139139
  • LMDZ5/branches/testing/libf/dyn3dmem/guide_loc_mod.F90

    r1750 r1864  
    1212  USE Write_Field_loc
    1313  use netcdf, only: nf90_nowrite, nf90_open, nf90_inq_varid, nf90_close
    14   USE parallel
     14  USE parallel_lmdz
    1515  USE pres2lev_mod
    1616
     
    293293!=======================================================================
    294294  SUBROUTINE guide_main(itau,ucov,vcov,teta,q,masse,ps)
    295     use parallel
     295    USE parallel_lmdz
    296296    USE control_mod
     297    USE write_field_loc
    297298   
    298299    IMPLICIT NONE
     
    313314!$OMP THREADPRIVATE(first)
    314315    LOGICAL       :: f_out ! sortie guidage
    315     REAL, DIMENSION (ijb_u:ije_u,llm) :: f_add ! var aux: champ de guidage
     316    REAL, ALLOCATABLE, SAVE, DIMENSION (:,:) :: f_addu ! var aux: champ de guidage
     317    REAL, ALLOCATABLE, SAVE, DIMENSION (:,:) :: f_addv ! var aux: champ de guidage
    316318    ! Variables pour fonction Exner (P milieu couche)
    317     REAL, DIMENSION (iip1,jjb_u:jje_u,llm)    :: pk, pkf
    318     REAL, DIMENSION (iip1,jjb_u:jje_u,llm)    :: alpha, beta
    319     REAL, DIMENSION (iip1,jjb_u:jje_u)        :: pks   
     319    REAL, ALLOCATABLE, SAVE, DIMENSION (:,:,:)    :: pk, pkf
     320    REAL, ALLOCATABLE, SAVE, DIMENSION (:,:,:)    :: alpha, beta
     321    REAL, ALLOCATABLE, SAVE, DIMENSION (:,:)        :: pks   
    320322    REAL                               :: unskap
    321     REAL, DIMENSION (ijb_u:ije_u,llmp1)    :: p ! besoin si guide_P
     323    REAL, ALLOCATABLE, SAVE, DIMENSION (:,:)    :: p ! besoin si guide_P
    322324    ! Compteurs temps:
    323325    INTEGER, SAVE :: step_rea,count_no_rea,itau_test ! lecture guidage
     
    329331   
    330332    INTEGER       :: i,j,l
    331    
     333      
    332334!$OMP MASTER   
    333335    ijbu=ij_begin ; ijeu=ij_end ; ijnu=ijeu-ijbu+1 
     
    358360        first=.FALSE.
    359361!$OMP MASTER
     362        ALLOCATE(f_addu(ijb_u:ije_u,llm) )
     363        ALLOCATE(f_addv(ijb_v:ije_v,llm) )
     364        ALLOCATE(pk(iip1,jjb_u:jje_u,llm)  )
     365        ALLOCATE(pkf(iip1,jjb_u:jje_u,llm)  )
     366        ALLOCATE(alpha(iip1,jjb_u:jje_u,llm)  )
     367        ALLOCATE(beta(iip1,jjb_u:jje_u,llm)  )
     368        ALLOCATE(pks(iip1,jjb_u:jje_u)  )
     369        ALLOCATE(p(ijb_u:ije_u,llmp1) )
    360370        CALL guide_init
    361371!$OMP END MASTER
     
    367377        factt=dtvr*iperiod/daysec
    368378!$OMP MASTER
    369         call tau2alpha(3,iip1,jjnb_v ,factt,tau_min_v,tau_max_v,alpha_v)
    370         call tau2alpha(2,iip1,jjnb_u,factt,tau_min_u,tau_max_u,alpha_u)
    371         call tau2alpha(1,iip1,jjnb_u,factt,tau_min_T,tau_max_T,alpha_T)
    372         call tau2alpha(1,iip1,jjnb_u,factt,tau_min_P,tau_max_P,alpha_P)
    373         call tau2alpha(1,iip1,jjnb_u,factt,tau_min_Q,tau_max_Q,alpha_Q)
     379        call tau2alpha(3, iip1, jjb_v, jje_v, factt, tau_min_v, tau_max_v, alpha_v)
     380        call tau2alpha(2, iip1, jjb_u, jje_u, factt, tau_min_u, tau_max_u, alpha_u)
     381        call tau2alpha(1, iip1, jjb_u, jje_u, factt, tau_min_T, tau_max_T, alpha_T)
     382        call tau2alpha(1, iip1, jjb_u, jje_u, factt, tau_min_P, tau_max_P, alpha_P)
     383        call tau2alpha(1, iip1, jjb_u, jje_u, factt, tau_min_Q, tau_max_Q, alpha_Q)
    374384! correction de rappel dans couche limite
    375385        if (guide_BL) then
     
    381391        endif
    382392!$OMP END MASTER
     393!$OMP BARRIER
    383394! ini_anal: etat initial egal au guidage       
    384395        IF (ini_anal) THEN
    385396            CALL guide_interp(ps,teta)
    386             IF (guide_u) ucov(ijbu:ijeu,:)=ugui2(ijbu:ijeu,:)
    387             IF (guide_v) vcov(ijbv:ijev,:)=ugui2(ijbv:ijev,:)
    388             IF (guide_T) teta(ijbu:ijeu,:)=tgui2(ijbu:ijeu,:)
    389             IF (guide_Q) q(ijbu:ijeu,:)=qgui2(ijbu:ijeu,:)
     397!$OMP DO           
     398            DO l=1,llm
     399              IF (guide_u) ucov(ijbu:ijeu,l)=ugui2(ijbu:ijeu,l)
     400              IF (guide_v) vcov(ijbv:ijev,l)=ugui2(ijbv:ijev,l)
     401              IF (guide_T) teta(ijbu:ijeu,l)=tgui2(ijbu:ijeu,l)
     402              IF (guide_Q) q(ijbu:ijeu,l)=qgui2(ijbu:ijeu,l)
     403            ENDDO
     404           
    390405            IF (guide_P) THEN
     406!$OMP MASTER
    391407                ps(ijbu:ijeu)=psgui2(ijbu:ijeu)
     408!$OMP END MASTER
     409!$OMP BARRIER
    392410                CALL pression_loc(ijnb_u,ap,bp,ps,p)
    393411                CALL massdair_loc(p,masse)
     412!$OMP BARRIER
    394413            ENDIF
    395414            RETURN
     
    398417        IF (guide_u) THEN
    399418!+tard            CALL writefield_u('unat',unat1)
    400             CALL writefield_u('ucov',ucov)
     419!            CALL writefield_u('ucov',ucov)
    401420        ENDIF
    402421        IF (guide_T) THEN
    403422!+tard            CALL writefield_p('tnat',tnat1)
    404             CALL writefield_u('teta',teta)
     423!            CALL writefield_u('teta',teta)
    405424        ENDIF
    406425
     
    424443              stop
    425444          ELSE
     445!$OMP MASTER
    426446              IF (guide_v) vnat1(:,jjbv:jjev,:)=vnat2(:,jjbv:jjev,:)
    427447              IF (guide_u) unat1(:,jjbu:jjeu,:)=unat2(:,jjbu:jjeu,:)
     
    430450              IF (guide_plevs.EQ.2) pnat1(:,jjbu:jjeu,:)=pnat2(:,jjbu:jjeu,:)
    431451              IF (guide_P.OR.guide_plevs.EQ.1) psnat1(:,jjbu:jjeu)=psnat2(:,jjbu:jjeu)
     452!$OMP END MASTER
     453!$OMP BARRIER
    432454              step_rea=step_rea+1
    433455              itau_test=itau
     
    435457                    'apres ',count_no_rea,' non lectures'
    436458              IF (guide_2D) THEN
     459!$OMP MASTER
    437460                  CALL guide_read2D(step_rea)
     461!$OMP END MASTER
     462!$OMP BARRIER
    438463              ELSE
     464!$OMP MASTER
    439465                  CALL guide_read(step_rea)
     466!$OMP END MASTER
     467!$OMP BARRIER
    440468              ENDIF
    441469              count_no_rea=0
     
    460488    ENDIF
    461489
    462 !-----------------------------------------------------------------------
     490!    CALL WriteField_u('ucov_guide',ucov)
     491!    CALL WriteField_v('vcov_guide',vcov)
     492!    CALL WriteField_u('teta_guide',teta)
     493!    CALL WriteField_u('masse_guide',masse)
     494   
     495   
     496        !-----------------------------------------------------------------------
    463497!   Ajout des champs de guidage
    464498!-----------------------------------------------------------------------
     
    473507          CALL exner_milieu_loc(ip1jmp1,ps,p,beta,pks,pk,pkf)
    474508        endif
     509!$OMP BARRIER       
    475510        unskap=1./kappa
     511!$OMP DO
    476512        DO l = 1, llm
    477513            DO j=jjbu,jjeu
     
    481517            ENDDO
    482518        ENDDO
     519!$OMP MASTER
    483520        CALL guide_out("P",jjp1,llm,p,1.)
     521!$OMP END MASTER
     522!$OMP BARRIER
    484523    ENDIF
    485524   
    486525    if (guide_u) then
    487526        if (guide_add) then
    488            f_add(ijbu:ijeu,:)=(1.-tau)*ugui1(ijbu:ijeu,:)+tau*ugui2(ijbu:ijeu,:)
     527!$OMP DO
     528          DO l=1,llm
     529           f_addu(ijbu:ijeu,l)=(1.-tau)*ugui1(ijbu:ijeu,l)+tau*ugui2(ijbu:ijeu,l)
     530          ENDDO
    489531        else
    490            f_add(ijbu:ijeu,:)=(1.-tau)*ugui1(ijbu:ijeu,:)+tau*ugui2(ijbu:ijeu,:)-ucov(ijbu:ijeu,:)
     532!$OMP DO
     533          DO l=1,llm
     534           f_addu(ijbu:ijeu,l)=(1.-tau)*ugui1(ijbu:ijeu,l)+tau*ugui2(ijbu:ijeu,l)-ucov(ijbu:ijeu,l)
     535          ENDDO
    491536        endif
    492 
    493         if (guide_zon) CALL guide_zonave_u(1,llm,f_add)
    494         CALL guide_addfield_u(llm,f_add,alpha_u)
    495         IF (f_out) CALL guide_out("U",jjp1,llm,f_add(:,:),factt)
    496         ucov(ijbu:ijeu,:)=ucov(ijbu:ijeu,:)+f_add(ijbu:ijeu,:)
     537   
     538!        CALL WriteField_u('f_addu',f_addu)
     539
     540        if (guide_zon) CALL guide_zonave_u(1,llm,f_addu)
     541        CALL guide_addfield_u(llm,f_addu,alpha_u)
     542!        CALL WriteField_u('f_addu',f_addu)
     543!        CALL WriteField_u('alpha_u',alpha_u)
     544!$OMP MASTER
     545        IF (f_out) CALL guide_out("U",jjp1,llm,f_addu(:,:),factt)
     546!$OMP END MASTER
     547!$OMP BARRIER
     548
     549!$OMP DO
     550        DO l=1,llm
     551          ucov(ijbu:ijeu,l)=ucov(ijbu:ijeu,l)+f_addu(ijbu:ijeu,l)
     552        ENDDO
     553
    497554    endif
    498555
    499556    if (guide_T) then
    500557        if (guide_add) then
    501            f_add(ijbu:ijeu,:)=(1.-tau)*tgui1(ijbu:ijeu,:)+tau*tgui2(ijbu:ijeu,:)
     558!$OMP DO
     559          DO l=1,llm
     560            f_addu(ijbu:ijeu,l)=(1.-tau)*tgui1(ijbu:ijeu,l)+tau*tgui2(ijbu:ijeu,l)
     561          ENDDO
    502562        else
    503            f_add(ijbu:ijeu,:)=(1.-tau)*tgui1(ijbu:ijeu,:)+tau*tgui2(ijbu:ijeu,:)-teta(ijbu:ijeu,:)
     563!$OMP DO
     564          DO l=1,llm
     565           f_addu(ijbu:ijeu,l)=(1.-tau)*tgui1(ijbu:ijeu,l)+tau*tgui2(ijbu:ijeu,l)-teta(ijbu:ijeu,l)
     566          ENDDO
    504567        endif
    505         if (guide_zon) CALL guide_zonave_u(2,llm,f_add)
    506         CALL guide_addfield_u(llm,f_add,alpha_T)
    507         IF (f_out) CALL guide_out("T",jjp1,llm,f_add(:,:),factt)
    508         teta(ijbu:ijeu,:)=teta(ijbu:ijeu,:)+f_add(ijbu:ijeu,:)
     568        if (guide_zon) CALL guide_zonave_u(2,llm,f_addu)
     569        CALL guide_addfield_u(llm,f_addu,alpha_T)
     570!$OMP MASTER
     571        IF (f_out) CALL guide_out("T",jjp1,llm,f_addu(:,:),factt)
     572!$OMP END MASTER
     573!$OMP BARRIER
     574!$OMP DO
     575        DO l=1,llm
     576          teta(ijbu:ijeu,l)=teta(ijbu:ijeu,l)+f_addu(ijbu:ijeu,l)
     577        ENDDO
    509578    endif
    510579
    511580    if (guide_P) then
    512581        if (guide_add) then
    513            f_add(ijbu:ijeu,1)=(1.-tau)*psgui1(ijbu:ijeu)+tau*psgui2(ijbu:ijeu)
     582!$OMP MASTER
     583            f_addu(ijbu:ijeu,1)=(1.-tau)*psgui1(ijbu:ijeu)+tau*psgui2(ijbu:ijeu)
     584!$OMP END MASTER
     585!$OMP BARRIER
    514586        else
    515            f_add(ijbu:ijeu,1)=(1.-tau)*psgui1(ijbu:ijeu)+tau*psgui2(ijbu:ijeu)-ps(ijbu:ijeu)
     587!$OMP MASTER
     588            f_addu(ijbu:ijeu,1)=(1.-tau)*psgui1(ijbu:ijeu)+tau*psgui2(ijbu:ijeu)-ps(ijbu:ijeu)
     589!$OMP END MASTER
     590!$OMP BARRIER
    516591        endif
    517         if (guide_zon) CALL guide_zonave_u(2,1,f_add(ijb_u:ije_u,1))
    518         CALL guide_addfield_u(1,f_add(ijb_u:ije_u,1),alpha_P)
    519         IF (f_out) CALL guide_out("SP",jjp1,1,f_add(1:ip1jmp1,1),factt)
    520         ps(ijbu:ijeu)=ps(ijbu:ijeu)+f_add(ijbu:ijeu,1)
     592        if (guide_zon) CALL guide_zonave_u(2,1,f_addu(ijb_u:ije_u,1))
     593        CALL guide_addfield_u(1,f_addu(ijb_u:ije_u,1),alpha_P)
     594!$OMP MASTER
     595        IF (f_out) CALL guide_out("SP",jjp1,1,f_addu(1:ip1jmp1,1),factt)
     596!$OMP END MASTER
     597!$OMP BARRIER
     598!$OMP MASTER
     599        ps(ijbu:ijeu)=ps(ijbu:ijeu)+f_addu(ijbu:ijeu,1)
     600!$OMP END MASTER
     601!$OMP BARRIER
    521602        CALL pression_loc(ijnb_u,ap,bp,ps,p)
    522603        CALL massdair_loc(p,masse)
     604!$OMP BARRIER
    523605    endif
    524606
    525607    if (guide_Q) then
    526608        if (guide_add) then
    527            f_add(ijbu:ijeu,:)=(1.-tau)*qgui1(ijbu:ijeu,:)+tau*qgui2(ijbu:ijeu,:)
     609!$OMP DO
     610          DO l=1,llm
     611            f_addu(ijbu:ijeu,l)=(1.-tau)*qgui1(ijbu:ijeu,l)+tau*qgui2(ijbu:ijeu,l)
     612          ENDDO
    528613        else
    529            f_add(ijbu:ijeu,:)=(1.-tau)*qgui1(ijbu:ijeu,:)+tau*qgui2(ijbu:ijeu,:)-q(ijbu:ijeu,:)
     614!$OMP DO
     615          DO l=1,llm
     616            f_addu(ijbu:ijeu,l)=(1.-tau)*qgui1(ijbu:ijeu,l)+tau*qgui2(ijbu:ijeu,l)-q(ijbu:ijeu,l)
     617          ENDDO
    530618        endif
    531         if (guide_zon) CALL guide_zonave_u(2,llm,f_add)
    532         CALL guide_addfield_u(llm,f_add,alpha_Q)
    533         IF (f_out) CALL guide_out("Q",jjp1,llm,f_add(:,:),factt)
    534         q(ijbu:ijeu,:)=q(ijbu:ijeu,:)+f_add(ijbu:ijeu,:)
     619        if (guide_zon) CALL guide_zonave_u(2,llm,f_addu)
     620        CALL guide_addfield_u(llm,f_addu,alpha_Q)
     621!$OMP MASTER
     622        IF (f_out) CALL guide_out("Q",jjp1,llm,f_addu(:,:),factt)
     623!$OMP END MASTER
     624!$OMP BARRIER
     625
     626!$OMP DO
     627        DO l=1,llm
     628          q(ijbu:ijeu,l)=q(ijbu:ijeu,l)+f_addu(ijbu:ijeu,l)
     629        ENDDO
    535630    endif
    536631
    537632    if (guide_v) then
    538633        if (guide_add) then
    539            f_add(ijbv:ijev,:)=(1.-tau)*vgui1(ijbv:ijev,:)+tau*vgui2(ijbv:ijev,:)
     634!$OMP DO
     635          DO l=1,llm
     636             f_addv(ijbv:ijev,l)=(1.-tau)*vgui1(ijbv:ijev,l)+tau*vgui2(ijbv:ijev,l)
     637          ENDDO
     638
    540639        else
    541            f_add(ijbv:ijev,:)=(1.-tau)*vgui1(ijbv:ijev,:)+tau*vgui2(ijbv:ijev,:)-vcov(ijbv:ijev,:)
     640!$OMP DO
     641          DO l=1,llm
     642            f_addv(ijbv:ijev,l)=(1.-tau)*vgui1(ijbv:ijev,l)+tau*vgui2(ijbv:ijev,l)-vcov(ijbv:ijev,l)
     643          ENDDO
     644
    542645        endif
     646!        CALL WriteField_v('f_addv',f_addv)       
     647   
     648        if (guide_zon) CALL guide_zonave_v(2,jjm,llm,f_addv(ijb_v:ije_v,:))
     649!        CALL WriteField_v('f_addv',f_addv)       
    543650       
    544         if (guide_zon) CALL guide_zonave_v(2,jjm,llm,f_add(ijb_v:ije_v,:))
    545         CALL guide_addfield_v(llm,f_add(ijb_v:ije_v,:),alpha_v)
    546         IF (f_out) CALL guide_out("V",jjm,llm,f_add(1:ip1jm,:),factt)
    547         vcov(ijbv:ijev,:)=vcov(ijbv:ijev,:)+f_add(ijbv:ijev,:)
     651        CALL guide_addfield_v(llm,f_addv(ijb_v:ije_v,:),alpha_v)
     652!        CALL WriteField_v('f_addv',f_addv)       
     653!        CALL WriteField_v('alpha_v',alpha_v)       
     654!$OMP MASTER
     655        IF (f_out) CALL guide_out("V",jjm,llm,f_addv(1:ip1jm,:),factt)
     656!$OMP END MASTER
     657!$OMP BARRIER
     658!        CALL WriteField_v('f_addv',f_addv)       
     659
     660!$OMP DO
     661        DO l=1,llm
     662          vcov(ijbv:ijev,l)=vcov(ijbv:ijev,l)+f_addv(ijbv:ijev,l)
     663        ENDDO
    548664    endif
     665
     666!    CALL WriteField_u('ucov_guide',ucov)
     667!    CALL WriteField_v('vcov_guide',vcov)
     668!    CALL WriteField_u('teta_guide',teta)
     669!    CALL WriteField_u('masse_guide',masse)
    549670
    550671  END SUBROUTINE guide_main
     
    566687    INTEGER :: l
    567688
     689!$OMP DO
    568690    DO l=1,vsize
    569691      field(ijbu:ijeu,l)=alpha(ijbu:ijeu)*field(ijbu:ijeu,l)*alpha_pcor(l)
     
    588710    INTEGER :: l
    589711
     712!$OMP DO
    590713    DO l=1,vsize
    591714      field(ijbv:ijev,l)=alpha(ijbv:ijev)*field(ijbv:ijev,l)*alpha_pcor(l)
     
    612735    ! Local variables
    613736    LOGICAL, SAVE                :: first=.TRUE.
     737!$OMP THREADPRIVATE(first)
     738
    614739    INTEGER, DIMENSION (2), SAVE :: imin, imax ! averaging domain
     740!$OMP THREADPRIVATE(imin,imax)   
    615741    INTEGER                      :: i,j,l,ij
    616742    REAL, DIMENSION (iip1)       :: lond       ! longitude in Deg.
     
    636762    ENDIF
    637763
    638     fieldm=0.
    639    
     764   
     765!$OMP DO
    640766      DO l=1,vsize
     767        fieldm(:,l)=0.
    641768      ! Compute zonal average
    642769
     
    680807    ! Local variables
    681808    LOGICAL, SAVE                :: first=.TRUE.
     809!$OMP THREADPRIVATE(first)
    682810    INTEGER, DIMENSION (2), SAVE :: imin, imax ! averaging domain
     811!$OMP THREADPRIVATE(imin, imax)
    683812    INTEGER                      :: i,j,l,ij
    684813    REAL, DIMENSION (iip1)       :: lond       ! longitude in Deg.
     
    704833    ENDIF
    705834
    706     fieldm=0.
    707    
     835!$OMP DO
    708836      DO l=1,vsize
    709837      ! Compute zonal average
     838          fieldm(:,l)=0.
    710839          DO j=jjbv,jjev
    711840              DO i=imin(typ),imax(typ)
     
    729858!=======================================================================
    730859  SUBROUTINE guide_interp(psi,teta)
    731   USE parallel
     860  USE parallel_lmdz
    732861  USE mod_hallo
    733862  USE Bands
     
    744873
    745874  LOGICAL, SAVE                      :: first=.TRUE.
     875!$OMP THREADPRIVATE(first)
    746876  ! Variables pour niveaux pression:
    747   REAL, DIMENSION (iip1,jjb_u:jje_u,nlevnc) :: plnc1,plnc2 !niveaux pression guidage
    748   REAL, DIMENSION (iip1,jjb_u:jje_u,llm)    :: plunc,plsnc !niveaux pression modele
    749   REAL, DIMENSION (iip1,jjb_v:jje_v,llm)     :: plvnc       !niveaux pression modele
    750   REAL, DIMENSION (iip1,jjb_u:jje_u,llmp1)  :: p           ! pression intercouches
    751   REAL, DIMENSION (iip1,jjb_u:jje_u,llm)    :: pls, pext   ! var intermediaire
    752   REAL, DIMENSION (iip1,jjb_u:jje_u,llm)    :: pbarx
    753   REAL, DIMENSION (iip1,jjb_v:jje_v,llm)     :: pbary
     877  REAL, ALLOCATABLE, SAVE, DIMENSION (:,:,:) :: plnc1,plnc2 !niveaux pression guidage
     878  REAL, ALLOCATABLE, SAVE,DIMENSION (:,:,:)    :: plunc,plsnc !niveaux pression modele
     879  REAL, ALLOCATABLE, SAVE,DIMENSION (:,:,:)     :: plvnc       !niveaux pression modele
     880  REAL, ALLOCATABLE, SAVE,DIMENSION (:,:,:)  :: p           ! pression intercouches
     881  REAL, ALLOCATABLE, SAVE,DIMENSION (:,:,:)    :: pls, pext   ! var intermediaire
     882  REAL, ALLOCATABLE, SAVE,DIMENSION (:,:,:)    :: pbarx
     883  REAL, ALLOCATABLE, SAVE,DIMENSION (:,:,:)     :: pbary
    754884  ! Variables pour fonction Exner (P milieu couche)
    755   REAL, DIMENSION (iip1,jjb_u:jje_u,llm)    :: pk, pkf
    756   REAL, DIMENSION (iip1,jjb_u:jje_u,llm)    :: alpha, beta
    757   REAL, DIMENSION (iip1,jjb_u:jje_u)        :: pks   
     885  REAL, ALLOCATABLE, SAVE,DIMENSION (:,:,:)    :: pk, pkf
     886  REAL, ALLOCATABLE, SAVE, DIMENSION (:,:,:)    :: alpha, beta
     887  REAL ,ALLOCATABLE, SAVE, DIMENSION (:,:)        :: pks   
    758888  REAL                               :: unskap
    759889  ! Pression de vapeur saturante
    760   REAL, DIMENSION (ijb_u:ije_u,llm)      :: qsat
     890  REAL, ALLOCATABLE, SAVE,DIMENSION (:,:)      :: qsat
    761891  !Variables intermediaires interpolation
    762   REAL, DIMENSION (iip1,jjb_u:jje_u,llm)    :: zu1,zu2
    763   REAL, DIMENSION (iip1,jjb_v:jje_v,llm)     :: zv1,zv2
     892  REAL, ALLOCATABLE, SAVE,DIMENSION (:,:,:)    :: zu1,zu2
     893  REAL, ALLOCATABLE, SAVE,DIMENSION (:,:,:)     :: zv1,zv2
    764894 
    765895  INTEGER                            :: i,j,l,ij
    766   TYPE(Request) :: Req 
    767 
     896  TYPE(Request),SAVE :: Req 
     897!$OMP THREADPRIVATE(Req)
    768898    print *,'Guide: conversion variables guidage'
    769899! -----------------------------------------------------------------
    770900! Calcul des niveaux de pression champs guidage (pour T et Q)
    771901! -----------------------------------------------------------------
     902    IF (first) THEN
     903!$OMP MASTER
     904      ALLOCATE(plnc1(iip1,jjb_u:jje_u,nlevnc) )   
     905      ALLOCATE(plnc2(iip1,jjb_u:jje_u,nlevnc) )   
     906      ALLOCATE(plunc(iip1,jjb_u:jje_u,llm) )   
     907      ALLOCATE(plsnc(iip1,jjb_u:jje_u,llm) )   
     908      ALLOCATE(plvnc(iip1,jjb_v:jje_v,llm) )   
     909      ALLOCATE(p(iip1,jjb_u:jje_u,llmp1) )   
     910      ALLOCATE(pls(iip1,jjb_u:jje_u,llm) )   
     911      ALLOCATE(pext(iip1,jjb_u:jje_u,llm) )   
     912      ALLOCATE(pbarx(iip1,jjb_u:jje_u,llm) )   
     913      ALLOCATE(pbary(iip1,jjb_v:jje_v,llm) )   
     914      ALLOCATE(pk(iip1,jjb_u:jje_u,llm) )   
     915      ALLOCATE(pkf(iip1,jjb_u:jje_u,llm)  )   
     916      ALLOCATE(alpha(iip1,jjb_u:jje_u,llm) )   
     917      ALLOCATE(beta(iip1,jjb_u:jje_u,llm) )   
     918      ALLOCATE(pks (iip1,jjb_u:jje_u) )   
     919      ALLOCATE(qsat(ijb_u:ije_u,llm) )   
     920      ALLOCATE(zu1(iip1,jjb_u:jje_u,llm) )   
     921      ALLOCATE(zu2(iip1,jjb_u:jje_u,llm) )   
     922      ALLOCATE(zv1(iip1,jjb_v:jje_v,llm) )   
     923      ALLOCATE(zv2(iip1,jjb_v:jje_v,llm) )
     924!$OMP END MASTER
     925!$OMP BARRIER
     926    ENDIF       
     927
     928   
     929   
     930   
    772931    IF (guide_plevs.EQ.0) THEN
     932!$OMP DO
    773933        DO l=1,nlevnc
    774934            DO j=jjbu,jjeu
     
    783943    if (first) then
    784944        first=.FALSE.
     945!$OMP MASTER
    785946        print*,'Guide: verification ordre niveaux verticaux'
    786947        print*,'LMDZ :'
     
    815976            enddo
    816977        endif
     978!$OMP END MASTER
    817979    endif
    818980   
     
    823985!    ....  Calcul de pls , pression au milieu des couches ,en Pascals
    824986    IF (guide_plevs.EQ.1) THEN
     987!$OMP DO
    825988        DO l=1,llm
    826989            DO j=jjbu,jjeu
     
    8381001        endif
    8391002        unskap=1./kappa
     1003!$OMP BARRIER
     1004!$OMP DO
    8401005        DO l = 1, llm
    8411006            DO j=jjbu,jjeu
     
    8481013
    8491014!   calcul des pressions pour les grilles u et v
     1015!$OMP DO
    8501016    do l=1,llm
    8511017        do j=jjbu,jjeu
     
    8581024     CALL Register_Hallo_u(pext,llm,1,2,2,1,Req)
    8591025     CALL SendRequest(Req)
     1026!$OMP BARRIER
    8601027     CALL WaitRequest(Req)
     1028!$OMP BARRIER
    8611029
    8621030    call massbar_loc(pext, pbarx, pbary )
     1031!$OMP BARRIER
     1032!$OMP DO
    8631033    do l=1,llm
    8641034        do j=jjbu,jjeu
     
    8691039        enddo
    8701040    enddo
     1041!$OMP DO
    8711042    do l=1,llm
    8721043        do j=jjbv,jjev
     
    8821053! -----------------------------------------------------------------
    8831054    if (guide_P) then
     1055!$OMP MASTER
    8841056        do j=jjbu,jjeu
    8851057            do i=1,iim
     
    8911063            psgui2(iip1*j)=psnat2(1,j)
    8921064        enddo
     1065!$OMP END MASTER
     1066!$OMP BARRIER
    8931067    endif
    8941068
     
    8961070        ! Calcul des nouvelles valeurs des niveaux de pression du guidage
    8971071        IF (guide_plevs.EQ.1) THEN
     1072!$OMP DO
    8981073            DO l=1,nlevnc
    8991074                DO j=jjbu,jjeu
     
    9051080            ENDDO
    9061081        ELSE IF (guide_plevs.EQ.2) THEN
     1082!$OMP DO
    9071083            DO l=1,nlevnc
    9081084                DO j=jjbu,jjeu
     
    9161092
    9171093        ! Interpolation verticale
     1094!$OMP MASTER
    9181095        CALL pres2lev(tnat1(:,jjbu:jjeu,:),zu1(:,jjbu:jjeu,:),nlevnc,llm,           &
    9191096                    plnc1(:,jjbu:jjeu,:),plsnc(:,jjbu:jjeu,:),iip1,jjnu,invert_p)
    9201097        CALL pres2lev(tnat2(:,jjbu:jjeu,:),zu2(:,jjbu:jjeu,:),nlevnc,llm,           &
    9211098                    plnc2(:,jjbu:jjeu,:),plsnc(:,jjbu:jjeu,:),iip1,jjnu,invert_p)
    922 
     1099!$OMP END MASTER
     1100!$OMP BARRIER
    9231101        ! Conversion en variables GCM
     1102!$OMP DO
    9241103        do l=1,llm
    9251104            do j=jjbu,jjeu
     
    9581137        ! Calcul des nouvelles valeurs des niveaux de pression du guidage
    9591138        IF (guide_plevs.EQ.1) THEN
     1139!$OMP DO
    9601140            DO l=1,nlevnc
    9611141                DO j=jjbu,jjeu
     
    9671147            ENDDO
    9681148        ELSE IF (guide_plevs.EQ.2) THEN
     1149!$OMP DO
    9691150            DO l=1,nlevnc
    9701151                DO j=jjbu,jjeu
     
    9781159
    9791160        ! Interpolation verticale
     1161!$OMP MASTER
    9801162        CALL pres2lev(qnat1(:,jjbu:jjeu,:),zu1(:,jjbu:jjeu,:),nlevnc,llm,             &
    9811163                      plnc1(:,jjbu:jjeu,:),plsnc(:,jjbu:jjeu,:),iip1,jjnu,invert_p)
    9821164        CALL pres2lev(qnat2(:,jjbu:jjeu,:),zu2(:,jjbu:jjeu,:),nlevnc,llm,             &
    9831165                      plnc2(:,jjbu:jjeu,:),plsnc(:,jjbu:jjeu,:),iip1,jjnu,invert_p)
     1166!$OMP END MASTER
     1167!$OMP BARRIER
    9841168
    9851169        ! Conversion en variables GCM
    9861170        ! On suppose qu'on a la bonne variable dans le fichier de guidage:
    9871171        ! Hum.Rel si guide_hr, Hum.Spec. sinon.
     1172!$OMP DO
    9881173        do l=1,llm
    9891174            do j=jjbu,jjeu
     
    10101195        enddo
    10111196        IF (guide_hr) THEN
    1012             CALL q_sat(iip1*jjnu*llm,teta(:,jjbu:jjeu,:)*pk(:,jjbu:jjeu,:)/cpp,       &
    1013                        plsnc(:,jjbu:jjeu,:),qsat(ijbu:ijeu,:))
    1014             qgui1(ijbu:ijeu,:)=qgui1(ijbu:ijeu,:)*qsat(ijbu:ijeu,:)*0.01 !hum. rel. en %
    1015             qgui2(ijbu:ijeu,:)=qgui2(ijbu:ijeu,:)*qsat(ijbu:ijeu,:)*0.01
     1197!$OMP DO
     1198          do l=1,llm
     1199            CALL q_sat(iip1*jjnu,teta(:,jjbu:jjeu,l)*pk(:,jjbu:jjeu,l)/cpp,       &
     1200                       plsnc(:,jjbu:jjeu,l),qsat(ijbu:ijeu,l))
     1201            qgui1(ijbu:ijeu,l)=qgui1(ijbu:ijeu,l)*qsat(ijbu:ijeu,l)*0.01 !hum. rel. en %
     1202            qgui2(ijbu:ijeu,l)=qgui2(ijbu:ijeu,l)*qsat(ijbu:ijeu,l)*0.01
     1203          enddo
     1204
    10161205        ENDIF
    10171206    ENDIF
     
    10201209        ! Calcul des nouvelles valeurs des niveaux de pression du guidage
    10211210        IF (guide_plevs.EQ.1) THEN
     1211!$OMP DO
    10221212            DO l=1,nlevnc
    10231213                DO j=jjbu,jjeu
     
    10331223            ENDDO
    10341224        ELSE IF (guide_plevs.EQ.2) THEN
     1225!$OMP DO
    10351226            DO l=1,nlevnc
    10361227                DO j=jjbu,jjeu
     
    10481239       
    10491240        ! Interpolation verticale
     1241!$OMP MASTER
    10501242        CALL pres2lev(unat1(:,jjbu:jjeu,:),zu1(:,jjbu:jjeu,:),nlevnc,llm,            &
    10511243                      plnc1(:,jjbu:jjeu,:),plunc(:,jjbu:jjeu,:),iip1,jjnu,invert_p)
    10521244        CALL pres2lev(unat2(:,jjbu:jjeu,:),zu2(:,jjbu:jjeu,:),nlevnc,llm,            &
    10531245                      plnc2(:,jjbu:jjeu,:),plunc(:,jjbu:jjeu,:),iip1,jjnu,invert_p)
     1246!$OMP END MASTER
     1247!$OMP BARRIER
    10541248
    10551249        ! Conversion en variables GCM
     1250!$OMP DO
    10561251        do l=1,llm
    10571252            do j=jjbu,jjeu
     
    10851280         CALL Register_Hallo_u(psnat2,1,1,2,2,1,Req)
    10861281         CALL SendRequest(Req)
     1282!$OMP BARRIER
    10871283         CALL WaitRequest(Req)
     1284!$OMP BARRIER
     1285!$OMP DO
    10881286            DO l=1,nlevnc
    10891287                DO j=jjbv,jjev
     
    11001298         CALL Register_Hallo_u(pnat2,llm,1,2,2,1,Req)
    11011299         CALL SendRequest(Req)
     1300!$OMP BARRIER
    11021301         CALL WaitRequest(Req)
     1302!$OMP BARRIER
     1303!$OMP DO
    11031304            DO l=1,nlevnc
    11041305                DO j=jjbv,jjev
     
    11131314        ENDIF
    11141315        ! Interpolation verticale
     1316
     1317!$OMP MASTER
    11151318        CALL pres2lev(vnat1(:,jjbv:jjev,:),zv1(:,jjbv:jjev,:),nlevnc,llm,             &
    11161319                      plnc1(:,jjbv:jjev,:),plvnc(:,jjbv:jjev,:),iip1,jjnv,invert_p)
    11171320        CALL pres2lev(vnat2(:,jjbv:jjev,:),zv2(:,jjbv:jjev,:),nlevnc,llm,             &
    11181321                      plnc2(:,jjbv:jjev,:),plvnc(:,jjbv:jjev,:),iip1,jjnv,invert_p)
     1322!$OMP END MASTER
     1323!$OMP BARRIER
    11191324        ! Conversion en variables GCM
     1325!$OMP DO
    11201326        do l=1,llm
    11211327            do j=jjbv,jjev
     
    11351341
    11361342!=======================================================================
    1137   SUBROUTINE tau2alpha(typ,pim,pjm,factt,taumin,taumax,alpha)
     1343  SUBROUTINE tau2alpha(typ,pim,jjb,jje,factt,taumin,taumax,alpha)
    11381344
    11391345! Calcul des constantes de rappel alpha (=1/tau)
     
    11491355! input arguments :
    11501356    INTEGER, INTENT(IN) :: typ    ! u(2),v(3), ou scalaire(1)
    1151     INTEGER, INTENT(IN) :: pim,pjm ! dimensions en lat, lon
     1357    INTEGER, INTENT(IN) :: pim ! dimensions en lon
     1358    INTEGER, INTENT(IN) :: jjb,jje ! dimensions en lat
    11521359    REAL, INTENT(IN)    :: factt   ! pas de temps en fraction de jour
    11531360    REAL, INTENT(IN)    :: taumin,taumax
    11541361! output arguments:
    1155     REAL, DIMENSION(pim,pjm), INTENT(OUT) :: alpha
     1362    REAL, DIMENSION(pim,jjb:jje), INTENT(OUT) :: alpha
    11561363 
    11571364!  local variables:
     
    11751382!-----------------------------------------------------------------------
    11761383        IF (guide_reg) THEN
    1177             do j=1,pjm
     1384            do j=jjb,jje
    11781385                do i=1,pim
    11791386                    if (typ.eq.2) then
     
    12711478        ENDIF !first
    12721479
    1273         do j=1,pjm
     1480        do j=jjb,jje
    12741481            do i=1,pim
    12751482                if (typ.eq.1) then
     
    12971504            enddo
    12981505        enddo
     1506   
    12991507    ENDIF ! guide_reg
    13001508
     
    17671975!=======================================================================
    17681976  SUBROUTINE guide_out(varname,hsize,vsize,field,factt)
    1769     USE parallel
     1977    USE parallel_lmdz
    17701978    IMPLICIT NONE
    17711979
  • LMDZ5/branches/testing/libf/dyn3dmem/iniacademic_loc.F90

    r1795 r1864  
    77  USE infotrac, ONLY : nqtot
    88  USE control_mod, ONLY: day_step,planet_type
    9   USE parallel
     9  USE parallel_lmdz
    1010#ifdef CPP_IOIPSL
    1111  USE IOIPSL
  • LMDZ5/branches/testing/libf/dyn3dmem/initdynav_loc.F

    r1669 r1864  
    88       USE IOIPSL
    99#endif
    10        use parallel
     10       USE parallel_lmdz
    1111       use Write_field
    1212       use misc_mod
  • LMDZ5/branches/testing/libf/dyn3dmem/initfluxsto_p.F

    r1707 r1864  
    1010       USE IOIPSL
    1111#endif
    12        use parallel
     12       USE parallel_lmdz
    1313       use Write_field
    1414       use misc_mod
  • LMDZ5/branches/testing/libf/dyn3dmem/inithist_loc.F

    r1669 r1864  
    88       USE IOIPSL
    99#endif
    10        use parallel
     10       USE parallel_lmdz
    1111       use Write_field
    1212       use misc_mod
  • LMDZ5/branches/testing/libf/dyn3dmem/integrd_loc.F

    r1707 r1864  
    55     $  (  nq,vcovm1,ucovm1,tetam1,psm1,massem1,
    66     $     dv,du,dteta,dq,dp,vcov,ucov,teta,q,ps0,masse,phis) !,finvmaold)
    7       USE parallel
     7      USE parallel_lmdz
    88      USE control_mod
    99      USE mod_filtreg_p
  • LMDZ5/branches/testing/libf/dyn3dmem/integrd_mod.F90

    r1669 r1864  
    1111  SUBROUTINE integrd_allocate
    1212  USE bands
    13   USE allocate_field
    14   USE parallel
    15   USE dimensions
     13  USE allocate_field_mod
     14  USE parallel_lmdz
     15  USE dimensions_mod
    1616  USE advect_new_mod,ONLY : advect_new_allocate
    1717  IMPLICIT NONE
     
    2828 
    2929  SUBROUTINE integrd_switch_caldyn(dist)
    30   USE allocate_field
     30  USE allocate_field_mod
    3131  USE bands
    32   USE parallel
     32  USE parallel_lmdz
    3333  IMPLICIT NONE
    3434    TYPE(distrib),INTENT(IN) :: dist
  • LMDZ5/branches/testing/libf/dyn3dmem/laplacien_gam_loc.F

    r1669 r1864  
    1111c      divgra     est  un argument  de sortie pour le s-prog
    1212c
    13       USE parallel
     13      USE parallel_lmdz
    1414      IMPLICIT NONE
    1515c
  • LMDZ5/branches/testing/libf/dyn3dmem/laplacien_loc.F

    r1669 r1864  
    99c      divgra     est  un argument  de sortie pour le s-prog
    1010c
    11       USE parallel
     11      USE parallel_lmdz
    1212      USE mod_filtreg_p
    1313      IMPLICIT NONE
  • LMDZ5/branches/testing/libf/dyn3dmem/laplacien_rot_loc.F

    r1669 r1864  
    1010c      rotout           est  un argument  de sortie pour le s-prog
    1111c
    12       USE parallel
     12      USE parallel_lmdz
    1313      USE mod_filtreg_p
    1414      IMPLICIT NONE
  • LMDZ5/branches/testing/libf/dyn3dmem/laplacien_rotgam_loc.F

    r1669 r1864  
    99c      divgra     est  un argument  de sortie pour le s-prog
    1010c
    11       USE parallel
     11      USE parallel_lmdz
    1212      IMPLICIT NONE
    1313c
  • LMDZ5/branches/testing/libf/dyn3dmem/leapfrog_loc.F

    r1795 r1864  
    1313
    1414       USE misc_mod
    15        USE parallel
     15       USE parallel_lmdz
    1616       USE times
    1717       USE mod_hallo
     
    2727       USE mod_filtreg_p
    2828       USE write_field_loc
    29        USE allocate_field
     29       USE allocate_field_mod
    3030       USE call_dissip_mod, ONLY : call_dissip
    3131       USE call_calfis_mod, ONLY : call_calfis
     
    307307#ifdef CPP_IOIPSL
    308308      if (ok_guide) then
    309 !$OMP MASTER
    310309        call guide_main(itau,ucov,vcov,teta,q,masse,ps)
    311 !$OMP END MASTER
    312310!$OMP BARRIER
    313311      endif
     
    451449      IF (ok_start_timer) THEN
    452450        CALL InitTime
    453 !        ok_start_timer=.FALSE.
    454         ok_start_timer=.TRUE.
     451        ok_start_timer=.FALSE.
    455452      ENDIF     
    456453c$OMP END MASTER     
     
    626623      True_itau=True_itau+1
    627624
    628 c$OMP MASTER     
    629       PRINT *,"---> itau=",itau,"  True_itau=",True_itau
    630 c$OMP END MASTER
    631 
    632625c$OMP MASTER
    633626      IF (prt_level>9) THEN
     
    10881081
    10891082      IF(iflag_phys.EQ.2) THEN ! "Newtonian" case
     1083c$OMP MASTER
     1084         if (FirstPhysic) then
     1085           ok_start_timer=.TRUE.
     1086           FirstPhysic=.false.
     1087         endif
     1088c$OMP END MASTER
     1089
     1090
    10901091c   Calcul academique de la physique = Rappel Newtonien + fritcion
    10911092c   --------------------------------------------------------------
     
    13901391c$OMP MASTER
    13911392            call allgather_timer_average
    1392 
     1393      call barrier
    13931394      if (mpi_rank==0) then
    13941395       
     
    14261427       
    14271428      endif 
    1428      
     1429      CALL barrier
    14291430      print *,'Taille du Buffer MPI (REAL*8)',MaxBufferSize
    14301431      print *,'Taille du Buffer MPI utilise (REAL*8)',MaxBufferSize_Used
  • LMDZ5/branches/testing/libf/dyn3dmem/leapfrog_mod.F90

    r1669 r1864  
    3939  SUBROUTINE leapfrog_allocate
    4040  USE bands
    41   USE allocate_field
    42   USE parallel
    43   USE dimensions
     41  USE allocate_field_mod
     42  USE parallel_lmdz
     43  USE dimensions_mod
    4444  USE infotrac
    4545  USE caldyn_mod,ONLY : caldyn_allocate
     
    9494 
    9595  SUBROUTINE leapfrog_switch_caldyn(dist)
    96   USE allocate_field
     96  USE allocate_field_mod
    9797  USE bands
    98   USE parallel
     98  USE parallel_lmdz
    9999  USE caldyn_mod,ONLY : caldyn_switch_caldyn
    100100  USE integrd_mod,ONLY : integrd_switch_caldyn
     
    143143 
    144144  SUBROUTINE leapfrog_switch_dissip(dist)
    145   USE allocate_field
     145  USE allocate_field_mod
    146146  USE bands
    147   USE parallel
     147  USE parallel_lmdz
    148148  USE call_dissip_mod,ONLY : call_dissip_switch_dissip
    149149  IMPLICIT NONE
  • LMDZ5/branches/testing/libf/dyn3dmem/massbar_loc.F

    r1669 r1864  
    1313c     
    1414c
    15       USE parallel
     15      USE parallel_lmdz
    1616      IMPLICIT NONE
    1717c
  • LMDZ5/branches/testing/libf/dyn3dmem/massbarxy_loc.F

    r1669 r1864  
    11      SUBROUTINE massbarxy_loc(  masse, massebxy )
    2       USE parallel
     2      USE parallel_lmdz
    33      implicit none
    44c **********************************************************************
  • LMDZ5/branches/testing/libf/dyn3dmem/massdair_loc.F

    r1669 r1864  
    11      SUBROUTINE massdair_loc( p, masse )
    2       USE parallel
     2      USE parallel_lmdz
    33c
    44c *********************************************************************
  • LMDZ5/branches/testing/libf/dyn3dmem/mod_const_mpi.F90

    r1707 r1864  
    2222    INCLUDE 'mpif.h'
    2323#endif
     24
    2425    INTEGER             :: ierr
    2526    INTEGER             :: comp_id
     
    5152 
    5253  SUBROUTINE Init_mpi
     54#ifdef CPP_XIOS
     55    USE wxios
     56#endif
    5357  IMPLICIT NONE
    5458#ifdef CPP_MPI
     
    7074      COMM_LMDZ=MPI_COMM_WORLD
    7175      MPI_REAL_LMDZ=MPI_REAL8
     76!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     77! Initialisation de XIOS
     78!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     79#ifdef CPP_XIOS
     80      CALL wxios_init("LMDZ", outcom=COMM_LMDZ)
     81#endif
    7282!$OMP END MASTER
     83#else
     84#ifdef CPP_XIOS
     85!$OMP MASTER
     86      CALL wxios_init("LMDZ")
     87!$OMP END MASTER
     88#endif
    7389#endif
    7490
  • LMDZ5/branches/testing/libf/dyn3dmem/mod_filtreg_p.F

    r1707 r1864  
    55      SUBROUTINE filtreg_p ( champ,jjb,jje, ibeg, iend, nlat, nbniv,
    66     &     ifiltre, iaire, griscal ,iter)
    7       USE Parallel, only : OMP_CHUNK
     7      USE parallel_lmdz, only : OMP_CHUNK
    88      USE mod_filtre_fft_loc
    99      USE timer_filtre
     
    216216     &                    champ_fft(1,j,1), iip1*(jje-jjb+1))
    217217#else
    218                      champ_fft(:,j,:)=
    219      &                    matmul(matrinvn(:,:,j),champ_loc(:iim,j,:))
     218                     champ_fft(:,j,1:nbniv_loc)=
     219     &                    matmul(matrinvn(:,:,j),
     220     &                    champ_loc(:iim,j,1:nbniv_loc))
    220221#endif
    221222                  ENDDO
     
    229230     &                    champ_fft(1,j,1), iip1*(jje-jjb+1))
    230231#else
    231                      champ_fft(:,j,:)=
    232      &                    matmul(matriceun(:,:,j),champ_loc(:iim,j,:))
     232                     champ_fft(:,j,1:nbniv_loc)=
     233     &                    matmul(matriceun(:,:,j),
     234     &                           champ_loc(:iim,j,1:nbniv_loc))
    233235#endif
    234236                  ENDDO
     
    242244     &                    champ_fft(1,j,1), iip1*(jje-jjb+1))
    243245#else
    244                      champ_fft(:,j,:)=
    245      &                    matmul(matricevn(:,:,j),champ_loc(:iim,j,:))
     246                     champ_fft(:,j,1:nbniv_loc)=
     247     &                    matmul(matricevn(:,:,j),           
     248     &                           champ_loc(:iim,j,1:nbniv_loc))
    246249#endif
    247250                  ENDDO
     
    259262     &                    champ_fft(1,j,1), iip1*(jje-jjb+1))
    260263#else
    261                      champ_fft(:,j,:)=
     264                     champ_fft(:,j,1:nbniv_loc)=
    262265     &                    matmul(matrinvs(:,:,j-jfiltsu+1),
    263      &                           champ_loc(:iim,j,:))
     266     &                           champ_loc(:iim,j,1:nbniv_loc))
    264267#endif
    265268                  ENDDO
     
    274277     &                    champ_fft(1,j,1), iip1*(jje-jjb+1))
    275278#else
    276                      champ_fft(:,j,:)=
     279                     champ_fft(:,j,1:nbniv_loc)=
    277280     &                    matmul(matriceus(:,:,j-jfiltsu+1),
    278      &                           champ_loc(:iim,j,:))
     281     &                           champ_loc(:iim,j,1:nbniv_loc))
    279282#endif
    280283                  ENDDO
     
    289292     &                    champ_fft(1,j,1), iip1*(jje-jjb+1))
    290293#else
    291                      champ_fft(:,j,:)=
     294                     champ_fft(:,j,1:nbniv_loc)=
    292295     &                    matmul(matricevs(:,:,j-jfiltsv+1),
    293      &                           champ_loc(:iim,j,:))
     296     &                           champ_loc(:iim,j,1:nbniv_loc))
    294297#endif
    295298                  ENDDO
     
    308311               ll_nb = 0
    309312c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    310                DO l = 1, nbniv_loc
     313               DO l = 1, nbniv
    311314                  ll_nb = ll_nb + 1
    312315                  DO j = jdfil,jffil
     
    324327               ll_nb = 0
    325328c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    326                DO l = 1, nbniv_loc
     329               DO l = 1, nbniv
    327330                  ll_nb = ll_nb + 1
    328331                  DO j = jdfil,jffil
  • LMDZ5/branches/testing/libf/dyn3dmem/mod_hallo.F90

    r1669 r1864  
    11module mod_Hallo
    2 USE parallel
     2USE parallel_lmdz
    33implicit none
    44  logical,save :: use_mpi_alloc
    5   integer, parameter :: MaxRequest=200
    65  integer, parameter :: MaxProc=512
    7   integer, parameter :: MaxBufferSize=1024*1024*100
     6  integer, parameter :: DefaultMaxBufferSize=1024*1024*100
     7  integer, SAVE :: MaxBufferSize=0
    88  integer, parameter :: ListSize=1000
    99 
     
    2828  type request_SR
    2929    integer :: NbRequest=0
     30    integer :: NbRequestMax=0
    3031    integer :: BufferSize
    3132    integer :: Pos
    3233    integer :: Index
    33     type(Hallo),dimension(MaxRequest) :: Hallo
     34    type(Hallo), POINTER :: Hallo(:)
    3435    integer :: MSG_Request
    3536  end type request_SR
     
    6364
    6465  subroutine Init_mod_hallo
    65   USE dimensions
     66  USE dimensions_mod
     67  USE IOIPSL
    6668    implicit none
    6769    integer :: jj_nb_gather(0:mpi_size-1)
     
    7072    Buffer_Pos(Index_Pos)=1
    7173    MaxBufferSize_Used=0
    72 
     74!$OMP MASTER     
     75    MaxBufferSize=DefaultMaxBufferSize
     76    CALL getin("mpi_buffer_size",MaxBufferSize)
     77!$OMP END MASTER
     78!$OMP BARRIER
     79   
    7380    IF (use_mpi_alloc .AND. using_mpi) THEN
    7481      CALL create_global_mpi_buffer
     
    7784    ENDIF
    7885     
     86!$OMP MASTER     
    7987     jj_nb_gather(:)=0
    8088     jj_nb_gather(0)=jjp1
    8189     
    8290     CALL create_distrib(jj_nb_gather,distrib_gather)
     91!$OMP END MASTER
     92!$OMP BARRIER
    8393
    8494  end subroutine init_mod_hallo
     
    176186 
    177187 
    178   subroutine Init_Hallo(Field,Stride,NbLevel,offset,size,NewHallo)
     188  subroutine New_Hallo(Field,Stride,NbLevel,offset,size,Ptr_request)
    179189    integer :: Stride
    180190    integer :: NbLevel
     
    182192    integer :: offset
    183193    real, dimension(Stride,NbLevel),target :: Field
    184     type(Hallo) :: NewHallo
    185    
     194    type(request_SR),pointer :: Ptr_request
     195    type(Hallo),POINTER :: NewHallos(:),HalloSwitch(:), NewHallo
     196   
     197    Ptr_Request%NbRequest=Ptr_Request%NbRequest+1
     198    IF(Ptr_Request%NbRequestMax==0) THEN
     199       Ptr_Request%NbRequestMax=10
     200       ALLOCATE(Ptr_Request%Hallo(Ptr_Request%NbRequestMax))
     201    ELSE IF ( Ptr_Request%NbRequest > Ptr_Request%NbRequestMax) THEN
     202      Ptr_Request%NbRequestMax=INT(Ptr_Request%NbRequestMax*1.2)
     203      ALLOCATE(NewHallos(Ptr_Request%NbRequestMax))
     204      NewHallos(1:Ptr_Request%NbRequest-1)=Ptr_Request%hallo(1:Ptr_Request%NbRequest-1)
     205      HalloSwitch=>Ptr_Request%hallo
     206      Ptr_Request%hallo=>NewHallos
     207      DEALLOCATE(HalloSwitch)
     208    ENDIF
     209   
     210    NewHallo=>Ptr_Request%hallo(Ptr_Request%NbRequest)
     211         
    186212    NewHallo%Field=>Field
    187213    NewHallo%Stride=Stride
     
    190216    NewHallo%offset=offset
    191217   
    192    
    193   end subroutine Init_Hallo
     218  end subroutine New_Hallo
    194219 
    195220  subroutine Register_SendField(Field,ij,ll,offset,size,target,a_request)
    196   USE dimensions
     221  USE dimensions_mod
    197222  implicit none
    198223
     
    204229
    205230      Ptr_Request=>a_request%RequestSend(target)
    206       Ptr_Request%NbRequest=Ptr_Request%NbRequest+1
    207       if (Ptr_Request%NbRequest>=MaxRequest) then
    208         print *,'STOP :: La taille de MaxRequest dans mod_hallo.F90 est trop petite !!!!'
    209         stop
    210       endif     
    211       call Init_Hallo(Field,ij,ll,offset,size,Ptr_request%Hallo(Ptr_Request%NbRequest))
     231
     232      call New_Hallo(Field,ij,ll,offset,size,Ptr_request)
    212233     
    213234   end subroutine Register_SendField     
    214235     
    215236  subroutine Register_RecvField(Field,ij,ll,offset,size,target,a_request)
    216   USE dimensions
     237  USE dimensions_mod
    217238  implicit none
    218239
     
    224245
    225246      Ptr_Request=>a_request%RequestRecv(target)
    226       Ptr_Request%NbRequest=Ptr_Request%NbRequest+1
    227      
    228       if (Ptr_Request%NbRequest>=MaxRequest) then
    229         print *,'STOP :: La taille de MaxRequest dans mod_hallo.F90 est trop petite !!!!'
    230         stop
    231       endif   
    232247           
    233       call Init_Hallo(Field,ij,ll,offset,size,Ptr_request%Hallo(Ptr_Request%NbRequest))
     248      call New_Hallo(Field,ij,ll,offset,size,Ptr_request)
    234249
    235250     
     
    237252 
    238253  subroutine Register_SwapField(FieldS,FieldR,ij,ll,jj_Nb_New,a_request)
    239   USE dimensions
     254  USE dimensions_mod
    240255      implicit none
    241256
     
    285300 
    286301  subroutine Register_SwapFieldHallo(FieldS,FieldR,ij,ll,jj_Nb_New,Up,Down,a_request)
    287   USE dimensions
     302  USE dimensions_mod
    288303 
    289304      implicit none
     
    338353
    339354  SUBROUTINE Register_SwapField1d_u(FieldS,FieldR,new_dist,a_request,old_dist,up,down)
    340   USE parallel
    341   USE dimensions
     355  USE parallel_lmdz
     356  USE dimensions_mod
    342357      IMPLICIT NONE
    343358   
     
    369384
    370385  SUBROUTINE Register_SwapField2d_u1d(FieldS,FieldR,new_dist,a_request,old_dist,up,down)
    371   USE parallel
    372   USE dimensions
     386  USE parallel_lmdz
     387  USE dimensions_mod
    373388    IMPLICIT NONE
    374389   
     
    403418
    404419  SUBROUTINE Register_SwapField3d_u(FieldS,FieldR,new_dist,a_request,old_dist,up,down)
    405   USE parallel
    406   USE dimensions
     420  USE parallel_lmdz
     421  USE dimensions_mod
    407422      IMPLICIT NONE
    408423   
     
    438453
    439454 SUBROUTINE Register_SwapField1d_u2d(FieldS,FieldR,new_dist,a_request,old_dist,up,down)
    440   USE parallel
    441   USE dimensions
     455  USE parallel_lmdz
     456  USE dimensions_mod
    442457
    443458      IMPLICIT NONE
     
    470485
    471486  SUBROUTINE Register_SwapField2d_u2d(FieldS,FieldR,new_dist,a_request,old_dist,up,down)
    472   USE parallel
    473   USE dimensions
     487  USE parallel_lmdz
     488  USE dimensions_mod
    474489
    475490      IMPLICIT NONE
     
    505520
    506521  SUBROUTINE Register_SwapField3d_u2d(FieldS,FieldR,new_dist,a_request,old_dist,up,down)
    507   USE parallel
    508   USE dimensions
     522  USE parallel_lmdz
     523  USE dimensions_mod
    509524      IMPLICIT NONE
    510525   
     
    544559
    545560  SUBROUTINE Register_SwapField1d_v(FieldS,FieldR,new_dist,a_request,old_dist,up,down)
    546   USE parallel
    547   USE dimensions
     561  USE parallel_lmdz
     562  USE dimensions_mod
    548563      IMPLICIT NONE
    549564   
     
    575590
    576591  SUBROUTINE Register_SwapField2d_v1d(FieldS,FieldR,new_dist,a_request,old_dist,up,down)
    577   USE parallel
    578   USE dimensions
     592  USE parallel_lmdz
     593  USE dimensions_mod
    579594      IMPLICIT NONE
    580595   
     
    609624
    610625  SUBROUTINE Register_SwapField3d_v(FieldS,FieldR,new_dist,a_request,old_dist,up,down)
    611   USE parallel
    612   USE dimensions
     626  USE parallel_lmdz
     627  USE dimensions_mod
    613628      IMPLICIT NONE
    614629   
     
    645660
    646661  SUBROUTINE Register_SwapField1d_v2d(FieldS,FieldR,new_dist,a_request,old_dist,up,down)
    647   USE parallel
    648   USE dimensions
     662  USE parallel_lmdz
     663  USE dimensions_mod
    649664      IMPLICIT NONE
    650665   
     
    676691
    677692  SUBROUTINE Register_SwapField2d_v2d(FieldS,FieldR,new_dist,a_request,old_dist,up,down)
    678   USE parallel
    679   USE dimensions
     693  USE parallel_lmdz
     694  USE dimensions_mod
    680695      IMPLICIT NONE
    681696   
     
    710725
    711726  SUBROUTINE Register_SwapField3d_v2d(FieldS,FieldR,new_dist,a_request,old_dist,up,down)
    712   USE parallel
    713   USE dimensions
     727  USE parallel_lmdz
     728  USE dimensions_mod
    714729      IMPLICIT NONE
    715730   
     
    745760
    746761  SUBROUTINE Register_SwapField_gen_u(FieldS,FieldR,ll,old_dist,new_dist,Up,Down,a_request)
    747   USE parallel
    748   USE dimensions
     762  USE parallel_lmdz
     763  USE dimensions_mod
    749764      IMPLICIT NONE
    750765   
     
    787802!$OMP DO SCHEDULE(STATIC,OMP_CHUNK)           
    788803        DO l=1,ll
    789           FieldR(ijb:ije,:)=FieldS(ijb:ije,:)             
     804          FieldR(ijb:ije,l)=FieldS(ijb:ije,l)             
    790805        ENDDO
    791806!$OMP END DO NOWAIT
     
    798813
    799814  SUBROUTINE Register_SwapField_gen_v(FieldS,FieldR,ll,old_dist,new_dist,Up,Down,a_request)
    800   USE parallel
    801   USE dimensions
     815  USE parallel_lmdz
     816  USE dimensions_mod
    802817    IMPLICIT NONE
    803818   
     
    858873 
    859874  subroutine Register_Hallo(Field,ij,ll,RUp,Rdown,SUp,SDown,a_request)
    860   USE dimensions
     875  USE dimensions_mod
    861876      implicit none
    862877
     
    925940
    926941  subroutine Register_Hallo_u(Field,ll,RUp,Rdown,SUp,SDown,a_request)
    927   USE dimensions
     942  USE dimensions_mod
    928943      implicit none
    929944#ifdef CPP_MPI
     
    9901005
    9911006  subroutine Register_Hallo_v(Field,ll,RUp,Rdown,SUp,SDown,a_request)
    992   USE dimensions
     1007  USE dimensions_mod
    9931008      implicit none
    9941009#ifdef CPP_MPI
     
    10551070   
    10561071    subroutine SendRequest(a_Request)
    1057     USE dimensions
     1072    USE dimensions_mod
    10581073      implicit none
    10591074
     
    11791194   
    11801195   subroutine WaitRequest(a_Request)
    1181    USE dimensions
     1196   USE dimensions_mod
    11821197   implicit none
    11831198   
     
    12731288     
    12741289   subroutine WaitSendRequest(a_Request)
    1275    USE dimensions
     1290   USE dimensions_mod
    12761291   implicit none
    12771292   
     
    13291344   
    13301345   subroutine WaitRecvRequest(a_Request)
    1331    USE dimensions
     1346   USE dimensions_mod
    13321347   implicit none
    13331348   
     
    14101425   
    14111426    subroutine CopyField(FieldS,FieldR,ij,ll,jj_Nb_New)
    1412     USE dimensions
     1427    USE dimensions_mod
    14131428 
    14141429      implicit none
     
    14481463
    14491464  subroutine CopyFieldHallo(FieldS,FieldR,ij,ll,jj_Nb_New,Up,Down)
    1450   USE dimensions
     1465  USE dimensions_mod
    14511466 
    14521467      implicit none
     
    14881503
    14891504   subroutine Gather_field_u(field_loc,field_glo,ll)
    1490    USE dimensions
     1505   USE dimensions_mod
    14911506   implicit none
    14921507     integer :: ll
     
    15111526       
    15121527   subroutine Gather_field_v(field_loc,field_glo,ll)
    1513    USE dimensions
     1528   USE dimensions_mod
    15141529   implicit none
    15151530     integer :: ll
     
    15391554     
    15401555   subroutine Scatter_field_u(field_glo,field_loc,ll)
    1541    USE dimensions
     1556   USE dimensions_mod
    15421557   implicit none
    15431558     integer :: ll
     
    15731588
    15741589   subroutine Scatter_field_v(field_glo,field_loc,ll)
    1575    USE dimensions
     1590   USE dimensions_mod
    15761591   implicit none
    15771592     integer :: ll
  • LMDZ5/branches/testing/libf/dyn3dmem/nxgrad_gam_loc.F

    r1669 r1864  
    99c       x  et y    sont des arguments de sortie pour le s-prog
    1010c
    11       USE parallel
     11      USE parallel_lmdz
    1212     
    1313      IMPLICIT NONE
  • LMDZ5/branches/testing/libf/dyn3dmem/nxgrad_loc.F

    r1669 r1864  
    99c       x  et y    sont des arguments de sortie pour le s-prog
    1010c
    11       USE parallel
     11      USE parallel_lmdz
    1212      IMPLICIT NONE
    1313c
  • LMDZ5/branches/testing/libf/dyn3dmem/nxgraro2_loc.F

    r1669 r1864  
    1313c
    1414      USE write_Field_p
    15       USE parallel
     15      USE parallel_lmdz
    1616      USE times
    1717      USE mod_hallo
     
    3434      REAL  signe, nugradrs
    3535      INTEGER l,ij,iter,lr
    36       Type(Request) :: Request_dissip
     36      Type(Request),SAVE :: Request_dissip
     37!$OMP THREADPRIVATE(Request_dissip)
    3738c    ........................................................
    3839c
  • LMDZ5/branches/testing/libf/dyn3dmem/nxgraro2_mod.F90

    r1669 r1864  
    99  SUBROUTINE nxgraro2_allocate
    1010  USE bands
    11   USE allocate_field
    12   USE parallel
    13   USE dimensions
     11  USE allocate_field_mod
     12  USE parallel_lmdz
     13  USE dimensions_mod
    1414  IMPLICIT NONE
    1515    TYPE(distrib),POINTER :: d
     
    2424 
    2525  SUBROUTINE nxgraro2_switch_dissip(dist)
    26   USE allocate_field
     26  USE allocate_field_mod
    2727  USE bands
    28   USE parallel
     28  USE parallel_lmdz
    2929  IMPLICIT NONE
    3030    TYPE(distrib),INTENT(IN) :: dist
  • LMDZ5/branches/testing/libf/dyn3dmem/nxgrarot_p.F

    r1669 r1864  
    1313c
    1414c
    15       USE parallel
     15      USE parallel_lmdz
    1616      USE times
    1717      USE write_field_p
  • LMDZ5/branches/testing/libf/dyn3dmem/pression_loc.F

    r1669 r1864  
    11      SUBROUTINE pression_loc( ngrid, ap, bp, ps, p )
    2       USE parallel
     2      USE parallel_lmdz
    33c
    44
  • LMDZ5/branches/testing/libf/dyn3dmem/qminimum_loc.F

    r1669 r1864  
    11      SUBROUTINE qminimum_loc( q,nq,deltap )
    2       USE parallel
     2      USE parallel_lmdz
    33      IMPLICIT none
    44c
  • LMDZ5/branches/testing/libf/dyn3dmem/rotat_nfil_loc.F

    r1669 r1864  
    1010c        rot          est  un argument  de sortie pour le s-prog
    1111c
    12       USE parallel
     12      USE parallel_lmdz
    1313      IMPLICIT NONE
    1414c
  • LMDZ5/branches/testing/libf/dyn3dmem/rotat_p.F

    r1669 r1864  
    1010c        rot          est  un argument  de sortie pour le s-prog
    1111c
    12       USE parallel
     12      USE parallel_lmdz
    1313      IMPLICIT NONE
    1414c
  • LMDZ5/branches/testing/libf/dyn3dmem/rotatf_loc.F

    r1669 r1864  
    1010c        rot          est  un argument  de sortie pour le s-prog
    1111c
    12       USE parallel
     12      USE parallel_lmdz
    1313      USE mod_filtreg_p
    1414      IMPLICIT NONE
  • LMDZ5/branches/testing/libf/dyn3dmem/sw_case_williamson91_6_loc.F

    r1795 r1864  
    2626c
    2727c=======================================================================
    28       USE parallel
     28      USE parallel_lmdz
    2929
    3030      IMPLICIT NONE
  • LMDZ5/branches/testing/libf/dyn3dmem/times.F90

    r1669 r1864  
    2525 
    2626  subroutine init_timer
    27     use parallel
     27    USE parallel_lmdz
    2828    implicit none
    2929#include "dimensions.h"
     
    101101
    102102  subroutine stop_timer(no_timer)
    103     use parallel
     103    USE parallel_lmdz
    104104    implicit none
    105105    integer :: no_timer
     
    136136   
    137137  subroutine allgather_timer
    138     use parallel
     138    USE parallel_lmdz
    139139    implicit none
    140140#ifdef CPP_MPI   
     
    171171 
    172172  subroutine allgather_timer_average
    173     use parallel
     173    USE parallel_lmdz
    174174    implicit none
    175175#ifdef CPP_MPI
  • LMDZ5/branches/testing/libf/dyn3dmem/top_bound_loc.F

    r1795 r1864  
    33!
    44      SUBROUTINE top_bound_loc(vcov,ucov,teta,masse,dt)
    5       USE parallel
     5      USE parallel_lmdz
    66      IMPLICIT NONE
    77c
  • LMDZ5/branches/testing/libf/dyn3dmem/tourpot_loc.F

    r1669 r1864  
    11      SUBROUTINE tourpot_loc ( vcov, ucov, massebxy, vorpot )
    2       USE parallel
     2      USE parallel_lmdz
    33      USE mod_filtreg_p
    44      IMPLICIT NONE
  • LMDZ5/branches/testing/libf/dyn3dmem/vitvert_loc.F

    r1669 r1864  
    11      SUBROUTINE vitvert_loc ( convm , w )
    22c
    3       USE parallel
     3      USE parallel_lmdz
    44      IMPLICIT NONE
    55
  • LMDZ5/branches/testing/libf/dyn3dmem/vlsplt_loc.F

    r1707 r1864  
    1313c
    1414c   --------------------------------------------------------------------
    15       USE Parallel
     15      USE parallel_lmdz
    1616      IMPLICIT NONE
    1717c
     
    348348c
    349349c   --------------------------------------------------------------------
    350       USE parallel
     350      USE parallel_lmdz
    351351      IMPLICIT NONE
    352352c
     
    737737c
    738738c   --------------------------------------------------------------------
    739       USE Parallel
     739      USE parallel_lmdz
    740740      USE vlz_mod
    741741      IMPLICIT NONE
  • LMDZ5/branches/testing/libf/dyn3dmem/vlspltgen_loc.F

    r1669 r1864  
    2323c     pk exner au milieu des couches necessaire pour calculer Qsat
    2424c   --------------------------------------------------------------------
    25       USE parallel
     25      USE parallel_lmdz
    2626      USE mod_hallo
    2727      USE Write_Field_loc
     
    6767      LOGICAL, SAVE :: firstcall=.TRUE.
    6868!$OMP THREADPRIVATE(firstcall)
    69       type(request) :: MyRequest1
    70       type(request) :: MyRequest2
    71 
     69      type(request),SAVE :: MyRequest1
     70!$OMP THREADPRIVATE(MyRequest1)
     71      type(request),SAVE :: MyRequest2
     72!$OMP THREADPRIVATE(MyRequest2)
    7273c    fonction psat(T)
    7374
  • LMDZ5/branches/testing/libf/dyn3dmem/vlspltgen_mod.F90

    r1669 r1864  
    1212  SUBROUTINE vlspltgen_allocate
    1313  USE bands
    14   USE allocate_field
    15   USE parallel
     14  USE allocate_field_mod
     15  USE parallel_lmdz
    1616  USE infotrac
    1717  USE vlz_mod,ONLY : vlz_allocate
     
    3434 
    3535  SUBROUTINE vlspltgen_switch_vanleer(dist)
    36   USE allocate_field
     36  USE allocate_field_mod
    3737  USE bands
    38   USE parallel
     38  USE parallel_lmdz
    3939  USE vlz_mod,ONLY : vlz_switch_vanleer
    4040  IMPLICIT NONE
  • LMDZ5/branches/testing/libf/dyn3dmem/vlspltqs_loc.F

    r1707 r1864  
    88c
    99c   --------------------------------------------------------------------
    10       USE parallel
     10      USE parallel_lmdz
    1111      IMPLICIT NONE
    1212c
     
    360360c
    361361c   --------------------------------------------------------------------
    362       USE parallel
     362      USE parallel_lmdz
    363363      IMPLICIT NONE
    364364c
  • LMDZ5/branches/testing/libf/dyn3dmem/vlz_mod.F90

    r1669 r1864  
    1010  SUBROUTINE vlz_allocate
    1111  USE bands
    12   USE allocate_field
    13   USE parallel
     12  USE allocate_field_mod
     13  USE parallel_lmdz
    1414  USE infotrac
    15   USE dimensions
     15  USE dimensions_mod
    1616  IMPLICIT NONE
    1717  TYPE(distrib),POINTER :: d
     
    2626 
    2727  SUBROUTINE vlz_switch_vanleer(dist)
    28   USE allocate_field
     28  USE allocate_field_mod
    2929  USE bands
    30   USE parallel
     30  USE parallel_lmdz
    3131  IMPLICIT NONE
    3232    TYPE(distrib),INTENT(IN) :: dist
  • LMDZ5/branches/testing/libf/dyn3dmem/write_field_loc.F90

    r1669 r1864  
    3434
    3535   SUBROUTINE write_field_u_gen(name,Field,ll)
    36     USE parallel
     36    USE parallel_lmdz
    3737    USE write_field
    3838    USE mod_hallo
     
    4545    real, allocatable,SAVE :: New_Field(:,:,:)
    4646    integer,dimension(0:mpi_size-1) :: jj_nb_master
    47     type(Request) :: Request_write
     47    type(Request),SAVE :: Request_write
     48!$OMP THREADPRIVATE(Request_write)
    4849    integer :: ll,i
    4950   
     
    6162      New_Field(:,jj_begin:jj_end,i)=reshape(Field(ij_begin:ij_end,i),(/iip1,jj_nb/))
    6263    ENDDO
    63    
     64!$OMP BARRIER   
    6465    call Register_SwapField(new_field,new_field,ip1jmp1,ll,jj_Nb_master,Request_write)
    6566    call SendRequest(Request_write)
     
    9899
    99100   SUBROUTINE write_field_v_gen(name,Field,ll)
    100     USE parallel
     101    USE parallel_lmdz
    101102    USE write_field
    102103    USE mod_hallo
     
    109110    real, allocatable,SAVE :: New_Field(:,:,:)
    110111    integer,dimension(0:mpi_size-1) :: jj_nb_master
    111     type(Request) :: Request_write
     112    type(Request),SAVE :: Request_write
     113!$OMP THREADPRIVATE(Request_write)   
    112114    integer :: ll,i,jje,ije,jjn
    113115   
     
    136138      New_Field(:,jj_begin:jje,i)=reshape(Field(ij_begin:ije,i),(/iip1,jjn/))
    137139    ENDDO
    138    
     140!$OMP BARRIER   
    139141    call Register_SwapField(new_field,new_field,ip1jm,ll,jj_Nb_master,Request_write)
    140142    call SendRequest(Request_write)
  • LMDZ5/branches/testing/libf/dyn3dmem/write_field_p.F90

    r1669 r1864  
    99 
    1010  subroutine write_field1D_p(name,Field)
    11     USE parallel
     11    USE parallel_lmdz
    1212    USE write_field
    1313    implicit none
     
    3030
    3131  subroutine write_field2D_p(name,Field)
    32     USE parallel
     32    USE parallel_lmdz
    3333    USE write_field
    3434    implicit none
     
    5151 
    5252  subroutine write_field3D_p(name,Field)
    53     USE parallel
     53    USE parallel_lmdz
    5454    USE write_field
    5555    implicit none
  • LMDZ5/branches/testing/libf/dyn3dmem/writedynav_loc.F

    r1669 r1864  
    99      USE ioipsl
    1010#endif
    11       USE parallel
     11      USE parallel_lmdz
    1212      USE misc_mod
    1313      USE infotrac, ONLY : nqtot, ttext
  • LMDZ5/branches/testing/libf/dyn3dmem/writehist_loc.F

    r1669 r1864  
    99      USE ioipsl
    1010#endif
    11       USE parallel
     11      USE parallel_lmdz
    1212      USE misc_mod
    1313      USE infotrac, ONLY : nqtot, ttext
Note: See TracChangeset for help on using the changeset viewer.