Changeset 165
- Timestamp:
- 12/13/17 18:03:43 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SOURCES/steps_time_loop.f90
r161 r165 31 31 32 32 if (itracebug.eq.1) call tracebug('Entree dans step_time_loop ') 33 if (itracebug.eq.1) write(num_tracebug,*) 'nt = ',nt ,' iter_beta = ',iter_beta33 if (itracebug.eq.1) write(num_tracebug,*) 'nt = ',nt 34 34 35 35 … … 38 38 39 39 40 spinup_icethick: if ((ispinup.eq.0.or.ispinup.eq.2.or.nt.lt.nt_init) & 41 .and.(iter_beta.eq.0)) then 40 spinup_icethick: if (ispinup.eq.0.or.ispinup.eq.2.or.nt.lt.nt_init) then 42 41 43 42 !------------------------------------------------------------------- … … 45 44 !---------------- 46 45 ! - est fait dans tous les cas pour les premieres boucles temporelles 47 ! - pour ispinup = 0 (run standard) sauf si iter_beta = 046 ! - pour ispinup = 0 (run standard) 48 47 ! - pour ispinup = 2 (force avec vitesses de bilan) 49 48 ! … … 121 120 call testsort_time_ncdf(time) 122 121 if (iglob_ncdf .EQ. 1) call sortie_ncdf_cat 123 if ( isynchro.eq.1) then122 if ((isynchro.eq.1).or.(nt.eq.1)) then 124 123 call shortoutput 125 124 diff_H = 0. … … 189 188 timemax=time 190 189 if (itracebug.eq.1) write(num_tracebug,*) 'entree dans step_thermomeca', & 191 ' nt=',nt ,'iter_beta=',iter_beta190 ' nt=',nt 192 191 193 192 !-------------------------------------------------------------------- … … 208 207 !------------------------------------------- 209 208 call masque() 210 211 if (iter_beta.gt.0) call init_dragging212 209 213 210 … … 321 318 ! Passe dans ce bloc que quand on veut calculer les vitesses dynamiques : 322 319 ! - initialisations (nt.lt.nt_init_tm) 323 ! - run standard (ispinup=0) (y compris iter_beta.ne.0)320 ! - run standard (ispinup=0) 324 321 ! - spinup temperature avec vitesses dynamiques (ispinup = 1) 325 322 !--------------------------------------------------------------------------------- … … 331 328 call diffusiv() 332 329 333 334 iterbeta: if (iter_beta.ne.0) then ! only for iterations on beta335 336 if (.not.shelf_vitbil) then ! bloc si les vitesses shelves viennent de diagnoshelf337 338 ! Vcol declare dans le module spinup_mod339 ! ou dans le dragging si no_spinup340 341 where (flotmx(:,:))342 uxbar(:,:)=uxflgz(:,:)343 elsewhere344 uxbar(:,:)=Vcol_x(:,:)345 end where346 347 where (flotmy(:,:))348 uybar(:,:)=uyflgz(:,:)349 elsewhere350 uybar(:,:)=Vcol_y(:,:)351 end where352 else353 uxbar(:,:)=Vcol_x(:,:)354 uybar(:,:)=Vcol_y(:,:)355 end if356 end if iterbeta357 358 359 330 ! strain rate calculations 360 331 !=========================== 361 332 362 333 call strain_rate() 363 364 365 if (iter_beta.ne.0) then ! on n'a utilise les vitesses de bilan que pour strain_rate "Dirichlet ?"366 uxbar(:,:)=uxflgz(:,:)+uxdef(:,:)367 uybar(:,:)=uyflgz(:,:)+uydef(:,:)368 end if369 370 371 334 372 335 ! ice shelves and ice streams velocities : SSA … … 393 356 end if 394 357 395 358 test_iter_diag=0. 396 359 do m=1,iter_visco 397 360 call diagnoshelf 398 361 call mix_SIA_L1 399 362 call strain_rate 400 if (iter_beta.eq.0) then401 call dragging402 endif403 363 if (test_iter_diag.lt.1.e-2) exit 404 364 end do 365 366 ! iterations pour inversion du beta en fonction des vitesses de bilan 367 if ((inv_beta.eq.1).and.(time.ge.time_iter).and.(time.le.time_iter_end)) then ! iterations pendant 20 ans 368 do m=1,nb_iter_vitbil 369 call beta_iter_vitbil(m) 370 call diagnoshelf 371 call mix_SIA_L1 372 call strain_rate 373 end do 374 end if 375 ! fin des iterations beta_iter_vitbil 376 405 377 endif isync_2 406 378
Note: See TracChangeset
for help on using the changeset viewer.