Changeset 811 for branches/dev_001_SBC/NEMO/NST_SRC/agrif_opa_sponge.F90
- Timestamp:
- 2008-02-07T17:00:12+01:00 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/dev_001_SBC/NEMO/NST_SRC/agrif_opa_sponge.F90
r699 r811 10 10 USE dom_oce 11 11 USE in_out_manager 12 USE agrif_oce 12 13 13 14 IMPLICIT NONE … … 16 17 PUBLIC Agrif_Sponge_Tra, Agrif_Sponge_Dyn, interptn, interpsn, interpun, interpvn 17 18 18 !! * Namelist (namagrif)19 REAL(wp) :: visc_tra = rdt20 REAL(wp) :: visc_dyn = rdt21 19 22 20 CONTAINS 23 21 24 SUBROUTINE Agrif_Sponge_Tra ( kt )22 SUBROUTINE Agrif_Sponge_Tra 25 23 !!--------------------------------------------- 26 24 !! *** ROUTINE Agrif_Sponge_Tra *** … … 28 26 #include "domzgr_substitute.h90" 29 27 30 INTEGER, INTENT(in) :: kt31 32 28 INTEGER :: ji,jj,jk 33 REAL(wp), DIMENSION(jpi,jpj,jpk) :: umasktemp,vmasktemp34 29 INTEGER :: spongearea 35 30 REAL(wp) :: timecoeff 36 31 REAL(wp) :: zta, zsa, zabe1, zabe2, zbtr 37 32 REAL(wp), DIMENSION(jpi,jpj) :: localviscsponge 38 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ztab,tbdiff, sbdiff33 REAL(wp), DIMENSION(jpi,jpj,jpk) :: tbdiff, sbdiff 39 34 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ztu ,ztv, zsu ,zsv 35 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ztab 40 36 41 37 #if defined SPONGE 42 43 IF( kt == nit000 ) CALL agrif_sponge_init44 38 45 39 timecoeff = REAL(Agrif_NbStepint(),wp)/Agrif_rhot() … … 61 55 sbdiff(:,:,:) = sb(:,:,:) - ztab(:,:,:) 62 56 57 63 58 spongearea = 2 + 2 * Agrif_irhox() 64 59 65 60 localviscsponge = 0. 66 umasktemp = 0. 67 vmasktemp = 0. 61 62 IF (.NOT. spongedoneT) THEN 63 spe1ur(:,:) = 0. 64 spe2vr(:,:) = 0. 68 65 69 66 IF ((nbondi == -1).OR.(nbondi == 2)) THEN … … 71 68 localviscsponge(ji,:) = visc_tra * (spongearea-ji)/real(spongearea-2) 72 69 ENDDO 73 DO jk = 1, jpkm1 74 umasktemp(2:spongearea-1,:,jk) = umask(2:spongearea-1,:,jk) & 75 * 0.5 * (localviscsponge(2:spongearea-1,:) + localviscsponge(3:spongearea,:)) 76 ENDDO 77 DO jk = 1, jpkm1 78 vmasktemp(2:spongearea,1:jpjm1,jk) = vmask(2:spongearea,1:jpjm1,jk) & 79 * 0.5 * (localviscsponge(2:spongearea,1:jpjm1) + localviscsponge(2:spongearea,2:jpj)) 80 ENDDO 70 71 spe1ur(2:spongearea-1,:)=0.5 * (localviscsponge(2:spongearea-1,:) + localviscsponge(3:spongearea,:)) & 72 * e2u(2:spongearea-1,:) / e1u(2:spongearea-1,:) 73 74 spe2vr(2:spongearea,1:jpjm1) = 0.5 * (localviscsponge(2:spongearea,1:jpjm1) + & 75 localviscsponge(2:spongearea,2:jpj)) & 76 * e1v(2:spongearea,1:jpjm1) / e2v(2:spongearea,1:jpjm1) 81 77 ENDIF 82 78 … … 85 81 localviscsponge(ji,:) = visc_tra * (ji - (nlci-spongearea+1))/real(spongearea-2) 86 82 ENDDO 87 DO jk = 1, jpkm1 88 umasktemp(nlci-spongearea + 1:nlci-2,:,jk) = umask(nlci-spongearea + 1:nlci-2,:,jk)&89 * 0.5 * (localviscsponge(nlci-spongearea + 1:nlci-2,:) + localviscsponge(nlci-spongearea + 2:nlci-1,:)) 90 ENDDO 91 DO jk = 1, jpkm1 92 vmasktemp(nlci-spongearea + 1:nlci-1,1:jpjm1,jk) = vmask(nlci-spongearea + 1:nlci-1,1:jpjm1,jk) &93 * 0.5 * (localviscsponge(nlci-spongearea + 1:nlci-1,1:jpjm1) + localviscsponge(nlci-spongearea + 1:nlci-1,2:jpj)) 94 ENDDO 83 84 spe1ur(nlci-spongearea + 1:nlci-2,:)=0.5 * (localviscsponge(nlci-spongearea + 1:nlci-2,:) + & 85 localviscsponge(nlci-spongearea + 2:nlci-1,:)) & 86 * e2u(nlci-spongearea + 1:nlci-2,:) / e1u(nlci-spongearea + 1:nlci-2,:) 87 88 spe2vr(nlci-spongearea + 1:nlci-1,1:jpjm1) = 0.5 * (localviscsponge(nlci-spongearea + 1:nlci-1,1:jpjm1) & 89 + localviscsponge(nlci-spongearea + 1:nlci-1,2:jpj)) & 90 * e1v(nlci-spongearea + 1:nlci-1,1:jpjm1) / e2v(nlci-spongearea + 1:nlci-1,1:jpjm1) 95 91 ENDIF 96 92 … … 100 96 localviscsponge(:,jj) = visc_tra * (spongearea-jj)/real(spongearea-2) 101 97 ENDDO 102 DO jk = 1, jpkm1 103 vmasktemp(:,2:spongearea-1,jk) = vmask(:,2:spongearea-1,jk)&104 * 0.5 * (localviscsponge(:,2:spongearea-1) + localviscsponge(:,3:spongearea)) 105 ENDDO 106 DO jk = 1, jpkm1 107 umasktemp(1:jpim1,2:spongearea,jk) = umask(1:jpim1,2:spongearea,jk)&108 * 0.5 * (localviscsponge(1:jpim1,2:spongearea) + localviscsponge(2:jpi,2:spongearea)) 109 ENDDO 98 99 spe1ur(1:jpim1,2:spongearea)=0.5 * (localviscsponge(1:jpim1,2:spongearea) + & 100 localviscsponge(2:jpi,2:spongearea)) & 101 * e2u(1:jpim1,2:spongearea) / e1u(1:jpim1,2:spongearea) 102 103 spe2vr(:,2:spongearea-1) = 0.5 * (localviscsponge(:,2:spongearea-1) + & 104 localviscsponge(:,3:spongearea)) & 105 * e1v(:,2:spongearea-1) / e2v(:,2:spongearea-1) 110 106 ENDIF 111 107 … … 114 110 localviscsponge(:,jj) = visc_tra * (jj - (nlcj-spongearea+1))/real(spongearea-2) 115 111 ENDDO 116 DO jk = 1, jpkm1 117 vmasktemp(:,nlcj-spongearea + 1:nlcj-2,jk) = vmask(:,nlcj-spongearea + 1:nlcj-2,jk) & 118 * 0.5 * (localviscsponge(:,nlcj-spongearea + 1:nlcj-2) + localviscsponge(:,nlcj-spongearea + 2:nlcj-1)) 119 ENDDO 120 DO jk = 1, jpkm1 121 umasktemp(1:jpim1,nlcj-spongearea + 1:nlcj-1,jk) = umask(1:jpim1,nlcj-spongearea + 1:nlcj-1,jk) & 122 * 0.5 * (localviscsponge(1:jpim1,nlcj-spongearea + 1:nlcj-1) + localviscsponge(2:jpi,nlcj-spongearea + 1:nlcj-1)) 123 ENDDO 124 ENDIF 125 126 IF (.NOT. spongedoneT) THEN 127 zspe1ur(:,:) = e2u(:,:) / e1u(:,:) 128 zspe2vr(:,:) = e1v(:,:) / e2v(:,:) 129 zspbtr2(:,:) = 1. / ( e1t(:,:) * e2t(:,:)) 112 113 spe1ur(1:jpim1,nlcj-spongearea + 1:nlcj-1)=0.5 * (localviscsponge(1:jpim1,nlcj-spongearea + 1:nlcj-1) + & 114 localviscsponge(2:jpi,nlcj-spongearea + 1:nlcj-1)) & 115 * e2u(1:jpim1,nlcj-spongearea + 1:nlcj-1) / e1u(1:jpim1,nlcj-spongearea + 1:nlcj-1) 116 117 spe2vr(:,nlcj-spongearea + 1:nlcj-2) = 0.5 * (localviscsponge(:,nlcj-spongearea + 1:nlcj-2) + & 118 localviscsponge(:,nlcj-spongearea + 2:nlcj-1)) & 119 * e1v(:,nlcj-spongearea + 1:nlcj-2) / e2v(:,nlcj-spongearea + 1:nlcj-2) 120 ENDIF 121 122 spbtr2(:,:) = 1. / ( e1t(:,:) * e2t(:,:)) 130 123 131 124 spongedoneT = .TRUE. … … 136 129 DO ji = 1, jpim1 137 130 #if defined key_zco 138 zabe1 = umask temp(ji,jj,jk) * zspe1ur(ji,jj)139 zabe2 = vmask temp(ji,jj,jk) * zspe2vr(ji,jj)140 #else 141 zabe1 = umask temp(ji,jj,jk) * zspe1ur(ji,jj) * fse3u(ji,jj,jk)142 zabe2 = vmask temp(ji,jj,jk) * zspe2vr(ji,jj) * fse3v(ji,jj,jk)131 zabe1 = umask(ji,jj,jk) * spe1ur(ji,jj) 132 zabe2 = vmask(ji,jj,jk) * spe2vr(ji,jj) 133 #else 134 zabe1 = umask(ji,jj,jk) * spe1ur(ji,jj) * fse3u(ji,jj,jk) 135 zabe2 = vmask(ji,jj,jk) * spe2vr(ji,jj) * fse3v(ji,jj,jk) 143 136 #endif 144 137 ztu(ji,jj,jk) = zabe1 * ( tbdiff(ji+1,jj ,jk) - tbdiff(ji,jj,jk) ) … … 152 145 DO ji = 2,jpim1 153 146 #if defined key_zco 154 zbtr = zspbtr2(ji,jj)155 #else 156 zbtr = zspbtr2(ji,jj) / fse3t(ji,jj,jk)147 zbtr = spbtr2(ji,jj) 148 #else 149 zbtr = spbtr2(ji,jj) / fse3t(ji,jj,jk) 157 150 #endif 158 151 ! horizontal diffusive trends … … 173 166 END SUBROUTINE Agrif_Sponge_Tra 174 167 175 SUBROUTINE Agrif_Sponge_dyn ( kt )168 SUBROUTINE Agrif_Sponge_dyn 176 169 !!--------------------------------------------- 177 170 !! *** ROUTINE Agrif_Sponge_dyn *** 178 171 !!--------------------------------------------- 179 172 #include "domzgr_substitute.h90" 180 181 INTEGER,INTENT(in) :: kt182 173 183 174 INTEGER :: ji,jj,jk 184 175 INTEGER :: spongearea 185 176 REAL(wp) :: timecoeff 186 REAL(wp) :: ze2u, ze1v, zua, zva 177 REAL(wp) :: ze2u, ze1v, zua, zva, zbtr 187 178 REAL(wp), DIMENSION(jpi,jpj) :: localviscsponge 188 179 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ztab, ubdiff, vbdiff,rotdiff,hdivdiff 189 REAL(wp), DIMENSION(jpi,jpj,jpk) :: umasktemp,vmasktemp190 180 191 181 #if defined SPONGE … … 194 184 195 185 Agrif_SpecialValue=0. 196 Agrif_UseSpecialValue = .TRUE.186 Agrif_UseSpecialValue = ln_spc_dyn 197 187 ztab = 0.e0 198 188 CALL Agrif_Bc_Variable(ztab, ua,calledweight=timecoeff,procname=interpun) 199 189 Agrif_UseSpecialValue = .FALSE. 200 190 201 ubdiff(:,:,:) = ub(:,:,:) - ztab(:,:,:)191 ubdiff(:,:,:) = (ub(:,:,:) - ztab(:,:,:))*umask(:,:,:) 202 192 203 193 ztab = 0.e0 204 194 Agrif_SpecialValue=0. 205 Agrif_UseSpecialValue = .TRUE.195 Agrif_UseSpecialValue = ln_spc_dyn 206 196 CALL Agrif_Bc_Variable(ztab, va,calledweight=timecoeff,procname=interpvn) 207 197 Agrif_UseSpecialValue = .FALSE. 208 198 209 vbdiff(:,:,:) = vb(:,:,:) - ztab(:,:,:)199 vbdiff(:,:,:) = (vb(:,:,:) - ztab(:,:,:))*vmask(:,:,:) 210 200 211 201 spongearea = 2 + 2 * Agrif_irhox() 212 202 213 203 localviscsponge = 0. 214 umasktemp = 0. 215 vmasktemp = 0. 204 205 IF (.NOT. spongedoneU) THEN 206 spe1ur2(:,:) = 0. 207 spe2vr2(:,:) = 0. 216 208 217 209 IF ((nbondi == -1).OR.(nbondi == 2)) THEN … … 219 211 localviscsponge(ji,:) = visc_dyn * (spongearea-ji)/real(spongearea-2) 220 212 ENDDO 221 DO jk = 1, jpkm1 222 umasktemp(2:spongearea-1,:,jk) = umask(2:spongearea-1,:,jk) & 223 * 0.5 * (localviscsponge(2:spongearea-1,:) + localviscsponge(3:spongearea,:)) 224 ENDDO 225 DO jk = 1, jpkm1 226 vmasktemp(2:spongearea,1:jpjm1,jk) = vmask(2:spongearea,1:jpjm1,jk) & 227 * 0.5 * (localviscsponge(2:spongearea,1:jpjm1) + localviscsponge(2:spongearea,2:jpj)) 228 ENDDO 213 214 spe1ur2(2:spongearea-1,:)=0.5 * (localviscsponge(2:spongearea-1,:) + localviscsponge(3:spongearea,:)) 215 216 spe2vr2(2:spongearea,1:jpjm1) = 0.5 * (localviscsponge(2:spongearea,1:jpjm1) + & 217 localviscsponge(2:spongearea,2:jpj)) 229 218 ENDIF 230 219 … … 233 222 localviscsponge(ji,:) = visc_dyn * (ji - (nlci-spongearea+1))/real(spongearea-2) 234 223 ENDDO 235 DO jk = 1, jpkm1 236 umasktemp(nlci-spongearea + 1:nlci-2,:,jk) = umask(nlci-spongearea + 1:nlci-2,:,jk) & 237 * 0.5 * (localviscsponge(nlci-spongearea + 1:nlci-2,:) + localviscsponge(nlci-spongearea + 2:nlci-1,:)) 238 ENDDO 239 DO jk = 1, jpkm1 240 vmasktemp(nlci-spongearea + 1:nlci-1,1:jpjm1,jk) = vmask(nlci-spongearea + 1:nlci-1,1:jpjm1,jk) & 241 * 0.5 * (localviscsponge(nlci-spongearea + 1:nlci-1,1:jpjm1) + localviscsponge(nlci-spongearea + 1:nlci-1,2:jpj)) 242 ENDDO 243 ENDIF 224 225 spe1ur2(nlci-spongearea + 1:nlci-2,:)=0.5 * (localviscsponge(nlci-spongearea + 1:nlci-2,:) + & 226 localviscsponge(nlci-spongearea + 2:nlci-1,:)) 227 228 spe2vr2(nlci-spongearea + 1:nlci-1,1:jpjm1) = 0.5 * (localviscsponge(nlci-spongearea + 1:nlci-1,1:jpjm1) & 229 + localviscsponge(nlci-spongearea + 1:nlci-1,2:jpj)) 230 ENDIF 231 244 232 245 233 IF ((nbondj == -1).OR.(nbondj == 2)) THEN … … 247 235 localviscsponge(:,jj) = visc_dyn * (spongearea-jj)/real(spongearea-2) 248 236 ENDDO 249 DO jk = 1, jpkm1 250 vmasktemp(:,2:spongearea-1,jk) = vmask(:,2:spongearea-1,jk) & 251 * 0.5 * (localviscsponge(:,2:spongearea-1) + localviscsponge(:,3:spongearea)) 252 ENDDO 253 DO jk = 1, jpkm1 254 umasktemp(1:jpim1,2:spongearea,jk) = umask(1:jpim1,2:spongearea,jk) & 255 * 0.5 * (localviscsponge(1:jpim1,2:spongearea) + localviscsponge(2:jpi,2:spongearea)) 256 ENDDO 237 238 spe1ur2(1:jpim1,2:spongearea)=0.5 * (localviscsponge(1:jpim1,2:spongearea) + & 239 localviscsponge(2:jpi,2:spongearea)) 240 241 spe2vr2(:,2:spongearea-1) = 0.5 * (localviscsponge(:,2:spongearea-1) + & 242 localviscsponge(:,3:spongearea)) 257 243 ENDIF 258 244 … … 261 247 localviscsponge(:,jj) = visc_dyn * (jj - (nlcj-spongearea+1))/real(spongearea-2) 262 248 ENDDO 263 DO jk = 1, jpkm1 264 vmasktemp(:,nlcj-spongearea + 1:nlcj-2,jk) = vmask(:,nlcj-spongearea + 1:nlcj-2,jk) & 265 * 0.5 * (localviscsponge(:,nlcj-spongearea + 1:nlcj-2) + localviscsponge(:,nlcj-spongearea + 2:nlcj-1)) 266 ENDDO 267 DO jk = 1, jpkm1 268 umasktemp(1:jpim1,nlcj-spongearea + 1:nlcj-1,jk) = umask(1:jpim1,nlcj-spongearea + 1:nlcj-1,jk) & 269 * 0.5 * (localviscsponge(1:jpim1,nlcj-spongearea + 1:nlcj-1) + localviscsponge(2:jpi,nlcj-spongearea + 1:nlcj-1)) 270 ENDDO 271 ENDIF 272 273 ubdiff = ubdiff * umasktemp 274 vbdiff = vbdiff * vmasktemp 275 249 250 spe1ur2(1:jpim1,nlcj-spongearea + 1:nlcj-1)=0.5 * (localviscsponge(1:jpim1,nlcj-spongearea + 1:nlcj-1) + & 251 localviscsponge(2:jpi,nlcj-spongearea + 1:nlcj-1)) 252 253 spe2vr2(:,nlcj-spongearea + 1:nlcj-2) = 0.5 * (localviscsponge(:,nlcj-spongearea + 1:nlcj-2) + & 254 localviscsponge(:,nlcj-spongearea + 2:nlcj-1)) 255 ENDIF 256 257 spongedoneU = .TRUE. 258 259 spbtr3(:,:) = 1./( e1f(:,:) * e2f(:,:)) 260 ENDIF 261 262 IF (.NOT. spongedoneT) THEN 263 spbtr2(:,:) = 1. / ( e1t(:,:) * e2t(:,:)) 264 ENDIF 265 266 DO jk=1,jpkm1 267 ubdiff(:,:,jk) = ubdiff(:,:,jk) * spe1ur2(:,:) 268 vbdiff(:,:,jk) = vbdiff(:,:,jk) * spe2vr2(:,:) 269 ENDDO 270 276 271 hdivdiff = 0. 277 272 rotdiff = 0. … … 286 281 DO ji = 2, jpim1 ! vector opt. 287 282 #if defined key_zco 283 zbtr = spbtr2(ji,jj) 288 284 hdivdiff(ji,jj,jk) = ( e2u(ji,jj) * ubdiff(ji,jj,jk) & 289 285 - e2u(ji-1,jj ) * ubdiff(ji-1,jj ,jk) & 290 286 & + e1v(ji,jj) * vbdiff(ji,jj,jk) - & 291 & e1v(ji ,jj-1) * vbdiff(ji ,jj-1,jk) ) &292 & / ( e1t(ji,jj) * e2t(ji,jj) ) 293 #else 287 & e1v(ji ,jj-1) * vbdiff(ji ,jj-1,jk) ) * zbtr 288 #else 289 zbtr = spbtr2(ji,jj) / fse3t(ji,jj,jk) 294 290 hdivdiff(ji,jj,jk) = & 295 291 ( e2u(ji,jj)*fse3u(ji,jj,jk) * & … … 298 294 + e1v(ji,jj)*fse3v(ji,jj,jk) * & 299 295 vbdiff(ji,jj,jk) - e1v(ji ,jj-1)* & 300 fse3v(ji ,jj-1,jk) * vbdiff(ji ,jj-1,jk) ) & 301 / ( e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) ) 296 fse3v(ji ,jj-1,jk) * vbdiff(ji ,jj-1,jk) ) * zbtr 302 297 #endif 303 298 END DO … … 306 301 DO jj = 1, jpjm1 307 302 DO ji = 1, jpim1 ! vector opt. 303 #if defined key_zco 304 zbtr = spbtr3(ji,jj) 308 305 rotdiff(ji,jj,jk) = ( e2v(ji+1,jj ) * vbdiff(ji+1,jj ,jk) - e2v(ji,jj) * vbdiff(ji,jj,jk) & 309 306 & - e1u(ji ,jj+1) * ubdiff(ji ,jj+1,jk) + e1u(ji,jj) * ubdiff(ji,jj,jk) ) & 310 & * fmask(ji,jj,jk) / ( e1f(ji,jj) * e2f(ji,jj) ) 307 & * fmask(ji,jj,jk) * zbtr 308 #else 309 zbtr = spbtr3(ji,jj) * fse3f(ji,jj,jk) 310 rotdiff(ji,jj,jk) = ( e2v(ji+1,jj ) * vbdiff(ji+1,jj ,jk) - e2v(ji,jj) * vbdiff(ji,jj,jk) & 311 & - e1u(ji ,jj+1) * ubdiff(ji ,jj+1,jk) + e1u(ji,jj) * ubdiff(ji,jj,jk) ) & 312 & * fmask(ji,jj,jk) * zbtr 313 #endif 311 314 END DO 312 315 END DO … … 333 336 ze1v ) / e2v(ji,jj) 334 337 #else 335 ze2u = rotdiff (ji,jj,jk) *fse3f(ji,jj,jk)338 ze2u = rotdiff (ji,jj,jk) 336 339 ze1v = hdivdiff(ji,jj,jk) 337 340 ! horizontal diffusive trends 338 zua = - ( ze2u - rotdiff (ji,jj-1,jk)* & 339 fse3f(ji,jj-1,jk) ) / ( e2u(ji,jj) * fse3u(ji,jj,jk) ) & 341 zua = - ( ze2u - rotdiff (ji,jj-1,jk)) / ( e2u(ji,jj) * fse3u(ji,jj,jk) ) & 340 342 + ( hdivdiff(ji+1,jj,jk) - ze1v & 341 343 ) / e1u(ji,jj) 342 344 343 zva = + ( ze2u - rotdiff (ji-1,jj,jk)* & 344 fse3f(ji-1,jj,jk) ) / ( e1v(ji,jj) * fse3v(ji,jj,jk) ) & 345 zva = + ( ze2u - rotdiff (ji-1,jj,jk)) / ( e1v(ji,jj) * fse3v(ji,jj,jk) ) & 345 346 + ( hdivdiff(ji,jj+1,jk) - ze1v & 346 347 ) / e2v(ji,jj) … … 360 361 END SUBROUTINE Agrif_Sponge_dyn 361 362 362 SUBROUTINE agrif_sponge_init363 !!---------------------------------------------364 !! *** ROUTINE agrif_sponge_init ***365 !!---------------------------------------------366 NAMELIST/namagrif/ visc_tra, visc_dyn367 REWIND ( numnam )368 READ ( numnam, namagrif )369 370 IF(lwp) THEN371 WRITE(numout,*)372 WRITE(numout,*) 'agrif_sponge_init : agrif sponge parameters'373 WRITE(numout,*) '~~~~~~~~~~~~'374 WRITE(numout,*) ' Namelist namagrif : set sponge parameters'375 WRITE(numout,*) ' sponge coefficient for tracers = ', visc_tra376 WRITE(numout,*) ' sponge coefficient for dynamics = ', visc_dyn377 ENDIF378 379 END SUBROUTINE agrif_sponge_init380 381 363 SUBROUTINE interptn(tabres,i1,i2,j1,j2,k1,k2) 382 364 !!--------------------------------------------- … … 405 387 END SUBROUTINE interpsn 406 388 407 408 389 SUBROUTINE interpun(tabres,i1,i2,j1,j2,k1,k2) 409 390 !!---------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.