Changeset 104
- Timestamp:
- 05/09/17 10:20:19 (7 years ago)
- Location:
- trunk/SOURCES
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SOURCES/New-remplimat/diagno-L2_mod.f90
r98 r104 141 141 !~ enddo 142 142 143 if (Schoof.eq.1.and.nt.GT.15000) then ! flux grounding line Schoof 144 call interpol_glflux ! calcul flux GL + interpolation sur voisins 145 endif 146 143 !if (Schoof.eq.1.and.nt.GT.15000) then ! flux grounding line Schoof 144 if (Schoof.eq.1) then ! flux grounding line Schoof 145 call interpol_glflux ! calcul flux GL + interpolation sur voisins 146 endif 147 147 148 !~ do j=1,ny 148 149 !~ do i=1,nx … … 153 154 !~ print*,'ecriteure termineee !!!!!!' 154 155 !~ read(*,*) 155 156 156 157 ! donnent les cas de conditions aux limites 157 158 ! … … 185 186 imx_diag(nxd1:nxd2,nyd1:nyd2),imy_diag(nxd1:nxd2,nyd1:nyd2),ifail_diagno) 186 187 187 if (Schoof.eq.1.and.nt.GT.15000) then ! flux grounding line Schoof avec calcul de la back force par shelf ramollo 188 !if (Schoof.eq.1.and.nt.GT.15000) then ! flux grounding line Schoof avec calcul de la back force par shelf ramollo 189 if (Schoof.eq.1) then ! flux grounding line Schoof avec calcul de la back force par shelf ramollo 188 190 pvi_keep(:,:)=pvi(:,:) 189 190 191 ! 192 193 194 191 where (flot(:,:).and.H(:,:).GT.2.) 192 pvi(:,:)=1.e5 193 ! pvi(:,:)=pvimin 194 endwhere 195 196 call rempli_L2(nxd1,nxd2,nyd1,nyd2,uxbar(nxd1:nxd2,nyd1:nyd2),uybar(nxd1:nxd2,nyd1:nyd2), & 195 197 uxb1ramollo(nxd1:nxd2,nyd1:nyd2),uyb1ramollo(nxd1:nxd2,nyd1:nyd2), & 196 198 imx_diag(nxd1:nxd2,nyd1:nyd2),imy_diag(nxd1:nxd2,nyd1:nyd2),ifail_diagno_ramollo) … … 198 200 pvi(:,:)=pvi_keep(:,:) 199 201 200 where ((uxb1ramollo(:,:)**2 + uyb1ramollo(:,:)**2).GT.0.) 201 back_force(:,:) = sqrt(uxb1(:,:)**2+ uyb1(:,:)**2) / sqrt(uxb1ramollo(:,:)**2 + uyb1ramollo(:,:)**2) 202 elsewhere 203 back_force(:,:)=1. 204 endwhere 205 206 if (ifail_diagno_ramollo.gt.0) then 207 write(6,*) ' Probleme resolution systeme L2. ramollo ifail=',ifail_diagno_ramollo 208 STOP 209 endif 202 where (abs(uxb1ramollo(:,:)) .GT.1.e-5) 203 back_force_x(:,:) = 1.0 * abs(uxb1(:,:)) / abs(uxb1ramollo(:,:)) 204 elsewhere 205 back_force_x(:,:)=1. 206 endwhere 207 where (abs(uyb1ramollo(:,:)) .GT.1.e-5) 208 back_force_y(:,:) = 1.0 * abs(uyb1(:,:)) / abs(uyb1ramollo(:,:)) 209 elsewhere 210 back_force_y(:,:)=1. 211 endwhere 212 213 if (ifail_diagno_ramollo.gt.0) then 214 ! write(6,*) ' Probleme resolution systeme L2. ramollo ifail=',ifail_diagno_ramollo 215 ! STOP 216 write(*,*) ' Probleme resolution systeme L2. ramollo ifail=',ifail_diagno_ramollo 217 write(*,*) ' ... we go on anyway!' 218 endif 210 219 !~ do j=1,ny 211 220 !~ do i=1,nx … … 217 226 !~ enddo 218 227 !~ enddo 219 228 220 229 !~ print*,'apres calcul rempli_L2' 221 230 !~ read(*,*) -
trunk/SOURCES/New-remplimat/remplimat-shelves-tabTu.f90
r75 r104 61 61 integer :: ifail_L2 ! pour les rapports d'erreur 62 62 63 real, dimension(nx1:nx2,ny1:ny2),intent(in out) :: uxprec ! vitesse en entree routine64 real, dimension(nx1:nx2,ny1:ny2),intent(in out) :: uyprec ! vitesse en entree routine63 real, dimension(nx1:nx2,ny1:ny2),intent(in) :: uxprec ! vitesse en entree routine 64 real, dimension(nx1:nx2,ny1:ny2),intent(in) :: uyprec ! vitesse en entree routine 65 65 66 66 ! masques vitesses. … … 76 76 77 77 78 integer, dimension(nx1:nx2,ny1:ny2),intent(in out) :: imx ! masque en entree routine79 integer, dimension(nx1:nx2,ny1:ny2),intent(in out) :: imy ! masque en entree routine78 integer, dimension(nx1:nx2,ny1:ny2),intent(in) :: imx ! masque en entree routine 79 integer, dimension(nx1:nx2,ny1:ny2),intent(in) :: imy ! masque en entree routine 80 80 81 81 -
trunk/SOURCES/furst_schoof_mod.f90
r97 r104 11 11 real :: alpha_flot 12 12 integer :: gr_select 13 real,dimension(nx,ny) :: back_force 13 real,dimension(nx,ny) :: back_force_x 14 real,dimension(nx,ny) :: back_force_y 14 15 15 16 contains … … 35 36 ! choix Tsai (loi de Coulomb) ou Schoof (loi de Weertman) 36 37 alpha_flot= ro/row 37 back_force(:,:)=0.1 38 back_force_x(:,:)=0.1 39 back_force_y(:,:)=0.1 38 40 39 41 end subroutine init_furst_schoof … … 68 70 69 71 real,dimension(nx,ny) :: archimtab 72 73 real,dimension(nx,ny) :: imx_diag_in 70 74 71 75 phi_prescr_tabx=0. … … 82 86 archimtab(:,:) = Bsoc(:,:)+H(:,:)*alpha_flot -sealevel 83 87 88 imx_diag_in(:,:) = imx_diag(:,:) 89 84 90 ! detection des noeuds grounding line 85 91 do j= 3,ny-3 … … 98 104 99 105 if (gr_select.eq.1) then ! flux de Tsai 100 call flux_Tsai4Schoof (Hgl,Abar(i,j),frot_coef,alpha_flot,glen(1),back_force (i-1,j),phi_prescr)106 call flux_Tsai4Schoof (Hgl,Abar(i,j),frot_coef,alpha_flot,glen(1),back_force_x(i-1,j),phi_prescr) 101 107 else 102 108 print*,'ATTENTION FLUX AUTRE QUE TSAI NON IMPLEMENTE' … … 167 173 Hglx_tab(i,j)=Hgl 168 174 if (gr_select.eq.1) then ! flux de Tsai 169 call flux_Tsai4Schoof (Hgl,Abar(i,j),frot_coef,alpha_flot,glen(1),back_force (i+1,j),phi_prescr)175 call flux_Tsai4Schoof (Hgl,Abar(i,j),frot_coef,alpha_flot,glen(1),back_force_x(i+1,j),phi_prescr) 170 176 else 171 177 print*,'ATTENTION FLUX AUTRE QUE TSAI NON IMPLEMENTE' … … 232 238 Hgly_tab(i,j)=Hgl 233 239 if (gr_select.eq.1) then ! flux de Tsai 234 call flux_Tsai4Schoof (Hgl,Abar(i,j),frot_coef,alpha_flot,glen(1),back_force (i,j-1),phi_prescr)240 call flux_Tsai4Schoof (Hgl,Abar(i,j),frot_coef,alpha_flot,glen(1),back_force_y(i,j-1),phi_prescr) 235 241 else 236 242 print*,'ATTENTION FLUX AUTRE QUE TSAI NON IMPLEMENTE' … … 293 299 Hgly_tab(i,j)=Hgl 294 300 if (gr_select.eq.1) then ! flux de Tsai 295 call flux_Tsai4Schoof (Hgl,Abar(i,j),frot_coef,alpha_flot,glen(1),back_force (i,j+1),phi_prescr)301 call flux_Tsai4Schoof (Hgl,Abar(i,j),frot_coef,alpha_flot,glen(1),back_force_y(i,j+1),phi_prescr) 296 302 else 297 303 print*,'ATTENTION FLUX AUTRE QUE TSAI NON IMPLEMENTE' … … 350 356 end do 351 357 end do 352 where (countx(:,:).ne.0) uxbar(:,:)=uxbartemp(:,:)/countx(:,:) 353 where (county(:,:).ne.0) uybar(:,:)=uybartemp(:,:)/county(:,:) 354 355 uxbar(:,:)= max(min(uxbar(:,:),V_limit),-V_limit) 356 uybar(:,:)= max(min(uybar(:,:),V_limit),-V_limit) 357 358 359 ! afq -- if we discard the points with multiple fluxes coming, uncomment: 360 !where (countx(:,:).ge.2) 361 ! uxbartemp(:,:)=uxbar(i,j)*countx(:,:) 362 ! imx_diag(:,:) = imx_diag_in(:,:) 363 !end where 364 !where (county(:,:).ge.2) 365 ! uybartemp(:,:)=uybar(:,:)*county(:,:) 366 ! imy_diag(:,:) = imx_diag_in(:,:) 367 !end where 368 ! afq -- 369 370 where (countx(:,:).ne.0) uxbar(:,:)= max(min(uxbartemp(:,:)/countx(:,:),1000.),-1000.) 371 where (county(:,:).ne.0) uybar(:,:)= max(min(uybartemp(:,:)/county(:,:),1000.),-1000.) 372 358 373 do j= 3,ny-3 359 374 do i=3,nx-3 … … 433 448 434 449 if (xpos.LT.0..OR.xpos.GT.1.) then 435 436 437 438 439 440 450 print*,'calc_xgl4schoof : xpos value error i,j=',i,j 451 print*, 'xpos,Cgl', xpos,Cgl 452 print*,'B_0, alpha, H_0, SL', B_0, alpha, H_0, SL 453 print*,'archim=',B_1+H_1*alpha - SL 454 !stop 455 xpos = min(max(0.,xpos),1.) 441 456 endif 442 457
Note: See TracChangeset
for help on using the changeset viewer.