- Timestamp:
- 2019-12-11T16:56:06+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/NST/agrif_top_update.F90
r11078 r12191 1 #define TWO_WAY2 1 #undef DECAL_FEEDBACK 3 2 … … 20 19 USE par_trc 21 20 USE trc 21 USE vremap 22 22 23 23 IMPLICIT NONE … … 40 40 IF (Agrif_Root()) RETURN 41 41 ! 42 #if defined TWO_WAY43 42 Agrif_UseSpecialValueInUpdate = .TRUE. 44 43 Agrif_SpecialValueFineGrid = 0._wp … … 53 52 ! 54 53 Agrif_UseSpecialValueInUpdate = .FALSE. 55 !56 #endif57 54 ! 58 55 END SUBROUTINE Agrif_Update_Trc … … 68 65 !! 69 66 INTEGER :: ji,jj,jk,jn 70 REAL(wp) , DIMENSION(i1:i2,j1:j2,1:jpk,n1:n2) :: tabres_child67 REAL(wp) :: ztb, ztnu, ztno 71 68 REAL(wp) :: h_in(k1:k2) 72 69 REAL(wp) :: h_out(1:jpk) 73 70 INTEGER :: N_in, N_out 74 71 REAL(wp) :: h_diff 75 REAL(wp) :: zrho_xy76 REAL(wp) :: tabin(k1:k2,n1:n2)72 REAL(wp) :: tabin(k1:k2,1:jptra) 73 REAL(wp), DIMENSION(i1:i2,j1:j2,1:jpk,1:jptra) :: tabres_child 77 74 !!--------------------------------------------- 78 75 ! 79 76 IF (before) THEN 80 77 AGRIF_SpecialValue = -999._wp 81 zrho_xy = Agrif_rhox() * Agrif_rhoy()82 78 DO jn = n1,n2-1 83 79 DO jk=k1,k2 … … 124 120 STOP 125 121 ENDIF 126 DO jn=1,jptra 127 CALL reconstructandremap(tabin(1:N_in,jn),h_in(1:N_in),tabres_child(ji,jj,1:N_out,jn),h_out(1:N_out),N_in,N_out) 128 ENDDO 122 CALL reconstructandremap(tabin(1:N_in,1:jptra),h_in(1:N_in),tabres_child(ji,jj,1:N_out,1:jptra),h_out(1:N_out),N_in,N_out,jptra) 129 123 ENDIF 130 124 ENDDO 131 125 ENDDO 132 126 ! 133 127 IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN 134 128 ! Add asselin part 135 129 DO jn = 1,jptra 136 DO jk=1,jpk 130 DO jk=1,jpkm1 137 131 DO jj=j1,j2 138 132 DO ji=i1,i2 139 133 IF( tabres_child(ji,jj,jk,jn) .NE. 0. ) THEN 140 trb(ji,jj,jk,jn) = trb(ji,jj,jk,jn) & 141 & + atfp * ( tabres_child(ji,jj,jk,jn) & 142 & - trn(ji,jj,jk,jn) ) * tmask(ji,jj,jk) 134 ztb = trb(ji,jj,jk,jn) * e3t_b(ji,jj,jk) ! fse3t_b prior update should be used 135 ztnu = tabres_child(ji,jj,jk,jn) * e3t_n(ji,jj,jk) 136 ztno = trn(ji,jj,jk,jn) * e3t_a(ji,jj,jk) 137 trb(ji,jj,jk,jn) = ( ztb + atfp * ( ztnu - ztno) ) & 138 & * tmask(ji,jj,jk) / e3t_b(ji,jj,jk) 143 139 ENDIF 144 140 ENDDO … … 148 144 ENDIF 149 145 DO jn = 1,jptra 150 DO jk=1,jpk 146 DO jk=1,jpkm1 151 147 DO jj=j1,j2 152 148 DO ji=i1,i2 153 149 IF( tabres_child(ji,jj,jk,jn) .NE. 0. ) THEN 154 trn(ji,jj,jk,jn) = tabres_child(ji,jj,jk,jn) * tmask(ji,jj,jk)150 trn(ji,jj,jk,jn) = tabres_child(ji,jj,jk,jn) 155 151 END IF 156 152 END DO … … 158 154 END DO 159 155 END DO 156 ! 157 IF ((neuler==0).AND.(Agrif_Nb_Step()==0) ) THEN 158 trb(i1:i2,j1:j2,1:jpkm1,1:jptra) = trn(i1:i2,j1:j2,1:jpkm1,1:jptra) 159 ENDIF 160 ! 161 160 162 ENDIF 161 163 !
Note: See TracChangeset
for help on using the changeset viewer.