Changeset 482 for branches/GRISLIv3/SOURCES/New-remplimat/diagno-L2_mod.f90
- Timestamp:
- 02/09/24 17:08:19 (5 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/GRISLIv3/SOURCES/New-remplimat/diagno-L2_mod.f90
r481 r482 16 16 real, dimension(nx,ny) :: uyb1ramollo 17 17 real, dimension(nx,ny) :: pvi_keep 18 19 !cdc transfere dans module3d pour compatibilite avec furst_schoof_mod20 !cdc integer, dimension(nx,ny) :: imx_diag21 !cdc integer, dimension(nx,ny) :: imy_diag22 18 23 19 integer :: nneigh=max(int(400000./dx),1) !nb. points around the grline kept for back force comp. in case we reduce the extent … … 151 147 !$OMP END WORKSHARE 152 148 !$OMP END PARALLEL 153 ! avec couplage thermomecanique154 ! write(166,*) ' apres call calc_pvi',itour_pvi155 149 156 150 else … … 158 152 end if 159 153 160 call imx_imy_nx_ny ! pour rempli_L2 : calcule les masques imx et imy qui154 call imx_imy_nx_ny(imx_diag,imy_diag,flgzmx,flgzmy) ! pour rempli_L2 : calcule les masques imx et imy qui 161 155 162 156 diagno_grline=sum(gr_line(2:(nx-1),2:(ny-1))) 163 157 if ((Schoof.ge.1).and.(diagno_grline.gt.0)) then 164 call imx_imy_nx_ny_reduce(1 ) !afq: provides imx_reduce and imy_reduce158 call imx_imy_nx_ny_reduce(1,flot,imx_diag,imy_diag,gr_line) !afq: provides imx_reduce and imy_reduce 165 159 endif 166 167 !cdc debug Schoof !!!!!!!!!!!!168 !~ do j=1,ny169 !~ do i=1,nx170 !~ write(578,*) uxbar(i,j)171 !~ write(579,*) uybar(i,j)172 !~ enddo173 !~ enddo174 175 !if (Schoof.eq.1.and.nt.GT.15000) then ! flux grounding line Schoof176 ! afq -- below: if (Schoof.eq.1) then ! flux grounding line Schoof177 ! afq -- below: call interpol_glflux ! calcul flux GL + interpolation sur voisins178 ! afq -- below: endif179 180 !~ do j=1,ny181 !~ do i=1,nx182 !~ write(588,*) uxbar(i,j)183 !~ write(589,*) uybar(i,j)184 !~ enddo185 !~ enddo186 !~ print*,'ecriteure termineee !!!!!!'187 !~ read(*,*)188 160 189 161 ! donnent les cas de conditions aux limites … … 202 174 nyd1=1 203 175 nyd2=ny 204 205 !call rempli_L2(1,nx,1,ny,uxbar,uybar,uxb1,uyb1,imx_diag,imy_diag,ifail_diagno)206 !nxd1=15207 !nxd2=19208 !nyd1=30209 !nyd2=34210 211 !nxd1=35212 !nxd2=60213 !nyd1=35214 !nyd2=60215 216 176 217 !if (Schoof.eq.1.and.nt.GT.15000) then ! flux grounding line Schoof avec calcul de la back force par shelf ramollo218 177 if ((Schoof.ge.1).and.(diagno_grline.gt.0)) then ! flux grounding line Schoof avec calcul de la back force par shelf ramollo 219 178 … … 224 183 pvi_keep(:,:)=pvi(:,:) 225 184 where (flot(:,:).and.H(:,:).GT.2.) 226 ! pvi(:,:)=1.e5227 185 pvi(:,:)=pvimin 228 186 endwhere … … 250 208 251 209 if (ifail_diagno_ramollo.gt.0) then 252 ! write(6,*) ' Probleme resolution systeme L2. ramollo ifail=',ifail_diagno_ramollo253 ! STOP254 210 write(*,*) ' Probleme resolution systeme L2. ramollo ifail=',ifail_diagno_ramollo 255 211 write(*,*) ' ... we go on anyway!' 256 212 endif 257 !~ do j=1,ny258 !~ do i=1,nx259 !~ if (sqrt(uxb1(i,j)**2+ uyb1(i,j)**2).gt.0..and..not.flot(i,j)) then260 !~ write(1034,*) sqrt(uxb1(i,j)**2+ uyb1(i,j)**2) / sqrt(uxb1ramollo(i,j)**2 + uyb1ramollo(i,j)**2)261 !~ else262 !~ write(1034,*) 1.263 !~ endif264 !~ enddo265 !~ enddo266 267 !~ print*,'apres calcul rempli_L2'268 !~ read(*,*)269 213 270 214 call interpol_glflux ! calcul flux GL + interpolation sur voisins … … 503 447 debug_3D(:,:,27)=pvi(:,:) 504 448 !$OMP END WORKSHARE 505 ! attention run 35506 !--------------------507 !!$if (time.gt.10.) then508 !!$ where (flot(:,:))509 !!$ pvi(:,:)=pvimin510 !!$ end where511 !!$end if512 449 513 450 ! calcul de la viscosite integree au milieu des mailles (pvm) … … 528 465 !------------------------------------------------------------------ 529 466 530 subroutine imx_imy_nx_ny 531 532 use module3d_phy, only: imx_diag,imy_diag,flgzmx,flgzmy 533 467 subroutine imx_imy_nx_ny(imx_diagl,imy_diagl,flgzmxl,flgzmyl) 468 534 469 implicit none 470 471 logical,dimension(:,:), intent(in) :: flgzmxl,flgzmyl 472 integer,dimension(:,:), intent(inout) :: imx_diagl,imy_diagl 535 473 536 474 ! definition des masques … … 555 493 !$OMP PARALLEL 556 494 !$OMP WORKSHARE 557 imx_diag (:,:)=0558 imy_diag (:,:)=0495 imx_diagl(:,:)=0 496 imy_diagl(:,:)=0 559 497 560 498 ! a l'interieur du domaine 561 499 !------------------------- 562 500 563 where (flgzmx (:,:))564 imx_diag (:,:)=2 ! shelf ou stream501 where (flgzmxl(:,:)) 502 imx_diagl(:,:)=2 ! shelf ou stream 565 503 elsewhere 566 imx_diag (:,:)=1 ! vitesse imposee504 imx_diagl(:,:)=1 ! vitesse imposee 567 505 end where 568 506 569 where (flgzmy (:,:))570 imy_diag (:,:)=2 ! shelf ou stream507 where (flgzmyl(:,:)) 508 imy_diagl(:,:)=2 ! shelf ou stream 571 509 elsewhere 572 imy_diag (:,:)=1 ! vitesse imposee510 imy_diagl(:,:)=1 ! vitesse imposee 573 511 end where 574 512 575 513 ! bord sud 576 imx_diag (:,1)=-1577 imy_diag (:,2)=-1514 imx_diagl(:,1)=-1 515 imy_diagl(:,2)=-1 578 516 579 517 ! bord nord 580 imx_diag (:,ny)=-3581 imy_diag (:,ny)=-3518 imx_diagl(:,ny)=-3 519 imy_diagl(:,ny)=-3 582 520 583 521 ! bord Est 584 imx_diag (1,:)=0 ! hors domaine a cause des mailles alternees585 imx_diag (2,:)=-4586 imy_diag (1,:)=-4522 imx_diagl(1,:)=0 ! hors domaine a cause des mailles alternees 523 imx_diagl(2,:)=-4 524 imy_diagl(1,:)=-4 587 525 588 526 ! bord West 589 imx_diag (nx,:)=-2590 imy_diag (nx,:)=-2527 imx_diagl(nx,:)=-2 528 imy_diagl(nx,:)=-2 591 529 592 530 ! Coins 593 imx_diag (2,1)=-41 ! SW594 imy_diag (1,2)=-41595 596 imx_diag (nx,1)=-12 ! SE597 imy_diag (nx,2)=-12598 599 imx_diag (nx,ny)=-23 ! NE600 imy_diag (nx,ny)=-23601 602 imx_diag (2,ny)=-34 ! NW603 imy_diag (1,ny)=-34531 imx_diagl(2,1)=-41 ! SW 532 imy_diagl(1,2)=-41 533 534 imx_diagl(nx,1)=-12 ! SE 535 imy_diagl(nx,2)=-12 536 537 imx_diagl(nx,ny)=-23 ! NE 538 imy_diagl(nx,ny)=-23 539 540 imx_diagl(2,ny)=-34 ! NW 541 imy_diagl(1,ny)=-34 604 542 605 543 ! hors domaine 606 imx_diag (1,:)=0 ! hors domaine a cause des mailles alternees607 imy_diag (:,1)=0 ! hors domaine a cause des mailles alternees544 imx_diagl(1,:)=0 ! hors domaine a cause des mailles alternees 545 imy_diagl(:,1)=0 ! hors domaine a cause des mailles alternees 608 546 !$OMP END WORKSHARE 609 547 !$OMP END PARALLEL … … 612 550 613 551 614 subroutine imx_imy_nx_ny_reduce(choix) 615 616 use module3d_phy, only: flot,imx_diag,imy_diag,gr_line 617 552 subroutine imx_imy_nx_ny_reduce(choix,flot,imx_diag,imy_diag,gr_line) 553 618 554 implicit none 619 555 … … 621 557 ! We simply compute the velocities around (nneigh) the grounding line 622 558 623 integer, intent(in) :: choix 559 integer, intent(in) :: choix 560 logical, dimension(:,:), intent(in) :: flot 561 integer, dimension(:,:), intent(in) :: imx_diag,imy_diag,gr_line 562 624 563 625 564 integer i,j,nvx,nvy … … 717 656 end subroutine mismip_boundary_cond 718 657 719 !end module diagno_L2_mod720 658 end module diagno_mod
Note: See TracChangeset
for help on using the changeset viewer.