Changeset 1572
- Timestamp:
- Jul 11, 2016, 9:35:35 AM (8 years ago)
- Location:
- trunk
- Files:
-
- 1 deleted
- 27 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/DOC/chantiers/commit_importants.log
r1564 r1572 1789 1789 it paves the path for a similar (and, now, easy) counterpart for mesoscale 1790 1790 models 1791 1792 ********************** 1793 **** commit_v1572 **** 1794 ********************** 1795 Ehouarn: Further adaptations to keep up with changes in LMDZ5 concerning 1796 physics/dynamics separation (up to rev r2500 of LMDZ5) 1797 1798 * arch: 1799 - remove ifort debug option '-check all', replace it with 1800 '-check bounds,format,output_conversion,pointers,uninit' (i.e. 1801 get it to stop complaining about copying into temporary arrays) 1802 1803 * dyn3d_common: 1804 - comconst_mod.F90 : add ngroup 1805 1806 * dyn3d: 1807 - gcm.F90 : minor bug fix (arguments to a call_abort()) 1808 - leapfrog.F90 : recompute geopotential for bilan_dyn outputs 1809 - conf_gcm.F90 : read "ngroup" from run.def 1810 - groupe.F , groupeun.F : ngroup no longer a local parameter 1811 1812 * dyn3d_par: 1813 - conf_gcm.F90 : read "ngroup" from run.def 1814 - groupe_p.F , groupeun_p.F : ngroup no longer a local parameter 1815 1816 * misc: 1817 - regr1_step_av_m.F90 : removed (not used) 1818 1819 * phy_common: 1820 - mod_phys_lmdz_mpi_transfert.F90 , mod_phys_lmdz_mpi_data.F90 : change 1821 is_north_pole and is_south_pole to is_north_pole_dyn and is_south_pole_dyn 1822 - mod_phys_lmdz_omp_data.F90 : introduce is_nort_pole_phy and is_south_pole_phy 1823 1824 * dynphy_lonlat: 1825 - mod_interface_dyn_phys.F90 : use is_north_pole_dyn and is_south_pole_dyn 1826 - calfis_p.F : use is_north_pole_dyn and is_south_pole_dyn 1827 1828 * phyvenus: 1829 - physiq_mod , write_hist*.h : use is_north_pole_phy and is_south_pole_phy 1830 to correctly compute mesh area at poles to send to hist*nc files. 1831 1832 * phytitan: 1833 - physiq_mod , write_hist*.h : use is_north_pole_phy and is_south_pole_phy 1834 to correctly compute mesh area at poles to send to hist*nc files. -
trunk/LMDZ.COMMON/arch/arch-X64_ADA.fcm
r1501 r1572 9 9 %PROD_FFLAGS -O2 -ip -fp-model strict -axAVX,SSE4.2 10 10 %DEV_FFLAGS -p -g -O1 -fpe0 -traceback 11 %DEBUG_FFLAGS -p -g -O0 -fpe-all=0 -traceback -ftrapuv -fp-stack-check -check all-debug11 %DEBUG_FFLAGS -p -g -O0 -fpe-all=0 -traceback -ftrapuv -fp-stack-check -check bounds,format,output_conversion,pointers,uninit -debug 12 12 %C_COMPILER gcc 13 13 %C_OPTIM -O3 -
trunk/LMDZ.COMMON/arch/arch-X64_MESU.fcm
r1506 r1572 8 8 %PROD_FFLAGS -O2 9 9 %DEV_FFLAGS -p -g -O1 -fpe0 -traceback 10 %DEBUG_FFLAGS -p -g -O0 -fpe-all=0 -traceback -ftrapuv -fp-stack-check -check all-debug10 %DEBUG_FFLAGS -p -g -O0 -fpe-all=0 -traceback -ftrapuv -fp-stack-check -check bounds,format,output_conversion,pointers,uninit -debug 11 11 %MPI_FFLAGS 12 12 %OMP_FFLAGS -openmp -
trunk/LMDZ.COMMON/arch/arch-X64_OCCIGEN.fcm
r1511 r1572 8 8 %PROD_FFLAGS -O2 -ip -xCORE-AVX2 9 9 %DEV_FFLAGS -p -g -O1 -fpe0 -traceback 10 %DEBUG_FFLAGS -p -g -O0 -fpe0 -ftrapuv -fp-stack-check -check all-debug -traceback10 %DEBUG_FFLAGS -p -g -O0 -fpe0 -ftrapuv -fp-stack-check -check bounds,format,output_conversion,pointers,uninit -debug -traceback 11 11 %MPI_FFLAGS 12 12 %OMP_FFLAGS -openmp -openmp-threadprivate compat -
trunk/LMDZ.COMMON/libf/dyn3d/conf_gcm.F90
r1441 r1572 16 16 USE comconst_mod, ONLY: dissip_factz,dissip_deltaz,dissip_zref, & 17 17 dissip_fac_mid,dissip_fac_up,dissip_hdelta,dissip_pupstart, & 18 mode_top_bound,tau_top_bound,iflag_top_bound 18 mode_top_bound,tau_top_bound,iflag_top_bound,ngroup 19 19 USE logic_mod, ONLY: tidal,purmats,ok_guide,read_start,iflag_phys, & 20 20 iflag_trac,ok_strato,ok_gradsfile,ok_limit,ok_etat0, & … … 402 402 tetasponge=50000.0 403 403 call getin("tetasponge",tetasponge) 404 405 ! ngroup: to group longitudinaly near the pole (groupe/groupeun routines) 406 ! (implies that iim has to be a multiple of 2**ngroup) 407 ngroup=3 408 CALL getin('ngroup',ngroup) 404 409 405 410 ! FOR TITAN: tidal forces -
trunk/LMDZ.COMMON/libf/dyn3d/gcm.F90
r1549 r1572 159 159 use_filtre_fft=.FALSE. 160 160 CALL getin('use_filtre_fft',use_filtre_fft) 161 IF (use_filtre_fft) call abort_gcm( 'FFT filter is not available in the ' &161 IF (use_filtre_fft) call abort_gcm("gcm",'FFT filter is not available in the ' & 162 162 // 'sequential version of the dynamics.', 1) 163 163 -
trunk/LMDZ.COMMON/libf/dyn3d/groupe.F
r1422 r1572 3 3 ! 4 4 subroutine groupe(pext,pbaru,pbarv,pbarum,pbarvm,wm) 5 6 use comconst_mod, only: ngroup 5 7 implicit none 6 8 … … 20 22 #include "comgeom2.h" 21 23 22 integer ngroup23 parameter (ngroup=3)24 ! integer ngroup 25 ! parameter (ngroup=3) 24 26 25 27 -
trunk/LMDZ.COMMON/libf/dyn3d/groupeun.F
r1422 r1572 3 3 ! 4 4 SUBROUTINE groupeun(jjmax,llmax,q) 5 6 USE comconst_mod, ONLY: ngroup 5 7 IMPLICIT NONE 6 8 … … 12 14 REAL q(iip1,jjmax,llmax) 13 15 14 INTEGER ngroup15 PARAMETER (ngroup=3)16 ! INTEGER ngroup 17 ! PARAMETER (ngroup=3) 16 18 17 19 REAL airecn,qn … … 36 38 37 39 LOGICAL, SAVE :: first = .TRUE. 38 INTEGER,SAVE :: i_index(iim,ngroup)40 ! INTEGER,SAVE :: i_index(iim,ngroup) 39 41 INTEGER :: offset 40 REAL :: qsum(iim/ngroup)42 ! REAL :: qsum(iim/ngroup) 41 43 42 44 IF (first) THEN … … 134 136 135 137 SUBROUTINE INIT_GROUPEUN(airen_tab, aires_tab) 138 139 USE comconst_mod, ONLY: ngroup 136 140 IMPLICIT NONE 137 141 … … 140 144 #include "comgeom2.h" 141 145 142 INTEGER ngroup143 PARAMETER (ngroup=3)146 ! INTEGER ngroup 147 ! PARAMETER (ngroup=3) 144 148 145 149 REAL airen,airecn -
trunk/LMDZ.COMMON/libf/dyn3d/leapfrog.F
r1564 r1572 98 98 REAL tsurpk(ip1jmp1,llm) ! cpp*T/pk 99 99 100 real zqmin,zqmax100 ! real zqmin,zqmax 101 101 102 102 c variables dynamiques intermediaire pour le transport … … 130 130 131 131 c variables pour le fichier histoire 132 REAL dtav ! intervalle de temps elementaire132 ! REAL dtav ! intervalle de temps elementaire 133 133 134 134 REAL tppn(iim),tpps(iim),tpn,tps … … 144 144 LOGICAL :: lafin=.false. 145 145 INTEGER ij,iq,l 146 INTEGER ik147 148 real time_step, t_wrt, t_ops146 ! INTEGER ik 147 148 ! real time_step, t_wrt, t_ops 149 149 150 150 REAL rdaym_ini … … 152 152 ! jH_cur: heure julienne courante 153 153 REAL :: jD_cur, jH_cur 154 INTEGER :: an, mois, jour155 REAL :: secondes154 ! INTEGER :: an, mois, jour 155 ! REAL :: secondes 156 156 157 157 LOGICAL first,callinigrads … … 159 159 save first 160 160 data first/.true./ 161 real dt_cum162 character*10 infile163 integer zan, tau0, thoriid164 integer nid_ctesGCM165 save nid_ctesGCM166 real degres167 real rlong(iip1), rlatg(jjp1)168 real zx_tmp_2d(iip1,jjp1)169 integer ndex2d(iip1*jjp1)161 ! real dt_cum 162 ! character*10 infile 163 ! integer zan, tau0, thoriid 164 ! integer nid_ctesGCM 165 ! save nid_ctesGCM 166 ! real degres 167 ! real rlong(iip1), rlatg(jjp1) 168 ! real zx_tmp_2d(iip1,jjp1) 169 ! integer ndex2d(iip1*jjp1) 170 170 logical ok_sync 171 171 parameter (ok_sync = .true.) … … 175 175 character*10 string10 176 176 177 REAL alpha(ip1jmp1,llm),beta(ip1jmp1,llm)177 ! REAL alpha(ip1jmp1,llm),beta(ip1jmp1,llm) 178 178 REAL :: flxw(ip1jmp1,llm) ! flux de masse verticale 179 179 … … 186 186 REAL vcont(ip1jm,llm),ucont(ip1jmp1,llm) 187 187 REAL vnat(ip1jm,llm),unat(ip1jmp1,llm) 188 REAL d_h_vcol, d_qt, d_qw, d_ql, d_ec188 ! REAL d_h_vcol, d_qt, d_qw, d_ql, d_ec 189 189 CHARACTER*15 ztit 190 190 !IM INTEGER ip_ebil_dyn ! PRINT level for energy conserv. diag. … … 193 193 c-jld 194 194 195 integer :: itau_w ! for write_paramLMDZ_dyn.h196 197 character*80 dynhist_file, dynhistave_file195 ! integer :: itau_w ! for write_paramLMDZ_dyn.h 196 197 ! character*80 dynhist_file, dynhistave_file 198 198 character(len=*),parameter :: modname="leapfrog" 199 199 character*80 abort_message … … 802 802 ENDIF 803 803 804 ! ! Ehouarn: re-compute geopotential for outputs 805 CALL geopot(ip1jmp1,teta,pk,pks,phis,phi) 806 804 807 IF (ok_dynzon) THEN 805 808 #ifdef CPP_IOIPSL … … 943 946 ENDIF 944 947 948 ! ! Ehouarn: re-compute geopotential for outputs 949 CALL geopot(ip1jmp1,teta,pk,pks,phis,phi) 950 945 951 IF (ok_dynzon) THEN 946 952 #ifdef CPP_IOIPSL -
trunk/LMDZ.COMMON/libf/dyn3d_common/comconst_mod.F90
r1422 r1572 24 24 REAL dissip_pupstart 25 25 INTEGER iflag_top_bound,mode_top_bound 26 INTEGER ngroup ! parameter to group points (along longitude) near poles 26 27 REAL tau_top_bound 27 28 REAL daylen ! length of solar day, in 'standard' day length -
trunk/LMDZ.COMMON/libf/dyn3dpar/conf_gcm.F90
r1441 r1572 21 21 USE comconst_mod, ONLY: dissip_factz,dissip_deltaz,dissip_zref, & 22 22 dissip_fac_mid,dissip_fac_up,dissip_hdelta,dissip_pupstart, & 23 mode_top_bound,tau_top_bound,iflag_top_bound 23 mode_top_bound,tau_top_bound,iflag_top_bound,ngroup 24 24 USE logic_mod, ONLY: tidal,purmats,ok_guide,read_start,iflag_phys,iflag_trac, & 25 25 ok_strato,ok_gradsfile,ok_limit,ok_etat0,moyzon_mu,moyzon_ch, & … … 428 428 tetasponge=50000.0 429 429 call getin("tetasponge",tetasponge) 430 431 ! ngroup: to group longitudinaly near the pole (groupe/groupeun routines) 432 ! (implies that iim has to be a multiple of 2**ngroup) 433 ngroup=3 434 CALL getin('ngroup',ngroup) 430 435 431 436 ! FOR TITAN: tidal forces -
trunk/LMDZ.COMMON/libf/dyn3dpar/groupe_p.F
r1422 r1572 1 1 subroutine groupe_p(pext,pbaru,pbarv,pbarum,pbarvm,wm) 2 2 USE parallel_lmdz 3 USE comconst_mod, ONLY: ngroup 3 4 implicit none 4 5 … … 18 19 #include "comgeom2.h" 19 20 20 integer ngroup21 parameter (ngroup=3)21 ! integer ngroup 22 ! parameter (ngroup=3) 22 23 23 24 -
trunk/LMDZ.COMMON/libf/dyn3dpar/groupeun_p.F
r1422 r1572 1 1 SUBROUTINE groupeun_p(jjmax,llmax,jjb,jje,q) 2 2 USE parallel_lmdz 3 USE comconst_mod, ONLY: ngroup 3 4 USE Write_Field_p 4 5 IMPLICIT NONE … … 11 12 REAL q(iip1,jjmax,llmax) 12 13 13 INTEGER ngroup14 PARAMETER (ngroup=3)14 ! INTEGER ngroup 15 ! PARAMETER (ngroup=3) 15 16 16 17 REAL airecn,qn … … 37 38 LOGICAL, SAVE :: first = .TRUE. 38 39 !$OMP THREADPRIVATE(first) 39 INTEGER,SAVE :: i_index(iim,ngroup)40 ! INTEGER,SAVE :: i_index(iim,ngroup) 40 41 INTEGER :: offset 41 REAL :: qsum(iim/ngroup)42 ! REAL :: qsum(iim/ngroup) 42 43 43 44 IF (first) THEN … … 135 136 136 137 USE parallel_lmdz 138 USE comconst_mod, ONLY: ngroup 137 139 IMPLICIT NONE 138 140 … … 141 143 #include "comgeom2.h" 142 144 143 INTEGER ngroup144 PARAMETER (ngroup=3)145 ! INTEGER ngroup 146 ! PARAMETER (ngroup=3) 145 147 146 148 REAL airen,airecn -
trunk/LMDZ.COMMON/libf/dynphy_lonlat/calfis_p.F
r1549 r1572 597 597 kend=klon 598 598 599 if (is_north_pole ) kstart=2600 if (is_south_pole ) kend=klon-1599 if (is_north_pole_dyn) kstart=2 600 if (is_south_pole_dyn) kend=klon-1 601 601 602 602 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) … … 626 626 jjb=jj_begin_dyn-1 627 627 jje=jj_end_dyn+1 628 if (is_north_pole ) jjb=1629 if (is_south_pole ) jje=jjm628 if (is_north_pole_dyn) jjb=1 629 if (is_south_pole_dyn) jje=jjm 630 630 631 631 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) … … 678 678 c V = 1 / pi * integrale [ v * sin(long) * d long ] 679 679 680 if (is_north_pole ) then680 if (is_north_pole_dyn) then 681 681 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 682 682 DO l=1,llm … … 706 706 c V = 1 / pi * integrale [ v * sin(long) * d long ] 707 707 708 if (is_south_pole ) then708 if (is_south_pole_dyn) then 709 709 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 710 710 DO l=1,llm … … 1248 1248 pdvfi(:,jj_begin,l)=0 1249 1249 1250 if (.not. is_south_pole ) then1250 if (.not. is_south_pole_dyn) then 1251 1251 pdhfi(:,jj_end,l)=0 1252 1252 pdqfi(:,jj_end,l,:)=0 … … 1260 1260 c$OMP MASTER 1261 1261 pdpsfi(:,jj_begin)=0 1262 if (.not. is_south_pole ) then1262 if (.not. is_south_pole_dyn) then 1263 1263 pdpsfi(:,jj_end)=0 1264 1264 endif … … 1278 1278 kend=klon 1279 1279 1280 if (is_north_pole ) kstart=21281 if (is_south_pole ) kend=klon-11280 if (is_north_pole_dyn) kstart=2 1281 if (is_south_pole_dyn) kend=klon-1 1282 1282 1283 1283 ! ADAPTATION GCM POUR CP(T) … … 1301 1301 enddo 1302 1302 1303 if (is_north_pole ) then1303 if (is_north_pole_dyn) then 1304 1304 DO i=1,iip1 1305 1305 ! pdhfi(i,1,l) = cpp * zdtfi(1,l) / ppk(i, 1 ,l) … … 1308 1308 endif 1309 1309 1310 if (is_south_pole ) then1310 if (is_south_pole_dyn) then 1311 1311 DO i=1,iip1 1312 1312 ! pdhfi(i,jjp1,l) = cpp * zdtfi(klon,l)/ ppk(i,jjp1,l) … … 1331 1331 ! enddo 1332 1332 ! 1333 ! if (is_north_pole ) then1333 ! if (is_north_pole_dyn) then 1334 1334 ! do i=1,iip1 1335 1335 ! pdqfi(i,1,l,iq) = zdqfi(1,l,iq) … … 1337 1337 ! endif 1338 1338 ! 1339 ! if (is_south_pole ) then1339 ! if (is_south_pole_dyn) then 1340 1340 ! do i=1,iip1 1341 1341 ! pdqfi(i,jjp1,l,iq) = zdqfi(klon,l,iq) … … 1371 1371 ENDDO 1372 1372 1373 IF (is_north_pole ) then1373 IF (is_north_pole_dyn) then 1374 1374 DO i=1,iip1 1375 1375 pdqfi(i,1,l,iq) = zdqfi(1,l,iq) … … 1377 1377 ENDIF 1378 1378 1379 IF (is_south_pole ) then1379 IF (is_south_pole_dyn) then 1380 1380 DO i=1,iip1 1381 1381 pdqfi(i,jjp1,l,iq) = zdqfi(klon,l,iq) … … 1410 1410 enddo 1411 1411 1412 if (is_north_pole ) then1412 if (is_north_pole_dyn) then 1413 1413 DO i=1,iip1 1414 1414 pdufi(i,1,l) = 0. … … 1416 1416 endif 1417 1417 1418 if (is_south_pole ) then1418 if (is_south_pole_dyn) then 1419 1419 DO i=1,iip1 1420 1420 pdufi(i,jjp1,l) = 0. … … 1431 1431 kend=klon 1432 1432 1433 if (is_north_pole ) kstart=21434 if (is_south_pole ) kend=klon-1-iim1433 if (is_north_pole_dyn) kstart=2 1434 if (is_south_pole_dyn) kend=klon-1-iim 1435 1435 1436 1436 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) … … 1456 1456 c v = U * cos(long) + V * SIN(long) 1457 1457 1458 if (is_north_pole ) then1458 if (is_north_pole_dyn) then 1459 1459 1460 1460 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) … … 1476 1476 endif 1477 1477 1478 if (is_south_pole ) then1478 if (is_south_pole_dyn) then 1479 1479 1480 1480 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) -
trunk/LMDZ.COMMON/libf/dynphy_lonlat/mod_interface_dyn_phys.F90
r1543 r1572 22 22 23 23 k=1 24 IF (is_north_pole ) THEN24 IF (is_north_pole_dyn) THEN 25 25 index_i(k)=1 26 26 index_j(k)=1 … … 42 42 ENDDO 43 43 44 IF (is_south_pole ) THEN44 IF (is_south_pole_dyn) THEN 45 45 index_i(k)=1 46 46 index_j(k)=jj_end -
trunk/LMDZ.COMMON/libf/phy_common/mod_phys_lmdz_mpi_data.F90
r1543 r1572 1 1 ! 2 !$ Header$2 !$Id$ 3 3 ! 4 4 MODULE mod_phys_lmdz_mpi_data … … 41 41 42 42 43 LOGICAL,SAVE :: is_north_pole 44 LOGICAL,SAVE :: is_south_pole 43 LOGICAL,SAVE :: is_north_pole_dyn 44 LOGICAL,SAVE :: is_south_pole_dyn 45 45 INTEGER,SAVE :: COMM_LMDZ_PHY 46 46 INTEGER,SAVE :: MPI_REAL_LMDZ ! MPI_REAL8 … … 109 109 110 110 IF (mpi_rank == 0) THEN 111 is_north_pole = .TRUE.112 ELSE 113 is_north_pole = .FALSE.111 is_north_pole_dyn = .TRUE. 112 ELSE 113 is_north_pole_dyn = .FALSE. 114 114 ENDIF 115 115 116 116 IF (mpi_rank == mpi_size-1) THEN 117 is_south_pole = .TRUE.118 ELSE 119 is_south_pole = .FALSE.117 is_south_pole_dyn = .TRUE. 118 ELSE 119 is_south_pole_dyn = .FALSE. 120 120 ENDIF 121 121 … … 217 217 WRITE(lunout,*) 'mpi_master =', mpi_master 218 218 WRITE(lunout,*) 'is_mpi_root =', is_mpi_root 219 WRITE(lunout,*) 'is_north_pole =', is_north_pole220 WRITE(lunout,*) 'is_south_pole =', is_south_pole219 WRITE(lunout,*) 'is_north_pole_dyn =', is_north_pole_dyn 220 WRITE(lunout,*) 'is_south_pole_dyn =', is_south_pole_dyn 221 221 WRITE(lunout,*) 'COMM_LMDZ_PHY =', COMM_LMDZ_PHY 222 222 -
trunk/LMDZ.COMMON/libf/phy_common/mod_phys_lmdz_mpi_transfert.F90
r1543 r1572 1 1 ! 2 !$ Header$2 !$Id$ 3 3 ! 4 4 MODULE mod_phys_lmdz_mpi_transfert … … 1693 1693 1694 1694 offset=ii_begin 1695 IF (is_north_pole ) Offset=nbp_lon1695 IF (is_north_pole_dyn) Offset=nbp_lon 1696 1696 1697 1697 … … 1703 1703 1704 1704 1705 IF (is_north_pole ) THEN1705 IF (is_north_pole_dyn) THEN 1706 1706 DO i=1,dimsize 1707 1707 DO ij=1,nbp_lon … … 1711 1711 ENDIF 1712 1712 1713 IF (is_south_pole ) THEN1713 IF (is_south_pole_dyn) THEN 1714 1714 DO i=1,dimsize 1715 1715 DO ij=nbp_lon*(jj_nb-1)+1,nbp_lon*jj_nb … … 1737 1737 1738 1738 offset=ii_begin 1739 IF (is_north_pole ) Offset=nbp_lon1739 IF (is_north_pole_dyn) Offset=nbp_lon 1740 1740 1741 1741 … … 1747 1747 1748 1748 1749 IF (is_north_pole ) THEN1749 IF (is_north_pole_dyn) THEN 1750 1750 DO i=1,dimsize 1751 1751 DO ij=1,nbp_lon … … 1755 1755 ENDIF 1756 1756 1757 IF (is_south_pole ) THEN1757 IF (is_south_pole_dyn) THEN 1758 1758 DO i=1,dimsize 1759 1759 DO ij=nbp_lon*(jj_nb-1)+1,nbp_lon*jj_nb … … 1782 1782 1783 1783 offset=ii_begin 1784 IF (is_north_pole ) Offset=nbp_lon1784 IF (is_north_pole_dyn) Offset=nbp_lon 1785 1785 1786 1786 … … 1792 1792 1793 1793 1794 IF (is_north_pole ) THEN1794 IF (is_north_pole_dyn) THEN 1795 1795 DO i=1,dimsize 1796 1796 DO ij=1,nbp_lon … … 1800 1800 ENDIF 1801 1801 1802 IF (is_south_pole ) THEN1802 IF (is_south_pole_dyn) THEN 1803 1803 DO i=1,dimsize 1804 1804 DO ij=nbp_lon*(jj_nb-1)+1,nbp_lon*jj_nb … … 1824 1824 1825 1825 offset=ii_begin 1826 IF (is_north_pole ) offset=nbp_lon1826 IF (is_north_pole_dyn) offset=nbp_lon 1827 1827 1828 1828 DO i=1,dimsize … … 1832 1832 ENDDO 1833 1833 1834 IF (is_north_pole ) THEN1834 IF (is_north_pole_dyn) THEN 1835 1835 DO i=1,dimsize 1836 1836 VarOut(1,i)=VarIn(1,i) … … 1854 1854 1855 1855 offset=ii_begin 1856 IF (is_north_pole ) offset=nbp_lon1856 IF (is_north_pole_dyn) offset=nbp_lon 1857 1857 1858 1858 DO i=1,dimsize … … 1862 1862 ENDDO 1863 1863 1864 IF (is_north_pole ) THEN1864 IF (is_north_pole_dyn) THEN 1865 1865 DO i=1,dimsize 1866 1866 VarOut(1,i)=VarIn(1,i) … … 1883 1883 1884 1884 offset=ii_begin 1885 IF (is_north_pole ) offset=nbp_lon1885 IF (is_north_pole_dyn) offset=nbp_lon 1886 1886 1887 1887 DO i=1,dimsize … … 1891 1891 ENDDO 1892 1892 1893 IF (is_north_pole ) THEN1893 IF (is_north_pole_dyn) THEN 1894 1894 DO i=1,dimsize 1895 1895 VarOut(1,i)=VarIn(1,i) -
trunk/LMDZ.COMMON/libf/phy_common/mod_phys_lmdz_omp_data.F90
r1543 r1572 1 1 ! 2 !$Id: mod_phys_lmdz_omp_data.F90 2 326 2015-07-10 12:24:29Z emillour$2 !$Id: mod_phys_lmdz_omp_data.F90 2429 2016-01-27 12:43:09Z fairhead $ 3 3 ! 4 4 MODULE mod_phys_lmdz_omp_data … … 8 8 LOGICAL,SAVE :: is_omp_root 9 9 LOGICAL,SAVE :: is_using_omp 10 LOGICAL,SAVE :: is_north_pole_phy, is_south_pole_phy 10 11 11 12 INTEGER,SAVE,DIMENSION(:),ALLOCATABLE :: klon_omp_para_nb … … 17 18 INTEGER,SAVE :: klon_omp_end 18 19 !$OMP THREADPRIVATE(omp_rank,klon_omp,is_omp_root,klon_omp_begin,klon_omp_end) 20 !$OMP THREADPRIVATE(is_north_pole_phy, is_south_pole_phy) 19 21 20 22 CONTAINS 21 23 22 24 SUBROUTINE Init_phys_lmdz_omp_data(klon_mpi) 23 USE dimphy 25 USE dimphy 26 USE mod_phys_lmdz_mpi_data, ONLY : is_north_pole_dyn, is_south_pole_dyn 24 27 IMPLICIT NONE 25 28 INTEGER, INTENT(in) :: klon_mpi … … 43 46 omp_size=OMP_GET_NUM_THREADS() 44 47 !$OMP END MASTER 48 !$OMP BARRIER 45 49 omp_rank=OMP_GET_THREAD_NUM() 46 50 #else … … 62 66 63 67 !$OMP MASTER 68 64 69 ALLOCATE(klon_omp_para_nb(0:omp_size-1)) 65 70 ALLOCATE(klon_omp_para_begin(0:omp_size-1)) … … 80 85 !$OMP END MASTER 81 86 !$OMP BARRIER 87 88 if ((is_north_pole_dyn) .AND. (omp_rank == 0 )) then 89 is_north_pole_phy = .TRUE. 90 else 91 is_north_pole_phy = .FALSE. 92 endif 93 if ((is_south_pole_dyn) .AND. (omp_rank == omp_size-1)) then 94 is_south_pole_phy = .TRUE. 95 else 96 is_south_pole_phy = .FALSE. 97 endif 82 98 83 99 klon_omp=klon_omp_para_nb(omp_rank) -
trunk/LMDZ.COMMON/libf/phy_common/mod_phys_lmdz_para.F90
r1543 r1572 1 1 ! 2 ! $Header$2 ! $Id: mod_phys_lmdz_para.F90 2429 2016-01-27 12:43:09Z fairhead $ 3 3 ! 4 4 MODULE mod_phys_lmdz_para … … 11 11 LOGICAL,SAVE :: is_parallel 12 12 LOGICAL,SAVE :: is_master 13 13 14 14 15 !$OMP THREADPRIVATE(klon_loc,is_master) … … 41 42 is_parallel=.FALSE. 42 43 ENDIF 44 45 43 46 44 47 END SUBROUTINE Init_phys_lmdz_para -
trunk/LMDZ.TITAN/libf/phytitan/physiq_mod.F
r1549 r1572 67 67 & cell_area, dx, dy 68 68 use cpdet_mod, only: cpdet, t2tpot 69 USE mod_phys_lmdz_para, only : is_parallel,jj_nb 69 USE mod_phys_lmdz_para, only : is_parallel,jj_nb, 70 & is_north_pole_phy, 71 & is_south_pole_phy 70 72 USE phys_state_var_mod ! Variables sauvegardees de la physique 71 73 USE iophy … … 372 374 c reservoir de surface 373 375 REAL,save,allocatable :: reservoir(:) 376 377 c cell_area for outputs in hist* 378 REAL cell_area_out(klon) 374 379 375 380 c Declaration des constantes et des fonctions thermodynamiques -
trunk/LMDZ.TITAN/libf/phytitan/write_histday.h
r1543 r1572 14 14 15 15 call histwrite_phy(nid_day,.false.,"phis",itau_w,pphis) 16 call histwrite_phy(nid_day,.false.,"aire",itau_w,cell_area) 16 c call histwrite_phy(nid_day,.false.,"aire",itau_w,cell_area) 17 cell_area_out(:)=cell_area(:) 18 if (is_north_pole_phy) cell_area_out(1)=cell_area(1)/nbp_lon 19 if (is_south_pole_phy) cell_area_out(klon)=cell_area(klon)/nbp_lon 20 call histwrite_phy(nid_day,.false.,"aire",itau_w,cell_area_out) 17 21 18 22 ccccccc axe Ls ... Faudrait le reduire a axe temporel seulement... -
trunk/LMDZ.TITAN/libf/phytitan/write_histins.h
r1543 r1572 14 14 15 15 call histwrite_phy(nid_ins,.false.,"phis",itau_w,pphis) 16 call histwrite_phy(nid_ins,.false.,"aire",itau_w,cell_area) 16 c call histwrite_phy(nid_ins,.false.,"aire",itau_w,cell_area) 17 cell_area_out(:)=cell_area(:) 18 if (is_north_pole_phy) cell_area_out(1)=cell_area(1)/nbp_lon 19 if (is_south_pole_phy) cell_area_out(klon)=cell_area(klon)/nbp_lon 20 call histwrite_phy(nid_ins,.false.,"aire",itau_w,cell_area_out) 17 21 18 22 ccccccc axe Ls ... Faudrait le reduire a axe temporel seulement... -
trunk/LMDZ.TITAN/libf/phytitan/write_histmth.h
r1543 r1572 11 11 12 12 call histwrite_phy(nid_mth,.false.,"phis",itau_w,pphis) 13 call histwrite_phy(nid_mth,.false.,"aire",itau_w,cell_area) 13 c call histwrite_phy(nid_mth,.false.,"aire",itau_w,cell_area) 14 cell_area_out(:)=cell_area(:) 15 if (is_north_pole_phy) cell_area_out(1)=cell_area(1)/nbp_lon 16 if (is_south_pole_phy) cell_area_out(klon)=cell_area(klon)/nbp_lon 17 call histwrite_phy(nid_mth,.false.,"aire",itau_w,cell_area_out) 14 18 15 19 ccccccc axe Ls ... Faudrait le reduire a axe temporel seulement... -
trunk/LMDZ.VENUS/libf/phyvenus/physiq_mod.F
r1549 r1572 66 66 & longitude_deg,latitude_deg, ! in degrees 67 67 & cell_area,dx,dy 68 USE mod_phys_lmdz_para, only : is_parallel,jj_nb 68 USE mod_phys_lmdz_para, only : is_parallel,jj_nb, 69 & is_north_pole_phy, 70 & is_south_pole_phy 69 71 USE phys_state_var_mod ! Variables sauvegardees de la physique 70 72 USE write_field_phy … … 385 387 REAL mangtot ! moment cinetique total 386 388 389 c cell_area for outputs in hist* 390 REAL cell_area_out(klon) 391 387 392 c Declaration des constantes et des fonctions thermodynamiques 388 393 c -
trunk/LMDZ.VENUS/libf/phyvenus/write_histday.h
r1543 r1572 12 12 13 13 call histwrite_phy(nid_day,.false.,"phis",itau_w,pphis) 14 call histwrite_phy(nid_day,.false.,"aire",itau_w,cell_area) 14 c call histwrite_phy(nid_day,.false.,"aire",itau_w,cell_area) 15 cell_area_out(:)=cell_area(:) 16 if (is_north_pole_phy) cell_area_out(1)=cell_area(1)/nbp_lon 17 if (is_south_pole_phy) cell_area_out(klon)=cell_area(klon)/nbp_lon 18 call histwrite_phy(nid_day,.false.,"aire",itau_w,cell_area_out) 19 15 20 call histwrite_phy(nid_day,.false.,"tsol",itau_w,ftsol) 16 21 call histwrite_phy(nid_day,.false.,"psol",itau_w,paprs(:,1)) -
trunk/LMDZ.VENUS/libf/phyvenus/write_histins.h
r1543 r1572 12 12 13 13 call histwrite_phy(nid_ins,.false.,"phis",itau_w,pphis) 14 call histwrite_phy(nid_ins,.false.,"aire",itau_w,cell_area) 14 c call histwrite_phy(nid_ins,.false.,"aire",itau_w,cell_area) 15 cell_area_out(:)=cell_area(:) 16 if (is_north_pole_phy) cell_area_out(1)=cell_area(1)/nbp_lon 17 if (is_south_pole_phy) cell_area_out(klon)=cell_area(klon)/nbp_lon 18 call histwrite_phy(nid_ins,.false.,"aire",itau_w,cell_area_out) 19 15 20 call histwrite_phy(nid_ins,.false.,"tsol",itau_w,ftsol) 16 21 call histwrite_phy(nid_ins,.false.,"psol",itau_w,paprs(:,1)) -
trunk/LMDZ.VENUS/libf/phyvenus/write_histmth.h
r1543 r1572 12 12 13 13 call histwrite_phy(nid_mth,.false.,"phis",itau_w,pphis) 14 call histwrite_phy(nid_mth,.false.,"aire",itau_w,cell_area) 14 c call histwrite_phy(nid_mth,.false.,"aire",itau_w,cell_area) 15 cell_area_out(:)=cell_area(:) 16 if (is_north_pole_phy) cell_area_out(1)=cell_area(1)/nbp_lon 17 if (is_south_pole_phy) cell_area_out(klon)=cell_area(klon)/nbp_lon 18 call histwrite_phy(nid_mth,.false.,"aire",itau_w,cell_area_out) 19 15 20 call histwrite_phy(nid_mth,.false.,"tsol",itau_w,ftsol) 16 21 call histwrite_phy(nid_mth,.false.,"psol",itau_w,paprs(:,1))
Note: See TracChangeset
for help on using the changeset viewer.