Changeset 4727 for LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem
- Timestamp:
- Oct 19, 2023, 4:02:57 PM (2 years ago)
- Location:
- LMDZ6/branches/LMDZ_ECRad
- Files:
-
- 43 edited
-
. (modified) (1 prop)
-
libf/dyn3dmem/abort_gcm.F (modified) (2 diffs)
-
libf/dyn3dmem/bilan_dyn_loc.F (modified) (2 diffs)
-
libf/dyn3dmem/conf_gcm.F90 (modified) (5 diffs)
-
libf/dyn3dmem/convflu_loc.F (modified) (2 diffs)
-
libf/dyn3dmem/covcont_loc.F (modified) (1 diff)
-
libf/dyn3dmem/covnat_loc.F (modified) (1 diff)
-
libf/dyn3dmem/diverg_gam_loc.F (modified) (1 diff)
-
libf/dyn3dmem/diverg_p.F (modified) (1 diff)
-
libf/dyn3dmem/divergf_loc.F (modified) (1 diff)
-
libf/dyn3dmem/divgrad2_loc.F (modified) (1 diff)
-
libf/dyn3dmem/dudv1_loc.F (modified) (1 diff)
-
libf/dyn3dmem/dynetat0_loc.F90 (modified) (1 diff)
-
libf/dyn3dmem/filtreg_p.F (modified) (1 diff)
-
libf/dyn3dmem/gcm.F90 (modified) (2 diffs)
-
libf/dyn3dmem/gr_u_scal_loc.F (modified) (1 diff)
-
libf/dyn3dmem/gr_v_scal_loc.F (modified) (1 diff)
-
libf/dyn3dmem/grad_loc.F (modified) (1 diff)
-
libf/dyn3dmem/grad_p.F (modified) (1 diff)
-
libf/dyn3dmem/gradiv2_loc.F (modified) (1 diff)
-
libf/dyn3dmem/laplacien_gam_loc.F (modified) (1 diff)
-
libf/dyn3dmem/laplacien_loc.F (modified) (1 diff)
-
libf/dyn3dmem/laplacien_rot_loc.F (modified) (1 diff)
-
libf/dyn3dmem/laplacien_rotgam_loc.F (modified) (1 diff)
-
libf/dyn3dmem/leapfrog_loc.F (modified) (9 diffs)
-
libf/dyn3dmem/mod_const_mpi.F90 (modified) (4 diffs)
-
libf/dyn3dmem/mod_filtreg_p.F (modified) (1 diff)
-
libf/dyn3dmem/mod_hallo.F90 (modified) (15 diffs)
-
libf/dyn3dmem/mod_xios_dyn3dmem.F90 (modified) (2 diffs)
-
libf/dyn3dmem/nxgrad_gam_loc.F (modified) (1 diff)
-
libf/dyn3dmem/nxgrad_loc.F (modified) (1 diff)
-
libf/dyn3dmem/nxgraro2_loc.F (modified) (1 diff)
-
libf/dyn3dmem/parallel_lmdz.F90 (modified) (25 diffs)
-
libf/dyn3dmem/pression_loc.F (modified) (1 diff)
-
libf/dyn3dmem/rotat_nfil_loc.F (modified) (1 diff)
-
libf/dyn3dmem/rotat_p.F (modified) (1 diff)
-
libf/dyn3dmem/rotatf_loc.F (modified) (1 diff)
-
libf/dyn3dmem/temps_mod.F90 (modified) (1 diff)
-
libf/dyn3dmem/times.F90 (modified) (5 diffs)
-
libf/dyn3dmem/top_bound_loc.F (modified) (1 diff)
-
libf/dyn3dmem/vlsplt_loc.F (modified) (1 diff)
-
libf/dyn3dmem/wrgrads.F (modified) (1 diff)
-
libf/dyn3dmem/writedyn_xios.F90 (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/LMDZ_ECRad
- Property svn:mergeinfo changed
-
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/abort_gcm.F
r2100 r4727 13 13 #endif 14 14 USE parallel_lmdz 15 #include"iniprint.h"15 INCLUDE "iniprint.h" 16 16 17 17 C … … 47 47 else 48 48 write(lunout,*) 'Houston, we have a problem, ierr = ', ierr 49 #ifdef CPP_MPI 49 50 if (using_mpi) THEN 50 51 C$OMP CRITICAL (MPI_ABORT_GCM) 51 call MPI_ABORT(COMM_LMDZ, 1, ierror_mpi)52 call MPI_ABORT(COMM_LMDZ, 1, ierror_mpi) 52 53 C$OMP END CRITICAL (MPI_ABORT_GCM) 53 #else 54 stop 1 55 #endif 54 else 55 stop 1 56 endif 57 56 58 endif 57 59 END -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/bilan_dyn_loc.F
r4482 r4727 141 141 character*10 infile 142 142 143 integer fileid143 integer, save :: fileid 144 144 integer thoriid, zvertiid 145 save fileid146 145 147 146 INTEGER,SAVE,ALLOCATABLE :: ndex3d(:) … … 838 837 c///////////////////////////////////////////////////////////////////// 839 838 c===================================================================== 839 !$OMP MASTER 840 call histsync(fileid) 841 !$OMP END MASTER 842 840 843 841 844 return -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/conf_gcm.F90
r4482 r4727 19 19 USE comconst_mod, ONLY: dissip_deltaz, dissip_factz, dissip_zref, & 20 20 iflag_top_bound, mode_top_bound, tau_top_bound, & 21 ngroup 21 ngroup, maxlatfilter 22 22 USE logic_mod, ONLY: fxyhypb, iflag_phys, ok_etat0, ok_gradsfile, & 23 23 ok_guide, ok_limit, ok_strato, purmats, read_start, & … … 25 25 USE serre_mod, ONLY: clon,clat,grossismx,grossismy,dzoomx,dzoomy, & 26 26 alphax,alphay,taux,tauy 27 USE temps_mod, ONLY: calend, year_len 27 USE temps_mod, ONLY: calend, year_len, offline_time 28 28 29 29 IMPLICIT NONE … … 341 341 CALL getin('dissip_zref',dissip_zref ) 342 342 343 344 !maxlatfilter 345 maxlatfilter = -1.0 346 CALL getin('maxlatfilter',maxlatfilter) 347 if (maxlatfilter > 90) & 348 call abort_gcm("conf_gcm", 'maxlatfilter should be <=90', 1) 349 350 343 351 ! ngroup 344 352 ngroup=3 … … 620 628 621 629 !Config Key = offline 622 !Config Desc = Nouvelle eau liquide630 !Config Desc = ecriture des flux de masse 623 631 !Config Def = n 624 !Config Help = Permet de mettre en route la 625 !Config nouvelle parametrisation de l'eau liquide ! 632 !Config Help = Permet de sortir les flux de masse sur la grille plev 626 633 offline = .FALSE. 627 634 CALL getin('offline',offline) 635 636 !Config Key = offline_time 637 !Config Desc = Choix des frequences de stockage pour le offline 638 !Config Def = 8 639 !Config Help = offline_time=12 ! stockage toutes les 2h=1jour/12 640 !Config Help = offline_time=8 ! stockage toutes les 3h=1jour/8 641 offline_time = 8 642 CALL getin('offline_time',offline_time) 643 628 644 IF (offline .AND. adjust) THEN 629 645 WRITE(lunout,*) & … … 714 730 write(lunout,*)' tauyy = ', tauyy 715 731 write(lunout,*)' offline = ', offline 732 write(lunout,*)' offline_time = ', offline_time 716 733 write(lunout,*)' type_trac = ', type_trac 717 734 write(lunout,*)' ok_dynzon = ', ok_dynzon -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/convflu_loc.F
r1907 r4727 18 18 IMPLICIT NONE 19 19 c 20 #include"dimensions.h"21 #include"paramet.h"20 INCLUDE "dimensions.h" 21 INCLUDE "paramet.h" 22 22 REAL xflu,yflu,convfl,convpn,convps 23 23 INTEGER l,ij,nbniv … … 30 30 c 31 31 c 32 #include"comgeom.h"32 INCLUDE "comgeom.h" 33 33 c 34 34 -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/covcont_loc.F
r1907 r4727 17 17 c======================================================================= 18 18 19 #include"dimensions.h"20 #include"paramet.h"21 #include"comgeom.h"19 INCLUDE "dimensions.h" 20 INCLUDE "paramet.h" 21 INCLUDE "comgeom.h" 22 22 23 23 INTEGER klevel -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/covnat_loc.F
r1907 r4727 20 20 c======================================================================= 21 21 22 #include"dimensions.h"23 #include"paramet.h"24 #include"comgeom.h"22 INCLUDE "dimensions.h" 23 INCLUDE "paramet.h" 24 INCLUDE "comgeom.h" 25 25 26 26 INTEGER klevel -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/diverg_gam_loc.F
r1907 r4727 21 21 c 22 22 c --------------------------------------------------------------------- 23 #include"dimensions.h"24 #include"paramet.h"25 #include"comgeom.h"23 INCLUDE "dimensions.h" 24 INCLUDE "paramet.h" 25 INCLUDE "comgeom.h" 26 26 c 27 27 c .......... variables en arguments ................... -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/diverg_p.F
r1907 r4727 20 20 c 21 21 c --------------------------------------------------------------------- 22 #include"dimensions.h"23 #include"paramet.h"24 #include"comgeom.h"22 INCLUDE "dimensions.h" 23 INCLUDE "paramet.h" 24 INCLUDE "comgeom.h" 25 25 c 26 26 c .......... variables en arguments ................... -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/divergf_loc.F
r1907 r4727 21 21 c 22 22 c --------------------------------------------------------------------- 23 #include"dimensions.h"24 #include"paramet.h"25 #include"comgeom.h"23 INCLUDE "dimensions.h" 24 INCLUDE "paramet.h" 25 INCLUDE "comgeom.h" 26 26 c 27 27 c .......... variables en arguments ................... -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/divgrad2_loc.F
r1907 r4727 16 16 IMPLICIT NONE 17 17 c 18 #include"dimensions.h"19 #include"paramet.h"20 #include"comgeom2.h"21 #include"comdissipn.h"18 INCLUDE "dimensions.h" 19 INCLUDE "paramet.h" 20 INCLUDE "comgeom2.h" 21 INCLUDE "comdissipn.h" 22 22 23 23 c ....... variables en arguments ....... -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/dudv1_loc.F
r1907 r4727 17 17 c----------------------------------------------------------------------- 18 18 19 #include"dimensions.h"20 #include"paramet.h"19 INCLUDE "dimensions.h" 20 INCLUDE "paramet.h" 21 21 22 22 REAL vorpot( ijb_v:ije_v,llm ) ,pbaru( ijb_u:ije_u,llm ) , -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/dynetat0_loc.F90
r4482 r4727 183 183 CALL msg('Tracer <'//TRIM(var)//'> is missing => initialized with a simplified Rayleigh distillation law.', modname) 184 184 q(ijb_u:ije_u,:,iq) = q(ijb_u:ije_u,:,iqParent)*tnat*(q(ijb_u:ije_u,:,iqParent)/30.e-3)**(alpha_ideal-1.) 185 ! Camille 9 mars 2023: point de vigilence: initialisation incohérente 186 ! avec celle de xt_ancien dans la physiq. 185 187 ELSE 186 188 CALL msg('Tracer <'//TRIM(var)//'> is missing => initialized to its parent isotope concentration.', modname) 187 q(ijb_u:ije_u,:,iq) = q(ijb_u:ije_u,:,iqIsoPha(iName,iPhase)) 189 ! Camille 9 mars 2023: attention!! seuls les tags qui correspondent à 190 ! izone=izone_init (définie dans isotrac_mod) sont initialisés comme 191 ! les parents. Sinon, c'est nul. 192 ! j'ai fait ça en attendant, mais il faudrait initialiser proprement en 193 ! remplacant 1 par izone_init dans la ligne qui suit. 194 IF(tracers(iq)%iso_iZone == 1) THEN 195 q(ijb_u:ije_u,:,iq) = q(ijb_u:ije_u,:,iqIsoPha(iName,iPhase)) 196 ELSE 197 q(ijb_u:ije_u,:,iq) = 0. 198 ENDIF 188 199 END IF 189 200 !-------------------------------------------------------------------------------------------------------------------------- -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/filtreg_p.F
r4482 r4727 51 51 c 52 52 c 53 #include"dimensions.h"54 #include"paramet.h"55 #include"coefils.h"53 INCLUDE "dimensions.h" 54 INCLUDE "paramet.h" 55 INCLUDE "coefils.h" 56 56 c 57 57 INTEGER ibeg,iend,nlat,nbniv,ifiltre,iter -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/gcm.F90
r4482 r4727 28 28 itau_dyn,itau_phy,day_ini,jD_ref,jH_ref,day_end, & 29 29 dt,hour_ini,itaufin 30 #ifdef CPP_XIOS31 30 USE mod_xios_dyn3dmem, ONLY: xios_dyn3dmem_init 32 #endif33 31 34 32 IMPLICIT NONE … … 457 455 458 456 ! setting up DYN3D/XIOS inerface 459 #ifdef CPP_XIOS 460 if (ok_dyn_xios) then 461 CALL xios_dyn3dmem_init(xios_cal_type, anref, moisref, jourref,heureref, an, & 457 if (ok_dyn_xios) then 458 CALL xios_dyn3dmem_init(xios_cal_type, anref, moisref, jourref,heureref, an, & 462 459 mois, jour, heure, zdtvr) 463 460 endif 464 #endif465 461 466 462 ! #endif of #ifdef CPP_IOIPSL -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/gr_u_scal_loc.F
r1907 r4727 31 31 c --------------- 32 32 33 #include"dimensions.h"34 #include"paramet.h"35 #include"comgeom.h"33 INCLUDE "dimensions.h" 34 INCLUDE "paramet.h" 35 INCLUDE "comgeom.h" 36 36 37 37 c Arguments: -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/gr_v_scal_loc.F
r1907 r4727 31 31 c --------------- 32 32 33 #include"dimensions.h"34 #include"paramet.h"35 #include"comgeom.h"33 INCLUDE "dimensions.h" 34 INCLUDE "paramet.h" 35 INCLUDE "comgeom.h" 36 36 37 37 c Arguments: -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/grad_loc.F
r1907 r4727 13 13 IMPLICIT NONE 14 14 c 15 #include"dimensions.h"16 #include"paramet.h"15 INCLUDE "dimensions.h" 16 INCLUDE "paramet.h" 17 17 INTEGER klevel 18 18 REAL pg( ijb_u:ije_u,klevel ) -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/grad_p.F
r1907 r4727 13 13 IMPLICIT NONE 14 14 c 15 #include"dimensions.h"16 #include"paramet.h"15 INCLUDE "dimensions.h" 16 INCLUDE "paramet.h" 17 17 INTEGER klevel 18 18 REAL pg( ip1jmp1,klevel ) -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/gradiv2_loc.F
r1907 r4727 21 21 IMPLICIT NONE 22 22 c 23 #include"dimensions.h"24 #include"paramet.h"25 #include"comgeom.h"26 #include"comdissipn.h"23 INCLUDE "dimensions.h" 24 INCLUDE "paramet.h" 25 INCLUDE "comgeom.h" 26 INCLUDE "comdissipn.h" 27 27 c 28 28 c ........ variables en arguments ........ -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/laplacien_gam_loc.F
r1907 r4727 14 14 IMPLICIT NONE 15 15 c 16 #include"dimensions.h"17 #include"paramet.h"18 #include"comgeom.h"16 INCLUDE "dimensions.h" 17 INCLUDE "paramet.h" 18 INCLUDE "comgeom.h" 19 19 20 20 c -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/laplacien_loc.F
r1907 r4727 13 13 IMPLICIT NONE 14 14 c 15 #include"dimensions.h"16 #include"paramet.h"17 #include"comgeom.h"15 INCLUDE "dimensions.h" 16 INCLUDE "paramet.h" 17 INCLUDE "comgeom.h" 18 18 19 19 c -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/laplacien_rot_loc.F
r1907 r4727 14 14 IMPLICIT NONE 15 15 c 16 #include"dimensions.h"17 #include"paramet.h"18 #include"comgeom.h"16 INCLUDE "dimensions.h" 17 INCLUDE "paramet.h" 18 INCLUDE "comgeom.h" 19 19 20 20 c -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/laplacien_rotgam_loc.F
r1907 r4727 12 12 IMPLICIT NONE 13 13 c 14 #include"dimensions.h"15 #include"paramet.h"16 #include"comgeom.h"14 INCLUDE "dimensions.h" 15 INCLUDE "paramet.h" 16 INCLUDE "comgeom.h" 17 17 18 18 c -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/leapfrog_loc.F
r4482 r4727 42 42 USE temps_mod, ONLY: itaufin,jD_ref,jH_ref,day_ini, 43 43 & day_ref,start_time,dt 44 #ifdef CPP_XIOS 45 USE xios, ONLY: xios_update_calendar 46 #endif 44 USE mod_xios_dyn3dmem, ONLY : dyn3d_ctx_handle 45 USE lmdz_xios, ONLY: xios_update_calendar, 46 & xios_set_current_context, 47 & using_xios 47 48 48 49 IMPLICIT NONE … … 1519 1520 1520 1521 #ifdef INCA 1521 if (ANY(type_trac == ['inca','inco'])) CALL finalize_inca 1522 IF (ANY(type_trac == ['inca','inco'])) THEN 1523 CALL finalize_inca 1524 ! switching back to LMDZDYN context 1525 !$OMP MASTER 1526 IF (ok_dyn_xios) THEN 1527 CALL xios_set_current_context(dyn3d_ctx_handle) 1528 ENDIF 1529 !$OMP END MASTER 1530 ENDIF 1522 1531 #endif 1523 1532 #ifdef REPROBUS … … 1568 1577 1569 1578 #ifdef INCA 1570 if (ANY(type_trac == ['inca','inco'])) CALL finalize_inca 1579 IF (ANY(type_trac == ['inca','inco'])) THEN 1580 CALL finalize_inca 1581 ! switching back to LMDZDYN context 1582 !$OMP MASTER 1583 IF (ok_dyn_xios) THEN 1584 CALL xios_set_current_context(dyn3d_ctx_handle) 1585 ENDIF 1586 !$OMP END MASTER 1587 ENDIF 1571 1588 #endif 1572 1589 #ifdef REPROBUS … … 1640 1657 #endif 1641 1658 1642 #ifdef CPP_XIOS1643 1659 IF (ok_dyn_xios) THEN 1644 1660 c$OMP MASTER … … 1649 1665 & ucov,teta,pk,phi,q,masse,ps,phis) 1650 1666 ENDIF 1651 #endif1652 1667 1653 1668 endif ! of if (leapf.or.(.not.leapf.and.(.not.forward))) … … 1735 1750 1736 1751 #ifdef INCA 1737 if (ANY(type_trac == ['inca','inco'])) CALL finalize_inca 1752 IF (ANY(type_trac == ['inca','inco'])) THEN 1753 CALL finalize_inca 1754 ! switching back to LMDZDYN context 1755 !$OMP MASTER 1756 IF (ok_dyn_xios) THEN 1757 CALL xios_set_current_context(dyn3d_ctx_handle) 1758 ENDIF 1759 !$OMP END MASTER 1760 ENDIF 1761 1738 1762 #endif 1739 1763 #ifdef REPROBUS … … 1801 1825 #endif 1802 1826 1803 #ifdef CPP_XIOS1804 1827 IF (ok_dyn_xios) THEN 1805 1828 c$OMP MASTER … … 1810 1833 & ucov,teta,pk,phi,q,masse,ps,phis) 1811 1834 ENDIF 1812 #endif1813 1835 1814 1836 ENDIF ! of IF(MOD(itau,iecri).EQ.0) … … 1842 1864 1843 1865 #ifdef INCA 1844 if (ANY(type_trac == ['inca','inco'])) CALL finalize_inca 1866 IF (ANY(type_trac == ['inca','inco'])) THEN 1867 CALL finalize_inca 1868 ! switching back to LMDZDYN context 1869 !$OMP MASTER 1870 IF (ok_dyn_xios) THEN 1871 CALL xios_set_current_context(dyn3d_ctx_handle) 1872 ENDIF 1873 !$OMP END MASTER 1874 ENDIF 1875 1845 1876 #endif 1846 1877 #ifdef REPROBUS -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/mod_const_mpi.F90
r4146 r4727 11 11 12 12 SUBROUTINE Init_const_mpi 13 USE lmdz_mpi 14 13 15 #ifdef CPP_IOIPSL 14 16 USE IOIPSL, ONLY: getin … … 21 23 USE mod_prism 22 24 #endif 23 #ifdef CPP_XIOS 24 USE wxios, only: wxios_init 25 #endif 25 USE wxios, only: wxios_init, using_xios 26 26 IMPLICIT NONE 27 #ifdef CPP_MPI28 INCLUDE 'mpif.h'29 #endif30 27 31 28 INTEGER :: ierr … … 41 38 !$OMP BARRIER 42 39 43 IF (type_ocean=='couple') THEN 40 IF (using_mpi) THEN 41 IF (type_ocean=='couple') THEN 44 42 #ifdef CPP_COUPLE 45 43 !$OMP MASTER 46 #ifdef CPP_XIOS 47 CALL wxios_init("LMDZ", outcom=COMM_LMDZ, type_ocean=type_ocean)48 #else 49 CALL prism_init_comp_proto (comp_id, 'LMDZ', ierr)50 CALL prism_get_localcomm_proto(COMM_LMDZ,ierr)51 #endif 44 IF (using_xios) THEN 45 CALL wxios_init("LMDZ", outcom=COMM_LMDZ, type_ocean=type_ocean) 46 ELSE 47 CALL prism_init_comp_proto (comp_id, 'LMDZ', ierr) 48 CALL prism_get_localcomm_proto(COMM_LMDZ,ierr) 49 ENDIF 52 50 !$OMP END MASTER 53 51 #endif 54 #ifdef CPP_MPI 55 MPI_REAL_LMDZ=MPI_REAL8 56 #endif 57 ELSE 58 CALL init_mpi 52 MPI_REAL_LMDZ=MPI_REAL8 53 ELSE 54 CALL init_mpi 55 ENDIF 59 56 ENDIF 60 61 57 END SUBROUTINE Init_const_mpi 62 58 63 59 SUBROUTINE Init_mpi 64 #ifdef CPP_XIOS 65 USE wxios, only: wxios_init 66 #endif 60 USE lmdz_mpi 61 USE wxios, only: wxios_init, using_xios 62 67 63 IMPLICIT NONE 68 #ifdef CPP_MPI69 INCLUDE 'mpif.h'70 #endif71 64 INTEGER :: ierr 72 65 INTEGER :: thread_required 73 66 INTEGER :: thread_provided 74 67 75 #ifdef CPP_MPI76 68 !$OMP MASTER 77 69 thread_required=MPI_THREAD_SERIALIZED … … 87 79 ! Initialisation de XIOS 88 80 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 89 #ifdef CPP_XIOS 90 WRITE(*,*)'IN Init_mpi call wxios_init'91 CALL wxios_init("LMDZ", outcom=COMM_LMDZ)92 #endif 81 IF (using_xios) THEN 82 WRITE(*,*)'IN Init_mpi call wxios_init' 83 CALL wxios_init("LMDZ", outcom=COMM_LMDZ) 84 ENDIF 93 85 !$OMP END MASTER 94 #else95 #ifdef CPP_XIOS96 !$OMP MASTER97 CALL wxios_init("LMDZ")98 !$OMP END MASTER99 #endif100 #endif101 86 102 END SUBROUTINE Init_mpi87 END SUBROUTINE Init_mpi 103 88 104 89 END MODULE mod_const_mpi -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/mod_filtreg_p.F
r4482 r4727 55 55 c 56 56 c 57 #include"dimensions.h"58 #include"paramet.h"59 #include"coefils.h"57 INCLUDE "dimensions.h" 58 INCLUDE "paramet.h" 59 INCLUDE "coefils.h" 60 60 c 61 61 INTEGER,INTENT(IN) :: jjb,jje,ibeg,iend,nlat,nbniv,ifiltre,iter -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/mod_hallo.F90
r4482 r4727 106 106 107 107 SUBROUTINE create_global_mpi_buffer 108 USE lmdz_mpi 108 109 IMPLICIT NONE 109 #ifdef CPP_MPI110 INCLUDE 'mpif.h'111 #endif112 110 POINTER (Pbuffer,MPI_Buffer(MaxBufferSize)) 113 111 REAL :: MPI_Buffer 114 #ifdef CPP_MPI115 112 INTEGER(KIND=MPI_ADDRESS_KIND) :: BS 116 #else117 INTEGER(KIND=8) :: BS118 #endif119 113 INTEGER :: i,ierr 120 114 … … 122 116 Bs=8*MaxBufferSize 123 117 !$OMP CRITICAL (MPI) 124 #ifdef CPP_MPI125 118 CALL MPI_ALLOC_MEM(BS,MPI_INFO_NULL,Pbuffer,ierr) 126 #endif127 119 !$OMP END CRITICAL (MPI) 128 120 DO i=1,MaxBufferSize … … 1157 1149 subroutine Register_Hallo(Field,ij,ll,RUp,Rdown,SUp,SDown,a_request) 1158 1150 USE dimensions_mod 1151 USE lmdz_mpi 1159 1152 implicit none 1160 1153 1161 #ifdef CPP_MPI1162 include 'mpif.h'1163 #endif1164 1154 INTEGER :: ij,ll 1165 1155 REAL, dimension(ij,ll) :: Field … … 1224 1214 subroutine Register_Hallo_u(Field,ll,RUp,Rdown,SUp,SDown,a_request) 1225 1215 USE dimensions_mod 1216 USE lmdz_mpi 1226 1217 implicit none 1227 #ifdef CPP_MPI1228 include 'mpif.h'1229 #endif1230 1218 INTEGER :: ll 1231 1219 REAL, dimension(ijb_u:ije_u,ll) :: Field … … 1289 1277 subroutine Register_Hallo_v(Field,ll,RUp,Rdown,SUp,SDown,a_request) 1290 1278 USE dimensions_mod 1279 USE lmdz_mpi 1291 1280 implicit none 1292 #ifdef CPP_MPI1293 include 'mpif.h'1294 #endif1295 1281 INTEGER :: ll 1296 1282 REAL, dimension(ijb_v:ije_v,ll) :: Field … … 1354 1340 subroutine SendRequest(a_Request) 1355 1341 USE dimensions_mod 1342 USE lmdz_mpi 1356 1343 implicit none 1357 1358 #ifdef CPP_MPI1359 include 'mpif.h'1360 #endif1361 1344 1362 1345 type(request),target :: a_request … … 1410 1393 !$OMP CRITICAL (MPI) 1411 1394 1412 #ifdef CPP_MPI1413 1395 call MPI_ISEND(Buffer(req%Pos),SizeBuffer,MPI_REAL_LMDZ,rank,a_request%tag+1000*omp_rank, & 1414 1396 COMM_LMDZ,Req%MSG_Request,ierr) 1415 #endif1416 1397 IF (.NOT.using_mpi) THEN 1417 1398 PRINT *,'Erreur, echange MPI en mode sequentiel !!!' … … 1453 1434 !$OMP CRITICAL (MPI) 1454 1435 1455 #ifdef CPP_MPI1456 1436 call MPI_IRECV(Buffer(Req%Pos),SizeBuffer,MPI_REAL_LMDZ,rank,a_request%tag+1000*omp_rank, & 1457 1437 COMM_LMDZ,Req%MSG_Request,ierr) 1458 #endif 1438 1459 1439 IF (.NOT.using_mpi) THEN 1460 1440 PRINT *,'Erreur, echange MPI en mode sequentiel !!!' … … 1478 1458 subroutine WaitRequest(a_Request) 1479 1459 USE dimensions_mod 1460 USE lmdz_mpi 1480 1461 implicit none 1481 1482 #ifdef CPP_MPI1483 include 'mpif.h'1484 #endif1485 1462 1486 1463 type(request),target :: a_request … … 1488 1465 type(Hallo),pointer :: PtrHallo 1489 1466 integer, dimension(2*mpi_size) :: TabRequest 1490 #ifdef CPP_MPI1491 1467 integer, dimension(MPI_STATUS_SIZE,2*mpi_size) :: TabStatus 1492 #else1493 integer, dimension(1,2*mpi_size) :: TabStatus1494 #endif1495 1468 integer :: NbRequest 1496 1469 integer :: i,rank,pos,ij,l,ierr … … 1521 1494 ! PRINT *,"Process de rang",mpi_rank,"Task : ",omp_rank,"--->",NbRequest,"en attente" 1522 1495 ! PRINT *,"No des requetes :",TabRequest(1:NbRequest) 1523 #ifdef CPP_MPI1524 1496 call MPI_WAITALL(NbRequest,TabRequest,TabStatus,ierr) 1525 #endif1526 1497 ! PRINT *,"Process de rang",mpi_rank,"Task : ",omp_rank,"--->",NbRequest,"complete" 1527 1498 ! PRINT *,"-------------------------------------------------------------------" … … 1571 1542 1572 1543 subroutine WaitSendRequest(a_Request) 1544 USE lmdz_mpi 1573 1545 USE dimensions_mod 1574 1546 implicit none 1575 1547 1576 #ifdef CPP_MPI1577 include 'mpif.h'1578 #endif1579 1548 type(request),target :: a_request 1580 1549 type(request_SR),pointer :: Req 1581 1550 type(Hallo),pointer :: PtrHallo 1582 1551 integer, dimension(mpi_size) :: TabRequest 1583 #ifdef CPP_MPI1584 1552 integer, dimension(MPI_STATUS_SIZE,mpi_size) :: TabStatus 1585 #else1586 integer, dimension(1,mpi_size) :: TabStatus1587 #endif1588 1553 integer :: NbRequest 1589 1554 integer :: i,rank,pos,ij,l,ierr … … 1606 1571 ! PRINT *,"Process de rang",mpi_rank,"Task : ",omp_rank,"--->",NbRequest,"en attente" 1607 1572 ! PRINT *,"No des requetes :",TabRequest(1:NbRequest) 1608 #ifdef CPP_MPI 1609 call MPI_WAITALL(NbRequest,TabRequest,TabStatus,ierr) 1610 #endif 1573 call MPI_WAITALL(NbRequest,TabRequest,TabStatus,ierr) 1611 1574 ! PRINT *,"Process de rang",mpi_rank,"Task : ",omp_rank,"--->",NbRequest,"complete" 1612 1575 ! PRINT *,"-------------------------------------------------------------------" … … 1628 1591 subroutine WaitRecvRequest(a_Request) 1629 1592 USE dimensions_mod 1593 USE lmdz_mpi 1630 1594 implicit none 1631 1632 #ifdef CPP_MPI1633 include 'mpif.h'1634 #endif1635 1636 1595 type(request),target :: a_request 1637 1596 type(request_SR),pointer :: Req 1638 1597 type(Hallo),pointer :: PtrHallo 1639 1598 integer, dimension(mpi_size) :: TabRequest 1640 #ifdef CPP_MPI1641 1599 integer, dimension(MPI_STATUS_SIZE,mpi_size) :: TabStatus 1642 #else1643 integer, dimension(1,mpi_size) :: TabStatus1644 #endif1645 1600 integer :: NbRequest 1646 1601 integer :: i,rank,pos,ij,l,ierr … … 1664 1619 ! PRINT *,"Process de rang",mpi_rank,"Task : ",omp_rank,"--->",NbRequest,"en attente" 1665 1620 ! PRINT *,"No des requetes :",TabRequest(1:NbRequest) 1666 #ifdef CPP_MPI 1667 call MPI_WAITALL(NbRequest,TabRequest,TabStatus,ierr) 1668 #endif 1621 call MPI_WAITALL(NbRequest,TabRequest,TabStatus,ierr) 1669 1622 ! PRINT *,"Process de rang",mpi_rank,"Task : ",omp_rank,"--->",NbRequest,"complete" 1670 1623 ! PRINT *,"-------------------------------------------------------------------" -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/mod_xios_dyn3dmem.F90
r4482 r4727 12 12 ! 13 13 ! 14 #ifdef CPP_XIOS15 14 16 15 MODULE mod_xios_dyn3dmem 17 16 18 USE xios17 USE lmdz_xios 19 18 USE wxios, ONLY : g_comm 20 19 CHARACTER(len=100), SAVE :: dyn3d_ctx_name = "LMDZDYN" … … 259 258 260 259 END MODULE mod_xios_dyn3dmem 261 #endif 262 260 -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/nxgrad_gam_loc.F
r1907 r4727 13 13 IMPLICIT NONE 14 14 c 15 #include"dimensions.h"16 #include"paramet.h"17 #include"comgeom.h"15 INCLUDE "dimensions.h" 16 INCLUDE "paramet.h" 17 INCLUDE "comgeom.h" 18 18 INTEGER klevel 19 19 REAL rot( ijb_v:ije_v,klevel ) -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/nxgrad_loc.F
r1907 r4727 12 12 IMPLICIT NONE 13 13 c 14 #include"dimensions.h"15 #include"paramet.h"16 #include"comgeom.h"14 INCLUDE "dimensions.h" 15 INCLUDE "paramet.h" 16 INCLUDE "comgeom.h" 17 17 INTEGER klevel 18 18 REAL rot( ijb_v:ije_v,klevel ),x( ijb_u:ije_u,klevel ) -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/nxgraro2_loc.F
r1907 r4727 20 20 IMPLICIT NONE 21 21 c 22 #include"dimensions.h"23 #include"paramet.h"24 #include"comdissipn.h"22 INCLUDE "dimensions.h" 23 INCLUDE "paramet.h" 24 INCLUDE "comdissipn.h" 25 25 c 26 26 c ...... variables en arguments ....... -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/parallel_lmdz.F90
r4482 r4727 4 4 MODULE parallel_lmdz 5 5 USE mod_const_mpi 6 USE lmdz_mpi, ONLY : using_mpi 6 7 #ifdef CPP_IOIPSL 7 8 use IOIPSL … … 12 13 INTEGER,PARAMETER :: halo_max=3 13 14 14 LOGICAL,SAVE :: using_mpi ! .true. if using MPI15 15 LOGICAL,SAVE :: using_omp ! .true. if using OpenMP 16 16 LOGICAL,SAVE :: is_master ! .true. if the core is both MPI & OpenMP master … … 88 88 subroutine init_parallel 89 89 USE vampir 90 USE lmdz_mpi 90 91 implicit none 91 #ifdef CPP_MPI 92 include 'mpif.h' 93 #endif 94 #include "dimensions.h" 95 #include "paramet.h" 96 #include "iniprint.h" 92 INCLUDE "dimensions.h" 93 INCLUDE "paramet.h" 94 INCLUDE "iniprint.h" 97 95 98 96 integer :: ierr … … 111 109 #endif 112 110 113 #ifdef CPP_MPI114 using_mpi=.TRUE.115 #else116 using_mpi=.FALSE.117 #endif118 119 120 111 #ifdef CPP_OMP 121 112 using_OMP=.TRUE. … … 127 118 128 119 IF (using_mpi) THEN 129 #ifdef CPP_MPI130 120 call MPI_COMM_SIZE(COMM_LMDZ,mpi_size,ierr) 131 121 call MPI_COMM_RANK(COMM_LMDZ,mpi_rank,ierr) 132 #endif133 122 ELSE 134 123 mpi_size=1 … … 161 150 write(lunout,*)" ---> diminuez le nombre de CPU ou augmentez la taille en lattitude" 162 151 163 #ifdef CPP_MPI164 152 IF (using_mpi) call MPI_ABORT(COMM_LMDZ,-1, ierr) 165 #endif 153 166 154 endif 167 155 … … 395 383 396 384 subroutine Finalize_parallel 397 #ifdef CPP_XIOS 385 USE lmdz_mpi 398 386 ! ug Pour les sorties XIOS 399 USE wxios400 #endif 387 USE wxios 388 401 389 #ifdef CPP_COUPLE 402 390 ! Use of Oasis-MCT coupler … … 418 406 include "dimensions.h" 419 407 include "paramet.h" 420 #ifdef CPP_MPI421 include 'mpif.h'422 #endif423 408 424 409 integer :: ierr … … 430 415 431 416 if (type_ocean == 'couple') then 432 #ifdef CPP_XIOS 433 !Fermeture propre de XIOS434 CALL wxios_close()435 #else 417 IF (using_xios) THEN 418 !Fermeture propre de XIOS 419 CALL wxios_close() 420 ELSE 436 421 #ifdef CPP_COUPLE 437 call prism_terminate_proto(ierr)438 IF (ierr .ne. PRISM_Ok) THEN439 call abort_gcm('Finalize_parallel',' Probleme dans prism_terminate_proto ',1)440 endif422 call prism_terminate_proto(ierr) 423 IF (ierr .ne. PRISM_Ok) THEN 424 call abort_gcm('Finalize_parallel',' Probleme dans prism_terminate_proto ',1) 425 endif 441 426 #endif 442 #endif 427 ENDIF 443 428 else 444 #ifdef CPP_XIOS 445 !Fermeture propre de XIOS 446 CALL wxios_close() 447 #endif 448 #ifdef CPP_MPI 449 IF (using_mpi) call MPI_FINALIZE(ierr) 450 #endif 429 IF (using_xios) THEN 430 !Fermeture propre de XIOS 431 CALL wxios_close() 432 ENDIF 433 IF (using_mpi) call MPI_FINALIZE(ierr) 451 434 end if 452 435 … … 456 439 implicit none 457 440 458 #include"dimensions.h"459 #include"paramet.h"441 INCLUDE "dimensions.h" 442 INCLUDE "paramet.h" 460 443 461 444 integer, intent(in) :: ij,ll,row … … 479 462 implicit none 480 463 481 #include"dimensions.h"482 #include"paramet.h"464 INCLUDE "dimensions.h" 465 INCLUDE "paramet.h" 483 466 484 467 integer, intent(in) :: ij,ll,row … … 502 485 503 486 SUBROUTINE barrier 487 USE lmdz_mpi 504 488 IMPLICIT NONE 505 #ifdef CPP_MPI506 INCLUDE 'mpif.h'507 #endif508 489 INTEGER :: ierr 509 490 510 491 !$OMP CRITICAL (MPI) 511 #ifdef CPP_MPI512 492 IF (using_mpi) CALL MPI_Barrier(COMM_LMDZ,ierr) 513 #endif514 493 !$OMP END CRITICAL (MPI) 515 494 … … 518 497 519 498 subroutine exchange_hallo(Field,ij,ll,up,down) 499 USE lmdz_mpi 520 500 USE Vampir 521 501 implicit none 522 #include "dimensions.h" 523 #include "paramet.h" 524 #ifdef CPP_MPI 525 include 'mpif.h' 526 #endif 502 INCLUDE "dimensions.h" 503 INCLUDE "paramet.h" 527 504 INTEGER :: ij,ll 528 505 REAL, dimension(ij,ll) :: Field … … 533 510 LOGICAL :: RecvUp,RecvDown 534 511 INTEGER, DIMENSION(4) :: Request 535 #ifdef CPP_MPI536 512 INTEGER, DIMENSION(MPI_STATUS_SIZE,4) :: Status 537 #else 538 INTEGER, DIMENSION(1,4) :: Status 539 #endif 513 540 514 INTEGER :: NbRequest 541 515 REAL, dimension(:),allocatable :: Buffer_Send_up,Buffer_Send_down … … 582 556 call PACK_Data(Field(ij_begin,1),ij,ll,down,Buffer_Send_up) 583 557 !$OMP CRITICAL (MPI) 584 #ifdef CPP_MPI585 558 call MPI_ISEND(Buffer_send_up,Buffer_Size,MPI_REAL8,MPI_Rank-1,1, & 586 559 COMM_LMDZ,Request(NbRequest),ierr) 587 #endif588 560 !$OMP END CRITICAL (MPI) 589 561 ENDIF … … 597 569 598 570 !$OMP CRITICAL (MPI) 599 #ifdef CPP_MPI600 571 call MPI_ISEND(Buffer_send_down,Buffer_Size,MPI_REAL8,MPI_Rank+1,1, & 601 572 COMM_LMDZ,Request(NbRequest),ierr) 602 #endif603 573 !$OMP END CRITICAL (MPI) 604 574 ENDIF … … 611 581 612 582 !$OMP CRITICAL (MPI) 613 #ifdef CPP_MPI614 583 call MPI_IRECV(Buffer_recv_up,Buffer_size,MPI_REAL8,MPI_Rank-1,1, & 615 584 COMM_LMDZ,Request(NbRequest),ierr) 616 #endif617 585 !$OMP END CRITICAL (MPI) 618 586 … … 626 594 627 595 !$OMP CRITICAL (MPI) 628 #ifdef CPP_MPI629 596 call MPI_IRECV(Buffer_recv_down,Buffer_size,MPI_REAL8,MPI_Rank+1,1, & 630 597 COMM_LMDZ,Request(NbRequest),ierr) 631 #endif632 598 !$OMP END CRITICAL (MPI) 633 599 634 600 ENDIF 635 601 636 #ifdef CPP_MPI637 602 if (NbRequest > 0) call MPI_WAITALL(NbRequest,Request,Status,ierr) 638 #endif639 603 IF (RecvUp) call Unpack_Data(Field(ij_begin-up*iip1,1),ij,ll,up,Buffer_Recv_up) 640 604 IF (RecvDown) call Unpack_Data(Field(ij_end+1,1),ij,ll,down,Buffer_Recv_down) … … 651 615 652 616 subroutine Gather_Field(Field,ij,ll,rank) 617 USE lmdz_mpi 653 618 implicit none 654 #include "dimensions.h" 655 #include "paramet.h" 656 #include "iniprint.h" 657 #ifdef CPP_MPI 658 include 'mpif.h' 659 #endif 619 INCLUDE "dimensions.h" 620 INCLUDE "paramet.h" 621 INCLUDE "iniprint.h" 660 622 INTEGER :: ij,ll,rank 661 623 REAL, dimension(ij,ll) :: Field … … 709 671 710 672 !$OMP CRITICAL (MPI) 711 #ifdef CPP_MPI712 673 call MPI_GATHERV(Buffer_send,(min(ij_end,ij)-ij_begin+1)*ll,MPI_REAL8, & 713 674 Buffer_Recv,Recv_count,displ,MPI_REAL8,rank,COMM_LMDZ,ierr) 714 #endif715 675 !$OMP END CRITICAL (MPI) 716 676 … … 735 695 736 696 subroutine AllGather_Field(Field,ij,ll) 697 USE lmdz_mpi 737 698 implicit none 738 #include "dimensions.h" 739 #include "paramet.h" 740 #ifdef CPP_MPI 741 include 'mpif.h' 742 #endif 699 INCLUDE "dimensions.h" 700 INCLUDE "paramet.h" 743 701 INTEGER :: ij,ll 744 702 REAL, dimension(ij,ll) :: Field … … 748 706 call Gather_Field(Field,ij,ll,0) 749 707 !$OMP CRITICAL (MPI) 750 #ifdef CPP_MPI751 708 call MPI_BCAST(Field,ij*ll,MPI_REAL8,0,COMM_LMDZ,ierr) 752 #endif753 709 !$OMP END CRITICAL (MPI) 754 710 ENDIF … … 757 713 758 714 subroutine Broadcast_Field(Field,ij,ll,rank) 715 USE lmdz_mpi 759 716 implicit none 760 #include "dimensions.h" 761 #include "paramet.h" 762 #ifdef CPP_MPI 763 include 'mpif.h' 764 #endif 717 INCLUDE "dimensions.h" 718 INCLUDE "paramet.h" 765 719 INTEGER :: ij,ll 766 720 REAL, dimension(ij,ll) :: Field … … 771 725 772 726 !$OMP CRITICAL (MPI) 773 #ifdef CPP_MPI774 727 call MPI_BCAST(Field,ij*ll,MPI_REAL8,rank,COMM_LMDZ,ierr) 775 #endif776 728 !$OMP END CRITICAL (MPI) 777 729 … … 781 733 782 734 ! Subroutine verif_hallo(Field,ij,ll,up,down) 735 ! USE lmdz_mpi 783 736 ! implicit none 784 !#include "dimensions.h" 785 !#include "paramet.h" 786 ! include 'mpif.h' 737 ! INCLUDE "dimensions.h" 738 ! INCLUDE "paramet.h" 787 739 ! 788 740 ! INTEGER :: ij,ll -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/pression_loc.F
r1987 r4727 14 14 IMPLICIT NONE 15 15 c 16 #include"dimensions.h"17 #include"paramet.h"16 INCLUDE "dimensions.h" 17 INCLUDE "paramet.h" 18 18 c 19 19 INTEGER,INTENT(IN) :: ngrid ! not used -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/rotat_nfil_loc.F
r1907 r4727 13 13 IMPLICIT NONE 14 14 c 15 #include"dimensions.h"16 #include"paramet.h"17 #include"comgeom.h"15 INCLUDE "dimensions.h" 16 INCLUDE "paramet.h" 17 INCLUDE "comgeom.h" 18 18 c 19 19 c ..... variables en arguments ...... -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/rotat_p.F
r1907 r4727 13 13 IMPLICIT NONE 14 14 c 15 #include"dimensions.h"16 #include"paramet.h"17 #include"comgeom.h"15 INCLUDE "dimensions.h" 16 INCLUDE "paramet.h" 17 INCLUDE "comgeom.h" 18 18 c 19 19 c ..... variables en arguments ...... -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/rotatf_loc.F
r1907 r4727 14 14 IMPLICIT NONE 15 15 c 16 #include"dimensions.h"17 #include"paramet.h"18 #include"comgeom.h"16 INCLUDE "dimensions.h" 17 INCLUDE "paramet.h" 18 INCLUDE "comgeom.h" 19 19 c 20 20 c ..... variables en arguments ...... -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/temps_mod.F90
r3579 r4727 19 19 REAL start_time 20 20 CHARACTER (len=10) :: calend ! calendar type 21 INTEGER offline_time ! offline frequency storage 21 22 22 23 ! Additionnal Mars stuff: -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/times.F90
r4482 r4727 27 27 USE parallel_lmdz 28 28 implicit none 29 #include"dimensions.h"30 #include"paramet.h"29 INCLUDE "dimensions.h" 30 INCLUDE "paramet.h" 31 31 32 32 max_size=jjm+1 … … 137 137 subroutine allgather_timer 138 138 USE parallel_lmdz 139 implicit none 140 #ifdef CPP_MPI 141 include 'mpif.h' 142 #endif 139 USE lmdz_mpi 140 implicit none 141 143 142 integer :: ierr 144 143 integer :: data_size … … 155 154 156 155 tmp_table(:,:)=timer_table(:,:,mpi_rank) 157 #ifdef CPP_MPI158 156 call mpi_allgather(tmp_table(1,1),data_size,MPI_REAL_LMDZ,timer_table(1,1,0),data_size,MPI_REAL_LMDZ,COMM_LMDZ,ierr) 159 #endif160 157 tmp_table(:,:)=timer_table_sqr(:,:,mpi_rank) 161 #ifdef CPP_MPI162 158 call mpi_allgather(tmp_table(1,1),data_size,MPI_REAL_LMDZ,timer_table_sqr(1,1,0),data_size,MPI_REAL_LMDZ,COMM_LMDZ,ierr) 163 #endif164 159 deallocate(tmp_table) 165 160 … … 172 167 subroutine allgather_timer_average 173 168 USE parallel_lmdz 174 implicit none 175 #ifdef CPP_MPI 176 include 'mpif.h' 177 #endif 169 USE lmdz_mpi 170 implicit none 178 171 integer :: ierr 179 172 integer :: data_size … … 192 185 193 186 tmp_table(:,:)=timer_average(:,:,mpi_rank) 194 #ifdef CPP_MPI195 187 call mpi_allgather(tmp_table(1,1),data_size,MPI_REAL_LMDZ,timer_average(1,1,0),data_size,MPI_REAL_LMDZ,COMM_LMDZ,ierr) 196 #endif197 188 tmp_table(:,:)=timer_delta(:,:,mpi_rank) 198 #ifdef CPP_MPI199 189 call mpi_allgather(tmp_table(1,1),data_size,MPI_REAL_LMDZ,timer_delta(1,1,0),data_size,MPI_REAL_LMDZ,COMM_LMDZ,ierr) 200 #endif201 190 tmp_iter(:,:)=timer_iteration(:,:,mpi_rank) 202 #ifdef CPP_MPI203 191 call mpi_allgather(tmp_iter(1,1),data_size,MPI_INTEGER,timer_iteration(1,1,0),data_size,MPI_INTEGER,COMM_LMDZ,ierr) 204 #endif205 192 deallocate(tmp_table) 206 193 -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/top_bound_loc.F
r2600 r4727 54 54 55 55 56 #include"comdissipn.h"57 #include"iniprint.h"56 INCLUDE "comdissipn.h" 57 INCLUDE "iniprint.h" 58 58 59 59 c Arguments: -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/vlsplt_loc.F
r4482 r4727 1207 1207 c SUBROUTINE minmaxq(zq,qmin,qmax,comment) 1208 1208 c 1209 c #include"dimensions.h"1210 c #include"paramet.h"1209 c INCLUDE "dimensions.h" 1210 c INCLUDE "paramet.h" 1211 1211 1212 1212 c CHARACTER*(*) comment -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/wrgrads.F
r4482 r4727 12 12 c titlevar Titre 13 13 14 #include"gradsdef.h"14 INCLUDE "gradsdef.h" 15 15 16 16 c arguments -
LMDZ6/branches/LMDZ_ECRad/libf/dyn3dmem/writedyn_xios.F90
r4146 r4727 5 5 & masse,ps,phis) 6 6 7 #ifdef CPP_XIOS 8 USE xios 7 USE lmdz_xios 9 8 USE parallel_lmdz 10 9 USE misc_mod … … 180 179 CALL writefield_dyn_u('PS', ps(ijb:ije)) 181 180 182 #endif183 184 181 END
Note: See TracChangeset
for help on using the changeset viewer.
