Changeset 953 for trunk/LMDZ.COMMON/libf/dyn3dpar
- Timestamp:
- May 2, 2013, 10:33:18 AM (12 years ago)
- Location:
- trunk/LMDZ.COMMON/libf/dyn3dpar
- Files:
-
- 1 deleted
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.COMMON/libf/dyn3dpar/advtrac_p.F90
r270 r953 111 111 !$OMP END DO NOWAIT 112 112 113 ! selection de la masse instantan nee des mailles avant le transport.113 ! selection de la masse instantanee des mailles avant le transport. 114 114 IF(iadvtr.EQ.0) THEN 115 115 … … 206 206 !$OMP BARRIER 207 207 208 ! ... Flux de masse diag anostiques traceurs208 ! ... Flux de masse diagnostiques traceurs 209 209 ijb=ij_begin 210 210 ije=ij_end … … 266 266 267 267 268 GOTO 1234 268 !!! ATTENTION !!!! TOUT CE QUI EST ENTRE ICI ET 1234 EST OBSOLETE !!!!!!! 269 GOTO 1234 270 !!! ATTENTION !!!! 271 269 272 !----------------------------------------------------------- 270 273 ! Appel des sous programmes d'advection … … 443 446 end DO 444 447 448 !!! ATTENTION !!!! 445 449 1234 CONTINUE 450 !!! ATTENTION !!!! LE CODE REPREND ICI !!!!!!!! 451 446 452 !$OMP BARRIER 447 453 … … 461 467 CALL qminimum_p( q, 2, finmasse ) 462 468 469 endif ! of if (planet_type=="earth") 470 463 471 !------------------------------------------------------------------ 464 472 ! on reinitialise a zero les flux de masse cumules … … 471 479 call VTb(VThallo) 472 480 !$OMP END MASTER 481 473 482 474 483 do j=1,nqtot … … 492 501 !$OMP BARRIER 493 502 iadvtr=0 494 endif ! of if (planet_type=="earth")495 503 ENDIF ! if iadvtr.EQ.iapp_tracvl 496 504 -
trunk/LMDZ.COMMON/libf/dyn3dpar/cpdet.F
r847 r953 93 93 c====================================================================== 94 94 95 SUBROUTINE t2tpot_p( ip1jmp1,llm, yt, yteta, ypk)95 SUBROUTINE t2tpot_p(nlon,nlev, yt, yteta, ypk) 96 96 ! Parallel version of t2tpot 97 97 USE parallel … … 102 102 #include "comconst.h" 103 103 104 integer,intent(in) :: ip1jmp1,llm105 real,intent(in) :: yt( ip1jmp1,llm)106 real,intent(out) :: yteta( ip1jmp1,llm)107 real,intent(in) :: ypk( ip1jmp1,llm)104 integer,intent(in) :: nlon,nlev 105 real,intent(in) :: yt(nlon,nlev) 106 real,intent(out) :: yteta(nlon,nlev) 107 real,intent(in) :: ypk(nlon,nlev) 108 108 ! local variable: 109 integer :: ij,l,ijb,ije109 integer :: l 110 110 111 !ijb=ij_begin112 !ije=ij_end113 ijb=1114 ije=ip1jmp1115 116 111 if (planet_type.eq."venus") then 117 !$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 118 do l=1,llm 119 yteta(ijb:ije,l)=yt(ijb:ije,l)**nu_venus & 112 do l=1,nlev 113 yteta(:,l)=yt(:,l)**nu_venus & 120 114 & -nu_venus*t0_venus**nu_venus* & 121 & log(ypk( ijb:ije,l)/cpp)122 yteta( ijb:ije,l)=yteta(ijb:ije,l)**(1./nu_venus)115 & log(ypk(:,l)/cpp) 116 yteta(:,l)=yteta(:,l)**(1./nu_venus) 123 117 enddo 124 !$OMP END DO125 118 else 126 !$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 127 do l=1,llm 128 yteta(ijb:ije,l)=yt(ijb:ije,l)*cpp/ypk(ijb:ije,l) 119 do l=1,nlev 120 yteta(:,l)=yt(:,l)*cpp/ypk(:,l) 129 121 enddo 130 !$OMP END DO131 122 endif ! of if (planet_type.eq."venus") 132 123 … … 167 158 c====================================================================== 168 159 c====================================================================== 169 SUBROUTINE tpot2t_p( ip1jmp1,llm,yteta,yt,ypk)160 SUBROUTINE tpot2t_p(nlon,nlev,yteta,yt,ypk) 170 161 ! Parallel version of tpot2t 171 162 USE parallel … … 175 166 #include "comconst.h" 176 167 177 integer,intent(in) :: ip1jmp1,llm178 real,intent(out) :: yt( ip1jmp1,llm)179 real,intent(in) :: yteta( ip1jmp1,llm)180 real,intent(in) :: ypk( ip1jmp1,llm)168 integer,intent(in) :: nlon,nlev 169 real,intent(out) :: yt(nlon,nlev) 170 real,intent(in) :: yteta(nlon,nlev) 171 real,intent(in) :: ypk(nlon,nlev) 181 172 182 173 ! local variable: 183 integer :: ij,l,ijb,ije 184 185 !ijb=ij_begin 186 !ije=ij_end 187 ijb=1 188 ije=ip1jmp1 174 integer :: l 189 175 190 176 if (planet_type.eq."venus") then 191 !$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 192 do l=1,llm 193 yt(ijb:ije,l)=yteta(ijb:ije,l)**nu_venus & 177 do l=1,nlev 178 yt(:,l)=yteta(:,l)**nu_venus & 194 179 & +nu_venus*t0_venus**nu_venus* & 195 & log(ypk( ijb:ije,l)/cpp)196 yt( ijb:ije,l)=yt(ijb:ije,l)**(1./nu_venus)180 & log(ypk(:,l)/cpp) 181 yt(:,l)=yt(:,l)**(1./nu_venus) 197 182 enddo 198 !$OMP END DO199 183 else 200 !$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 201 do l=1,llm 202 yt(ijb:ije,l)=yteta(ijb:ije,l)*ypk(ijb:ije,l)/cpp 184 do l=1,nlev 185 yt(:,l)=yteta(:,l)*ypk(:,l)/cpp 203 186 enddo 204 !$OMP END DO205 187 endif ! of if (planet_type.eq."venus") 206 188 END -
trunk/LMDZ.COMMON/libf/dyn3dpar/leapfrog_p.F
r847 r953 271 271 dqfi(:,:,:) =0. 272 272 dpfi(:) =0. 273 dq(:,:,:)=0.273 dq(:,:,:) =0. 274 274 275 275 CALL pression ( ip1jmp1, ap, bp, ps, p ) … … 549 549 c -------------------------------- 550 550 ! ADAPTATION GCM POUR CP(T) 551 call tpot2t_p(ip1jmp1,llm,teta,temp,pk)552 551 ijb=ij_begin 553 552 ije=ij_end 553 call tpot2t_p(ije-ijb+1,llm,teta(ijb:ije,:),temp(ijb:ije,:), 554 & pk(ijb:ije,:)) 554 555 !$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 555 556 do l=1,llm … … 682 683 cc$OMP PARALLEL DEFAULT(SHARED) 683 684 c 684 CALL caladvtrac_p(q,pbaru,pbarv,685 * p, masse, dq,teta,686 . flxw,pk, iapptrac)685 CALL advtrac_p( pbaru,pbarv, 686 * p, masse,q,iapptrac, teta, 687 . flxw, pk) 687 688 688 689 C Stokage du flux de masse pour traceurs OFF-LINE … … 1218 1219 c dissipation 1219 1220 ! ADAPTATION GCM POUR CP(T) 1220 call tpot2t_p(ip1jmp1,llm,teta,temp,pk) 1221 ijb=ij_begin 1222 ije=ij_end 1223 call tpot2t_p(ije-ijb+1,llm,teta(ijb:ije,:),temp(ijb:ije,:), 1224 & pk(ijb:ije,:)) 1221 1225 1222 1226 ! CALL FTRACE_REGION_BEGIN("dissip") … … 1275 1279 enddo 1276 1280 enddo 1277 c$OMP END DO 1278 call t2tpot_p(ip1jmp1,llm,temp,ztetaec,pk) 1281 c$OMP END DO 1282 call t2tpot_p(ije-ijb+1,llm,temp(ijb:ije,:),ztetaec(ijb:ije,:), 1283 & pk(ijb:ije,:)) 1279 1284 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 1280 1285 do l=1,llm … … 1585 1590 1586 1591 ! ADAPTATION GCM POUR CP(T) 1587 call tpot2t_p(ip1jmp1,llm,teta,temp,pk)1588 1592 ijb=ij_begin 1589 1593 ije=ij_end 1594 call tpot2t_p(ije-ijb+1,llm,teta(ijb:ije,:),temp(ijb:ije,:), 1595 & pk(ijb:ije,:)) 1590 1596 !$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 1591 1597 do l=1,llm … … 1809 1815 1810 1816 ! ADAPTATION GCM POUR CP(T) 1811 call tpot2t_p(ip1jmp1,llm,teta,temp,pk)1812 1817 ijb=ij_begin 1813 1818 ije=ij_end 1819 call tpot2t_p(ije-ijb+1,llm,teta(ijb:ije,:),temp(ijb:ije,:), 1820 & pk(ijb:ije,:)) 1814 1821 !$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 1815 1822 do l=1,llm
Note: See TracChangeset
for help on using the changeset viewer.