Changeset 314 for trunk/NEMO/OPA_SRC/DYN
- Timestamp:
- 2005-09-30T12:24:23+02:00 (19 years ago)
- Location:
- trunk/NEMO/OPA_SRC/DYN
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/DYN/dynspg_fsc.F90
r294 r314 27 27 USE solsor ! Successive Over-relaxation solver 28 28 USE solfet ! FETI solver 29 USE solsor_e ! Successive Over-relaxation solver with MPP optimization 29 30 USE obc_oce ! Lateral open boundary condition 30 31 USE obcdyn ! ocean open boundary condition (obc_dyn routines) … … 257 258 END DO 258 259 END DO 260 ! applied the lateral boundary conditions 261 IF( nsolv == 4 ) CALL lbc_lnk_e( gcb, c_solver_pt, 1. ) 259 262 260 263 ! 4. Relative precision (computation on one processor) 261 264 ! --------------------- 262 265 rnorme =0. 263 rnorme = SUM( gcb( :,:) * gcdmat(:,:) * gcb(:,:) )266 rnorme = SUM( gcb(1:jpi,1:jpj) * gcdmat(1:jpi,1:jpj) * gcb(1:jpi,1:jpj) * bmask(:,:) ) 264 267 IF( lk_mpp ) CALL mpp_sum( rnorme ) ! sum over the global domain 265 268 … … 286 289 ELSEIF( nsolv == 3 ) THEN ! FETI solver 287 290 CALL sol_fet( kindic ) 291 ELSEIF( nsolv == 4 ) THEN ! successive-over-relaxation with extra outer halo 292 CALL sol_sor_e( kindic ) 288 293 ELSE ! e r r o r in nsolv namelist parameter 289 294 IF(lwp) WRITE(numout,cform_err) 290 IF(lwp) WRITE(numout,*) ' dyn_spg_fsc : e r r o r, nsolv = 1, 2 or 3'295 IF(lwp) WRITE(numout,*) ' dyn_spg_fsc : e r r o r, nsolv = 1, 2 ,3 or 4' 291 296 IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~ not = ', nsolv 292 297 nstop = nstop + 1 -
trunk/NEMO/OPA_SRC/DYN/dynspg_fsc_atsk.F90
r258 r314 31 31 USE solsor ! Successive Over-relaxation solver 32 32 USE solfet ! FETI solver 33 USE solsor_e ! Successive Over-relaxation solver with MPP optimization 33 34 USE obc_oce ! Lateral open boundary condition 34 35 USE obcdyn ! ocean open boundary condition (obc_dyn routines) … … 274 275 END DO 275 276 END DO 277 ! applied the lateral boundary conditions 278 IF( nsolv == 4) CALL lbc_lnk_e( gcb, c_solver_pt, 1. ) 276 279 277 280 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,synchro,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, … … 283 286 DO ji = 1, jpi 284 287 zgwgt = gcdmat(ji,jj) * gcb(ji,jj) 285 rnorme = rnorme + gcb(ji,jj) * zgwgt 288 rnorme = rnorme + gcb(ji,jj) * zgwgt * bmask(ji,jj) 286 289 END DO 287 290 END DO … … 312 315 ELSEIF( nsolv == 3 ) THEN ! FETI solver 313 316 CALL sol_fet( kindic ) 317 ELSEIF( nsolv == 4 ) THEN ! successive-over-relaxation with extra outer halo 318 CALL sol_sor_e( kindic ) 314 319 ELSE ! e r r o r in nsolv namelist parameter 315 320 IF(lwp) WRITE(numout,cform_err) 316 IF(lwp) WRITE(numout,*) ' dyn_spg_fsc_atsk : e r r o r, nsolv = 1, 2 or 3'321 IF(lwp) WRITE(numout,*) ' dyn_spg_fsc_atsk : e r r o r, nsolv = 1, 2, 3 or 4' 317 322 IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~~~ not = ', nsolv 318 323 nstop = nstop + 1 -
trunk/NEMO/OPA_SRC/DYN/dynspg_rl.F90
r247 r314 25 25 USE solsor ! Successive Over-relaxation solver 26 26 USE solfet ! FETI solver 27 USE solsor_e ! Successive Over-relaxation solver with MPP optimization 27 28 USE solisl ! ??? 28 29 USE obc_oce ! Lateral open boundary condition … … 106 107 !! * Local declarations 107 108 INTEGER :: ji, jj, jk ! dummy loop indices 108 REAL(wp) :: zgwgt,zbsfa, zgcx, z2dt109 REAL(wp) :: zbsfa, zgcx, z2dt 109 110 # if defined key_obc 110 111 INTEGER :: ip, ii, ij … … 203 204 END DO 204 205 END DO 206 ! applied the lateral boundary conditions 207 IF( nsolv == 4) CALL lbc_lnk_e( gcb, c_solver_pt, 1. ) 205 208 206 209 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,synchro,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, … … 208 211 ! Relative precision (computation on one processor) 209 212 rnorme = 0.e0 210 DO jj = 1, jpj 211 DO ji = 1, jpi 212 zgwgt = gcdmat(ji,jj) * gcb(ji,jj) 213 rnorme = rnorme + gcb(ji,jj) * zgwgt 214 END DO 215 END DO 213 rnorme = SUM( gcb(1:nlci,1:nlcj) * gcdmat(1:nlci,1:nlcj) * gcb(1:nlci,1:nlcj) * bmask(:,:) ) 216 214 IF( lk_mpp ) CALL mpp_sum( rnorme ) ! sum over the global domain 217 215 … … 236 234 CASE( 3 ) ! FETI solver 237 235 CALL sol_fet( kindic ) 236 CASE( 4 ) ! successive-over-relaxation with extra outer halo 237 CALL sol_sor_e( kindic ) 238 238 CASE DEFAULT ! e r r o r in nsolv namelist parameter 239 239 IF(lwp) WRITE(numout,cform_err) 240 IF(lwp) WRITE(numout,*) ' dyn_spg_rl : e r r o r, nsolv = 1, 2 or 3'240 IF(lwp) WRITE(numout,*) ' dyn_spg_rl : e r r o r, nsolv = 1, 2 ,3 or 4' 241 241 IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~ not = ', nsolv 242 242 nstop = nstop + 1 … … 248 248 ! ---------------- 249 249 250 bsfd( :,:) = gcx(:,:)250 bsfd(1:nlci,1:nlcj) = gcx(1:nlci,1:nlcj) 251 251 252 252
Note: See TracChangeset
for help on using the changeset viewer.