- Timestamp:
- 2014-03-26T11:12:07+01:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_v3_4_STABLE_2012/NEMOGCM/NEMO/OPATAM_SRC/SOL/solsor_tam.F90
r3611 r4586 19 19 USE in_out_manager 20 20 USE sol_oce 21 USE solmat 21 22 USE lib_mpp 22 23 USE lbclnk … … 98 99 INTEGER :: ijmppodd, ijmppeven 99 100 INTEGER :: ijpr2d 101 REAL(wp), POINTER, DIMENSION(:,:) :: ztab ! 2D workspace 100 102 !!---------------------------------------------------------------------- 101 103 ! 102 104 IF( nn_timing == 1 ) CALL timing_start('sol_sor_tan') 105 ! 106 CALL wrk_alloc( jpi, jpj, ztab ) 103 107 ! 104 108 ijmppeven = MOD(nimpp+njmpp+jpr2di+jpr2dj ,2) … … 157 161 IF( lk_mpp ) CALL mpp_max( zres2 ) ! max over the global domain 158 162 ! test of convergence 163 res = SQRT( zres2 ) 159 164 IF( zres2 < rn_resmax .OR. jn == nn_nmax ) THEN 160 res = SQRT( zres2 )161 165 niter = jn 162 166 ncut = 999 … … 166 170 ENDIF 167 171 CASE ( 1 ) ! relative precision 168 rnorme = glob_sum(gcr_tl(2:nlci - 1, 2:nlcj - 1)) 172 ztab(:,:) = 0.0_wp 173 ztab(2:nlci-1,2:nlcj-1) = gcr_tl(2:nlci-1,2:nlcj-1) 174 rnorme = glob_sum(ztab) 169 175 ! test of convergence 176 res = SQRT( rnorme ) 170 177 IF( rnorme < epsr .OR. jn == nn_nmax ) THEN 171 res = SQRT( rnorme )172 178 niter = jn 173 179 ncut = 999 … … 194 200 CALL lbc_lnk_e( gcx_tl, c_solver_pt, 1.0_wp ) ! Lateral BCs 195 201 ! 202 CALL wrk_dealloc( jpi, jpj, ztab ) 203 ! 196 204 IF( nn_timing == 1 ) CALL timing_stop('sol_sor_tan') 197 205 ! … … 387 395 & zr( jpi,jpj) & 388 396 & ) 397 398 ! Initialize the matrix of the elliptic equation 399 400 CALL sol_mat( nit000 + 1 ) 401 389 402 !================================================================== 390 403 ! 1) dx = ( un_tl, vn_tl, hdivn_tl ) and … … 459 472 CALL prntst_adj( cl_name, kumadt, zsp1, zsp2 ) 460 473 ! nn_nmod = kmod ! restore initial frequency of test for the SOR solver 474 475 nitsor(:) = jp_it0adj 461 476 462 477 DEALLOCATE( &
Note: See TracChangeset
for help on using the changeset viewer.