Changeset 1864 for LMDZ5/branches/testing/libf/dyn3dmem
- Timestamp:
- Sep 11, 2013, 11:45:01 AM (11 years ago)
- Location:
- LMDZ5/branches/testing
- Files:
-
- 2 deleted
- 102 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/branches/testing
- Property svn:mergeinfo changed
/LMDZ5/trunk merged: 1797-1799,1801-1811,1813-1834,1836,1838-1840,1842-1860
- Property svn:mergeinfo changed
-
LMDZ5/branches/testing/libf/dyn3dmem/abort_gcm.F
r1795 r1864 12 12 USE ioipsl_getincom 13 13 #endif 14 USE parallel 14 USE parallel_lmdz 15 15 #include "iniprint.h" 16 16 -
LMDZ5/branches/testing/libf/dyn3dmem/addfi_loc.F
r1707 r1864 5 5 S pucov, pvcov, pteta, pq , pps , 6 6 S pdufi, pdvfi, pdhfi,pdqfi, pdpfi ) 7 USE parallel 7 USE parallel_lmdz 8 8 USE infotrac, ONLY : nqtot 9 9 USE control_mod, ONLY : planet_type -
LMDZ5/branches/testing/libf/dyn3dmem/advect_new_loc.F
r1669 r1864 4 4 SUBROUTINE advect_new_loc(ucov,vcov,teta,w,massebx,masseby, 5 5 & du,dv,dteta) 6 USE parallel 6 USE parallel_lmdz 7 7 USE write_field_loc 8 8 USE advect_new_mod -
LMDZ5/branches/testing/libf/dyn3dmem/advect_new_mod.F90
r1669 r1864 15 15 SUBROUTINE advect_new_allocate 16 16 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 20 20 IMPLICIT NONE 21 21 TYPE(distrib),POINTER :: d … … 36 36 37 37 SUBROUTINE advect_new_switch_caldyn(dist) 38 USE allocate_field 38 USE allocate_field_mod 39 39 USE bands 40 USE parallel 40 USE parallel_lmdz 41 41 IMPLICIT NONE 42 42 TYPE(distrib),INTENT(IN) :: dist -
LMDZ5/branches/testing/libf/dyn3dmem/advtrac_loc.F
r1707 r1864 17 17 c M.A Filiberti (04/2002) 18 18 c 19 USE parallel 19 USE parallel_lmdz 20 20 USE Write_Field_loc 21 21 USE Write_Field … … 79 79 DATA dum/.true./ 80 80 integer ijb,ije,ijbu,ijbv,ijeu,ijev,j 81 type(Request) :: testRequest 81 type(Request),SAVE :: testRequest 82 !$OMP THREADPRIVATE(testRequest) 82 83 83 84 c test sur l'eventuelle creation de valeurs negatives de la masse -
LMDZ5/branches/testing/libf/dyn3dmem/advtrac_mod.F90
r1669 r1864 7 7 SUBROUTINE advtrac_allocate 8 8 USE bands 9 USE allocate_field 10 USE parallel 9 USE allocate_field_mod 10 USE parallel_lmdz 11 11 USE infotrac 12 12 USE vlspltgen_mod … … 22 22 23 23 SUBROUTINE advtrac_switch_vanleer(dist) 24 USE allocate_field 24 USE allocate_field_mod 25 25 USE bands 26 USE parallel 26 USE parallel_lmdz 27 27 USE vlspltgen_mod 28 28 IMPLICIT NONE -
LMDZ5/branches/testing/libf/dyn3dmem/bands.F90
r1707 r1864 3 3 ! 4 4 module Bands 5 USE parallel 5 USE parallel_lmdz 6 6 integer, parameter :: bands_caldyn=1 7 7 integer, parameter :: bands_vanleer=2 … … 27 27 28 28 subroutine AllocateBands 29 use parallel29 USE parallel_lmdz 30 30 implicit none 31 31 … … 41 41 42 42 subroutine Read_distrib 43 use parallel43 USE parallel_lmdz 44 44 implicit none 45 45 … … 104 104 105 105 SUBROUTINE Set_Bands 106 USE parallel 106 USE parallel_lmdz 107 107 #ifdef CPP_PHYS 108 108 ! Ehouarn: what follows is only related to // physics … … 168 168 subroutine AdjustBands_caldyn(new_dist) 169 169 use times 170 use parallel170 USE parallel_lmdz 171 171 implicit none 172 172 TYPE(distrib),INTENT(INOUT) :: new_dist … … 235 235 subroutine AdjustBands_vanleer(new_dist) 236 236 use times 237 use parallel237 USE parallel_lmdz 238 238 implicit none 239 239 TYPE(distrib),INTENT(INOUT) :: new_dist … … 304 304 subroutine AdjustBands_dissip(new_dist) 305 305 use times 306 use parallel306 USE parallel_lmdz 307 307 implicit none 308 308 TYPE(distrib),INTENT(INOUT) :: new_dist … … 377 377 USE mod_phys_lmdz_para, only : klon_mpi_para_nb 378 378 #endif 379 USE parallel 379 USE parallel_lmdz 380 380 implicit none 381 381 … … 428 428 429 429 subroutine WriteBands 430 USE parallel 430 USE parallel_lmdz 431 431 implicit none 432 432 include "dimensions.h" -
LMDZ5/branches/testing/libf/dyn3dmem/bernoui_loc.F
r1669 r1864 1 1 SUBROUTINE bernoui_loc (ngrid,nlay,pphi,pecin,pbern) 2 USE parallel 2 USE parallel_lmdz 3 3 USE mod_filtreg_p 4 4 IMPLICIT NONE -
LMDZ5/branches/testing/libf/dyn3dmem/bilan_dyn_loc.F
r1707 r1864 13 13 USE IOIPSL 14 14 #endif 15 USE parallel 15 USE parallel_lmdz 16 16 USE mod_hallo 17 17 use misc_mod … … 157 157 real,SAVE,ALLOCATABLE :: rlong(:),rlatg(:) 158 158 integer :: jjb,jje,jjn,ijb,ije 159 type(Request) :: Req 159 type(Request),SAVE :: Req 160 !$OMP THREADPRIVATE(Req) 160 161 161 162 ! definition du domaine d'ecriture pour le rebuild -
LMDZ5/branches/testing/libf/dyn3dmem/caladvtrac_loc.F
r1707 r1864 7 7 * p ,masse, dq , teta, 8 8 * flxw, pk, iapptrac) 9 USE parallel 9 USE parallel_lmdz 10 10 USE infotrac, ONLY : nqtot 11 11 USE control_mod, ONLY : iapp_tracvl,planet_type … … 53 53 INTEGER :: ijb,ije,ijbu,ijbv,ijeu,ijev,j 54 54 INTEGER :: ij,l 55 TYPE(Request) :: Request_vanleer56 55 TYPE(Request),SAVE :: Request_vanleer 56 !$OMP THREADPRIVATE(Request_vanleer) 57 57 58 58 … … 122 122 c 1. calcul de w 123 123 c 2. groupement des mailles pres du pole. 124 pbarvg(:,:)=-1 125 pbarvg_adv(:,:)=-2 124 126 125 CALL groupe_loc( massem, pbaruc,pbarvc, pbarug,pbarvg,wg ) 127 flxw(ijb:ije,1:llm)=wg(ijb:ije,1:llm)/REAL(iapp_tracvl) 126 127 c$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 131 c$OMP ENDDO NOWAIT 128 132 129 133 #ifdef DEBUG_IO -
LMDZ5/branches/testing/libf/dyn3dmem/caladvtrac_mod.F90
r1669 r1864 21 21 SUBROUTINE caladvtrac_allocate 22 22 USE bands 23 USE allocate_field 24 USE parallel 23 USE allocate_field_mod 24 USE parallel_lmdz 25 25 USE infotrac 26 26 USE advtrac_mod, ONLY : advtrac_allocate … … 55 55 56 56 SUBROUTINE caladvtrac_switch_caldyn(dist) 57 USE allocate_field 57 USE allocate_field_mod 58 58 USE bands 59 USE parallel 59 USE parallel_lmdz 60 60 USE groupe_mod 61 61 IMPLICIT NONE … … 74 74 75 75 SUBROUTINE caladvtrac_switch_vanleer(dist) 76 USE allocate_field 76 USE allocate_field_mod 77 77 USE bands 78 USE parallel 78 USE parallel_lmdz 79 79 USE advtrac_mod, ONLY : advtrac_switch_vanleer 80 80 IMPLICIT NONE -
LMDZ5/branches/testing/libf/dyn3dmem/caldyn_loc.F
r1669 r1864 10 10 $ (itau,ucov,vcov,teta,ps,masse,pk,pkf,phis , 11 11 $ phi,conser,du,dv,dteta,dp,w,pbaru,pbarv,time ) 12 USE parallel 12 USE parallel_lmdz 13 13 USE Write_Field_loc 14 14 USE caldyn_mod -
LMDZ5/branches/testing/libf/dyn3dmem/caldyn_mod.F90
r1669 r1864 20 20 SUBROUTINE caldyn_allocate 21 21 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 25 25 USE advect_new_mod,ONLY : advect_new_allocate 26 26 IMPLICIT NONE … … 47 47 48 48 SUBROUTINE caldyn_switch_caldyn(dist) 49 USE allocate_field 49 USE allocate_field_mod 50 50 USE bands 51 USE parallel 51 USE parallel_lmdz 52 52 USE advect_new_mod,ONLY : advect_new_switch_caldyn 53 53 IMPLICIT NONE -
LMDZ5/branches/testing/libf/dyn3dmem/calfis_loc.F
r1795 r1864 37 37 USE IOPHY 38 38 #endif 39 USE parallel , ONLY : omp_chunk,using_mpi,jjb_u,jje_u,jjb_v,jje_v39 USE parallel_lmdz,ONLY:omp_chunk,using_mpi,jjb_u,jje_u,jjb_v,jje_v 40 40 USE Write_Field 41 41 Use Write_field_p -
LMDZ5/branches/testing/libf/dyn3dmem/call_calfis_mod.F90
r1795 r1864 36 36 SUBROUTINE call_calfis_allocate 37 37 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 41 41 USE infotrac 42 42 IMPLICIT NONE … … 74 74 SUBROUTINE call_calfis(itau,lafin,clesphy0,ucov_dyn,vcov_dyn,teta_dyn,masse_dyn,ps_dyn, & 75 75 phis_dyn,q_dyn,flxw_dyn) 76 USE dimensions 77 USE parallel 76 USE dimensions_mod 77 USE parallel_lmdz 78 78 USE times 79 79 USE mod_hallo … … 111 111 REAL :: jD_cur, jH_cur 112 112 CHARACTER(LEN=15) :: ztit 113 TYPE(Request) :: Request_physic 113 TYPE(Request),SAVE :: Request_physic 114 !$OMP THREADPRIVATE(Request_physic ) 114 115 INTEGER :: ijb,ije,l,j 115 116 … … 378 379 IF (ip_ebil_dyn.ge.1 ) THEN 379 380 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 !!" 381 383 ENDIF 382 384 -
LMDZ5/branches/testing/libf/dyn3dmem/call_dissip_mod.F90
r1707 r1864 22 22 SUBROUTINE call_dissip_allocate 23 23 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 27 27 USE dissip_mod, ONLY : dissip_allocate 28 28 IMPLICIT NONE … … 50 50 51 51 SUBROUTINE call_dissip_switch_dissip(dist) 52 USE allocate_field 52 USE allocate_field_mod 53 53 USE bands 54 USE parallel 54 USE parallel_lmdz 55 55 USE dissip_mod, ONLY : dissip_switch_dissip 56 56 IMPLICIT NONE … … 78 78 79 79 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 82 82 USE times 83 83 USE mod_hallo … … 98 98 REAL SSUM 99 99 LOGICAL,PARAMETER :: dissip_conservative=.TRUE. 100 TYPE(Request) :: Request_dissip101 100 TYPE(Request),SAVE :: Request_dissip 101 !$OMP THREADPRIVATE(Request_dissip ) 102 102 INTEGER :: ij,l,ijb,ije 103 103 -
LMDZ5/branches/testing/libf/dyn3dmem/ce0l.F90
r1795 r1864 22 22 USE mod_const_mpi 23 23 USE infotrac 24 USE parallel , ONLY: finalize_parallel24 USE parallel_lmdz, ONLY: finalize_parallel 25 25 USE indice_sol_mod 26 26 -
LMDZ5/branches/testing/libf/dyn3dmem/conf_gcm.F
r1795 r1864 17 17 use mod_filtre_fft_loc, ONLY : use_filtre_fft_loc=>use_filtre_fft 18 18 use mod_hallo, ONLY : use_mpi_alloc 19 use parallel, ONLY : omp_chunk20 19 USE infotrac, ONLY : type_trac 21 20 use assert_m, only: assert … … 908 907 use_mpi_alloc=.FALSE. 909 908 CALL getin('use_mpi_alloc',use_mpi_alloc) 910 911 !Config Key = omp_chunk912 !Config Desc = taille des blocs openmp913 !Config Def = 1914 !Config Help = defini la taille des packets d'it�ration openmp915 !Config distribu�e � chaque t�che lors de l'entr�e dans une916 !Config boucle parall�lis�e917 918 omp_chunk=1919 CALL getin('omp_chunk',omp_chunk)920 909 921 910 !Config key = ok_strato … … 1006 995 write(lunout,*)' use_filtre_fft = ', use_filtre_fft 1007 996 write(lunout,*)' use_mpi_alloc = ', use_mpi_alloc 1008 write(lunout,*)' omp_chunk = ', omp_chunk1009 997 write(lunout,*)' ok_strato = ', ok_strato 1010 998 write(lunout,*)' ok_gradsfile = ', ok_gradsfile -
LMDZ5/branches/testing/libf/dyn3dmem/convflu_loc.F
r1669 r1864 15 15 c nbniv est le nombre de niveaux vert. de xflu et de yflu . 16 16 c 17 USE parallel 17 USE parallel_lmdz 18 18 IMPLICIT NONE 19 19 c -
LMDZ5/branches/testing/libf/dyn3dmem/convmas1_loc.F
r1669 r1864 1 1 SUBROUTINE convmas1_loc (pbaru, pbarv, convm ) 2 2 c 3 USE parallel 3 USE parallel_lmdz 4 4 USE mod_filtreg_p 5 5 IMPLICIT NONE -
LMDZ5/branches/testing/libf/dyn3dmem/convmas2_loc.F
r1669 r1864 1 1 SUBROUTINE convmas2_loc ( convm ) 2 2 c 3 USE parallel 3 USE parallel_lmdz 4 4 IMPLICIT NONE 5 5 -
LMDZ5/branches/testing/libf/dyn3dmem/convmas_loc.F
r1669 r1864 1 1 SUBROUTINE convmas_loc (pbaru, pbarv, convm ) 2 2 c 3 USE parallel 3 USE parallel_lmdz 4 4 USE mod_filtreg_p 5 5 IMPLICIT NONE -
LMDZ5/branches/testing/libf/dyn3dmem/covcont_loc.F
r1669 r1864 1 1 SUBROUTINE covcont_loc (klevel,ucov, vcov, ucont, vcont ) 2 USE parallel 2 USE parallel_lmdz 3 3 IMPLICIT NONE 4 4 -
LMDZ5/branches/testing/libf/dyn3dmem/covnat_loc.F
r1669 r1864 3 3 ! 4 4 SUBROUTINE covnat_loc(klevel,ucov, vcov, unat, vnat ) 5 USE parallel 5 USE parallel_lmdz 6 6 IMPLICIT NONE 7 7 -
LMDZ5/branches/testing/libf/dyn3dmem/dimensions_mod.F90
r1669 r1864 1 MODULE dimensions 1 MODULE dimensions_mod 2 2 INCLUDE 'dimensions.h' 3 3 INCLUDE 'paramet.h' 4 END MODULE dimensions 4 END MODULE dimensions_mod -
LMDZ5/branches/testing/libf/dyn3dmem/dissip_loc.F
r1669 r1864 1 1 SUBROUTINE dissip_loc( vcov,ucov,teta,p, dv,du,dh ) 2 2 c 3 USE parallel 3 USE parallel_lmdz 4 4 USE write_field_loc 5 5 USE dissip_mod … … 56 56 !$OMP THREADPRIVATE(first) 57 57 58 PRINT *,"----> calldissip"59 58 IF (first) THEN 60 59 CALL dissip_allocate -
LMDZ5/branches/testing/libf/dyn3dmem/dissip_mod.F90
r1669 r1864 7 7 SUBROUTINE dissip_allocate 8 8 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 12 12 USE gradiv2_mod, ONLY : gradiv2_allocate 13 13 USE nxgraro2_mod, ONLY : nxgraro2_allocate … … 23 23 24 24 SUBROUTINE dissip_switch_dissip(dist) 25 USE allocate_field 25 USE allocate_field_mod 26 26 USE bands 27 USE parallel 27 USE parallel_lmdz 28 28 USE gradiv2_mod,ONLY : gradiv2_switch_dissip 29 29 USE nxgraro2_mod,ONLY : nxgraro2_switch_dissip -
LMDZ5/branches/testing/libf/dyn3dmem/diverg_gam_loc.F
r1669 r1864 9 9 c x et y etant des composantes covariantes ... 10 10 c ********************************************************************* 11 USE parallel 11 USE parallel_lmdz 12 12 IMPLICIT NONE 13 13 c -
LMDZ5/branches/testing/libf/dyn3dmem/diverg_p.F
r1669 r1864 8 8 c x et y etant des composantes covariantes ... 9 9 c ********************************************************************* 10 USE parallel 10 USE parallel_lmdz 11 11 IMPLICIT NONE 12 12 c -
LMDZ5/branches/testing/libf/dyn3dmem/divergf_loc.F
r1669 r1864 8 8 c x et y etant des composantes covariantes ... 9 9 c ********************************************************************* 10 USE PARALLEL10 USE parallel_lmdz 11 11 USE mod_filtreg_p 12 12 IMPLICIT NONE -
LMDZ5/branches/testing/libf/dyn3dmem/divgrad2_loc.F
r1669 r1864 10 10 c divgra est un argument de sortie pour le s-prg 11 11 c 12 USE parallel 12 USE parallel_lmdz 13 13 USE times 14 14 USE mod_hallo … … 31 31 INTEGER l,ij,iter,lh 32 32 c ................................................................... 33 Type(Request) :: request_dissip 33 Type(Request),SAVE :: request_dissip 34 !$OMP THREADPRIVATE(request_dissip) 34 35 INTEGER ijb,ije 35 36 -
LMDZ5/branches/testing/libf/dyn3dmem/divgrad2_mod.F90
r1669 r1864 7 7 SUBROUTINE divgrad2_allocate 8 8 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 12 12 IMPLICIT NONE 13 13 TYPE(distrib),POINTER :: d … … 20 20 21 21 SUBROUTINE divgrad2_switch_dissip(dist) 22 USE allocate_field 22 USE allocate_field_mod 23 23 USE bands 24 USE parallel 24 USE parallel_lmdz 25 25 IMPLICIT NONE 26 26 TYPE(distrib),INTENT(IN) :: dist -
LMDZ5/branches/testing/libf/dyn3dmem/dteta1_loc.F
r1669 r1864 1 1 SUBROUTINE dteta1_loc ( teta, pbaru, pbarv, dteta) 2 USE parallel 2 USE parallel_lmdz 3 3 USE write_field_p 4 4 USE mod_filtreg_p -
LMDZ5/branches/testing/libf/dyn3dmem/dudv1_loc.F
r1669 r1864 1 1 SUBROUTINE dudv1_loc ( vorpot, pbaru, pbarv, du, dv ) 2 USE parallel 2 USE parallel_lmdz 3 3 IMPLICIT NONE 4 4 c -
LMDZ5/branches/testing/libf/dyn3dmem/dudv2_loc.F
r1669 r1864 1 1 SUBROUTINE dudv2_loc ( teta, pkf, bern, du, dv ) 2 USE parallel 2 USE parallel_lmdz 3 3 IMPLICIT NONE 4 4 c -
LMDZ5/branches/testing/libf/dyn3dmem/dynetat0_loc.F
r1707 r1864 6 6 USE infotrac 7 7 use control_mod, only : planet_type 8 USE parallel 8 USE parallel_lmdz 9 9 IMPLICIT NONE 10 10 -
LMDZ5/branches/testing/libf/dyn3dmem/dynredem_loc.F
r1707 r1864 7 7 USE IOIPSL 8 8 #endif 9 USE parallel 9 USE parallel_lmdz 10 10 USE mod_hallo 11 11 USE infotrac … … 528 528 SUBROUTINE dynredem1_loc(fichnom,time, 529 529 . vcov,ucov,teta,q,masse,ps) 530 USE parallel 530 USE parallel_lmdz 531 531 USE mod_hallo 532 532 USE infotrac -
LMDZ5/branches/testing/libf/dyn3dmem/dynredem_mod.F90
r1707 r1864 7 7 8 8 SUBROUTINE dynredem_write_u(ncid,id,var,ll) 9 USE dimensions 10 USE parallel 9 USE dimensions_mod 10 USE parallel_lmdz 11 11 USE mod_hallo 12 12 IMPLICIT NONE … … 72 72 73 73 SUBROUTINE dynredem_write_v(ncid,id,var,ll) 74 USE dimensions 75 USE parallel 74 USE dimensions_mod 75 USE parallel_lmdz 76 76 USE mod_hallo 77 77 IMPLICIT NONE … … 137 137 138 138 SUBROUTINE dynredem_read_u(ncid,id,var,ll) 139 USE dimensions 140 USE parallel 139 USE dimensions_mod 140 USE parallel_lmdz 141 141 USE mod_hallo 142 142 IMPLICIT NONE -
LMDZ5/branches/testing/libf/dyn3dmem/enercin_loc.F
r1669 r1864 1 1 SUBROUTINE enercin_loc ( vcov, ucov, vcont, ucont, ecin ) 2 USE parallel 2 USE parallel_lmdz 3 3 IMPLICIT NONE 4 4 -
LMDZ5/branches/testing/libf/dyn3dmem/exner_hyb_loc.F
r1707 r1864 29 29 c 30 30 c 31 USE parallel 31 USE parallel_lmdz 32 32 USE mod_filtreg_p 33 33 USE write_field_loc -
LMDZ5/branches/testing/libf/dyn3dmem/exner_milieu_loc.F
r1795 r1864 26 26 c ( voir note de Fr.Hourdin ) , 27 27 c 28 USE parallel 28 USE parallel_lmdz 29 29 USE mod_filtreg_p 30 30 IMPLICIT NONE -
LMDZ5/branches/testing/libf/dyn3dmem/filtreg_p.F
r1707 r1864 3 3 SUBROUTINE filtreg_p ( champ, ibeg, iend, nlat, nbniv, 4 4 & ifiltre, iaire, griscal ,iter) 5 USE Parallel, only : OMP_CHUNK5 USE parallel_lmdz, only : OMP_CHUNK 6 6 USE mod_filtre_fft 7 7 USE timer_filtre -
LMDZ5/branches/testing/libf/dyn3dmem/flumass_loc.F
r1669 r1864 1 1 SUBROUTINE flumass_loc(massebx,masseby,vcont,ucont,pbaru,pbarv) 2 USE parallel 2 USE parallel_lmdz 3 3 IMPLICIT NONE 4 4 -
LMDZ5/branches/testing/libf/dyn3dmem/friction_loc.F
r1707 r1864 4 4 c======================================================================= 5 5 SUBROUTINE friction_loc(ucov,vcov,pdt) 6 USE parallel 6 USE parallel_lmdz 7 7 USE control_mod 8 8 #ifdef CPP_IOIPSL -
LMDZ5/branches/testing/libf/dyn3dmem/gcm.F
r1795 r1864 11 11 12 12 USE mod_const_mpi, ONLY: init_const_mpi 13 USE parallel 13 USE parallel_lmdz 14 14 USE infotrac 15 15 USE mod_interface_dyn_phys -
LMDZ5/branches/testing/libf/dyn3dmem/geopot_loc.F
r1669 r1864 1 1 SUBROUTINE geopot_loc ( ngrid, teta, pk, pks, phis, phi ) 2 USE parallel 2 USE parallel_lmdz 3 3 IMPLICIT NONE 4 4 -
LMDZ5/branches/testing/libf/dyn3dmem/getparam.F90
r1669 r1864 18 18 CONTAINS 19 19 SUBROUTINE ini_getparam(fichier) 20 USE parallel 20 USE parallel_lmdz 21 21 ! 22 22 IMPLICIT NONE … … 28 28 29 29 SUBROUTINE fin_getparam 30 USE parallel 30 USE parallel_lmdz 31 31 ! 32 32 IMPLICIT NONE … … 37 37 38 38 SUBROUTINE getparamr(TARGET,def_val,ret_val,comment) 39 USE parallel 39 USE parallel_lmdz 40 40 ! 41 41 IMPLICIT NONE … … 63 63 64 64 SUBROUTINE getparami(TARGET,def_val,ret_val,comment) 65 USE parallel 65 USE parallel_lmdz 66 66 ! 67 67 IMPLICIT NONE … … 90 90 91 91 SUBROUTINE getparaml(TARGET,def_val,ret_val,comment) 92 USE parallel 92 USE parallel_lmdz 93 93 ! 94 94 IMPLICIT NONE -
LMDZ5/branches/testing/libf/dyn3dmem/gr_dyn_fi_p.F
r1707 r1864 7 7 USE mod_interface_dyn_phys 8 8 USE dimphy 9 USE PARALLEL9 USE parallel_lmdz 10 10 IMPLICIT NONE 11 11 c======================================================================= -
LMDZ5/branches/testing/libf/dyn3dmem/gr_fi_dyn_p.F
r1707 r1864 7 7 USE mod_interface_dyn_phys 8 8 USE dimphy 9 use parallel9 USE parallel_lmdz 10 10 IMPLICIT NONE 11 11 c======================================================================= -
LMDZ5/branches/testing/libf/dyn3dmem/gr_u_scal_loc.F
r1669 r1864 25 25 c 26 26 c======================================================================= 27 USE parallel 27 USE parallel_lmdz 28 28 IMPLICIT NONE 29 29 c----------------------------------------------------------------------- -
LMDZ5/branches/testing/libf/dyn3dmem/gr_v_scal_loc.F
r1669 r1864 25 25 c 26 26 c======================================================================= 27 USE parallel 27 USE parallel_lmdz 28 28 IMPLICIT NONE 29 29 c----------------------------------------------------------------------- -
LMDZ5/branches/testing/libf/dyn3dmem/grad_loc.F
r1669 r1864 10 10 c pgx et pgy sont des arguments de sortie pour le s-prog 11 11 c 12 USE parallel 12 USE parallel_lmdz 13 13 IMPLICIT NONE 14 14 c -
LMDZ5/branches/testing/libf/dyn3dmem/grad_p.F
r1669 r1864 10 10 c pgx et pgy sont des arguments de sortie pour le s-prog 11 11 c 12 USE parallel 12 USE parallel_lmdz 13 13 IMPLICIT NONE 14 14 c -
LMDZ5/branches/testing/libf/dyn3dmem/gradiv2_loc.F
r1669 r1864 13 13 c 14 14 c 15 USE parallel 15 USE parallel_lmdz 16 16 USE times 17 17 USE Write_field_p … … 38 38 INTEGER l,ij,iter,ld 39 39 INTEGER :: ijb,ije,jjb,jje 40 Type(Request) :: request_dissip41 40 Type(Request),SAVE :: request_dissip 41 !$OMP THREADPRIVATE(request_dissip) 42 42 c ........................................................ 43 43 c -
LMDZ5/branches/testing/libf/dyn3dmem/gradiv2_mod.F90
r1669 r1864 9 9 SUBROUTINE gradiv2_allocate 10 10 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 14 14 IMPLICIT NONE 15 15 TYPE(distrib),POINTER :: d … … 24 24 25 25 SUBROUTINE gradiv2_switch_dissip(dist) 26 USE allocate_field 26 USE allocate_field_mod 27 27 USE bands 28 USE parallel 28 USE parallel_lmdz 29 29 IMPLICIT NONE 30 30 TYPE(distrib),INTENT(IN) :: dist -
LMDZ5/branches/testing/libf/dyn3dmem/groupe_loc.F
r1669 r1864 1 1 subroutine groupe_loc(pext,pbaru,pbarv,pbarum,pbarvm,wm) 2 USE parallel 2 USE parallel_lmdz 3 3 USE Write_field_loc 4 4 USE groupe_mod -
LMDZ5/branches/testing/libf/dyn3dmem/groupe_mod.F90
r1669 r1864 8 8 SUBROUTINE groupe_allocate 9 9 USE bands 10 USE allocate_field 11 USE parallel 10 USE allocate_field_mod 11 USE parallel_lmdz 12 12 USE infotrac 13 13 USE advtrac_mod, ONLY : advtrac_allocate … … 25 25 26 26 SUBROUTINE groupe_switch_caldyn(dist) 27 USE allocate_field 27 USE allocate_field_mod 28 28 USE bands 29 USE parallel 29 USE parallel_lmdz 30 30 IMPLICIT NONE 31 31 TYPE(distrib),INTENT(IN) :: dist -
LMDZ5/branches/testing/libf/dyn3dmem/groupeun_loc.F
r1669 r1864 1 1 SUBROUTINE groupeun_loc(jjmax,llmax,sb,se,jjb,jje,q) 2 USE parallel 2 USE parallel_lmdz 3 3 USE Write_Field_p 4 4 IMPLICIT NONE … … 135 135 SUBROUTINE init_groupeun_loc(airen_tab, aires_tab) 136 136 137 USE parallel 137 USE parallel_lmdz 138 138 IMPLICIT NONE 139 139 -
LMDZ5/branches/testing/libf/dyn3dmem/guide_loc_mod.F90
r1750 r1864 12 12 USE Write_Field_loc 13 13 use netcdf, only: nf90_nowrite, nf90_open, nf90_inq_varid, nf90_close 14 USE parallel 14 USE parallel_lmdz 15 15 USE pres2lev_mod 16 16 … … 293 293 !======================================================================= 294 294 SUBROUTINE guide_main(itau,ucov,vcov,teta,q,masse,ps) 295 use parallel295 USE parallel_lmdz 296 296 USE control_mod 297 USE write_field_loc 297 298 298 299 IMPLICIT NONE … … 313 314 !$OMP THREADPRIVATE(first) 314 315 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 316 318 ! Variables pour fonction Exner (P milieu couche) 317 REAL, DIMENSION (iip1,jjb_u:jje_u,llm) :: pk, pkf318 REAL, DIMENSION (iip1,jjb_u:jje_u,llm) :: alpha, beta319 REAL, DIMENSION (iip1,jjb_u:jje_u) :: pks319 REAL, ALLOCATABLE, SAVE, DIMENSION (:,:,:) :: pk, pkf 320 REAL, ALLOCATABLE, SAVE, DIMENSION (:,:,:) :: alpha, beta 321 REAL, ALLOCATABLE, SAVE, DIMENSION (:,:) :: pks 320 322 REAL :: unskap 321 REAL, DIMENSION (ijb_u:ije_u,llmp1) :: p ! besoin si guide_P323 REAL, ALLOCATABLE, SAVE, DIMENSION (:,:) :: p ! besoin si guide_P 322 324 ! Compteurs temps: 323 325 INTEGER, SAVE :: step_rea,count_no_rea,itau_test ! lecture guidage … … 329 331 330 332 INTEGER :: i,j,l 331 333 332 334 !$OMP MASTER 333 335 ijbu=ij_begin ; ijeu=ij_end ; ijnu=ijeu-ijbu+1 … … 358 360 first=.FALSE. 359 361 !$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) ) 360 370 CALL guide_init 361 371 !$OMP END MASTER … … 367 377 factt=dtvr*iperiod/daysec 368 378 !$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) 374 384 ! correction de rappel dans couche limite 375 385 if (guide_BL) then … … 381 391 endif 382 392 !$OMP END MASTER 393 !$OMP BARRIER 383 394 ! ini_anal: etat initial egal au guidage 384 395 IF (ini_anal) THEN 385 396 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 390 405 IF (guide_P) THEN 406 !$OMP MASTER 391 407 ps(ijbu:ijeu)=psgui2(ijbu:ijeu) 408 !$OMP END MASTER 409 !$OMP BARRIER 392 410 CALL pression_loc(ijnb_u,ap,bp,ps,p) 393 411 CALL massdair_loc(p,masse) 412 !$OMP BARRIER 394 413 ENDIF 395 414 RETURN … … 398 417 IF (guide_u) THEN 399 418 !+tard CALL writefield_u('unat',unat1) 400 CALL writefield_u('ucov',ucov)419 ! CALL writefield_u('ucov',ucov) 401 420 ENDIF 402 421 IF (guide_T) THEN 403 422 !+tard CALL writefield_p('tnat',tnat1) 404 CALL writefield_u('teta',teta)423 ! CALL writefield_u('teta',teta) 405 424 ENDIF 406 425 … … 424 443 stop 425 444 ELSE 445 !$OMP MASTER 426 446 IF (guide_v) vnat1(:,jjbv:jjev,:)=vnat2(:,jjbv:jjev,:) 427 447 IF (guide_u) unat1(:,jjbu:jjeu,:)=unat2(:,jjbu:jjeu,:) … … 430 450 IF (guide_plevs.EQ.2) pnat1(:,jjbu:jjeu,:)=pnat2(:,jjbu:jjeu,:) 431 451 IF (guide_P.OR.guide_plevs.EQ.1) psnat1(:,jjbu:jjeu)=psnat2(:,jjbu:jjeu) 452 !$OMP END MASTER 453 !$OMP BARRIER 432 454 step_rea=step_rea+1 433 455 itau_test=itau … … 435 457 'apres ',count_no_rea,' non lectures' 436 458 IF (guide_2D) THEN 459 !$OMP MASTER 437 460 CALL guide_read2D(step_rea) 461 !$OMP END MASTER 462 !$OMP BARRIER 438 463 ELSE 464 !$OMP MASTER 439 465 CALL guide_read(step_rea) 466 !$OMP END MASTER 467 !$OMP BARRIER 440 468 ENDIF 441 469 count_no_rea=0 … … 460 488 ENDIF 461 489 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 !----------------------------------------------------------------------- 463 497 ! Ajout des champs de guidage 464 498 !----------------------------------------------------------------------- … … 473 507 CALL exner_milieu_loc(ip1jmp1,ps,p,beta,pks,pk,pkf) 474 508 endif 509 !$OMP BARRIER 475 510 unskap=1./kappa 511 !$OMP DO 476 512 DO l = 1, llm 477 513 DO j=jjbu,jjeu … … 481 517 ENDDO 482 518 ENDDO 519 !$OMP MASTER 483 520 CALL guide_out("P",jjp1,llm,p,1.) 521 !$OMP END MASTER 522 !$OMP BARRIER 484 523 ENDIF 485 524 486 525 if (guide_u) then 487 526 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 489 531 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 491 536 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 497 554 endif 498 555 499 556 if (guide_T) then 500 557 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 502 562 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 504 567 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 509 578 endif 510 579 511 580 if (guide_P) then 512 581 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 514 586 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 516 591 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 521 602 CALL pression_loc(ijnb_u,ap,bp,ps,p) 522 603 CALL massdair_loc(p,masse) 604 !$OMP BARRIER 523 605 endif 524 606 525 607 if (guide_Q) then 526 608 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 528 613 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 530 618 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 535 630 endif 536 631 537 632 if (guide_v) then 538 633 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 540 639 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 542 645 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) 543 650 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 548 664 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) 549 670 550 671 END SUBROUTINE guide_main … … 566 687 INTEGER :: l 567 688 689 !$OMP DO 568 690 DO l=1,vsize 569 691 field(ijbu:ijeu,l)=alpha(ijbu:ijeu)*field(ijbu:ijeu,l)*alpha_pcor(l) … … 588 710 INTEGER :: l 589 711 712 !$OMP DO 590 713 DO l=1,vsize 591 714 field(ijbv:ijev,l)=alpha(ijbv:ijev)*field(ijbv:ijev,l)*alpha_pcor(l) … … 612 735 ! Local variables 613 736 LOGICAL, SAVE :: first=.TRUE. 737 !$OMP THREADPRIVATE(first) 738 614 739 INTEGER, DIMENSION (2), SAVE :: imin, imax ! averaging domain 740 !$OMP THREADPRIVATE(imin,imax) 615 741 INTEGER :: i,j,l,ij 616 742 REAL, DIMENSION (iip1) :: lond ! longitude in Deg. … … 636 762 ENDIF 637 763 638 fieldm=0.639 764 765 !$OMP DO 640 766 DO l=1,vsize 767 fieldm(:,l)=0. 641 768 ! Compute zonal average 642 769 … … 680 807 ! Local variables 681 808 LOGICAL, SAVE :: first=.TRUE. 809 !$OMP THREADPRIVATE(first) 682 810 INTEGER, DIMENSION (2), SAVE :: imin, imax ! averaging domain 811 !$OMP THREADPRIVATE(imin, imax) 683 812 INTEGER :: i,j,l,ij 684 813 REAL, DIMENSION (iip1) :: lond ! longitude in Deg. … … 704 833 ENDIF 705 834 706 fieldm=0. 707 835 !$OMP DO 708 836 DO l=1,vsize 709 837 ! Compute zonal average 838 fieldm(:,l)=0. 710 839 DO j=jjbv,jjev 711 840 DO i=imin(typ),imax(typ) … … 729 858 !======================================================================= 730 859 SUBROUTINE guide_interp(psi,teta) 731 USE parallel 860 USE parallel_lmdz 732 861 USE mod_hallo 733 862 USE Bands … … 744 873 745 874 LOGICAL, SAVE :: first=.TRUE. 875 !$OMP THREADPRIVATE(first) 746 876 ! Variables pour niveaux pression: 747 REAL, DIMENSION (iip1,jjb_u:jje_u,nlevnc) :: plnc1,plnc2 !niveaux pression guidage748 REAL, DIMENSION (iip1,jjb_u:jje_u,llm) :: plunc,plsnc !niveaux pression modele749 REAL, DIMENSION (iip1,jjb_v:jje_v,llm) :: plvnc !niveaux pression modele750 REAL, DIMENSION (iip1,jjb_u:jje_u,llmp1) :: p ! pression intercouches751 REAL, DIMENSION (iip1,jjb_u:jje_u,llm) :: pls, pext ! var intermediaire752 REAL, DIMENSION (iip1,jjb_u:jje_u,llm) :: pbarx753 REAL, DIMENSION (iip1,jjb_v:jje_v,llm) :: pbary877 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 754 884 ! Variables pour fonction Exner (P milieu couche) 755 REAL, DIMENSION (iip1,jjb_u:jje_u,llm) :: pk, pkf756 REAL, DIMENSION (iip1,jjb_u:jje_u,llm) :: alpha, beta757 REAL , DIMENSION (iip1,jjb_u:jje_u) :: pks885 REAL, ALLOCATABLE, SAVE,DIMENSION (:,:,:) :: pk, pkf 886 REAL, ALLOCATABLE, SAVE, DIMENSION (:,:,:) :: alpha, beta 887 REAL ,ALLOCATABLE, SAVE, DIMENSION (:,:) :: pks 758 888 REAL :: unskap 759 889 ! Pression de vapeur saturante 760 REAL, DIMENSION (ijb_u:ije_u,llm) :: qsat890 REAL, ALLOCATABLE, SAVE,DIMENSION (:,:) :: qsat 761 891 !Variables intermediaires interpolation 762 REAL, DIMENSION (iip1,jjb_u:jje_u,llm) :: zu1,zu2763 REAL, DIMENSION (iip1,jjb_v:jje_v,llm) :: zv1,zv2892 REAL, ALLOCATABLE, SAVE,DIMENSION (:,:,:) :: zu1,zu2 893 REAL, ALLOCATABLE, SAVE,DIMENSION (:,:,:) :: zv1,zv2 764 894 765 895 INTEGER :: i,j,l,ij 766 TYPE(Request) :: Req767 896 TYPE(Request),SAVE :: Req 897 !$OMP THREADPRIVATE(Req) 768 898 print *,'Guide: conversion variables guidage' 769 899 ! ----------------------------------------------------------------- 770 900 ! Calcul des niveaux de pression champs guidage (pour T et Q) 771 901 ! ----------------------------------------------------------------- 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 772 931 IF (guide_plevs.EQ.0) THEN 932 !$OMP DO 773 933 DO l=1,nlevnc 774 934 DO j=jjbu,jjeu … … 783 943 if (first) then 784 944 first=.FALSE. 945 !$OMP MASTER 785 946 print*,'Guide: verification ordre niveaux verticaux' 786 947 print*,'LMDZ :' … … 815 976 enddo 816 977 endif 978 !$OMP END MASTER 817 979 endif 818 980 … … 823 985 ! .... Calcul de pls , pression au milieu des couches ,en Pascals 824 986 IF (guide_plevs.EQ.1) THEN 987 !$OMP DO 825 988 DO l=1,llm 826 989 DO j=jjbu,jjeu … … 838 1001 endif 839 1002 unskap=1./kappa 1003 !$OMP BARRIER 1004 !$OMP DO 840 1005 DO l = 1, llm 841 1006 DO j=jjbu,jjeu … … 848 1013 849 1014 ! calcul des pressions pour les grilles u et v 1015 !$OMP DO 850 1016 do l=1,llm 851 1017 do j=jjbu,jjeu … … 858 1024 CALL Register_Hallo_u(pext,llm,1,2,2,1,Req) 859 1025 CALL SendRequest(Req) 1026 !$OMP BARRIER 860 1027 CALL WaitRequest(Req) 1028 !$OMP BARRIER 861 1029 862 1030 call massbar_loc(pext, pbarx, pbary ) 1031 !$OMP BARRIER 1032 !$OMP DO 863 1033 do l=1,llm 864 1034 do j=jjbu,jjeu … … 869 1039 enddo 870 1040 enddo 1041 !$OMP DO 871 1042 do l=1,llm 872 1043 do j=jjbv,jjev … … 882 1053 ! ----------------------------------------------------------------- 883 1054 if (guide_P) then 1055 !$OMP MASTER 884 1056 do j=jjbu,jjeu 885 1057 do i=1,iim … … 891 1063 psgui2(iip1*j)=psnat2(1,j) 892 1064 enddo 1065 !$OMP END MASTER 1066 !$OMP BARRIER 893 1067 endif 894 1068 … … 896 1070 ! Calcul des nouvelles valeurs des niveaux de pression du guidage 897 1071 IF (guide_plevs.EQ.1) THEN 1072 !$OMP DO 898 1073 DO l=1,nlevnc 899 1074 DO j=jjbu,jjeu … … 905 1080 ENDDO 906 1081 ELSE IF (guide_plevs.EQ.2) THEN 1082 !$OMP DO 907 1083 DO l=1,nlevnc 908 1084 DO j=jjbu,jjeu … … 916 1092 917 1093 ! Interpolation verticale 1094 !$OMP MASTER 918 1095 CALL pres2lev(tnat1(:,jjbu:jjeu,:),zu1(:,jjbu:jjeu,:),nlevnc,llm, & 919 1096 plnc1(:,jjbu:jjeu,:),plsnc(:,jjbu:jjeu,:),iip1,jjnu,invert_p) 920 1097 CALL pres2lev(tnat2(:,jjbu:jjeu,:),zu2(:,jjbu:jjeu,:),nlevnc,llm, & 921 1098 plnc2(:,jjbu:jjeu,:),plsnc(:,jjbu:jjeu,:),iip1,jjnu,invert_p) 922 1099 !$OMP END MASTER 1100 !$OMP BARRIER 923 1101 ! Conversion en variables GCM 1102 !$OMP DO 924 1103 do l=1,llm 925 1104 do j=jjbu,jjeu … … 958 1137 ! Calcul des nouvelles valeurs des niveaux de pression du guidage 959 1138 IF (guide_plevs.EQ.1) THEN 1139 !$OMP DO 960 1140 DO l=1,nlevnc 961 1141 DO j=jjbu,jjeu … … 967 1147 ENDDO 968 1148 ELSE IF (guide_plevs.EQ.2) THEN 1149 !$OMP DO 969 1150 DO l=1,nlevnc 970 1151 DO j=jjbu,jjeu … … 978 1159 979 1160 ! Interpolation verticale 1161 !$OMP MASTER 980 1162 CALL pres2lev(qnat1(:,jjbu:jjeu,:),zu1(:,jjbu:jjeu,:),nlevnc,llm, & 981 1163 plnc1(:,jjbu:jjeu,:),plsnc(:,jjbu:jjeu,:),iip1,jjnu,invert_p) 982 1164 CALL pres2lev(qnat2(:,jjbu:jjeu,:),zu2(:,jjbu:jjeu,:),nlevnc,llm, & 983 1165 plnc2(:,jjbu:jjeu,:),plsnc(:,jjbu:jjeu,:),iip1,jjnu,invert_p) 1166 !$OMP END MASTER 1167 !$OMP BARRIER 984 1168 985 1169 ! Conversion en variables GCM 986 1170 ! On suppose qu'on a la bonne variable dans le fichier de guidage: 987 1171 ! Hum.Rel si guide_hr, Hum.Spec. sinon. 1172 !$OMP DO 988 1173 do l=1,llm 989 1174 do j=jjbu,jjeu … … 1010 1195 enddo 1011 1196 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 1016 1205 ENDIF 1017 1206 ENDIF … … 1020 1209 ! Calcul des nouvelles valeurs des niveaux de pression du guidage 1021 1210 IF (guide_plevs.EQ.1) THEN 1211 !$OMP DO 1022 1212 DO l=1,nlevnc 1023 1213 DO j=jjbu,jjeu … … 1033 1223 ENDDO 1034 1224 ELSE IF (guide_plevs.EQ.2) THEN 1225 !$OMP DO 1035 1226 DO l=1,nlevnc 1036 1227 DO j=jjbu,jjeu … … 1048 1239 1049 1240 ! Interpolation verticale 1241 !$OMP MASTER 1050 1242 CALL pres2lev(unat1(:,jjbu:jjeu,:),zu1(:,jjbu:jjeu,:),nlevnc,llm, & 1051 1243 plnc1(:,jjbu:jjeu,:),plunc(:,jjbu:jjeu,:),iip1,jjnu,invert_p) 1052 1244 CALL pres2lev(unat2(:,jjbu:jjeu,:),zu2(:,jjbu:jjeu,:),nlevnc,llm, & 1053 1245 plnc2(:,jjbu:jjeu,:),plunc(:,jjbu:jjeu,:),iip1,jjnu,invert_p) 1246 !$OMP END MASTER 1247 !$OMP BARRIER 1054 1248 1055 1249 ! Conversion en variables GCM 1250 !$OMP DO 1056 1251 do l=1,llm 1057 1252 do j=jjbu,jjeu … … 1085 1280 CALL Register_Hallo_u(psnat2,1,1,2,2,1,Req) 1086 1281 CALL SendRequest(Req) 1282 !$OMP BARRIER 1087 1283 CALL WaitRequest(Req) 1284 !$OMP BARRIER 1285 !$OMP DO 1088 1286 DO l=1,nlevnc 1089 1287 DO j=jjbv,jjev … … 1100 1298 CALL Register_Hallo_u(pnat2,llm,1,2,2,1,Req) 1101 1299 CALL SendRequest(Req) 1300 !$OMP BARRIER 1102 1301 CALL WaitRequest(Req) 1302 !$OMP BARRIER 1303 !$OMP DO 1103 1304 DO l=1,nlevnc 1104 1305 DO j=jjbv,jjev … … 1113 1314 ENDIF 1114 1315 ! Interpolation verticale 1316 1317 !$OMP MASTER 1115 1318 CALL pres2lev(vnat1(:,jjbv:jjev,:),zv1(:,jjbv:jjev,:),nlevnc,llm, & 1116 1319 plnc1(:,jjbv:jjev,:),plvnc(:,jjbv:jjev,:),iip1,jjnv,invert_p) 1117 1320 CALL pres2lev(vnat2(:,jjbv:jjev,:),zv2(:,jjbv:jjev,:),nlevnc,llm, & 1118 1321 plnc2(:,jjbv:jjev,:),plvnc(:,jjbv:jjev,:),iip1,jjnv,invert_p) 1322 !$OMP END MASTER 1323 !$OMP BARRIER 1119 1324 ! Conversion en variables GCM 1325 !$OMP DO 1120 1326 do l=1,llm 1121 1327 do j=jjbv,jjev … … 1135 1341 1136 1342 !======================================================================= 1137 SUBROUTINE tau2alpha(typ,pim, pjm,factt,taumin,taumax,alpha)1343 SUBROUTINE tau2alpha(typ,pim,jjb,jje,factt,taumin,taumax,alpha) 1138 1344 1139 1345 ! Calcul des constantes de rappel alpha (=1/tau) … … 1149 1355 ! input arguments : 1150 1356 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 1152 1359 REAL, INTENT(IN) :: factt ! pas de temps en fraction de jour 1153 1360 REAL, INTENT(IN) :: taumin,taumax 1154 1361 ! output arguments: 1155 REAL, DIMENSION(pim, pjm), INTENT(OUT) :: alpha1362 REAL, DIMENSION(pim,jjb:jje), INTENT(OUT) :: alpha 1156 1363 1157 1364 ! local variables: … … 1175 1382 !----------------------------------------------------------------------- 1176 1383 IF (guide_reg) THEN 1177 do j= 1,pjm1384 do j=jjb,jje 1178 1385 do i=1,pim 1179 1386 if (typ.eq.2) then … … 1271 1478 ENDIF !first 1272 1479 1273 do j= 1,pjm1480 do j=jjb,jje 1274 1481 do i=1,pim 1275 1482 if (typ.eq.1) then … … 1297 1504 enddo 1298 1505 enddo 1506 1299 1507 ENDIF ! guide_reg 1300 1508 … … 1767 1975 !======================================================================= 1768 1976 SUBROUTINE guide_out(varname,hsize,vsize,field,factt) 1769 USE parallel 1977 USE parallel_lmdz 1770 1978 IMPLICIT NONE 1771 1979 -
LMDZ5/branches/testing/libf/dyn3dmem/iniacademic_loc.F90
r1795 r1864 7 7 USE infotrac, ONLY : nqtot 8 8 USE control_mod, ONLY: day_step,planet_type 9 USE parallel 9 USE parallel_lmdz 10 10 #ifdef CPP_IOIPSL 11 11 USE IOIPSL -
LMDZ5/branches/testing/libf/dyn3dmem/initdynav_loc.F
r1669 r1864 8 8 USE IOIPSL 9 9 #endif 10 use parallel10 USE parallel_lmdz 11 11 use Write_field 12 12 use misc_mod -
LMDZ5/branches/testing/libf/dyn3dmem/initfluxsto_p.F
r1707 r1864 10 10 USE IOIPSL 11 11 #endif 12 use parallel12 USE parallel_lmdz 13 13 use Write_field 14 14 use misc_mod -
LMDZ5/branches/testing/libf/dyn3dmem/inithist_loc.F
r1669 r1864 8 8 USE IOIPSL 9 9 #endif 10 use parallel10 USE parallel_lmdz 11 11 use Write_field 12 12 use misc_mod -
LMDZ5/branches/testing/libf/dyn3dmem/integrd_loc.F
r1707 r1864 5 5 $ ( nq,vcovm1,ucovm1,tetam1,psm1,massem1, 6 6 $ dv,du,dteta,dq,dp,vcov,ucov,teta,q,ps0,masse,phis) !,finvmaold) 7 USE parallel 7 USE parallel_lmdz 8 8 USE control_mod 9 9 USE mod_filtreg_p -
LMDZ5/branches/testing/libf/dyn3dmem/integrd_mod.F90
r1669 r1864 11 11 SUBROUTINE integrd_allocate 12 12 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 16 16 USE advect_new_mod,ONLY : advect_new_allocate 17 17 IMPLICIT NONE … … 28 28 29 29 SUBROUTINE integrd_switch_caldyn(dist) 30 USE allocate_field 30 USE allocate_field_mod 31 31 USE bands 32 USE parallel 32 USE parallel_lmdz 33 33 IMPLICIT NONE 34 34 TYPE(distrib),INTENT(IN) :: dist -
LMDZ5/branches/testing/libf/dyn3dmem/laplacien_gam_loc.F
r1669 r1864 11 11 c divgra est un argument de sortie pour le s-prog 12 12 c 13 USE parallel 13 USE parallel_lmdz 14 14 IMPLICIT NONE 15 15 c -
LMDZ5/branches/testing/libf/dyn3dmem/laplacien_loc.F
r1669 r1864 9 9 c divgra est un argument de sortie pour le s-prog 10 10 c 11 USE parallel 11 USE parallel_lmdz 12 12 USE mod_filtreg_p 13 13 IMPLICIT NONE -
LMDZ5/branches/testing/libf/dyn3dmem/laplacien_rot_loc.F
r1669 r1864 10 10 c rotout est un argument de sortie pour le s-prog 11 11 c 12 USE parallel 12 USE parallel_lmdz 13 13 USE mod_filtreg_p 14 14 IMPLICIT NONE -
LMDZ5/branches/testing/libf/dyn3dmem/laplacien_rotgam_loc.F
r1669 r1864 9 9 c divgra est un argument de sortie pour le s-prog 10 10 c 11 USE parallel 11 USE parallel_lmdz 12 12 IMPLICIT NONE 13 13 c -
LMDZ5/branches/testing/libf/dyn3dmem/leapfrog_loc.F
r1795 r1864 13 13 14 14 USE misc_mod 15 USE parallel 15 USE parallel_lmdz 16 16 USE times 17 17 USE mod_hallo … … 27 27 USE mod_filtreg_p 28 28 USE write_field_loc 29 USE allocate_field 29 USE allocate_field_mod 30 30 USE call_dissip_mod, ONLY : call_dissip 31 31 USE call_calfis_mod, ONLY : call_calfis … … 307 307 #ifdef CPP_IOIPSL 308 308 if (ok_guide) then 309 !$OMP MASTER310 309 call guide_main(itau,ucov,vcov,teta,q,masse,ps) 311 !$OMP END MASTER312 310 !$OMP BARRIER 313 311 endif … … 451 449 IF (ok_start_timer) THEN 452 450 CALL InitTime 453 ! ok_start_timer=.FALSE. 454 ok_start_timer=.TRUE. 451 ok_start_timer=.FALSE. 455 452 ENDIF 456 453 c$OMP END MASTER … … 626 623 True_itau=True_itau+1 627 624 628 c$OMP MASTER629 PRINT *,"---> itau=",itau," True_itau=",True_itau630 c$OMP END MASTER631 632 625 c$OMP MASTER 633 626 IF (prt_level>9) THEN … … 1088 1081 1089 1082 IF(iflag_phys.EQ.2) THEN ! "Newtonian" case 1083 c$OMP MASTER 1084 if (FirstPhysic) then 1085 ok_start_timer=.TRUE. 1086 FirstPhysic=.false. 1087 endif 1088 c$OMP END MASTER 1089 1090 1090 1091 c Calcul academique de la physique = Rappel Newtonien + fritcion 1091 1092 c -------------------------------------------------------------- … … 1390 1391 c$OMP MASTER 1391 1392 call allgather_timer_average 1392 1393 call barrier 1393 1394 if (mpi_rank==0) then 1394 1395 … … 1426 1427 1427 1428 endif 1428 1429 CALL barrier 1429 1430 print *,'Taille du Buffer MPI (REAL*8)',MaxBufferSize 1430 1431 print *,'Taille du Buffer MPI utilise (REAL*8)',MaxBufferSize_Used -
LMDZ5/branches/testing/libf/dyn3dmem/leapfrog_mod.F90
r1669 r1864 39 39 SUBROUTINE leapfrog_allocate 40 40 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 44 44 USE infotrac 45 45 USE caldyn_mod,ONLY : caldyn_allocate … … 94 94 95 95 SUBROUTINE leapfrog_switch_caldyn(dist) 96 USE allocate_field 96 USE allocate_field_mod 97 97 USE bands 98 USE parallel 98 USE parallel_lmdz 99 99 USE caldyn_mod,ONLY : caldyn_switch_caldyn 100 100 USE integrd_mod,ONLY : integrd_switch_caldyn … … 143 143 144 144 SUBROUTINE leapfrog_switch_dissip(dist) 145 USE allocate_field 145 USE allocate_field_mod 146 146 USE bands 147 USE parallel 147 USE parallel_lmdz 148 148 USE call_dissip_mod,ONLY : call_dissip_switch_dissip 149 149 IMPLICIT NONE -
LMDZ5/branches/testing/libf/dyn3dmem/massbar_loc.F
r1669 r1864 13 13 c 14 14 c 15 USE parallel 15 USE parallel_lmdz 16 16 IMPLICIT NONE 17 17 c -
LMDZ5/branches/testing/libf/dyn3dmem/massbarxy_loc.F
r1669 r1864 1 1 SUBROUTINE massbarxy_loc( masse, massebxy ) 2 USE parallel 2 USE parallel_lmdz 3 3 implicit none 4 4 c ********************************************************************** -
LMDZ5/branches/testing/libf/dyn3dmem/massdair_loc.F
r1669 r1864 1 1 SUBROUTINE massdair_loc( p, masse ) 2 USE parallel 2 USE parallel_lmdz 3 3 c 4 4 c ********************************************************************* -
LMDZ5/branches/testing/libf/dyn3dmem/mod_const_mpi.F90
r1707 r1864 22 22 INCLUDE 'mpif.h' 23 23 #endif 24 24 25 INTEGER :: ierr 25 26 INTEGER :: comp_id … … 51 52 52 53 SUBROUTINE Init_mpi 54 #ifdef CPP_XIOS 55 USE wxios 56 #endif 53 57 IMPLICIT NONE 54 58 #ifdef CPP_MPI … … 70 74 COMM_LMDZ=MPI_COMM_WORLD 71 75 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 72 82 !$OMP END MASTER 83 #else 84 #ifdef CPP_XIOS 85 !$OMP MASTER 86 CALL wxios_init("LMDZ") 87 !$OMP END MASTER 88 #endif 73 89 #endif 74 90 -
LMDZ5/branches/testing/libf/dyn3dmem/mod_filtreg_p.F
r1707 r1864 5 5 SUBROUTINE filtreg_p ( champ,jjb,jje, ibeg, iend, nlat, nbniv, 6 6 & ifiltre, iaire, griscal ,iter) 7 USE Parallel, only : OMP_CHUNK7 USE parallel_lmdz, only : OMP_CHUNK 8 8 USE mod_filtre_fft_loc 9 9 USE timer_filtre … … 216 216 & champ_fft(1,j,1), iip1*(jje-jjb+1)) 217 217 #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)) 220 221 #endif 221 222 ENDDO … … 229 230 & champ_fft(1,j,1), iip1*(jje-jjb+1)) 230 231 #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)) 233 235 #endif 234 236 ENDDO … … 242 244 & champ_fft(1,j,1), iip1*(jje-jjb+1)) 243 245 #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)) 246 249 #endif 247 250 ENDDO … … 259 262 & champ_fft(1,j,1), iip1*(jje-jjb+1)) 260 263 #else 261 champ_fft(:,j, :)=264 champ_fft(:,j,1:nbniv_loc)= 262 265 & matmul(matrinvs(:,:,j-jfiltsu+1), 263 & champ_loc(:iim,j, :))266 & champ_loc(:iim,j,1:nbniv_loc)) 264 267 #endif 265 268 ENDDO … … 274 277 & champ_fft(1,j,1), iip1*(jje-jjb+1)) 275 278 #else 276 champ_fft(:,j, :)=279 champ_fft(:,j,1:nbniv_loc)= 277 280 & matmul(matriceus(:,:,j-jfiltsu+1), 278 & champ_loc(:iim,j, :))281 & champ_loc(:iim,j,1:nbniv_loc)) 279 282 #endif 280 283 ENDDO … … 289 292 & champ_fft(1,j,1), iip1*(jje-jjb+1)) 290 293 #else 291 champ_fft(:,j, :)=294 champ_fft(:,j,1:nbniv_loc)= 292 295 & matmul(matricevs(:,:,j-jfiltsv+1), 293 & champ_loc(:iim,j, :))296 & champ_loc(:iim,j,1:nbniv_loc)) 294 297 #endif 295 298 ENDDO … … 308 311 ll_nb = 0 309 312 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 310 DO l = 1, nbniv _loc313 DO l = 1, nbniv 311 314 ll_nb = ll_nb + 1 312 315 DO j = jdfil,jffil … … 324 327 ll_nb = 0 325 328 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 326 DO l = 1, nbniv _loc329 DO l = 1, nbniv 327 330 ll_nb = ll_nb + 1 328 331 DO j = jdfil,jffil -
LMDZ5/branches/testing/libf/dyn3dmem/mod_hallo.F90
r1669 r1864 1 1 module mod_Hallo 2 USE parallel 2 USE parallel_lmdz 3 3 implicit none 4 4 logical,save :: use_mpi_alloc 5 integer, parameter :: MaxRequest=2006 5 integer, parameter :: MaxProc=512 7 integer, parameter :: MaxBufferSize=1024*1024*100 6 integer, parameter :: DefaultMaxBufferSize=1024*1024*100 7 integer, SAVE :: MaxBufferSize=0 8 8 integer, parameter :: ListSize=1000 9 9 … … 28 28 type request_SR 29 29 integer :: NbRequest=0 30 integer :: NbRequestMax=0 30 31 integer :: BufferSize 31 32 integer :: Pos 32 33 integer :: Index 33 type(Hallo), dimension(MaxRequest) :: Hallo34 type(Hallo), POINTER :: Hallo(:) 34 35 integer :: MSG_Request 35 36 end type request_SR … … 63 64 64 65 subroutine Init_mod_hallo 65 USE dimensions 66 USE dimensions_mod 67 USE IOIPSL 66 68 implicit none 67 69 integer :: jj_nb_gather(0:mpi_size-1) … … 70 72 Buffer_Pos(Index_Pos)=1 71 73 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 73 80 IF (use_mpi_alloc .AND. using_mpi) THEN 74 81 CALL create_global_mpi_buffer … … 77 84 ENDIF 78 85 86 !$OMP MASTER 79 87 jj_nb_gather(:)=0 80 88 jj_nb_gather(0)=jjp1 81 89 82 90 CALL create_distrib(jj_nb_gather,distrib_gather) 91 !$OMP END MASTER 92 !$OMP BARRIER 83 93 84 94 end subroutine init_mod_hallo … … 176 186 177 187 178 subroutine Init_Hallo(Field,Stride,NbLevel,offset,size,NewHallo)188 subroutine New_Hallo(Field,Stride,NbLevel,offset,size,Ptr_request) 179 189 integer :: Stride 180 190 integer :: NbLevel … … 182 192 integer :: offset 183 193 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 186 212 NewHallo%Field=>Field 187 213 NewHallo%Stride=Stride … … 190 216 NewHallo%offset=offset 191 217 192 193 end subroutine Init_Hallo 218 end subroutine New_Hallo 194 219 195 220 subroutine Register_SendField(Field,ij,ll,offset,size,target,a_request) 196 USE dimensions 221 USE dimensions_mod 197 222 implicit none 198 223 … … 204 229 205 230 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) 212 233 213 234 end subroutine Register_SendField 214 235 215 236 subroutine Register_RecvField(Field,ij,ll,offset,size,target,a_request) 216 USE dimensions 237 USE dimensions_mod 217 238 implicit none 218 239 … … 224 245 225 246 Ptr_Request=>a_request%RequestRecv(target) 226 Ptr_Request%NbRequest=Ptr_Request%NbRequest+1227 228 if (Ptr_Request%NbRequest>=MaxRequest) then229 print *,'STOP :: La taille de MaxRequest dans mod_hallo.F90 est trop petite !!!!'230 stop231 endif232 247 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) 234 249 235 250 … … 237 252 238 253 subroutine Register_SwapField(FieldS,FieldR,ij,ll,jj_Nb_New,a_request) 239 USE dimensions 254 USE dimensions_mod 240 255 implicit none 241 256 … … 285 300 286 301 subroutine Register_SwapFieldHallo(FieldS,FieldR,ij,ll,jj_Nb_New,Up,Down,a_request) 287 USE dimensions 302 USE dimensions_mod 288 303 289 304 implicit none … … 338 353 339 354 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 342 357 IMPLICIT NONE 343 358 … … 369 384 370 385 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 373 388 IMPLICIT NONE 374 389 … … 403 418 404 419 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 407 422 IMPLICIT NONE 408 423 … … 438 453 439 454 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 442 457 443 458 IMPLICIT NONE … … 470 485 471 486 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 474 489 475 490 IMPLICIT NONE … … 505 520 506 521 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 509 524 IMPLICIT NONE 510 525 … … 544 559 545 560 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 548 563 IMPLICIT NONE 549 564 … … 575 590 576 591 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 579 594 IMPLICIT NONE 580 595 … … 609 624 610 625 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 613 628 IMPLICIT NONE 614 629 … … 645 660 646 661 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 649 664 IMPLICIT NONE 650 665 … … 676 691 677 692 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 680 695 IMPLICIT NONE 681 696 … … 710 725 711 726 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 714 729 IMPLICIT NONE 715 730 … … 745 760 746 761 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 749 764 IMPLICIT NONE 750 765 … … 787 802 !$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 788 803 DO l=1,ll 789 FieldR(ijb:ije, :)=FieldS(ijb:ije,:)804 FieldR(ijb:ije,l)=FieldS(ijb:ije,l) 790 805 ENDDO 791 806 !$OMP END DO NOWAIT … … 798 813 799 814 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 802 817 IMPLICIT NONE 803 818 … … 858 873 859 874 subroutine Register_Hallo(Field,ij,ll,RUp,Rdown,SUp,SDown,a_request) 860 USE dimensions 875 USE dimensions_mod 861 876 implicit none 862 877 … … 925 940 926 941 subroutine Register_Hallo_u(Field,ll,RUp,Rdown,SUp,SDown,a_request) 927 USE dimensions 942 USE dimensions_mod 928 943 implicit none 929 944 #ifdef CPP_MPI … … 990 1005 991 1006 subroutine Register_Hallo_v(Field,ll,RUp,Rdown,SUp,SDown,a_request) 992 USE dimensions 1007 USE dimensions_mod 993 1008 implicit none 994 1009 #ifdef CPP_MPI … … 1055 1070 1056 1071 subroutine SendRequest(a_Request) 1057 USE dimensions 1072 USE dimensions_mod 1058 1073 implicit none 1059 1074 … … 1179 1194 1180 1195 subroutine WaitRequest(a_Request) 1181 USE dimensions 1196 USE dimensions_mod 1182 1197 implicit none 1183 1198 … … 1273 1288 1274 1289 subroutine WaitSendRequest(a_Request) 1275 USE dimensions 1290 USE dimensions_mod 1276 1291 implicit none 1277 1292 … … 1329 1344 1330 1345 subroutine WaitRecvRequest(a_Request) 1331 USE dimensions 1346 USE dimensions_mod 1332 1347 implicit none 1333 1348 … … 1410 1425 1411 1426 subroutine CopyField(FieldS,FieldR,ij,ll,jj_Nb_New) 1412 USE dimensions 1427 USE dimensions_mod 1413 1428 1414 1429 implicit none … … 1448 1463 1449 1464 subroutine CopyFieldHallo(FieldS,FieldR,ij,ll,jj_Nb_New,Up,Down) 1450 USE dimensions 1465 USE dimensions_mod 1451 1466 1452 1467 implicit none … … 1488 1503 1489 1504 subroutine Gather_field_u(field_loc,field_glo,ll) 1490 USE dimensions 1505 USE dimensions_mod 1491 1506 implicit none 1492 1507 integer :: ll … … 1511 1526 1512 1527 subroutine Gather_field_v(field_loc,field_glo,ll) 1513 USE dimensions 1528 USE dimensions_mod 1514 1529 implicit none 1515 1530 integer :: ll … … 1539 1554 1540 1555 subroutine Scatter_field_u(field_glo,field_loc,ll) 1541 USE dimensions 1556 USE dimensions_mod 1542 1557 implicit none 1543 1558 integer :: ll … … 1573 1588 1574 1589 subroutine Scatter_field_v(field_glo,field_loc,ll) 1575 USE dimensions 1590 USE dimensions_mod 1576 1591 implicit none 1577 1592 integer :: ll -
LMDZ5/branches/testing/libf/dyn3dmem/nxgrad_gam_loc.F
r1669 r1864 9 9 c x et y sont des arguments de sortie pour le s-prog 10 10 c 11 USE parallel 11 USE parallel_lmdz 12 12 13 13 IMPLICIT NONE -
LMDZ5/branches/testing/libf/dyn3dmem/nxgrad_loc.F
r1669 r1864 9 9 c x et y sont des arguments de sortie pour le s-prog 10 10 c 11 USE parallel 11 USE parallel_lmdz 12 12 IMPLICIT NONE 13 13 c -
LMDZ5/branches/testing/libf/dyn3dmem/nxgraro2_loc.F
r1669 r1864 13 13 c 14 14 USE write_Field_p 15 USE parallel 15 USE parallel_lmdz 16 16 USE times 17 17 USE mod_hallo … … 34 34 REAL signe, nugradrs 35 35 INTEGER l,ij,iter,lr 36 Type(Request) :: Request_dissip 36 Type(Request),SAVE :: Request_dissip 37 !$OMP THREADPRIVATE(Request_dissip) 37 38 c ........................................................ 38 39 c -
LMDZ5/branches/testing/libf/dyn3dmem/nxgraro2_mod.F90
r1669 r1864 9 9 SUBROUTINE nxgraro2_allocate 10 10 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 14 14 IMPLICIT NONE 15 15 TYPE(distrib),POINTER :: d … … 24 24 25 25 SUBROUTINE nxgraro2_switch_dissip(dist) 26 USE allocate_field 26 USE allocate_field_mod 27 27 USE bands 28 USE parallel 28 USE parallel_lmdz 29 29 IMPLICIT NONE 30 30 TYPE(distrib),INTENT(IN) :: dist -
LMDZ5/branches/testing/libf/dyn3dmem/nxgrarot_p.F
r1669 r1864 13 13 c 14 14 c 15 USE parallel 15 USE parallel_lmdz 16 16 USE times 17 17 USE write_field_p -
LMDZ5/branches/testing/libf/dyn3dmem/pression_loc.F
r1669 r1864 1 1 SUBROUTINE pression_loc( ngrid, ap, bp, ps, p ) 2 USE parallel 2 USE parallel_lmdz 3 3 c 4 4 -
LMDZ5/branches/testing/libf/dyn3dmem/qminimum_loc.F
r1669 r1864 1 1 SUBROUTINE qminimum_loc( q,nq,deltap ) 2 USE parallel 2 USE parallel_lmdz 3 3 IMPLICIT none 4 4 c -
LMDZ5/branches/testing/libf/dyn3dmem/rotat_nfil_loc.F
r1669 r1864 10 10 c rot est un argument de sortie pour le s-prog 11 11 c 12 USE parallel 12 USE parallel_lmdz 13 13 IMPLICIT NONE 14 14 c -
LMDZ5/branches/testing/libf/dyn3dmem/rotat_p.F
r1669 r1864 10 10 c rot est un argument de sortie pour le s-prog 11 11 c 12 USE parallel 12 USE parallel_lmdz 13 13 IMPLICIT NONE 14 14 c -
LMDZ5/branches/testing/libf/dyn3dmem/rotatf_loc.F
r1669 r1864 10 10 c rot est un argument de sortie pour le s-prog 11 11 c 12 USE parallel 12 USE parallel_lmdz 13 13 USE mod_filtreg_p 14 14 IMPLICIT NONE -
LMDZ5/branches/testing/libf/dyn3dmem/sw_case_williamson91_6_loc.F
r1795 r1864 26 26 c 27 27 c======================================================================= 28 USE parallel 28 USE parallel_lmdz 29 29 30 30 IMPLICIT NONE -
LMDZ5/branches/testing/libf/dyn3dmem/times.F90
r1669 r1864 25 25 26 26 subroutine init_timer 27 use parallel27 USE parallel_lmdz 28 28 implicit none 29 29 #include "dimensions.h" … … 101 101 102 102 subroutine stop_timer(no_timer) 103 use parallel103 USE parallel_lmdz 104 104 implicit none 105 105 integer :: no_timer … … 136 136 137 137 subroutine allgather_timer 138 use parallel138 USE parallel_lmdz 139 139 implicit none 140 140 #ifdef CPP_MPI … … 171 171 172 172 subroutine allgather_timer_average 173 use parallel173 USE parallel_lmdz 174 174 implicit none 175 175 #ifdef CPP_MPI -
LMDZ5/branches/testing/libf/dyn3dmem/top_bound_loc.F
r1795 r1864 3 3 ! 4 4 SUBROUTINE top_bound_loc(vcov,ucov,teta,masse,dt) 5 USE parallel 5 USE parallel_lmdz 6 6 IMPLICIT NONE 7 7 c -
LMDZ5/branches/testing/libf/dyn3dmem/tourpot_loc.F
r1669 r1864 1 1 SUBROUTINE tourpot_loc ( vcov, ucov, massebxy, vorpot ) 2 USE parallel 2 USE parallel_lmdz 3 3 USE mod_filtreg_p 4 4 IMPLICIT NONE -
LMDZ5/branches/testing/libf/dyn3dmem/vitvert_loc.F
r1669 r1864 1 1 SUBROUTINE vitvert_loc ( convm , w ) 2 2 c 3 USE parallel 3 USE parallel_lmdz 4 4 IMPLICIT NONE 5 5 -
LMDZ5/branches/testing/libf/dyn3dmem/vlsplt_loc.F
r1707 r1864 13 13 c 14 14 c -------------------------------------------------------------------- 15 USE Parallel15 USE parallel_lmdz 16 16 IMPLICIT NONE 17 17 c … … 348 348 c 349 349 c -------------------------------------------------------------------- 350 USE parallel 350 USE parallel_lmdz 351 351 IMPLICIT NONE 352 352 c … … 737 737 c 738 738 c -------------------------------------------------------------------- 739 USE Parallel739 USE parallel_lmdz 740 740 USE vlz_mod 741 741 IMPLICIT NONE -
LMDZ5/branches/testing/libf/dyn3dmem/vlspltgen_loc.F
r1669 r1864 23 23 c pk exner au milieu des couches necessaire pour calculer Qsat 24 24 c -------------------------------------------------------------------- 25 USE parallel 25 USE parallel_lmdz 26 26 USE mod_hallo 27 27 USE Write_Field_loc … … 67 67 LOGICAL, SAVE :: firstcall=.TRUE. 68 68 !$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) 72 73 c fonction psat(T) 73 74 -
LMDZ5/branches/testing/libf/dyn3dmem/vlspltgen_mod.F90
r1669 r1864 12 12 SUBROUTINE vlspltgen_allocate 13 13 USE bands 14 USE allocate_field 15 USE parallel 14 USE allocate_field_mod 15 USE parallel_lmdz 16 16 USE infotrac 17 17 USE vlz_mod,ONLY : vlz_allocate … … 34 34 35 35 SUBROUTINE vlspltgen_switch_vanleer(dist) 36 USE allocate_field 36 USE allocate_field_mod 37 37 USE bands 38 USE parallel 38 USE parallel_lmdz 39 39 USE vlz_mod,ONLY : vlz_switch_vanleer 40 40 IMPLICIT NONE -
LMDZ5/branches/testing/libf/dyn3dmem/vlspltqs_loc.F
r1707 r1864 8 8 c 9 9 c -------------------------------------------------------------------- 10 USE parallel 10 USE parallel_lmdz 11 11 IMPLICIT NONE 12 12 c … … 360 360 c 361 361 c -------------------------------------------------------------------- 362 USE parallel 362 USE parallel_lmdz 363 363 IMPLICIT NONE 364 364 c -
LMDZ5/branches/testing/libf/dyn3dmem/vlz_mod.F90
r1669 r1864 10 10 SUBROUTINE vlz_allocate 11 11 USE bands 12 USE allocate_field 13 USE parallel 12 USE allocate_field_mod 13 USE parallel_lmdz 14 14 USE infotrac 15 USE dimensions 15 USE dimensions_mod 16 16 IMPLICIT NONE 17 17 TYPE(distrib),POINTER :: d … … 26 26 27 27 SUBROUTINE vlz_switch_vanleer(dist) 28 USE allocate_field 28 USE allocate_field_mod 29 29 USE bands 30 USE parallel 30 USE parallel_lmdz 31 31 IMPLICIT NONE 32 32 TYPE(distrib),INTENT(IN) :: dist -
LMDZ5/branches/testing/libf/dyn3dmem/write_field_loc.F90
r1669 r1864 34 34 35 35 SUBROUTINE write_field_u_gen(name,Field,ll) 36 USE parallel 36 USE parallel_lmdz 37 37 USE write_field 38 38 USE mod_hallo … … 45 45 real, allocatable,SAVE :: New_Field(:,:,:) 46 46 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) 48 49 integer :: ll,i 49 50 … … 61 62 New_Field(:,jj_begin:jj_end,i)=reshape(Field(ij_begin:ij_end,i),(/iip1,jj_nb/)) 62 63 ENDDO 63 64 !$OMP BARRIER 64 65 call Register_SwapField(new_field,new_field,ip1jmp1,ll,jj_Nb_master,Request_write) 65 66 call SendRequest(Request_write) … … 98 99 99 100 SUBROUTINE write_field_v_gen(name,Field,ll) 100 USE parallel 101 USE parallel_lmdz 101 102 USE write_field 102 103 USE mod_hallo … … 109 110 real, allocatable,SAVE :: New_Field(:,:,:) 110 111 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) 112 114 integer :: ll,i,jje,ije,jjn 113 115 … … 136 138 New_Field(:,jj_begin:jje,i)=reshape(Field(ij_begin:ije,i),(/iip1,jjn/)) 137 139 ENDDO 138 140 !$OMP BARRIER 139 141 call Register_SwapField(new_field,new_field,ip1jm,ll,jj_Nb_master,Request_write) 140 142 call SendRequest(Request_write) -
LMDZ5/branches/testing/libf/dyn3dmem/write_field_p.F90
r1669 r1864 9 9 10 10 subroutine write_field1D_p(name,Field) 11 USE parallel 11 USE parallel_lmdz 12 12 USE write_field 13 13 implicit none … … 30 30 31 31 subroutine write_field2D_p(name,Field) 32 USE parallel 32 USE parallel_lmdz 33 33 USE write_field 34 34 implicit none … … 51 51 52 52 subroutine write_field3D_p(name,Field) 53 USE parallel 53 USE parallel_lmdz 54 54 USE write_field 55 55 implicit none -
LMDZ5/branches/testing/libf/dyn3dmem/writedynav_loc.F
r1669 r1864 9 9 USE ioipsl 10 10 #endif 11 USE parallel 11 USE parallel_lmdz 12 12 USE misc_mod 13 13 USE infotrac, ONLY : nqtot, ttext -
LMDZ5/branches/testing/libf/dyn3dmem/writehist_loc.F
r1669 r1864 9 9 USE ioipsl 10 10 #endif 11 USE parallel 11 USE parallel_lmdz 12 12 USE misc_mod 13 13 USE infotrac, ONLY : nqtot, ttext
Note: See TracChangeset
for help on using the changeset viewer.