- Timestamp:
- 2015-02-24T15:46:25+01:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/CRS/crsini.F90
r5007 r5105 68 68 INTEGER :: ierr ! allocation error status 69 69 INTEGER :: ios ! Local integer output status for namelist read 70 REAL(wp) :: zmin,zmax 70 71 REAL(wp), DIMENSION(:,:,:), POINTER :: zfse3t, zfse3u, zfse3v, zfse3w 71 72 72 NAMELIST/namcrs/ nn_factx, nn_facty, nn_binref, nn_msh_crs, nn_crs_kz, ln_crs_wn 73 NAMELIST/namcrs/ nn_factx, nn_facty, nn_binref, nn_msh_crs, nn_crs_kz, ln_crs_wn, ln_crs_top 73 74 !!---------------------------------------------------------------------- 74 75 ! … … 160 161 CALL crs_dom_hgr( e1f, e2f, 'F', e1f_crs, e2f_crs ) 161 162 163 WHERE(e1t_crs == 0._wp) e1t_crs=r_inf 164 WHERE(e1u_crs == 0._wp) e1u_crs=r_inf 165 WHERE(e1v_crs == 0._wp) e1v_crs=r_inf 166 WHERE(e1f_crs == 0._wp) e1f_crs=r_inf 167 WHERE(e2t_crs == 0._wp) e2t_crs=r_inf 168 WHERE(e2u_crs == 0._wp) e2u_crs=r_inf 169 WHERE(e2v_crs == 0._wp) e2v_crs=r_inf 170 WHERE(e2f_crs == 0._wp) e2f_crs=r_inf 171 162 172 e1e2t_crs(:,:) = e1t_crs(:,:) * e2t_crs(:,:) 163 173 … … 169 179 CASE ( 0, 1, 4 ) ! mesh on the sphere 170 180 181 zmin=MINVAL(ABS(gphif_crs(:,:)));zmax=MAXVAL(ABS(gphif_crs(:,:)));CALL mpp_min(zmin);CALL mpp_max(zmax);IF(lwp)WRITE(numout,*)"gphif_crs",zmin,zmax 171 182 ff_crs(:,:) = 2. * omega * SIN( rad * gphif_crs(:,:) ) 172 183 … … 190 201 191 202 ! 3.d.2 Surfaces 203 e2e3u_crs(:,:,:)=0._wp 204 e2e3u_msk(:,:,:)=0._wp 205 e1e3v_crs(:,:,:)=0._wp 206 e1e3v_msk(:,:,:)=0._wp 192 207 CALL crs_dom_sfc( tmask, 'W', e1e2w_crs, e1e2w_msk, p_e1=e1t, p_e2=e2t ) 193 208 WRITE(narea+200,*)"e1e2w_crs(2,18,1) ",e1e2w_crs(2,18,1) … … 207 222 208 223 facsurfu(ji,jj,jk) = umask_crs(ji,jj,jk) * e2e3u_msk(ji,jj,jk) 209 IF( e2e3u_crs(ji,jj,jk) .NE. 0._wp ) facsurfu(ji,jj,jk) = facsurfu(ji,jj,jk) / e2e3u_crs(ji,jj,jk) 224 225 IF( facsurfu(ji,jj,jk) .NE. facsurfu(ji,jj,jk) )WRITE(narea+200,*)'BUG1',facsurfu(ji,jj,jk);call flush(narea+200) 226 IF( e2e3u_crs(ji,jj,jk) .NE. e2e3u_crs(ji,jj,jk) ) WRITE(narea+200,*)'BUG2',e2e3u_crs(ji,jj,jk);call flush(narea+200) 227 IF( e2e3u_msk(ji,jj,jk) .NE. e2e3u_msk(ji,jj,jk) ) WRITE(narea+200,*)'BUG3',e2e3u_msk(ji,jj,jk) ;call flush(narea+200) 228 IF( e1e2w_msk(ji,jj,jk) .NE. e1e2w_msk(ji,jj,jk) ) WRITE(narea+200,*)'BUG4',ji,jj,jk,e1e2w_msk(ji,jj,jk) ;call flush(narea+200) 229 IF( tmask(ji,jj,jk) .NE. tmask(ji,jj,jk) ) WRITE(narea+200,*)'BUG4',tmask(ji,jj,jk) ;call flush(narea+200) 230 IF( e1t(ji,jj) .NE. e1t(ji,jj) ) WRITE(narea+200,*)'BUG5',e1t(ji,jj) ;call flush(narea+200) 231 IF( e1t(ji,jj) .NE. e2t(ji,jj) ) WRITE(narea+200,*)'BUG6',e2t(ji,jj) ;call flush(narea+200) 210 232 211 233 facsurfv(ji,jj,jk) = vmask_crs(ji,jj,jk) * e1e3v_msk(ji,jj,jk) … … 224 246 CALL crs_dom_e3( e1v, e2v, zfse3v, e1e3v_crs, 'V', vmask, e3v_crs, e3v_max_crs) 225 247 CALL crs_dom_e3( e1t, e2t, zfse3w, e1e2w_crs, 'W', tmask, e3w_crs, e3w_max_crs) 248 WHERE(e3t_max_crs == 0._wp) e3t_max_crs=r_inf 249 WHERE(e3u_max_crs == 0._wp) e3u_max_crs=r_inf 250 WHERE(e3v_max_crs == 0._wp) e3v_max_crs=r_inf 251 WHERE(e3w_max_crs == 0._wp) e3w_max_crs=r_inf 226 252 227 253 ! Reset 0 to e3t_0 or e3w_0 … … 264 290 CALL dom_grid_glo ! Return to parent grid domain 265 291 ENDIF 266 292 293 294 rhop_crs(:,:,:)=0._wp ; rhd_crs(:,:,:)=0._wp ; rb2_crs(:,:,:)=0._wp 295 296 267 297 !--------------------------------------------------------- 268 298 ! 7. Finish and clean-up
Note: See TracChangeset
for help on using the changeset viewer.