Changeset 8214 for branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/NST_SRC
- Timestamp:
- 2017-06-25T11:54:36+02:00 (7 years ago)
- Location:
- branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/NST_SRC
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/NST_SRC/agrif_oce.F90
r7953 r8214 44 44 LOGICAL , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tabspongedone_u 45 45 LOGICAL , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tabspongedone_v 46 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fsaht_spu, fsaht_spv !: sponge diffusivities 47 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fsahm_spt, fsahm_spf !: sponge viscosities 46 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fsaht_spu, fsaht_spv !: sponge diffusivities 47 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fsahm_spt, fsahm_spf !: sponge viscosities 48 49 !!gm add PUBLIC in all variable below: should we need to add it 48 50 49 51 ! Barotropic arrays used to store open boundary data during time-splitting loop: 50 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:) :: ubdy_w, vbdy_w, hbdy_w51 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:) :: ubdy_e, vbdy_e, hbdy_e52 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:) :: ubdy_n, vbdy_n, hbdy_n53 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:) :: ubdy_s, vbdy_s, hbdy_s52 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ubdy_w, vbdy_w, hbdy_w 53 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ubdy_e, vbdy_e, hbdy_e 54 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ubdy_n, vbdy_n, hbdy_n 55 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ubdy_s, vbdy_s, hbdy_s 54 56 55 !!gm add PUBLIC in all variable below:56 57 57 58 INTEGER, PUBLIC :: tsn_id ! AGRIF profile for tracers interpolation and update -
branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/NST_SRC/agrif_opa_interp.F90
r7953 r8214 548 548 ENDIF 549 549 ! 550 IF( nbondj == -1 .OR. (nbondj == 2 ) THEN550 IF( nbondj == -1 .OR. nbondj == 2 ) THEN 551 551 DO ji = 1, jpi 552 552 ssha_e(ji,2) = hbdy_s(ji) … … 935 935 ! 936 936 IF( bdy_tinterp == 0 .OR. bdy_tinterp == 2) THEN 937 IF( western_side ) vbdy_w(j1:j2) = vbdy_w(j1:j2) / (zrhox*e1v(i1,j1:j2)) * vmask(i1,j1:j2,1) 938 IF( eastern_side ) vbdy_e(j1:j2) = vbdy_e(j1:j2) / (zrhox*e1v(i1,j1:j2)) * vmask(i1,j1:j2,1) 939 IF( southern_side ) vbdy_s(i1:i2) = vbdy_s(i1:i2) / (zrhox*e1v(i1:i2,j1)) * vmask(i1:i2,j1,1) 940 IF( northern_side ) vbdy_n(i1:i2) = vbdy_n(i1:i2) / (zrhox*e1v(i1:i2,j1)) * vmask(i1:i2,j1,1) 937 IF(western_side) THEN 938 vbdy_w(j1:j2) = vbdy_w(j1:j2) / (zrhox*e1v(i1,j1:j2)) & 939 & * vmask(i1,j1:j2,1) 941 940 ENDIF 941 IF(eastern_side) THEN 942 vbdy_e(j1:j2) = vbdy_e(j1:j2) / (zrhox*e1v(i1,j1:j2)) & 943 & * vmask(i1,j1:j2,1) 944 ENDIF 945 IF(southern_side) THEN 946 vbdy_s(i1:i2) = vbdy_s(i1:i2) / (zrhox*e1v(i1:i2,j1)) & 947 & * vmask(i1:i2,j1,1) 948 ENDIF 949 IF(northern_side) THEN 950 vbdy_n(i1:i2) = vbdy_n(i1:i2) / (zrhox*e1v(i1:i2,j1)) & 951 & * vmask(i1:i2,j1,1) 952 ENDIF 953 !!gm better coding 954 ! IF( western_side ) vbdy_w(j1:j2) = vbdy_w(j1:j2) / (zrhox*e1v(i1,j1:j2)) * vmask(i1,j1:j2,1) 955 ! IF( eastern_side ) vbdy_e(j1:j2) = vbdy_e(j1:j2) / (zrhox*e1v(i1,j1:j2)) * vmask(i1,j1:j2,1) 956 ! IF( southern_side ) vbdy_s(i1:i2) = vbdy_s(i1:i2) / (zrhox*e1v(i1:i2,j1)) * vmask(i1:i2,j1,1) 957 ! IF( northern_side ) vbdy_n(i1:i2) = vbdy_n(i1:i2) / (zrhox*e1v(i1:i2,j1)) * vmask(i1:i2,j1,1) 958 !!gm end 942 959 ENDIF 943 960 ENDIF … … 1167 1184 !!---------------------------------------------------------------------- 1168 1185 ! 1169 IF( before ) THEN ; ptab (i1:i2,j1:j2,k1:k2) = avm_k(i1:i2,j1:j2,k1:k2) 1170 ELSE ; avm_k(i1:i2,j1:j2,k1:k2) = ptab (i1:i2,j1:j2,k1:k2) 1171 ENDIF 1186 IF( before ) THEN 1187 ptab (i1:i2,j1:j2,k1:k2) = avm_k(i1:i2,j1:j2,k1:k2) 1188 ELSE 1189 avm_k(i1:i2,j1:j2,k1:k2) = ptab (i1:i2,j1:j2,k1:k2) 1190 ENDIF 1191 !!gm better coding ??? 1192 ! IF( before ) THEN ; ptab (i1:i2,j1:j2,k1:k2) = avm_k(i1:i2,j1:j2,k1:k2) 1193 ! ELSE ; avm_k(i1:i2,j1:j2,k1:k2) = ptab (i1:i2,j1:j2,k1:k2) 1194 ! ENDIF 1195 !!gm 1172 1196 ! 1173 1197 END SUBROUTINE interpavm -
branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/NST_SRC/agrif_opa_sponge.F90
r7953 r8214 250 250 zbtr = r1_e1e2t(ji,jj) / e3t_n(ji,jj,jk) 251 251 ! horizontal diffusive trends 252 ztsa = zbtr * ( ztu(ji,jj,jk) - ztu(ji-1,jj,jk) + ztv(ji,jj,jk) - ztv(ji 252 ztsa = zbtr * ( ztu(ji,jj,jk) - ztu(ji-1,jj,jk) + ztv(ji,jj,jk) - ztv(ji,jj-1,jk) ) 253 253 ! add it to the general tracer trends 254 254 tsa(ji,jj,jk,jn) = tsa(ji,jj,jk,jn) + ztsa … … 285 285 tabres = un(i1:i2,j1:j2,:) 286 286 ELSE 287 ubdiff(i1:i2,j1:j2,:) = ( ub(i1:i2,j1:j2,:) - tabres(:,:,:))*umask(i1:i2,j1:j2,:)287 ubdiff(i1:i2,j1:j2,:) = ( ub(i1:i2,j1:j2,:) - tabres(:,:,:) )*umask(i1:i2,j1:j2,:) 288 288 ! 289 289 DO jk = 1, jpkm1 ! Horizontal slab … … 304 304 DO ji = i1,i2 ! vector opt. 305 305 zbtr = r1_e1e2f(ji,jj) * e3f_n(ji,jj,jk) * fsahm_spf(ji,jj) 306 rotdiff(ji,jj,jk) = (-e1u(ji,jj+1) * ubdiff(ji,jj+1,jk) & 307 +e1u(ji,jj ) * ubdiff(ji,jj ,jk) & 308 & ) * fmask(ji,jj,jk) * zbtr 306 rotdiff(ji,jj,jk) = ( -e1u(ji,jj+1) * ubdiff(ji,jj+1,jk) & 307 & +e1u(ji,jj ) * ubdiff(ji,jj ,jk) ) * fmask(ji,jj,jk) * zbtr 309 308 END DO 310 309 END DO … … 319 318 ze1v = hdivdiff(ji,jj,jk) 320 319 ! horizontal diffusive trends 321 zua = - ( ze2u - rotdiff (ji,jj-1,jk) ) / ( e2u(ji,jj) * e3u_n(ji,jj,jk) ) &322 + ( hdivdiff(ji+1,jj,jk) - ze1v ) /e1u(ji,jj)320 zua = - ( ze2u - rotdiff (ji,jj-1,jk) ) / ( e2u(ji,jj) * e3u_n(ji,jj,jk) ) & 321 + ( hdivdiff(ji+1,jj,jk) - ze1v ) * r1_e1u(ji,jj) 323 322 324 323 ! add it to the general momentum trends … … 345 344 346 345 ! horizontal diffusive trends 347 zva = + ( ze2u - rotdiff (ji-1,jj,jk) ) / ( e1v(ji,jj) * e3v_n(ji,jj,jk) ) &348 + ( hdivdiff(ji,jj+1,jk) - ze1v ) /e2v(ji,jj)346 zva = + ( ze2u - rotdiff (ji-1,jj,jk) ) / ( e1v(ji,jj) * e3v_n(ji,jj,jk) ) & 347 + ( hdivdiff(ji,jj+1,jk) - ze1v ) * r1_e2v(ji,jj) 349 348 350 349 ! add it to the general momentum trends … … 382 381 ELSE 383 382 ! 384 vbdiff(i1:i2,j1:j2,:) = ( vb(i1:i2,j1:j2,:) - tabres(:,:,:))*vmask(i1:i2,j1:j2,:)383 vbdiff(i1:i2,j1:j2,:) = ( vb(i1:i2,j1:j2,:) - tabres(:,:,:) ) * vmask(i1:i2,j1:j2,:) 385 384 ! 386 385 DO jk = 1, jpkm1 ! Horizontal slab
Note: See TracChangeset
for help on using the changeset viewer.