- Timestamp:
- 2021-02-23T15:18:28+01:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2021/dev_r14273_HPC-02_Daley_Tiling/src/OCE/ASM/asminc.F90
r14090 r14537 26 26 USE par_oce ! Ocean space and time domain variables 27 27 USE dom_oce ! Ocean space and time domain 28 ! TEMP: [tiling] This change not necessary after extended haloes development 28 29 USE domtile 29 30 USE domvvl ! domain: variable volume level … … 519 520 ! 520 521 INTEGER :: ji, jj, jk 521 INTEGER :: it , itile522 INTEGER :: it 522 523 REAL(wp) :: zincwgt ! IAU weight for current time step 523 524 REAL(wp), DIMENSION(A2D(nn_hls),jpk) :: fzptnz ! 3d freezing point values … … 541 542 zincwgt = wgtiau(it) / rn_Dt ! IAU weight for the current time step 542 543 ! 543 IF( ntile == 0.OR. ntile == 1 ) THEN ! Do only on the first tile544 IF( .NOT. l_istiled .OR. ntile == 1 ) THEN ! Do only on the first tile 544 545 IF(lwp) THEN 545 546 WRITE(numout,*) … … 578 579 ENDIF 579 580 ! 580 IF( ntile == 0.OR. ntile == nijtile ) THEN ! Do only on the last tile581 IF( .NOT. l_istiled .OR. ntile == nijtile ) THEN ! Do only on the last tile 581 582 IF ( kt == nitiaufin_r + 1 ) THEN ! For bias crcn to work 582 583 DEALLOCATE( t_bkginc ) … … 625 626 626 627 ! TEMP: [tiling] This change not necessary after extra haloes development (lbc_lnk removed from zps_hde*) 627 IF( ntile == 0 .OR. ntile == nijtile ) THEN ! Do only for the full domain 628 itile = ntile 629 IF( ln_tile ) CALL dom_tile( ntsi, ntsj, ntei, ntej, ktile = 0 ) ! Use full domain 628 IF( .NOT. l_istiled .OR. ntile == nijtile ) THEN ! Do only for the full domain 629 IF( ln_tile ) CALL dom_tile_stop( ldhold=.TRUE., cstr='asminc' ) ! Use full domain 630 630 631 631 IF( ln_zps .AND. .NOT. lk_c1d .AND. .NOT. ln_isfcav) & … … 636 636 & rhd, gru , grv , grui, grvi ) ! of t, s, rd at the last ocean level 637 637 638 IF( ln_tile ) CALL dom_tile ( ntsi, ntsj, ntei, ntej, ktile = itile) ! Revert to tile domain638 IF( ln_tile ) CALL dom_tile_start( ldhold=.TRUE., cstr='asminc' ) ! Revert to tile domain 639 639 ENDIF 640 640 641 IF( ntile == 0.OR. ntile == nijtile ) THEN ! Do only on the last tile641 IF( .NOT. l_istiled .OR. ntile == nijtile ) THEN ! Do only on the last tile 642 642 DEALLOCATE( t_bkginc ) 643 643 DEALLOCATE( s_bkginc ) … … 683 683 zincwgt = wgtiau(it) / rn_Dt ! IAU weight for the current time step 684 684 ! 685 IF(lwp) THEN686 WRITE(numout,*)687 WRITE(numout,*) 'dyn_asm_inc : Dynamics IAU at time step = ', kt,' with IAU weight = ', wgtiau(it)688 WRITE(numout,*) '~~~~~~~~~~~~'689 ENDIF685 IF(lwp) THEN 686 WRITE(numout,*) 687 WRITE(numout,*) 'dyn_asm_inc : Dynamics IAU at time step = ', kt,' with IAU weight = ', wgtiau(it) 688 WRITE(numout,*) '~~~~~~~~~~~~' 689 ENDIF 690 690 ! 691 691 ! Update the dynamic tendencies … … 695 695 END DO 696 696 ! 697 IF ( kt == nitiaufin_r ) THEN 698 DEALLOCATE( u_bkginc ) 699 DEALLOCATE( v_bkginc ) 697 IF ( kt == nitiaufin_r ) THEN 698 DEALLOCATE( u_bkginc ) 699 DEALLOCATE( v_bkginc ) 700 ENDIF 701 ! 700 702 ENDIF 701 !702 ENDIF703 703 ! !----------------------------------------- 704 704 ELSEIF ( ln_asmdin ) THEN ! Direct Initialization … … 754 754 zincwgt = wgtiau(it) / rn_Dt ! IAU weight for the current time step 755 755 ! 756 IF(lwp) THEN757 WRITE(numout,*)758 WRITE(numout,*) 'ssh_asm_inc : SSH IAU at time step = ', &759 & kt,' with IAU weight = ', wgtiau(it)760 WRITE(numout,*) '~~~~~~~~~~~~'761 ENDIF756 IF(lwp) THEN 757 WRITE(numout,*) 758 WRITE(numout,*) 'ssh_asm_inc : SSH IAU at time step = ', & 759 & kt,' with IAU weight = ', wgtiau(it) 760 WRITE(numout,*) '~~~~~~~~~~~~' 761 ENDIF 762 762 ! 763 763 ! Save the tendency associated with the IAU weighted SSH increment … … 770 770 ! 771 771 ! test on ssh_bkginc needed as ssh_asm_inc is called twice by time step 772 IF (ALLOCATED(ssh_bkginc)) DEALLOCATE( ssh_bkginc )772 IF (ALLOCATED(ssh_bkginc)) DEALLOCATE( ssh_bkginc ) 773 773 ! 774 774 #if defined key_asminc … … 832 832 ALLOCATE( ztim(jpi,jpj) ) 833 833 ztim(:,:) = ssh_iau(:,:) / ( ht(:,:) + 1.0 - ssmask(:,:) ) 834 DO jk = 1, jpkm1834 DO jk = 1, jpkm1 835 835 phdivn(:,:,jk) = phdivn(:,:,jk) - ztim(:,:) * tmask(:,:,jk) 836 END DO836 END DO 837 837 ! 838 838 DEALLOCATE(ztim) … … 876 876 ! note this is not a tendency so should not be divided by rn_Dt (as with the tracer and other increments) 877 877 ! 878 IF( ntile == 0.OR. ntile == 1 ) THEN ! Do only on the first tile878 IF( .NOT. l_istiled .OR. ntile == 1 ) THEN ! Do only on the first tile 879 879 IF(lwp) THEN 880 880 WRITE(numout,*) … … 920 920 #endif 921 921 ! 922 IF( ntile == 0.OR. ntile == nijtile ) THEN ! Do only on the last tile922 IF( .NOT. l_istiled .OR. ntile == nijtile ) THEN ! Do only on the last tile 923 923 IF ( kt == nitiaufin_r ) THEN 924 924 DEALLOCATE( seaice_bkginc ) … … 979 979 END_2D 980 980 #endif 981 IF( ntile == 0.OR. ntile == nijtile ) THEN ! Do only on the last tile981 IF( .NOT. l_istiled .OR. ntile == nijtile ) THEN ! Do only on the last tile 982 982 IF ( .NOT. PRESENT(kindic) ) THEN 983 983 DEALLOCATE( seaice_bkginc )
Note: See TracChangeset
for help on using the changeset viewer.