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 8427 – NEMO

Changeset 8427


Ignore:
Timestamp:
2017-08-09T12:13:16+02:00 (7 years ago)
Author:
timgraham
Message:

GMED ticket 341. Fixes found through use of preset NaNs? to make the code more robust.

Location:
branches/UKMO/dev_r5518_GO6_package/NEMOGCM
Files:
1 deleted
6 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_GO6_package/NEMOGCM/CONFIG/SHARED/namelist_ref

    r8401 r8427  
    971971                           !        = 0  constant 10 m length scale 
    972972                           !        = 1  0.5m at the equator to 30m poleward of 40 degrees 
     973   rn_c        =   0.8     !  Default value only used when nn_htau = 2 (typically never!) 
    973974/ 
    974975!------------------------------------------------------------------------ 
  • branches/UKMO/dev_r5518_GO6_package/NEMOGCM/CONFIG/SHARED/namelist_top_MEDUSA_et_al_ref

    r8280 r8427  
    6262   rn_ahtrc_0       =  2000.    !  horizontal eddy diffusivity for tracers [m2/s] 
    6363   rn_ahtrb_0       =     0.    !     background eddy diffusivity for ldf_iso [m2/s] 
     64   rn_fact_lap      =     1.    !     enhanced zonal eddy diffusivity 
    6465/ 
    6566!----------------------------------------------------------------------- 
  • branches/UKMO/dev_r5518_GO6_package/NEMOGCM/NEMO/OPA_SRC/DOM/dom_oce.F90

    r6486 r8427  
    355355         &      gdept_0 (jpi,jpj,jpk) , e3t_0(jpi,jpj,jpk) , e3u_0 (jpi,jpj,jpk) ,                         & 
    356356         &      gdepw_0 (jpi,jpj,jpk) , e3w_0(jpi,jpj,jpk) , e3vw_0(jpi,jpj,jpk) , e3uw_0(jpi,jpj,jpk) , STAT=ierr(4) ) 
     357 
     358      ! Initilaise key variables at risk of being intercepted before properly set up.  
     359      e3t_0(:,:,:) = 0.0 
    357360         ! 
    358361#if defined key_vvl 
     
    368371         &      ehu_b    (jpi,jpj)    , ehv_b  (jpi,jpj),                                                     & 
    369372         &      ehur_b   (jpi,jpj)    , ehvr_b (jpi,jpj),                                  STAT=ierr(5) )                           
     373 
     374      ! Initilaise key variables at risk of being intercepted before properly set up.  
     375      e3t_n(:,:,:) = 0.0 
    370376#endif 
    371377         ! 
  • branches/UKMO/dev_r5518_GO6_package/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90

    r8280 r8427  
    21372137      REAL(wp) ::   zumax, zvmax 
    21382138      REAL(wp), POINTER, DIMENSION(:,:)   ::   zfr_l, ztmp1, ztmp2, zotx1, zoty1, zotz1, zitx1, zity1, zitz1 
     2139      REAL(wp), POINTER, DIMENSION(:,:)   ::   zotx1_in, zoty1_in 
    21392140      REAL(wp), POINTER, DIMENSION(:,:,:) ::   ztmp3, ztmp4    
    21402141      !!---------------------------------------------------------------------- 
     
    21432144      ! 
    21442145      CALL wrk_alloc( jpi,jpj, zfr_l, ztmp1, ztmp2, zotx1, zoty1, zotz1, zitx1, zity1, zitz1 ) 
     2146      CALL wrk_alloc( jpi,jpj, zotx1_in, zoty1_in) 
    21452147      CALL wrk_alloc( jpi,jpj,jpl, ztmp3, ztmp4 ) 
    21462148 
     
    24112413            zotx1(:,:) = un(:,:,1)   
    24122414            zoty1(:,:) = vn(:,:,1)   
    2413          ELSE         
     2415         ELSE 
    24142416            SELECT CASE( TRIM( sn_snd_crt%cldes ) ) 
    24152417            CASE( 'oce only'             )      ! C-grid ==> T 
     
    25472549                  ENDDO 
    25482550               ENDDO 
    2549                 
     2551 
    25502552               ! Ensure any N fold and wrap columns are updated 
    25512553               CALL lbc_lnk(ztmp1, 'V', -1.0) 
    25522554               CALL lbc_lnk(ztmp2, 'U', -1.0) 
    2553                 
     2555                             
    25542556               ikchoix = -1 
    2555                CALL repcmo (zotx1,ztmp2,ztmp1,zoty1,zotx1,zoty1,ikchoix) 
     2557               ! We need copies of zotx1 and zoty2 in order to avoid problems  
     2558               ! caused by INTENTs used in the following subroutine.  
     2559               zotx1_in(:,:) = zotx1(:,:) 
     2560               zoty1_in(:,:) = zoty1(:,:) 
     2561               CALL repcmo (zotx1_in,ztmp2,ztmp1,zoty1_in,zotx1,zoty1,ikchoix) 
    25562562           ENDIF 
    25572563         ENDIF 
     
    26222628      ! 
    26232629      CALL wrk_dealloc( jpi,jpj, zfr_l, ztmp1, ztmp2, zotx1, zoty1, zotz1, zitx1, zity1, zitz1 ) 
     2630      CALL wrk_dealloc( jpi,jpj, zotx1_in, zoty1_in ) 
    26242631      CALL wrk_dealloc( jpi,jpj,jpl, ztmp3, ztmp4 ) 
    26252632      ! 
  • branches/UKMO/dev_r5518_GO6_package/NEMOGCM/NEMO/OPA_SRC/TRA/eosbn2.F90

    r7993 r8427  
    312312      REAL(wp), DIMENSION(jpi,jpj,jpk,jpts), INTENT(in   ) ::   pts    ! 1 : potential temperature  [Celcius] 
    313313      !                                                                ! 2 : salinity               [psu] 
    314       REAL(wp), DIMENSION(jpi,jpj,jpk     ), INTENT(  out) ::   prd    ! in situ density            [-] 
    315       REAL(wp), DIMENSION(jpi,jpj,jpk     ), INTENT(  out) ::   prhop  ! potential density (surface referenced) 
     314      REAL(wp), DIMENSION(jpi,jpj,jpk     ), INTENT(inout) ::   prd    ! in situ density            [-] 
     315      REAL(wp), DIMENSION(jpi,jpj,jpk     ), INTENT(inout) ::   prhop  ! potential density (surface referenced) 
    316316      REAL(wp), DIMENSION(jpi,jpj,jpk     ), INTENT(in   ) ::   pdep   ! depth                      [m] 
    317317      ! 
     
    902902      REAL(wp), DIMENSION(jpi,jpj,jpk,jpts), INTENT(in   ) ::  pts   ! pot. temperature and salinity   [Celcius,psu] 
    903903      REAL(wp), DIMENSION(jpi,jpj,jpk,jpts), INTENT(in   ) ::  pab   ! thermal/haline expansion coef.  [Celcius-1,psu-1] 
    904       REAL(wp), DIMENSION(jpi,jpj,jpk     ), INTENT(  out) ::  pn2   ! Brunt-Vaisala frequency squared [1/s^2] 
     904      REAL(wp), DIMENSION(jpi,jpj,jpk     ), INTENT(inout) ::  pn2   ! Brunt-Vaisala frequency squared [1/s^2] 
    905905      ! 
    906906      INTEGER  ::   ji, jj, jk      ! dummy loop indices 
  • branches/UKMO/dev_r5518_GO6_package/NEMOGCM/NEMO/TOP_SRC/trcrst.F90

    r8280 r8427  
    745745      !!--------------------------------------------------------------------- 
    746746      INTEGER  :: jk, jn 
     747      CHARACTER (LEN=18) :: text_zmean 
    747748      REAL(wp) :: ztraf, zmin, zmax, zmean, areasf 
    748749      REAL(wp), DIMENSION(jpi,jpj) :: zvol 
     
    750751 
    751752      IF( lwp )  WRITE(numout,*) 'STAT- ', names 
    752       ! 
     753       
     754      ! fse3t_a will be undefined at the start of a run, but this routine 
     755      ! may be called at any stage! Hence we MUST make sure it is  
     756      ! initialised to zero when allocated to enable us to test for  
     757      ! zero content here and avoid potentially dangerous and non-portable  
     758      ! operations (e.g. divide by zero, global sums of junk values etc.)    
    753759      zvol(:,:) = e1e2t(:,:) * fse3t_a(:,:,1) * tmask(:,:,1) 
    754760      ztraf = glob_sum( dgtr(:,:) * zvol(:,:) ) 
     
    761767         CALL mpp_max( zmax )      ! max over the global domain 
    762768      END IF 
    763       zmean  = ztraf / areasf 
    764       IF(lwp) WRITE(numout,9002) TRIM( names ), zmean, zmin, zmax 
    765       ! 
    766       IF(lwp) WRITE(numout,*) 
    767 9002  FORMAT(' tracer name :',a10,'    mean :',e18.10,'    min :',e18.10, & 
     769 
     770      text_zmean = "N/A" 
     771      ! Avoid divide by zero. areasf must be positive. 
     772      IF  (areasf > 0.0) THEN  
     773         zmean = ztraf / areasf 
     774         WRITE(text_zmean,'(e18.10)') zmean 
     775      ENDIF 
     776 
     777      IF(lwp) WRITE(numout,9002) TRIM( names ), text_zmean, zmin, zmax 
     778 
     779  9002  FORMAT(' tracer name :',A,'    mean :',A,'    min :',e18.10, & 
    768780      &      '    max :',e18.10 ) 
    769781      ! 
Note: See TracChangeset for help on using the changeset viewer.