Changeset 15264 for NEMO/branches/2020/ticket2487/tests/CANAL/MY_SRC
- Timestamp:
- 2021-09-16T12:42:20+02:00 (3 years ago)
- Location:
- NEMO/branches/2020/ticket2487
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/ticket2487
- Property svn:externals
-
old new 1 ^/utils/build/arch@12130 arch2 ^/utils/build/makenemo@12191 makenemo3 ^/utils/build/mk@11662 mk4 ^/utils/tools_r4.0-HEAD@1 2672tools5 ^/vendors/AGRIF/ dev@10586ext/AGRIF6 ^/vendors/FCM@10134 ext/FCM7 ^/vendors/IOIPSL@9655 ext/IOIPSL1 ^/utils/build/arch@12130 arch 2 ^/utils/build/makenemo@12191 makenemo 3 ^/utils/build/mk@11662 mk 4 ^/utils/tools_r4.0-HEAD@14974 tools 5 ^/vendors/AGRIF/stable@14105 ext/AGRIF 6 ^/vendors/FCM@10134 ext/FCM 7 ^/vendors/IOIPSL@9655 ext/IOIPSL 8 8 9 9 # SETTE mapping (inactive)
-
- Property svn:externals
-
NEMO/branches/2020/ticket2487/tests/CANAL/MY_SRC/diawri.F90
r12206 r15264 230 230 IF( iom_use('logavs') ) CALL iom_put( "logavs", LOG( MAX( 1.e-20_wp, avs(:,:,:) ) ) ) 231 231 232 IF ( iom_use("s algrad") .OR. iom_use("salgrad2") ) THEN232 IF ( iom_use("socegrad") .OR. iom_use("socegrad2") ) THEN 233 233 z3d(:,:,jpk) = 0. 234 234 DO jk = 1, jpkm1 … … 244 244 END DO 245 245 CALL lbc_lnk( 'diawri', z3d, 'T', 1. ) 246 CALL iom_put( "s algrad2", z3d ) ! square of module of sal gradient246 CALL iom_put( "socegrad2", z3d ) ! square of module of sal gradient 247 247 z3d(:,:,:) = SQRT( z3d(:,:,:) ) 248 CALL iom_put( "s algrad" , z3d ) ! module of sal gradient248 CALL iom_put( "socegrad" , z3d ) ! module of sal gradient 249 249 ENDIF 250 250 … … 299 299 END DO 300 300 END DO 301 CALL iom_put( "salt2c", rau0 * z2d ) ! vertically integrated s alt content (PSU*kg/m2)302 ENDIF 303 ! 304 IF ( iom_use("eken") ) THEN301 CALL iom_put( "salt2c", rau0 * z2d ) ! vertically integrated squared salt content (PSU*kg/m2) 302 ENDIF 303 ! 304 IF ( iom_use("eken") .OR. iom_use("eken_int") ) THEN 305 305 z3d(:,:,jpk) = 0._wp 306 306 DO jk = 1, jpkm1 307 DO jj = 2, jpj 308 DO ji = 2, jpi 307 DO jj = 2, jpjm1 308 DO ji = 2, jpim1 309 309 zztmpx = 0.5 * ( un(ji-1,jj ,jk) + un(ji,jj,jk) ) 310 310 zztmpy = 0.5 * ( vn(ji ,jj-1,jk) + vn(ji,jj,jk) ) … … 315 315 CALL lbc_lnk( 'diawri', z3d, 'T', 1. ) 316 316 CALL iom_put( "eken", z3d ) ! kinetic energy 317 ENDIF318 319 IF ( iom_use("ke") .or. iom_use("ke_zint") ) THEN320 !321 z3d(:,:,jpk) = 0._wp322 z3d(1,:, : ) = 0._wp323 z3d(:,1, : ) = 0._wp324 DO jk = 1, jpkm1325 DO jj = 2, jpj326 DO ji = 2, jpi327 z3d(ji,jj,jk) = 0.25_wp * ( un(ji ,jj,jk) * un(ji ,jj,jk) * e1e2u(ji ,jj) * e3u_n(ji ,jj,jk) &328 & + un(ji-1,jj,jk) * un(ji-1,jj,jk) * e1e2u(ji-1,jj) * e3u_n(ji-1,jj,jk) &329 & + vn(ji,jj ,jk) * vn(ji,jj ,jk) * e1e2v(ji,jj ) * e3v_n(ji,jj ,jk) &330 & + vn(ji,jj-1,jk) * vn(ji,jj-1,jk) * e1e2v(ji,jj-1) * e3v_n(ji,jj-1,jk) ) &331 & * r1_e1e2t(ji,jj) / e3t_n(ji,jj,jk) * tmask(ji,jj,jk)332 END DO333 END DO334 END DO335 336 CALL lbc_lnk( 'diawri', z3d, 'T', 1. )337 CALL iom_put( "ke", z3d ) ! kinetic energy338 317 339 318 z2d(:,:) = 0._wp … … 341 320 DO jj = 1, jpj 342 321 DO ji = 1, jpi 343 z2d(ji,jj) = z2d(ji,jj) + e3t_n(ji,jj,jk) * z3d(ji,jj,jk) * tmask(ji,jj,jk) 344 END DO 345 END DO 346 END DO 347 CALL iom_put( "ke_zint", z2d ) ! vertically integrated kinetic energy 348 322 z2d(ji,jj) = z2d(ji,jj) + e3t_n(ji,jj,jk) * z3d(ji,jj,jk) * e1e2t(ji,jj) * tmask(ji,jj,jk) 323 END DO 324 END DO 325 END DO 326 CALL iom_put( "eken_int", z2d ) ! vertically integrated kinetic energy 349 327 ENDIF 350 328 ! … … 358 336 DO ji = 1, fs_jpim1 ! vector opt. 359 337 z3d(ji,jj,jk) = ( e2v(ji+1,jj ) * vn(ji+1,jj ,jk) - e2v(ji,jj) * vn(ji,jj,jk) & 360 & 338 & - e1u(ji ,jj+1) * un(ji ,jj+1,jk) + e1u(ji,jj) * un(ji,jj,jk) ) * r1_e1e2f(ji,jj) 361 339 END DO 362 340 END DO -
NEMO/branches/2020/ticket2487/tests/CANAL/MY_SRC/usrdef_istate.F90
r10425 r15264 64 64 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~~ ' 65 65 ! 66 IF (ln_sshnoise) CALL RANDOM_NUMBER(zrandom)67 66 zjetx = ABS(rn_ujetszx)/2. 68 67 zjety = ABS(rn_ujetszy)/2. 69 68 ! 69 zf0 = 2._wp * omega * SIN( rad * rn_ppgphi0 ) 70 ! 70 71 SELECT CASE(nn_initcase) 72 73 CASE(-1) ! stratif at rest 74 75 ! sea level: 76 pssh(:,:) = 0. 77 ! temperature: 78 pts(:,:,1,jp_tem) = 25. !!30._wp 79 pts(:,:,2:jpk,jp_tem) = 22. !!24._wp 80 ! salinity: 81 pts(:,:,:,jp_sal) = 35._wp 82 ! velocities: 83 pu(:,:,:) = 0. 84 pv(:,:,:) = 0. 85 71 86 CASE(0) ! rest 72 87 … … 96 111 zbeta = 2._wp * omega * COS( rad * rn_ppgphi0 ) / ra 97 112 WHERE( ABS(gphit) <= zjety ) 98 pssh(:,:) = - rn_uzonal / grav * ( ff_t(:,:)* gphit(:,:) * 1.e3 + 0.5 * zbeta * gphit(:,:) * gphit(:,:) * 1.e6 )99 ELSEWHERE 100 pssh(:,:) = - rn_uzonal / grav * ( ff_t(:,:)* SIGN(zjety, gphit(:,:)) * 1.e3 &113 pssh(:,:) = - rn_uzonal / grav * ( zf0 * gphit(:,:) * 1.e3 + 0.5 * zbeta * gphit(:,:) * gphit(:,:) * 1.e6 ) 114 ELSEWHERE 115 pssh(:,:) = - rn_uzonal / grav * ( zf0 * SIGN(zjety, gphit(:,:)) * 1.e3 & 101 116 & + 0.5 * zbeta * zjety * zjety * 1.e6 ) 102 117 END WHERE … … 107 122 pts(:,:,jpk,jp_sal) = 0. 108 123 DO jk=1, jpkm1 109 pts(:,:,jk,jp_sal) = gphit(:,:) 124 WHERE( ABS(gphit) <= zjety ) 125 !!$ WHERE( ABS(gphit) <= zjety*0.5 .AND. ABS(glamt) <= zjety*0.5 ) ! for a square of salt 126 pts(:,:,jk,jp_sal) = 35. 127 ELSEWHERE 128 pts(:,:,jk,jp_sal) = 30. 129 END WHERE 110 130 END DO 111 131 ! velocities: … … 132 152 WHERE( ABS(gphit) <= zjety ) 133 153 pssh(:,:) = - SIGN(rn_uzonal, gphit(:,:)) / grav & 134 & * ( ff_t(:,:)* gphit(:,:) * 1.e3 + 0.5 * zbeta * gphit(:,:) * gphit(:,:) * 1.e6 )154 & * ( zf0 * gphit(:,:) * 1.e3 + 0.5 * zbeta * gphit(:,:) * gphit(:,:) * 1.e6 ) 135 155 ELSEWHERE 136 156 pssh(:,:) = - SIGN(rn_uzonal, gphit(:,:)) / grav & 137 & * ( ff_t(:,:)* SIGN(zjety, gphit(:,:)) * 1.e3 + 0.5 * zbeta * zjety * zjety * 1.e6 )157 & * ( zf0 * SIGN(zjety, gphit(:,:)) * 1.e3 + 0.5 * zbeta * zjety * zjety * 1.e6 ) 138 158 END WHERE 139 159 END SELECT … … 141 161 pts(:,:,:,jp_tem) = 10._wp 142 162 ! salinity: 143 pts(:,:,:,jp_sal) = 2.144 DO jk=1, jpkm1 145 WHERE( ABS(gphiv) <= zjety ) pts(:,:,jk,jp_sal) = 2. + SIGN(1.,gphiv(:,:))163 pts(:,:,:,jp_sal) = 30. 164 DO jk=1, jpkm1 165 WHERE( ABS(gphiv) <= zjety ) pts(:,:,jk,jp_sal) = 30. + SIGN(1.,gphiv(:,:)) 146 166 END DO 147 167 ! velocities: … … 176 196 ! salinity: 177 197 DO jk=1, jpkm1 178 pts(:,:,jk,jp_sal) = gphit(:,:)198 pts(:,:,jk,jp_sal) = pssh(:,:) 179 199 END DO 180 200 ! velocities: … … 213 233 zf0 = 2._wp * omega * SIN( rad * rn_ppgphi0 ) 214 234 zumax = rn_vtxmax * SIGN(1._wp, zf0) ! Here Anticyclonic: set zumax=-1 for cyclonic 215 zlambda = SQRT(2._wp)*rn_lambda ! Horizontal scale in meters235 zlambda = SQRT(2._wp)*rn_lambda*1.e3 ! Horizontal scale in meters 216 236 zn2 = 3.e-3**2 217 237 zH = 0.5_wp * 5000._wp … … 253 273 ! velocities: 254 274 za = 2._wp * zP0 / zlambda**2 255 DO jj =1, jpj256 DO ji =1, jpim1275 DO jj = 2, jpjm1 276 DO ji = 2, jpim1 257 277 zx = glamu(ji,jj) * 1.e3 258 278 zy = gphiu(ji,jj) * 1.e3 … … 270 290 END DO 271 291 ! 272 DO jj =1, jpjm1273 DO ji =1, jpi292 DO jj = 2, jpjm1 293 DO ji = 2, jpim1 274 294 zx = glamv(ji,jj) * 1.e3 275 295 zy = gphiv(ji,jj) * 1.e3 … … 287 307 END DO 288 308 ! 309 CALL lbc_lnk_multi( 'usrdef_istate', pu, 'U', -1., pv, 'V', -1. ) 310 289 311 END SELECT 290 312 291 313 IF (ln_sshnoise) THEN 314 CALL RANDOM_SEED() 292 315 CALL RANDOM_NUMBER(zrandom) 293 316 pssh(:,:) = pssh(:,:) + ( 0.1 * zrandom(:,:) - 0.05 ) 294 317 END IF 295 CALL lbc_lnk( 'usrdef_istate', pssh, 'T', 1. ) 296 CALL lbc_lnk( 'usrdef_istate', pts, 'T', 1. ) 297 CALL lbc_lnk( 'usrdef_istate', pu, 'U', -1. ) 298 CALL lbc_lnk( 'usrdef_istate', pv, 'V', -1. ) 299 318 300 319 END SUBROUTINE usr_def_istate 301 320 -
NEMO/branches/2020/ticket2487/tests/CANAL/MY_SRC/usrdef_nam.F90
r11899 r15264 50 50 LOGICAL , PUBLIC :: ln_sshnoise=.false. ! add random noise on initial ssh 51 51 REAL(wp), PUBLIC :: rn_lambda = 50. ! gaussian lambda 52 INTEGER , PUBLIC :: nn_perio = 0 ! periodicity of the channel (0=closed, 1=E-W) 52 53 53 54 !!---------------------------------------------------------------------- … … 79 80 !! 80 81 NAMELIST/namusr_def/ rn_domszx, rn_domszy, rn_domszz, rn_dx, rn_dy, rn_dz, rn_0xratio, rn_0yratio & 81 & , nn_fcase, rn_ppgphi0, rn_ vtxmax, rn_uzonal, rn_ujetszx, rn_ujetszy&82 & , rn_ u10, rn_windszx, rn_windszy, rn_uofac&83 & , nn_botcase, nn_initcase, ln_sshnoise, rn_lambda 82 & , nn_fcase, rn_ppgphi0, rn_u10, rn_windszx, rn_windszy & !!, rn_uofac & 83 & , rn_vtxmax, rn_uzonal, rn_ujetszx, rn_ujetszy & 84 & , nn_botcase, nn_initcase, ln_sshnoise, rn_lambda, nn_perio 84 85 !!---------------------------------------------------------------------- 85 86 ! … … 151 152 WRITE(numout,*) ' add random noise on initial ssh ln_sshnoise= ', ln_sshnoise 152 153 WRITE(numout,*) ' Gaussian lambda parameter rn_lambda = ', rn_lambda 153 WRITE(numout,*) ' ' 154 WRITE(numout,*) ' Lateral boundary condition of the global domain' 155 WRITE(numout,*) ' EW_CANAL : closed basin jperio = ', kperio 154 WRITE(numout,*) ' Periodicity of the basin nn_perio = ', nn_perio 156 155 ENDIF 156 ! ! Set the lateral boundary condition of the global domain 157 kperio = nn_perio ! EW_CANAL configuration : closed basin 157 158 ! 158 159 END SUBROUTINE usr_def_nam -
NEMO/branches/2020/ticket2487/tests/CANAL/MY_SRC/usrdef_sbc.F90
r10074 r15264 17 17 USE sbc_oce ! Surface boundary condition: ocean fields 18 18 USE phycst ! physical constants 19 USE usrdef_nam, ONLY : rn_u10, rn_uofac, rn_windszy 19 USE usrdef_nam, ONLY : rn_u10, rn_uofac, rn_windszy, rn_windszx 20 20 ! 21 21 USE in_out_manager ! I/O manager … … 71 71 ! 72 72 utau(:,:) = 0._wp 73 IF( rn_u10 /= 0. .AND. rn_windszy > 0. ) THEN74 WHERE( ABS(gphit) <= rn_windszy/2. ) utau(:,:) = zrhocd * rn_u10 * rn_u1075 ENDIF76 73 vtau(:,:) = 0._wp 77 74 taum(:,:) = 0._wp … … 83 80 qsr (:,:) = 0._wp 84 81 ! 82 ENDIF 83 84 IF( rn_u10 /= 0. .AND. rn_windszy > 0. ) THEN 85 IF( nyear == 1 .AND. nmonth == 1 .AND. nday <= 10 ) THEN 86 WHERE( ABS(gphit) <= rn_windszy/2. .AND. ABS(glamt) <= rn_windszx/2. ) utau(:,:) = zrhocd * rn_u10 * rn_u10 87 ELSE 88 utau(:,:) = 0. 89 ENDIF 85 90 ENDIF 86 91 -
NEMO/branches/2020/ticket2487/tests/CANAL/MY_SRC/usrdef_zgr.F90
r10425 r15264 199 199 zmaxlam = MAXVAL(glamt) 200 200 CALL mpp_max( 'usrdef_zgr', zmaxlam ) ! max over the global domain 201 zscl = rpi / zmaxlam202 z2d(:,:) = 0.5 * ( 1. - COS( glamt(:,:) * zscl ))203 z2d(:,:) = REAL(jpkm1 - NINT( 0. 75 * REAL(jpkm1,wp) * z2d(:,:) ), wp)201 zscl = 0.5 * rpi / zmaxlam 202 z2d(:,:) = COS( glamt(:,:) * zscl ) 203 z2d(:,:) = REAL(jpkm1 - NINT( 0.5 * REAL(jpkm1,wp) * z2d(:,:) ), wp) 204 204 END SELECT 205 205 !
Note: See TracChangeset
for help on using the changeset viewer.