Changeset 14644 for NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/tests/BENCH/MY_SRC/usrdef_sbc.F90
- Timestamp:
- 2021-03-26T15:33:49+01:00 (3 years ago)
- Location:
- NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final
- Property svn:externals
-
old new 9 9 10 10 # SETTE 11 ^/utils/CI/sette _wave@13990sette11 ^/utils/CI/sette@14244 sette
-
- Property svn:externals
-
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/tests/BENCH/MY_SRC/usrdef_sbc.F90
r13472 r14644 30 30 PRIVATE 31 31 32 PUBLIC usrdef_sbc_oce ! routine called in sbcmod module33 PUBLIC usrdef_sbc_ice_tau ! routine called by sbcice_lim.F90 for ice dynamics34 PUBLIC usrdef_sbc_ice_flx ! routine called by sbcice_lim.F90 for ice thermo32 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 35 35 36 36 !! * Substitutions … … 83 83 ! 84 84 ENDIF 85 86 85 ! 87 86 END SUBROUTINE usrdef_sbc_oce … … 97 96 INTEGER, INTENT(in) :: kt ! ocean time step 98 97 ! 99 REAL(wp) , DIMENSION(jpi,jpj) :: z2d ! 2D workspace98 REAL(wp) :: zztmp 100 99 INTEGER :: ji, jj 101 INTEGER :: igloi, igloj ! to be removed in the future, see comment bellow102 100 !!--------------------------------------------------------------------- 103 101 #if defined key_si3 … … 106 104 ! define unique value on each point. z2d ranging from 0.05 to -0.05 107 105 ! 108 ! WARNING: to keep compatibility with the trunk that was including periodocity into the input data,109 ! we must define z2d as bellow.110 ! Once we decide to forget trunk compatibility, we must simply define z2d as:111 !!$ DO_2D( 0, 0, 0, 0 )112 !!$ z2d(ji,jj) = 0.1 * ( 0.5 - REAL( mig0_oldcmp(ji) + (mjg0_oldcmp(jj)-1) * Ni0glo, wp ) / REAL( Ni0glo * Nj0glo, wp ) )113 !!$ END_2D114 igloi = Ni0glo + 2 * COUNT( (/ jperio == 1 .OR. jperio == 4 .OR. jperio == 6 .OR. jperio == 7 /) )115 igloj = Nj0glo + 2 * COUNT( (/ jperio == 2 .OR. jperio == 7 /) ) + 1 * COUNT( (/ jperio >= 4 .AND. jperio <= 6 /) )116 106 DO_2D( 0, 0, 0, 0 ) 117 z2d(ji,jj) = 0.1 * ( 0.5 - REAL( mig0_oldcmp(ji) + (mjg0_oldcmp(jj)-1) * igloi, wp ) / REAL( igloi * igloj, 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 118 110 END_2D 119 utau_ice(:,:) = 0.1_wp + z2d(:,:)120 vtau_ice(:,:) = 0.1_wp + z2d(:,:)121 111 122 CALL lbc_lnk _multi( 'usrdef_sbc', utau_ice, 'U', -1., vtau_ice, 'V', -1. )112 CALL lbc_lnk( 'usrdef_sbc', utau_ice, 'U', -1., vtau_ice, 'V', -1. ) 123 113 #endif 124 114 ! … … 130 120 !! *** ROUTINE usrdef_sbc_ice_flx *** 131 121 !! 132 !! ** Purpose : provide the surface boundary (flux) condition over 133 !sea-ice 122 !! ** Purpose : provide the surface boundary (flux) condition over sea-ice 134 123 !!--------------------------------------------------------------------- 135 124 INTEGER, INTENT(in) :: kt ! ocean time step … … 139 128 REAL(wp), DIMENSION(jpi,jpj) :: zsnw ! snw distribution after wind blowing 140 129 !!--------------------------------------------------------------------- 130 #if defined key_si3 141 131 ! 142 #if defined key_si3143 132 IF( kt==nit000 .AND. lwp) WRITE(numout,*)' usrdef_sbc_ice : BENCH case: NO flux forcing' 144 133 ! … … 146 135 emp_oce (:,:) = 0._wp ! uniform value for freshwater budget (E-P) 147 136 qsr_oce (:,:) = 0._wp ! uniform value for solar radiation 148 qns_oce (:,:) = 0._wp ! uniform value for non-solar radiation137 qns_oce (:,:) = 0._wp ! uniform value for non-solar heat flux 149 138 150 139 ! ice variables 151 140 alb_ice (:,:,:) = 0.7_wp ! useless 152 141 qsr_ice (:,:,:) = 0._wp ! uniform value for solar radiation 153 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 154 144 sprecip (:,:) = 0._wp ! uniform value for snow precip 155 145 evap_ice(:,:,:) = 0._wp ! uniform value for sublimation … … 157 147 ! ice fields deduced from above 158 148 zsnw(:,:) = 1._wp 159 !!CALL lim_thd_snwblow( at_i_b, zsnw ) ! snow distribution over ice after 160 !wind blowing 149 !!CALL lim_thd_snwblow( at_i_b, zsnw ) ! snow distribution over ice after wind blowing 161 150 emp_ice (:,:) = SUM( a_i_b(:,:,:) * evap_ice(:,:,:), dim=3 ) - sprecip(:,:) * zsnw(:,:) 162 151 emp_oce (:,:) = emp_oce(:,:) - sprecip(:,:) * (1._wp - zsnw(:,:) ) … … 173 162 ! --- shortwave radiation transmitted thru the surface scattering layer (W/m2) --- ! 174 163 qtr_ice_top(:,:,:) = 0._wp 175 176 164 #endif 177 165
Note: See TracChangeset
for help on using the changeset viewer.