- Timestamp:
- 2013-11-11T18:32:51+01:00 (11 years ago)
- Location:
- branches/2013/dev_UKMO_NOC_reproducibililty_env_bathy/NEMOGCM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_UKMO_NOC_reproducibililty_env_bathy/NEMOGCM/CONFIG/AMM12/EXP00/namelist
r3948 r4179 28 28 nn_it000 = 1 ! first time step 29 29 nn_itend = 2880 ! last time step (std 1 day = 288) 30 nn_date0 = 20 070101 ! date at nit_0000 (format yyyymmdd) used if ln_rstart=F or (ln_rstart=T and nn_rstctl=0 or 1)30 nn_date0 = 20120101 ! date at nit_0000 (format yyyymmdd) used if ln_rstart=F or (ln_rstart=T and nn_rstctl=0 or 1) 31 31 nn_leapy = 1 ! Leap year calendar (1) or not (0) 32 32 ln_rstart = .true. ! start from rest (F) or from a restart file (T) … … 140 140 nn_fsbc = 1 ! frequency of surface boundary condition computation 141 141 ! (also = the frequency of sea-ice model call) 142 ln_ana = .false 142 ln_ana = .false. ! analytical formulation (T => fill namsbc_ana ) 143 143 ln_flx = .true. ! flux formulation (T => fill namsbc_flx ) 144 144 ln_blk_clio = .false. ! CLIO bulk formulation (T => fill namsbc_clio) … … 466 466 ! ! file name ! frequency (hours) ! variable ! time interpol. ! clim ! 'yearly'/ ! weights ! rotation ! 467 467 ! ! ! (if <0 months) ! name ! (logical) ! (T/F) ! 'monthly' ! filename ! pairing ! 468 bn_ssh = 'amm12_bdyT_ u2d' , 24 , 'sossheig' , .true. , .false. , 'daily' , '' , ''469 bn_u2d = 'amm12_bdyU_ u2d' , 24 , 'vobtcrtx' , .true. , .false. , 'daily' , '' , ''470 bn_v2d = 'amm12_bdyV_ u2d' , 24 , 'vobtcrty' , .true. , .false. , 'daily' , '' , ''471 bn_u3d = 'amm12_bdyU_ u3d' , 24 , 'vozocrtx' , .true. , .false. , 'daily' , '' , ''472 bn_v3d = 'amm12_bdyV_ u3d' , 24 , 'vomecrty' , .true. , .false. , 'daily' , '' , ''468 bn_ssh = 'amm12_bdyT_dyn2d' , 24 , 'sossheig' , .true. , .false. , 'daily' , '' , '' 469 bn_u2d = 'amm12_bdyU_dyn2d' , 24 , 'vobtcrtx' , .true. , .false. , 'daily' , '' , '' 470 bn_v2d = 'amm12_bdyV_dyn2d' , 24 , 'vobtcrty' , .true. , .false. , 'daily' , '' , '' 471 bn_u3d = 'amm12_bdyU_dyn3d' , 24 , 'vozocrtx' , .true. , .false. , 'daily' , '' , '' 472 bn_v3d = 'amm12_bdyV_dyn3d' , 24 , 'vomecrty' , .true. , .false. , 'daily' , '' , '' 473 473 bn_tem = 'amm12_bdyT_tra' , 24 , 'votemper' , .true. , .false. , 'daily' , '' , '' 474 474 bn_sal = 'amm12_bdyT_tra' , 24 , 'vosaline' , .true. , .false. , 'daily' , '' , '' -
branches/2013/dev_UKMO_NOC_reproducibililty_env_bathy/NEMOGCM/NEMO/OPA_SRC/DOM/domzgr.F90
r3971 r4179 1163 1163 ! ! ============================= 1164 1164 ! use r-value to create hybrid coordinates 1165 ! DO jj = 1, jpj1166 ! DO ji = 1, jpi1167 ! zenv(ji,jj) = MAX( bathy(ji,jj), 0._wp )1168 ! END DO1169 ! END DO1170 ! CALL lbc_lnk( zenv, 'T', 1._wp )1171 1165 zenv(:,:) = bathy(:,:) 1166 ! 1167 ! set first land point adjacent to a wet cell to sbot_min as this needs to be included in smoothing 1168 DO jj = 1, jpj 1169 DO ji = 1, jpi 1170 IF( bathy(ji,jj) == 0._wp ) THEN 1171 iip1 = MIN( ji+1, jpi ) 1172 ijp1 = MIN( jj+1, jpj ) 1173 iim1 = MAX( ji-1, 1 ) 1174 ijm1 = MAX( jj-1, 1 ) 1175 IF( (bathy(iip1,jj) + bathy(iim1,jj) + bathy(ji,ijp1) + bathy(ji,ijm1) + & 1176 & bathy(iip1,ijp1) + bathy(iim1,ijm1) + bathy(iip1,ijp1) + bathy(iim1,ijm1)) > 0._wp ) THEN 1177 zenv(ji,jj) = rn_sbot_min 1178 ENDIF 1179 ENDIF 1180 END DO 1181 END DO 1182 ! apply lateral boundary condition CAUTION: keep the value when the lbc field is zero 1183 CALL lbc_lnk( zenv, 'T', 1._wp, 'no0' ) 1172 1184 ! 1173 ! Smooth the bathymetry (if required)1185 ! smooth the bathymetry (if required) 1174 1186 scosrf(:,:) = 0._wp ! ocean surface depth (here zero: no under ice-shelf sea) 1175 1187 scobot(:,:) = bathy(:,:) ! ocean bottom depth … … 1195 1207 jl = jl + 1 1196 1208 zrmax = 0._wp 1197 ! we set zrmax from previous r-values (zri a bd zrj) first1209 ! we set zrmax from previous r-values (zri and zrj) first 1198 1210 ! if set after current r-value calculation (as previously) 1199 1211 ! we could exit DO WHILE prematurely before checking r-value … … 1231 1243 END DO 1232 1244 END DO 1233 ! 1234 CALL lbc_lnk( zenv, 'T', 1._wp )1245 ! apply lateral boundary condition CAUTION: keep the value when the lbc field is zero 1246 CALL lbc_lnk( zenv, 'T', 1._wp, 'no0' ) 1235 1247 ! ! ================ ! 1236 1248 END DO ! End loop ! 1237 1249 ! ! ================ ! 1238 ! 1239 ! DO jj = 1, jpj 1240 ! DO ji = 1, jpi 1241 ! zenv(ji,jj) = MAX( zenv(ji,jj), rn_sbot_min ) ! set all points to avoid undefined scale values 1242 ! END DO 1243 ! END DO 1250 DO jj = 1, jpj 1251 DO ji = 1, jpi 1252 zenv(ji,jj) = MAX( zenv(ji,jj), rn_sbot_min ) ! set all points to avoid undefined scale value warnings 1253 END DO 1254 END DO 1244 1255 ! 1245 1256 ! Envelope bathymetry saved in hbatt … … 1250 1261 DO jj = 1, jpj 1251 1262 DO ji = 1, jpi 1252 ztaper = EXP( -(gphit(ji,jj)/8._wp)**2 )1263 ztaper = EXP( -(gphit(ji,jj)/8._wp)**2._wp ) 1253 1264 hbatt(ji,jj) = rn_sbot_max * ztaper + hbatt(ji,jj) * ( 1._wp - ztaper ) 1254 1265 END DO … … 1365 1376 fsde3w(:,:,:) = gdep3w(:,:,:) 1366 1377 ! 1367 where (e3t (:,:,:).eq.0.0) e3t(:,:,:) = 1. 01368 where (e3u (:,:,:).eq.0.0) e3u(:,:,:) = 1. 01369 where (e3v (:,:,:).eq.0.0) e3v(:,:,:) = 1. 01370 where (e3f (:,:,:).eq.0.0) e3f(:,:,:) = 1. 01371 where (e3w (:,:,:).eq.0.0) e3w(:,:,:) = 1. 01372 where (e3uw (:,:,:).eq.0.0) e3uw(:,:,:) = 1. 01373 where (e3vw (:,:,:).eq.0.0) e3vw(:,:,:) = 1. 01378 where (e3t (:,:,:).eq.0.0) e3t(:,:,:) = 1._wp 1379 where (e3u (:,:,:).eq.0.0) e3u(:,:,:) = 1._wp 1380 where (e3v (:,:,:).eq.0.0) e3v(:,:,:) = 1._wp 1381 where (e3f (:,:,:).eq.0.0) e3f(:,:,:) = 1._wp 1382 where (e3w (:,:,:).eq.0.0) e3w(:,:,:) = 1._wp 1383 where (e3uw (:,:,:).eq.0.0) e3uw(:,:,:) = 1._wp 1384 where (e3vw (:,:,:).eq.0.0) e3vw(:,:,:) = 1._wp 1374 1385 1375 1386 #if defined key_agrif … … 1748 1759 ENDDO 1749 1760 ! 1750 CALL lbc_lnk(e3t ,'T',1.) ; CALL lbc_lnk(e3u ,'T',1.)1751 CALL lbc_lnk(e3v ,'T',1.) ; CALL lbc_lnk(e3f ,'T',1.)1752 CALL lbc_lnk(e3w ,'T',1.)1753 CALL lbc_lnk(e3uw,'T',1.) ; CALL lbc_lnk(e3vw,'T',1.)1754 !1755 1761 ! ! ============= 1756 1762 … … 1849 1855 !!---------------------------------------------------------------------- 1850 1856 ! 1851 pf = ( TANH( rn_theta * ( -(pk-0.5_wp) / REAL(jpkm1 ) + rn_thetb ) ) &1857 pf = ( TANH( rn_theta * ( -(pk-0.5_wp) / REAL(jpkm1,wp) + rn_thetb ) ) & 1852 1858 & - TANH( rn_thetb * rn_theta ) ) & 1853 1859 & * ( COSH( rn_theta ) & … … 1875 1881 ! 1876 1882 IF ( rn_theta == 0 ) then ! uniform sigma 1877 pf1 = - ( pk1 - 0.5_wp ) / REAL( jpkm1 )1883 pf1 = - ( pk1 - 0.5_wp ) / REAL( jpkm1,wp ) 1878 1884 ELSE ! stretched sigma 1879 pf1 = ( 1._wp - pbb ) * ( SINH( rn_theta*(-(pk1-0.5_wp)/REAL(jpkm1 )) ) ) / SINH( rn_theta ) &1880 & + pbb * ( (TANH( rn_theta*( (-(pk1-0.5_wp)/REAL(jpkm1 )) + 0.5_wp) ) - TANH( 0.5_wp * rn_theta ) ) &1885 pf1 = ( 1._wp - pbb ) * ( SINH( rn_theta*(-(pk1-0.5_wp)/REAL(jpkm1,wp)) ) ) / SINH( rn_theta ) & 1886 & + pbb * ( (TANH( rn_theta*( (-(pk1-0.5_wp)/REAL(jpkm1,wp)) + 0.5_wp) ) - TANH( 0.5_wp * rn_theta ) ) & 1881 1887 & / ( 2._wp * TANH( 0.5_wp * rn_theta ) ) ) 1882 1888 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.