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 14273 for NEMO/trunk/tests/BENCH – NEMO

Ignore:
Timestamp:
2021-01-06T11:57:45+01:00 (3 years ago)
Author:
smasson
Message:

trunk: fix DONUT and BENCH tests + minor fix in usrdef_sbc.F90 if icethd

Location:
NEMO/trunk/tests/BENCH/MY_SRC
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/tests/BENCH/MY_SRC/usrdef_istate.F90

    r14223 r14273  
    7272         zfact = REAL(jk-1,wp) / REAL(jpk-1,wp)   ! 0 to 1 to add a basic stratification 
    7373         ! temperature choosen to lead to ~50% ice at the beginning if rn_thres_sst = 0.5 
    74          pts(:,:,jk,jp_tem) = 20._wp*z2d(:,:) - 1._wp - 0.5_wp * zfact    ! -1 to -1.5 +/- 1.0 degG 
     74         pts(ji,jj,jk,jp_tem) = 20._wp*z2d(ji,jj) - 1._wp - 0.5_wp * zfact    ! -1 to -1.5 +/- 1.0 degG 
    7575         ! salinity:   
    76          pts(:,:,jk,jp_sal) = 30._wp + 1._wp * zfact + z2d(:,:)           ! 30 to 31   +/- 0.05 psu 
     76         pts(ji,jj,jk,jp_sal) = 30._wp + 1._wp * zfact + z2d(ji,jj)           ! 30 to 31   +/- 0.05 psu 
    7777         ! velocities: 
    78          pu(:,:,jk) = z2d(:,:) *  0.1_wp * umask(:,:,jk)                  ! +/- 0.005  m/s 
    79          pv(:,:,jk) = z2d(:,:) * 0.01_wp * vmask(:,:,jk)                  ! +/- 0.0005 m/s 
     78         pu(ji,jj,jk) = z2d(ji,jj) *  0.1_wp * umask(ji,jj,jk)                ! +/- 0.005  m/s 
     79         pv(ji,jj,jk) = z2d(ji,jj) * 0.01_wp * vmask(ji,jj,jk)                ! +/- 0.0005 m/s 
    8080      END_3D 
    8181      pts(:,:,jpk,:) = 0._wp 
  • NEMO/trunk/tests/BENCH/MY_SRC/usrdef_sbc.F90

    r14223 r14273  
    3030   PRIVATE 
    3131 
    32    PUBLIC   usrdef_sbc_oce      ! routine called in sbcmod module 
    33    PUBLIC   usrdef_sbc_ice_tau  ! routine called by sbcice_lim.F90 for ice dynamics 
    34    PUBLIC   usrdef_sbc_ice_flx  ! routine called by sbcice_lim.F90 for ice thermo 
     32   PUBLIC   usrdef_sbc_oce      ! routine called by sbcmod.F90 for sbc ocean 
     33   PUBLIC   usrdef_sbc_ice_tau  ! routine called by icestp.F90 for ice dynamics 
     34   PUBLIC   usrdef_sbc_ice_flx  ! routine called by icestp.F90 for ice thermo 
    3535 
    3636   !! * Substitutions 
     
    8383         ! 
    8484      ENDIF 
    85        
    8685      ! 
    8786   END SUBROUTINE usrdef_sbc_oce 
     
    9796      INTEGER, INTENT(in) ::   kt   ! ocean time step 
    9897      ! 
    99       REAL(wp), DIMENSION(jpi,jpj) ::   z2d   ! 2D workspace 
     98      REAL(wp) ::   zztmp 
    10099      INTEGER  ::   ji, jj 
    101100      !!--------------------------------------------------------------------- 
     
    106105      ! 
    107106      DO_2D( 0, 0, 0, 0 ) 
    108          z2d(ji,jj) = 0.1 * ( 0.5 - REAL( mig0(ji) + (mjg0(jj)-1) * Ni0glo, wp ) / REAL( Ni0glo * Nj0glo, wp ) ) 
     107         zztmp = 0.1 * ( 0.5 - REAL( mig0(ji) + (mjg0(jj)-1) * Ni0glo, wp ) / REAL( Ni0glo * Nj0glo, wp ) ) 
     108         utau_ice(ji,jj) = 0.1_wp + zztmp 
     109         vtau_ice(ji,jj) = 0.1_wp + zztmp 
    109110      END_2D 
    110       utau_ice(:,:) = 0.1_wp + z2d(:,:) 
    111       vtau_ice(:,:) = 0.1_wp + z2d(:,:) 
    112111 
    113112      CALL lbc_lnk_multi( 'usrdef_sbc', utau_ice, 'U', -1., vtau_ice, 'V', -1. ) 
     
    121120      !!                     ***  ROUTINE usrdef_sbc_ice_flx  *** 
    122121      !! 
    123       !! ** Purpose :   provide the surface boundary (flux) condition over 
    124       !sea-ice 
     122      !! ** Purpose :   provide the surface boundary (flux) condition over sea-ice 
    125123      !!--------------------------------------------------------------------- 
    126124      INTEGER, INTENT(in) ::   kt   ! ocean time step 
     
    130128      REAL(wp), DIMENSION(jpi,jpj) ::   zsnw   ! snw distribution after wind blowing 
    131129      !!--------------------------------------------------------------------- 
     130#if defined key_si3 
    132131      ! 
    133 #if defined key_si3 
    134132      IF( kt==nit000 .AND. lwp)   WRITE(numout,*)' usrdef_sbc_ice : BENCH case: NO flux forcing' 
    135133      ! 
     
    137135      emp_oce (:,:)   = 0._wp   ! uniform value for freshwater budget (E-P) 
    138136      qsr_oce (:,:)   = 0._wp   ! uniform value for     solar radiation 
    139       qns_oce (:,:)   = 0._wp   ! uniform value for non-solar radiation 
     137      qns_oce (:,:)   = 0._wp   ! uniform value for non-solar heat flux 
    140138 
    141139      ! ice variables 
    142140      alb_ice (:,:,:) = 0.7_wp  ! useless 
    143141      qsr_ice (:,:,:) = 0._wp   ! uniform value for     solar radiation 
    144       qns_ice (:,:,:) = 0._wp   ! uniform value for non-solar radiation 
     142      qns_ice (:,:,:) = 0._wp   ! uniform value for non-solar heat flux 
     143      dqns_ice(:,:,:) = 0._wp   ! uniform value for non solar heat flux sensitivity for ice 
    145144      sprecip (:,:)   = 0._wp   ! uniform value for snow precip 
    146145      evap_ice(:,:,:) = 0._wp   ! uniform value for sublimation 
     
    148147      ! ice fields deduced from above 
    149148      zsnw(:,:) = 1._wp 
    150       !!CALL lim_thd_snwblow( at_i_b, zsnw )  ! snow distribution over ice after 
    151       !wind blowing  
     149      !!CALL lim_thd_snwblow( at_i_b, zsnw )  ! snow distribution over ice after wind blowing  
    152150      emp_ice  (:,:)   = SUM( a_i_b(:,:,:) * evap_ice(:,:,:), dim=3 ) - sprecip(:,:) * zsnw(:,:) 
    153151      emp_oce  (:,:)   = emp_oce(:,:) - sprecip(:,:) * (1._wp - zsnw(:,:) ) 
     
    164162      ! --- shortwave radiation transmitted thru the surface scattering layer (W/m2) --- ! 
    165163      qtr_ice_top(:,:,:) = 0._wp 
    166  
    167164#endif 
    168165 
Note: See TracChangeset for help on using the changeset viewer.