Changeset 76 for trunk/SOURCES/diffusiv-polyn-0.6.f90
- Timestamp:
- 06/29/16 16:21:13 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SOURCES/diffusiv-polyn-0.6.f90
r68 r76 34 34 35 35 ! =============================================================== 36 36 !$ USE OMP_LIB 37 37 USE module3D_phy 38 38 … … 58 58 59 59 ! initialisation de la diffusion 60 !$OMP PARALLEL 61 !$OMP WORKSHARE 60 62 diffmx(:,:)=0. 61 63 diffmy(:,:)=0. 62 64 !$OMP END WORKSHARE 65 !$OMP END PARALLEL 63 66 64 67 ! calcul de SDX, SDY et de la pente au carre en mx et en my : … … 79 82 ! Calcul de la vitesse de glissement, qu'elle soit calculee par diagno ou par sliding 80 83 !------------------------------------------------------------------------------------ 81 ! 84 !$OMP PARALLEL 85 !$OMP WORKSHARE 82 86 where (flgzmx(:,:)) 83 87 ubx(:,:) = uxflgz(:,:) … … 91 95 uby(:,:) = ddby(:,:)* (-sdy(:,:)) 92 96 endwhere 93 94 97 !$OMP END WORKSHARE 98 !$OMP END PARALLEL 95 99 if (itracebug.eq.1) call tracebug(' diffusiv apres calcul glissement') 96 100 … … 99 103 ! Deformation SIA : Calcul de ddy et ddx pour chaque valeur de iglen 100 104 !------------------------------------------------------------------ 101 102 105 do iglen=n1poly,n2poly 103 106 glenexp=max(0.,(glen(iglen)-1.)/2.) 104 105 107 !$OMP PARALLEL 108 !$OMP DO 106 109 do j=1,ny 107 110 do i=1,nx 108 109 111 if (.not.flotmy(i,j)) then ! On calcule quand la deformation même pour les ice streams 110 112 ddy(i,j,iglen)=((slope2my(i,j)** & ! slope2my calcule en debut de routine 111 113 glenexp)*(rog)**glen(iglen)) & 112 114 *hmy(i,j)**(glen(iglen)+1) 113 114 115 115 endif 116 116 end do 117 117 end do 118 !$OMP END DO 119 !$OMP END PARALLEL 118 120 end do 121 122 119 123 120 124 do iglen=n1poly,n2poly 121 125 glenexp=max(0.,(glen(iglen)-1.)/2.) 122 123 126 !$OMP PARALLEL 127 !$OMP DO 124 128 do j=1,ny 125 129 do i=1,nx 126 127 130 if (.not.flotmx(i,j)) then ! bug y->x corrige le 5 avril 2008 ( 128 129 131 ddx(i,j,iglen)=((slope2mx(i,j)** & ! slope2mx calcule en debut de routine 130 132 glenexp)*(rog)**glen(iglen)) & … … 133 135 end do 134 136 end do 137 !$OMP END DO 138 !$OMP END PARALLEL 135 139 end do 136 140 141 137 142 ! vitesse due a la déformation----------------------------------------------- 138 139 143 !$OMP PARALLEL 144 !$OMP DO 140 145 ydef: do j=2,ny 141 146 do i=1,nx … … 164 169 end do 165 170 end do ydef 166 171 !$OMP END DO 172 173 !$OMP DO 167 174 xdef: do j=1,ny 168 175 do i=2,nx … … 192 199 end do 193 200 end do xdef 201 !$OMP END DO 194 202 195 203 if (itracebug.eq.1) call tracebug(' diffusiv avant limit') … … 199 207 200 208 ! la limitation selon x 209 !$OMP WORKSHARE 201 210 where(.not.flgzmx(:,:)) 202 211 uxbar(:,:)=min(uxbar(:,:),ultot) … … 209 218 uybar(:,:)=max(uybar(:,:),-ultot) 210 219 end where 220 !$OMP END WORKSHARE 211 221 212 222 ! cas particulier des sommets ou il ne reste plus de neige. 223 !$OMP DO 213 224 do j=2,ny-1 214 225 do i=2,nx-1 … … 221 232 end do 222 233 end do 223 234 !$OMP END DO 235 !$OMP END PARALLEL 224 236 if (itracebug.eq.1) call tracebug(' fin diffusiv ') 225 237
Note: See TracChangeset
for help on using the changeset viewer.