Changeset 709 for LMDZ4/branches/V3_test/libf/dyn3dpar/divgrad2_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/divgrad2_p.F
r630 r709 1 SUBROUTINE divgrad2_p ( klevel, h, deltapres, lh, divgra )1 SUBROUTINE divgrad2_p ( klevel, h, deltapres, lh, divgra_out ) 2 2 c 3 3 c P. Le Van … … 23 23 INTEGER klevel 24 24 REAL h( ip1jmp1,klevel ), deltapres( ip1jmp1,klevel ) 25 REAL divgra( ip1jmp1,klevel) 25 REAL divgra_out( ip1jmp1,klevel) 26 REAL,SAVE :: divgra( ip1jmp1,llm) 27 26 28 c 27 29 c ....... variables locales .......... … … 31 33 c ................................................................... 32 34 33 EXTERNAL filtreg34 EXTERNAL SCOPY, laplacien_gam35 35 INTEGER ijb,ije 36 36 c … … 41 41 ijb=ij_begin 42 42 ije=ij_end 43 divgra(ijb:ije,1:klevel)=h(ijb:ije,1:klevel) 44 43 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 44 DO l = 1, klevel 45 divgra(ijb:ije,l)=h(ijb:ije,l) 46 ENDDO 47 c$OMP END DO NOWAIT 45 48 c 49 c$OMP BARRIER 50 c$OMP MASTER 46 51 call suspend_timer(timer_dissip) 47 52 call exchange_Hallo(divgra,ip1jmp1,llm,1,1) 48 53 call resume_timer(timer_dissip) 54 c$OMP END MASTER 55 c$OMP BARRIER 49 56 CALL laplacien_p( klevel, divgra, divgra ) 50 57 58 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 51 59 DO l = 1, klevel 52 60 DO ij = ijb, ije … … 54 62 ENDDO 55 63 ENDDO 64 c$OMP END DO NOWAIT 65 56 66 c 67 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 57 68 DO l = 1, klevel 58 69 DO ij = ijb, ije … … 60 71 ENDDO 61 72 ENDDO 73 c$OMP END DO NOWAIT 62 74 63 75 c ........ Iteration de l'operateur laplacien_gam ........ 64 76 c 65 77 DO iter = 1, lh - 2 78 c$OMP BARRIER 79 c$OMP MASTER 66 80 call suspend_timer(timer_dissip) 67 81 call exchange_Hallo(divgra,ip1jmp1,llm,1,1) 68 82 call resume_timer(timer_dissip) 83 c$OMP END MASTER 84 c$OMP BARRIER 69 85 CALL laplacien_gam_p ( klevel,cuvscvgam2,cvuscugam2,unsair_gam2, 70 86 * unsapolnga2, unsapolsga2, divgra, divgra ) … … 72 88 c 73 89 c ............................................................... 74 90 91 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 75 92 DO l = 1, klevel 76 93 DO ij = ijb, ije … … 78 95 ENDDO 79 96 ENDDO 97 c$OMP END DO NOWAIT 80 98 c 99 c$OMP BARRIER 100 c$OMP MASTER 81 101 call suspend_timer(timer_dissip) 82 102 call exchange_Hallo(divgra,ip1jmp1,llm,1,1) 83 103 call resume_timer(timer_dissip) 104 c$OMP END MASTER 105 c$OMP BARRIER 106 84 107 CALL laplacien_p ( klevel, divgra, divgra ) 85 108 c 109 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 86 110 DO l = 1,klevel 87 111 DO ij = ijb,ije 88 divgra (ij,l) = nudivgrs * divgra(ij,l) / deltapres(ij,l)112 divgra_out(ij,l) = nudivgrs * divgra(ij,l) / deltapres(ij,l) 89 113 ENDDO 90 114 ENDDO 115 c$OMP END DO NOWAIT 91 116 92 117 RETURN
Note: See TracChangeset
for help on using the changeset viewer.