New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 5105 for branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/CRS/crsini.F90 – NEMO

Ignore:
Timestamp:
2015-02-24T15:46:25+01:00 (9 years ago)
Author:
cbricaud
Message:

bug correction

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/CRS/crsini.F90

    r5007 r5105  
    6868      INTEGER  :: ierr                                ! allocation error status 
    6969      INTEGER  ::   ios                 ! Local integer output status for namelist read 
     70      REAL(wp) :: zmin,zmax 
    7071      REAL(wp), DIMENSION(:,:,:), POINTER :: zfse3t, zfse3u, zfse3v, zfse3w 
    7172 
    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 
    7374      !!---------------------------------------------------------------------- 
    7475      ! 
     
    160161     CALL crs_dom_hgr( e1f, e2f, 'F', e1f_crs, e2f_crs ) 
    161162 
     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 
    162172     e1e2t_crs(:,:) = e1t_crs(:,:) * e2t_crs(:,:) 
    163173      
     
    169179      CASE ( 0, 1, 4 )           ! mesh on the sphere 
    170180 
     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 
    171182         ff_crs(:,:) = 2. * omega * SIN( rad * gphif_crs(:,:) ) 
    172183 
     
    190201 
    191202     !    3.d.2   Surfaces  
     203     e2e3u_crs(:,:,:)=0._wp 
     204     e2e3u_msk(:,:,:)=0._wp 
     205     e1e3v_crs(:,:,:)=0._wp 
     206     e1e3v_msk(:,:,:)=0._wp 
    192207     CALL crs_dom_sfc( tmask, 'W', e1e2w_crs, e1e2w_msk, p_e1=e1t, p_e2=e2t    ) 
    193208     WRITE(narea+200,*)"e1e2w_crs(2,18,1) ",e1e2w_crs(2,18,1) 
     
    207222 
    208223              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) 
    210232 
    211233              facsurfv(ji,jj,jk) = vmask_crs(ji,jj,jk) * e1e3v_msk(ji,jj,jk)   
     
    224246     CALL crs_dom_e3( e1v, e2v, zfse3v, e1e3v_crs, 'V', vmask, e3v_crs, e3v_max_crs) 
    225247     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 
    226252 
    227253     ! Reset 0 to e3t_0 or e3w_0 
     
    264290        CALL dom_grid_glo   ! Return to parent grid domain 
    265291     ENDIF 
    266       
     292     
     293 
     294      rhop_crs(:,:,:)=0._wp ; rhd_crs(:,:,:)=0._wp ; rb2_crs(:,:,:)=0._wp 
     295 
     296  
    267297     !--------------------------------------------------------- 
    268298     ! 7. Finish and clean-up 
Note: See TracChangeset for help on using the changeset viewer.