Changeset 709 for LMDZ4/branches/V3_test/libf/dyn3dpar/integrd_p.F
- Timestamp:
- Sep 20, 2006, 12:12:39 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/branches/V3_test/libf/dyn3dpar/integrd_p.F
r630 r709 4 4 SUBROUTINE integrd_p 5 5 $ ( nq,vcovm1,ucovm1,tetam1,psm1,massem1, 6 $ dv,du,dteta,dq,dp,vcov,ucov,teta,q,ps ,masse,phis,finvmaold)6 $ dv,du,dteta,dq,dp,vcov,ucov,teta,q,ps0,masse,phis,finvmaold) 7 7 USE parallel 8 8 IMPLICIT NONE … … 41 41 REAL vcov(ip1jm,llm),ucov(ip1jmp1,llm),teta(ip1jmp1,llm) 42 42 REAL q(ip1jmp1,llm,nq) 43 REAL ps (ip1jmp1),masse(ip1jmp1,llm),phis(ip1jmp1)43 REAL ps0(ip1jmp1),masse(ip1jmp1,llm),phis(ip1jmp1) 44 44 45 45 REAL vcovm1(ip1jm,llm),ucovm1(ip1jmp1,llm) … … 55 55 REAL vscr( ip1jm ),uscr( ip1jmp1 ),hscr( ip1jmp1 ),pscr(ip1jmp1) 56 56 REAL massescr( ip1jmp1,llm ), finvmasse(ip1jmp1,llm) 57 REAL p(ip1jmp1,llmp1)57 REAL,SAVE :: p(ip1jmp1,llmp1) 58 58 REAL tpn,tps,tppn(iim),tpps(iim) 59 59 REAL qpn,qps,qppn(iim),qpps(iim) … … 62 62 INTEGER l,ij,iq 63 63 64 EXTERNAL filtreg,massdair,pression65 EXTERNAL SCOPY66 64 REAL SSUM 67 65 EXTERNAL SSUM 68 66 INTEGER ijb,ije,jjb,jje 67 REAL,SAVE :: ps(ip1jmp1) 69 68 c----------------------------------------------------------------------- 69 70 70 if (pole_nord) THEN 71 71 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 72 72 DO l = 1,llm 73 73 DO ij = 1,iip1 … … 76 76 ENDDO 77 77 ENDDO 78 78 c$OMP END DO NOWAIT 79 79 ENDIF 80 80 81 81 if (pole_sud) THEN 82 82 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 83 83 DO l = 1,llm 84 84 DO ij = 1,iip1 … … 87 87 ENDDO 88 88 ENDDO 89 89 c$OMP END DO NOWAIT 90 90 ENDIF 91 91 … … 96 96 ijb=ij_begin 97 97 ije=ij_end 98 massescr(ijb:ije,:)=masse(ijb:ije,:) 99 98 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 99 DO l = 1,llm 100 massescr(ijb:ije,l)=masse(ijb:ije,l) 101 ENDDO 102 c$OMP END DO NOWAIT 103 104 c$OMP MASTER 100 105 DO 2 ij = ijb,ije 101 pscr (ij) = ps (ij)106 pscr (ij) = ps0(ij) 102 107 ps (ij) = psm1(ij) + dt * dp(ij) 103 108 2 CONTINUE … … 133 138 134 139 ENDIF 140 c$OMP END MASTER 141 c$OMP BARRIER 135 142 c 136 143 c ... Calcul de la nouvelle masse d'air au dernier temps integre t+1 ... 137 144 c 145 138 146 CALL pression_p ( ip1jmp1, ap, bp, ps, p ) 147 c$OMP BARRIER 139 148 CALL massdair_p ( p , masse ) 140 149 … … 142 151 ijb=ij_begin 143 152 ije=ij_end 144 finvmasse(ijb:ije,:)=masse(ijb:ije,:) 153 154 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 155 DO l = 1,llm 156 finvmasse(ijb:ije,l)=masse(ijb:ije,l) 157 ENDDO 158 c$OMP END DO NOWAIT 145 159 146 160 jjb=jj_begin … … 151 165 c ............ integration de ucov, vcov, h .............. 152 166 167 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 153 168 DO 10 l = 1,llm 154 169 … … 225 240 226 241 10 CONTINUE 227 242 c$OMP END DO NOWAIT 228 243 229 244 c … … 233 248 ije=ij_end 234 249 235 250 c$OMP MASTER 236 251 DO l = 1, llm 237 252 DO ij = ijb, ije … … 282 297 283 298 ENDIF 299 300 c$OMP END MASTER 301 c$OMP BARRIER 284 302 285 303 c CALL SCOPY( ijp1llm , finvmasse, 1, finvmaold, 1 ) 286 287 finvmaold(ijb:ije,:)=finvmasse(ijb:ije,:) 304 305 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 306 DO l = 1, llm 307 finvmaold(ijb:ije,l)=finvmasse(ijb:ije,l) 308 ENDDO 309 c$OMP END DO NOWAIT 288 310 c 289 311 c … … 292 314 15 continue 293 315 316 c$OMP MASTER 317 ps0(ijb:ije)=ps(ijb:ije) 318 c$OMP END MASTER 294 319 c ................................................................. 295 320 … … 298 323 c CALL SCOPY ( ip1jmp1 , pscr , 1, psm1 , 1 ) 299 324 c CALL SCOPY ( ip1jmp1*llm, massescr, 1, massem1, 1 ) 325 c$OMP MASTER 300 326 psm1(ijb:ije)=pscr(ijb:ije) 301 massem1(ijb:ije,:)=massescr(ijb:ije,:) 327 c$OMP END MASTER 328 329 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 330 DO l = 1, llm 331 massem1(ijb:ije,l)=massescr(ijb:ije,l) 332 ENDDO 333 c$OMP END DO NOWAIT 302 334 END IF 303 335
Note: See TracChangeset
for help on using the changeset viewer.