Changeset 5320


Ignore:
Timestamp:
2015-05-29T18:13:37+02:00 (5 years ago)
Author:
mcastril
Message:

ticket #1523 Convergence Check

Location:
branches/2015/dev_r5302_CNRS18_HPC_scalability/NEMOGCM
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5302_CNRS18_HPC_scalability/NEMOGCM/CONFIG/SHARED/namelist_ice_lim3_ref

    r5186 r5320  
    7272   rn_ahi0_ref    = 350.0          !  horizontal sea ice diffusivity (m2/s)  
    7373                                   !     if nn_ahi0 > 0, rn_ahi0_ref is the reference value at a nominal 2 deg resolution 
     74 
     75   cc_opt     = .true.         !  convergence check optimization 
     76   cc_freq        = 5              !  convergence check frequency  
     77 
    7478/ 
    7579!------------------------------------------------------------------------------ 
  • branches/2015/dev_r5302_CNRS18_HPC_scalability/NEMOGCM/NEMO/LIM_SRC_3/ice.F90

    r5167 r5320  
    181181   REAL(wp), PUBLIC ::   rn_ahi0_ref      !: sea-ice hor. eddy diffusivity coeff. (m2/s) 
    182182   REAL(wp), PUBLIC ::   rn_relast        !: ratio => telast/rdt_ice (1/3 or 1/9 depending on nb of subcycling nevp)  
    183  
     183   LOGICAL , PUBLIC ::  cc_opt 
     184   INTEGER , PUBLIC ::  cc_freq 
     185    
    184186   !                                     !!** ice-salinity namelist (namicesal) ** 
    185187   REAL(wp), PUBLIC ::   rn_simax         !: maximum ice salinity [PSU] 
     
    398400   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_vice     !: ice volume variation   [m/s]  
    399401   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   diag_vsnw     !: snw volume variation   [m/s]  
     402 
    400403   ! 
    401404   !!---------------------------------------------------------------------- 
  • branches/2015/dev_r5302_CNRS18_HPC_scalability/NEMOGCM/NEMO/LIM_SRC_3/limdyn.F90

    r5123 r5320  
    244244      INTEGER  ::   ios                 ! Local integer output status for namelist read 
    245245      NAMELIST/namicedyn/ nn_icestr, ln_icestr_bvf, rn_pe_rdg, rn_pstar, rn_crhg, rn_cio,  rn_creepl, rn_ecc, & 
    246          &                nn_nevp, rn_relast, nn_ahi0, rn_ahi0_ref 
     246         &                nn_nevp, rn_relast, nn_ahi0, rn_ahi0_ref, cc_opt, cc_freq 
    247247      INTEGER  ::   ji, jj 
    248248      REAL(wp) ::   za00, zd_max 
  • branches/2015/dev_r5302_CNRS18_HPC_scalability/NEMOGCM/NEMO/LIM_SRC_3/limhdf.F90

    r5123 r5320  
    121121         CALL lbc_lnk( zrlx, 'T', 1. )                   ! lateral boundary condition 
    122122         ! 
    123          zconv = 0._wp                                   ! convergence test 
    124          DO jj = 2, jpjm1 
    125             DO ji = fs_2, fs_jpim1 
    126                zconv = MAX( zconv, ABS( zrlx(ji,jj) - ptab(ji,jj) )  ) 
    127             END DO 
    128          END DO 
    129          IF( lk_mpp )   CALL mpp_max( zconv )            ! max over the global domain 
     123 
     124         !! The convergence check optimization can be activated in the namelist using  
     125         !! the parameters cc_opt to activate the optimization and cc_freq to set the frequency of  
     126         !! Convergence Checks. These parameters must go into namicedyn section. 
     127 
     128         IF ( cc_opt == .true. ) THEN 
     129            !Convergence test every cc_freq time-steps 
     130            IF ( MOD( iter-1 , cc_freq ) == 0 )  THEN 
     131               zconv = 0._wp                                   ! convergence test 
     132               DO jj = 2, jpjm1 
     133                  DO ji = fs_2, fs_jpim1 
     134                     zconv = MAX( zconv, ABS( zrlx(ji,jj) - ptab(ji,jj) )  ) 
     135                  END DO 
     136               END DO 
     137               IF( lk_mpp )   CALL mpp_max( zconv )            ! max over the global domain              
     138            ENDIF 
     139         ELSE 
     140             zconv = 0._wp                                   ! convergence test 
     141             DO jj = 2, jpjm1 
     142                DO ji = fs_2, fs_jpim1 
     143                   zconv = MAX( zconv, ABS( zrlx(ji,jj) - ptab(ji,jj) )  ) 
     144                END DO 
     145             END DO 
     146             IF( lk_mpp )   CALL mpp_max( zconv )            ! max over the global domain 
     147         END IF 
     148          
    130149         ! 
    131150         ptab(:,:) = zrlx(:,:) 
Note: See TracChangeset for help on using the changeset viewer.