- Timestamp:
- 2015-10-06T13:40:42+02:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg.F90
r5770 r5777 77 77 !! Note that as all external forcing a time averaging over a two rdt 78 78 !! period is used to prevent the divergence of odd and even time step. 79 !!80 !! N.B. : When key_esopa is used all the scheme are tested, regardless81 !! of the physical meaning of the results.82 79 !!---------------------------------------------------------------------- 83 80 ! … … 121 118 DO ji = fs_2, fs_jpim1 ! vector opt. 122 119 spgu(ji,jj) = spgu(ji,jj) + zg_2 * ( ssh_ib (ji+1,jj) - ssh_ib (ji,jj) & 123 & + ssh_ibb(ji+1,jj) - ssh_ibb(ji,jj) ) /e1u(ji,jj)120 & + ssh_ibb(ji+1,jj) - ssh_ibb(ji,jj) ) * r1_e1u(ji,jj) 124 121 spgv(ji,jj) = spgv(ji,jj) + zg_2 * ( ssh_ib (ji,jj+1) - ssh_ib (ji,jj) & 125 & + ssh_ibb(ji,jj+1) - ssh_ibb(ji,jj) ) /e2v(ji,jj)122 & + ssh_ibb(ji,jj+1) - ssh_ibb(ji,jj) ) * r1_e2v(ji,jj) 126 123 END DO 127 124 END DO … … 135 132 DO jj = 2, jpjm1 ! add tide potential forcing 136 133 DO ji = fs_2, fs_jpim1 ! vector opt. 137 spgu(ji,jj) = spgu(ji,jj) + grav * ( pot_astro(ji+1,jj) - pot_astro(ji,jj) ) /e1u(ji,jj)138 spgv(ji,jj) = spgv(ji,jj) + grav * ( pot_astro(ji,jj+1) - pot_astro(ji,jj) ) /e2v(ji,jj)134 spgu(ji,jj) = spgu(ji,jj) + grav * ( pot_astro(ji+1,jj) - pot_astro(ji,jj) ) * r1_e1u(ji,jj) 135 spgv(ji,jj) = spgv(ji,jj) + grav * ( pot_astro(ji,jj+1) - pot_astro(ji,jj) ) * r1_e2v(ji,jj) 139 136 END DO 140 137 END DO … … 149 146 DO jj = 2, jpjm1 150 147 DO ji = fs_2, fs_jpim1 ! vector opt. 151 spgu(ji,jj) = spgu(ji,jj) + ( zpice(ji+1,jj) - zpice(ji,jj) ) /e1u(ji,jj)152 spgv(ji,jj) = spgv(ji,jj) + ( zpice(ji,jj+1) - zpice(ji,jj) ) /e2v(ji,jj)148 spgu(ji,jj) = spgu(ji,jj) + ( zpice(ji+1,jj) - zpice(ji,jj) ) * r1_e1u(ji,jj) 149 spgv(ji,jj) = spgv(ji,jj) + ( zpice(ji,jj+1) - zpice(ji,jj) ) * r1_e2v(ji,jj) 153 150 END DO 154 151 END DO … … 176 173 CASE ( 2 ) ; CALL dyn_spg_flt( kt, kindic ) ! filtered 177 174 ! 178 CASE ( -1 ) ! esopa: test all possibility with control print179 CALL dyn_spg_exp( kt )180 CALL prt_ctl( tab3d_1=ua, clinfo1=' spg0 - Ua: ', mask1=umask, &181 & tab3d_2=va, clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' )182 CALL dyn_spg_ts ( kt )183 CALL prt_ctl( tab3d_1=ua, clinfo1=' spg1 - Ua: ', mask1=umask, &184 & tab3d_2=va, clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' )185 CALL dyn_spg_flt( kt, kindic )186 CALL prt_ctl( tab3d_1=ua, clinfo1=' spg2 - Ua: ', mask1=umask, &187 & tab3d_2=va, clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' )188 175 END SELECT 189 176 ! … … 248 235 IF(lk_dynspg_flt) ioptio = ioptio + 1 249 236 ! 250 IF( ( ioptio > 1 .AND. .NOT. lk_esopa ).OR. ( ioptio == 0 .AND. .NOT. lk_c1d ) ) &237 IF( ioptio > 1 .OR. ( ioptio == 0 .AND. .NOT. lk_c1d ) ) & 251 238 & CALL ctl_stop( ' Choose only one surface pressure gradient scheme with a key cpp' ) 252 239 IF( ( lk_dynspg_ts .OR. lk_dynspg_exp ) .AND. ln_isfcav ) & 253 240 & CALL ctl_stop( ' dynspg_ts and dynspg_exp not tested with ice shelf cavity ' ) 254 241 ! 255 IF( lk_esopa ) nspg = -1256 242 IF( lk_dynspg_exp) nspg = 0 257 243 IF( lk_dynspg_ts ) nspg = 1 258 244 IF( lk_dynspg_flt) nspg = 2 259 245 ! 260 IF( lk_esopa ) nspg = -1261 !262 246 IF(lwp) THEN 263 247 WRITE(numout,*) 264 IF( nspg == -1 ) WRITE(numout,*) ' ESOPA test All scheme used'265 248 IF( nspg == 0 ) WRITE(numout,*) ' explicit free surface' 266 249 IF( nspg == 1 ) WRITE(numout,*) ' free surface with time splitting scheme' … … 268 251 ENDIF 269 252 270 #if defined key_dynspg_flt || defined key_esopa253 #if defined key_dynspg_flt 271 254 CALL solver_init( nit000 ) ! Elliptic solver initialisation 272 255 #endif
Note: See TracChangeset
for help on using the changeset viewer.