Changeset 13540 for NEMO/branches/2020/r12377_ticket2386/tests/ISOMIP
- Timestamp:
- 2020-09-29T12:41:06+02:00 (4 years ago)
- Location:
- NEMO/branches/2020/r12377_ticket2386
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/r12377_ticket2386
- Property svn:externals
-
old new 3 3 ^/utils/build/mk@HEAD mk 4 4 ^/utils/tools@HEAD tools 5 ^/vendors/AGRIF/dev @HEADext/AGRIF5 ^/vendors/AGRIF/dev_r12970_AGRIF_CMEMS ext/AGRIF 6 6 ^/vendors/FCM@HEAD ext/FCM 7 7 ^/vendors/IOIPSL@HEAD ext/IOIPSL 8 8 9 9 # SETTE 10 ^/utils/CI/sette@ HEADsette10 ^/utils/CI/sette@13507 sette
-
- Property svn:externals
-
NEMO/branches/2020/r12377_ticket2386/tests/ISOMIP/EXPREF/context_nemo.xml
r12276 r13540 11 11 <variable id="ref_month" type="int"> 01 </variable> 12 12 <variable id="ref_day" type="int"> 01 </variable> 13 <variable id="r au0" type="float" > 1026.0 </variable>13 <variable id="rho0" type="float" > 1026.0 </variable> 14 14 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 15 15 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> -
NEMO/branches/2020/r12377_ticket2386/tests/ISOMIP/EXPREF/namelist_cfg
r12511 r13540 227 227 !! !! 228 228 !! namdrg top/bottom drag coefficient (default: NO selection) 229 !! namdrg_top top friction (ln_ OFF=F & ln_isfcav=T)230 !! namdrg_bot bottom friction (ln_ OFF=F)229 !! namdrg_top top friction (ln_drg_OFF=F & ln_isfcav=T) 230 !! namdrg_bot bottom friction (ln_drg_OFF=F) 231 231 !! nambbc bottom temperature boundary condition (default: OFF) 232 232 !! nambbl bottom boundary layer scheme (default: OFF) … … 236 236 &namdrg ! top/bottom drag coefficient (default: NO selection) 237 237 !----------------------------------------------------------------------- 238 ln_ OFF = .false.! free-slip : Cd = 0 (F => fill namdrg_bot238 ln_drg_OFF = .false. ! free-slip : Cd = 0 (F => fill namdrg_bot 239 239 ln_lin = .false. ! linear drag: Cd = Cd0 Uc0 & namdrg_top) 240 240 ln_non_lin = .true. ! non-linear drag: Cd = Cd0 |U| … … 244 244 / 245 245 !----------------------------------------------------------------------- 246 &namdrg_top ! TOP friction (ln_ OFF =F & ln_isfcav=T)246 &namdrg_top ! TOP friction (ln_drg_OFF =F & ln_isfcav=T) 247 247 !----------------------------------------------------------------------- 248 248 rn_Cd0 = 2.5e-3 ! drag coefficient [-] … … 255 255 / 256 256 !----------------------------------------------------------------------- 257 &namdrg_bot ! BOTTOM friction (ln_ OFF =F)257 &namdrg_bot ! BOTTOM friction (ln_drg_OFF =F) 258 258 !----------------------------------------------------------------------- 259 259 rn_Cd0 = 1.e-3 ! drag coefficient [-] -
NEMO/branches/2020/r12377_ticket2386/tests/ISOMIP/MY_SRC/usrdef_hgr.F90
r10074 r13540 14 14 !! usr_def_hgr : initialize the horizontal mesh for ISOMIP configuration 15 15 !!---------------------------------------------------------------------- 16 USE dom_oce , ONLY: nimpp, njmpp ! ocean space and time domain16 USE dom_oce 17 17 USE par_oce ! ocean space and time domain 18 18 USE phycst ! physical constants … … 27 27 PUBLIC usr_def_hgr ! called by domhgr.F90 28 28 29 !! * Substitutions 30 # include "do_loop_substitute.h90" 29 31 !!---------------------------------------------------------------------- 30 32 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 75 77 ! 76 78 ! !== grid point position ==! (in degrees) 77 DO jj = 1, jpj 78 DO ji = 1, jpi ! longitude (west coast at lon=0°) 79 plamt(ji,jj) = rn_e1deg * ( - 0.5 + REAL( ji-1 + nimpp-1 , wp ) ) 80 plamu(ji,jj) = rn_e1deg * ( REAL( ji-1 + nimpp-1 , wp ) ) 81 plamv(ji,jj) = plamt(ji,jj) 82 plamf(ji,jj) = plamu(ji,jj) 83 ! ! latitude (south coast at lat= 81°) 84 pphit(ji,jj) = rn_e2deg * ( - 0.5 + REAL( jj-1 + njmpp-1 , wp ) ) - 80._wp 85 pphiu(ji,jj) = pphit(ji,jj) 86 pphiv(ji,jj) = rn_e2deg * ( REAL( jj-1 + njmpp-1 , wp ) ) - 80_wp 87 pphif(ji,jj) = pphiv(ji,jj) 88 END DO 89 END DO 79 DO_2D( 1, 1, 1, 1 ) 80 ! ! longitude (west coast at lon=0°) 81 plamt(ji,jj) = rn_e1deg * ( - 0.5 + REAL( mig0_oldcmp(ji)-1 , wp ) ) 82 plamu(ji,jj) = rn_e1deg * ( REAL( mig0_oldcmp(ji)-1 , wp ) ) 83 plamv(ji,jj) = plamt(ji,jj) 84 plamf(ji,jj) = plamu(ji,jj) 85 ! ! latitude (south coast at lat= 81°) 86 pphit(ji,jj) = rn_e2deg * ( - 0.5 + REAL( mjg0_oldcmp(jj)-1 , wp ) ) - 80._wp 87 pphiu(ji,jj) = pphit(ji,jj) 88 pphiv(ji,jj) = rn_e2deg * ( REAL( mjg0_oldcmp(jj)-1 , wp ) ) - 80_wp 89 pphif(ji,jj) = pphiv(ji,jj) 90 END_2D 90 91 ! 91 92 ! !== Horizontal scale factors ==! (in meters) 92 DO jj = 1, jpj 93 DO ji = 1, jpi 94 ! ! e1 (zonal) 95 pe1t(ji,jj) = ra * rad * COS( rad * pphit(ji,jj) ) * rn_e1deg 96 pe1u(ji,jj) = ra * rad * COS( rad * pphiu(ji,jj) ) * rn_e1deg 97 pe1v(ji,jj) = ra * rad * COS( rad * pphiv(ji,jj) ) * rn_e1deg 98 pe1f(ji,jj) = ra * rad * COS( rad * pphif(ji,jj) ) * rn_e1deg 99 ! ! e2 (meridional) 100 pe2t(ji,jj) = ra * rad * rn_e2deg 101 pe2u(ji,jj) = ra * rad * rn_e2deg 102 pe2v(ji,jj) = ra * rad * rn_e2deg 103 pe2f(ji,jj) = ra * rad * rn_e2deg 104 END DO 105 END DO 93 DO_2D( 1, 1, 1, 1 ) 94 ! ! e1 (zonal) 95 pe1t(ji,jj) = ra * rad * COS( rad * pphit(ji,jj) ) * rn_e1deg 96 pe1u(ji,jj) = ra * rad * COS( rad * pphiu(ji,jj) ) * rn_e1deg 97 pe1v(ji,jj) = ra * rad * COS( rad * pphiv(ji,jj) ) * rn_e1deg 98 pe1f(ji,jj) = ra * rad * COS( rad * pphif(ji,jj) ) * rn_e1deg 99 ! ! e2 (meridional) 100 pe2t(ji,jj) = ra * rad * rn_e2deg 101 pe2u(ji,jj) = ra * rad * rn_e2deg 102 pe2v(ji,jj) = ra * rad * rn_e2deg 103 pe2f(ji,jj) = ra * rad * rn_e2deg 104 END_2D 106 105 ! ! NO reduction of grid size in some straits 107 106 ke1e2u_v = 0 ! ==>> u_ & v_surfaces will be computed in dom_ghr routine -
NEMO/branches/2020/r12377_ticket2386/tests/ISOMIP/MY_SRC/usrdef_nam.F90
r12377 r13540 15 15 !! usr_def_hgr : initialize the horizontal mesh 16 16 !!---------------------------------------------------------------------- 17 USE dom_oce , ONLY: nimpp , njmpp ! i- & j-indices of the local domain18 17 USE dom_oce , ONLY: ln_zco, ln_zps, ln_sco ! flag of type of coordinate 19 18 USE par_oce ! ocean space and time domain … … 95 94 WRITE(numout,*) ' vertical resolution rn_e3 = ', rn_e3 , ' meters' 96 95 WRITE(numout,*) ' ISOMIP domain = 15° x 10° x 900 m' 97 WRITE(numout,*) ' resulting global domain size : jpiglo = ', kpi98 WRITE(numout,*) ' jpjglo = ', kpj96 WRITE(numout,*) ' resulting global domain size : Ni0glo = ', kpi 97 WRITE(numout,*) ' Nj0glo = ', kpj 99 98 WRITE(numout,*) ' jpkglo = ', kpk 100 99 WRITE(numout,*) ' ' -
NEMO/branches/2020/r12377_ticket2386/tests/ISOMIP/MY_SRC/usrdef_zgr.F90
r12377 r13540 16 16 !!--------------------------------------------------------------------- 17 17 USE oce ! ocean variables 18 USE dom_oce , ONLY: mj0 , mj1 , nimpp , njmpp! ocean space and time domain19 USE dom_oce , ONLY: glamt , gphit 18 USE dom_oce , ONLY: mj0 , mj1 ! ocean space and time domain 19 USE dom_oce , ONLY: glamt , gphit ! ocean space and time domain 20 20 USE usrdef_nam ! User defined : namelist variables 21 21 ! … … 30 30 PUBLIC usr_def_zgr ! called by domzgr.F90 31 31 32 !! * Substitutions 33 # include "do_loop_substitute.h90" 32 34 !!---------------------------------------------------------------------- 33 35 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 65 67 REAL(wp), DIMENSION(jpi,jpj) :: zht , zhu ! bottom depth 66 68 REAL(wp), DIMENSION(jpi,jpj) :: zhisf, zhisfu ! top depth 67 REAL(wp), DIMENSION(jpi,jpj) :: zmsk68 REAL(wp), DIMENSION(jpi,jpj) :: z2d ! 2d workspace69 69 !!---------------------------------------------------------------------- 70 70 ! … … 85 85 ! !== isfdraft ==! 86 86 ! 87 ! the ocean basin surrounded by land (1 grid-point) set through lbc_lnk call as jperio=088 z2d(:,:) = 1._wp ! surface ocean is the 1st level89 CALL lbc_lnk( 'usrdef_zgr', z2d, 'T', 1. ) ! closed basin since jperio = 0 (see userdef_nam.F90)90 zmsk(:,:) = NINT( z2d(:,:) )91 !92 !93 87 zht (:,:) = rbathy 94 88 zhisf(:,:) = 200._wp 95 ij0 = 1 ; ij1 = 4089 ij0 = 1 ; ij1 = 40+nn_hls 96 90 DO jj = mj0(ij0), mj1(ij1) 97 91 zhisf(:,jj)=700.0_wp-(gphit(:,jj)+80.0_wp)*125.0_wp 98 92 END DO 99 zhisf(:,:) = zhisf(:,:) * zmsk(:,:)100 93 ! 101 94 CALL zgr_z1d( pdept_1d, pdepw_1d, pe3t_1d , pe3w_1d ) ! Reference z-coordinate system … … 132 125 pe3vw(:,:,jk) = pe3w_1d (jk) 133 126 END DO 134 DO jj = 1, jpj ! top scale factors and depth at T- and W-points 135 DO ji = 1, jpi 136 ik = k_top(ji,jj) 137 IF ( ik > 2 ) THEN 138 ! pdeptw at the interface 139 pdepw(ji,jj,ik ) = MAX( zhisf(ji,jj) , pdepw(ji,jj,ik) ) 140 ! e3t in both side of the interface 141 pe3t (ji,jj,ik ) = pdepw(ji,jj,ik+1) - pdepw(ji,jj,ik) 142 ! pdept in both side of the interface (from previous e3t) 143 pdept(ji,jj,ik ) = pdepw(ji,jj,ik ) + pe3t (ji,jj,ik ) * 0.5_wp 144 pdept(ji,jj,ik-1) = pdepw(ji,jj,ik ) - pe3t (ji,jj,ik ) * 0.5_wp 145 ! pe3w on both side of the interface 146 pe3w (ji,jj,ik+1) = pdept(ji,jj,ik+1) - pdept(ji,jj,ik ) 147 pe3w (ji,jj,ik ) = pdept(ji,jj,ik ) - pdept(ji,jj,ik-1) 148 ! e3t into the ice shelf 149 pe3t (ji,jj,ik-1) = pdepw(ji,jj,ik ) - pdepw(ji,jj,ik-1) 150 pe3w (ji,jj,ik-1) = pdept(ji,jj,ik-1) - pdept(ji,jj,ik-2) 151 END IF 152 END DO 153 END DO 154 DO jj = 1, jpj ! bottom scale factors and depth at T- and W-points 155 DO ji = 1, jpi 156 ik = k_bot(ji,jj) 157 pdepw(ji,jj,ik+1) = MIN( zht(ji,jj) , pdepw_1d(ik+1) ) 127 ! top scale factors and depth at T- and W-points 128 DO_2D( 1, 1, 1, 1 ) 129 ik = k_top(ji,jj) 130 IF ( ik > 2 ) THEN 131 ! pdeptw at the interface 132 pdepw(ji,jj,ik ) = MAX( zhisf(ji,jj) , pdepw(ji,jj,ik) ) 133 ! e3t in both side of the interface 158 134 pe3t (ji,jj,ik ) = pdepw(ji,jj,ik+1) - pdepw(ji,jj,ik) 159 pe3t (ji,jj,ik+1) = pe3t (ji,jj,ik ) 160 ! 135 ! pdept in both side of the interface (from previous e3t) 161 136 pdept(ji,jj,ik ) = pdepw(ji,jj,ik ) + pe3t (ji,jj,ik ) * 0.5_wp 162 pdept(ji,jj,ik+1) = pdepw(ji,jj,ik+1) + pe3t (ji,jj,ik+1) * 0.5_wp 163 pe3w (ji,jj,ik+1) = pdept(ji,jj,ik+1) - pdept(ji,jj,ik) 164 END DO 165 END DO 137 pdept(ji,jj,ik-1) = pdepw(ji,jj,ik ) - pe3t (ji,jj,ik ) * 0.5_wp 138 ! pe3w on both side of the interface 139 pe3w (ji,jj,ik+1) = pdept(ji,jj,ik+1) - pdept(ji,jj,ik ) 140 pe3w (ji,jj,ik ) = pdept(ji,jj,ik ) - pdept(ji,jj,ik-1) 141 ! e3t into the ice shelf 142 pe3t (ji,jj,ik-1) = pdepw(ji,jj,ik ) - pdepw(ji,jj,ik-1) 143 pe3w (ji,jj,ik-1) = pdept(ji,jj,ik-1) - pdept(ji,jj,ik-2) 144 END IF 145 END_2D 146 ! bottom scale factors and depth at T- and W-points 147 DO_2D( 1, 1, 1, 1 ) 148 ik = k_bot(ji,jj) 149 pdepw(ji,jj,ik+1) = MIN( zht(ji,jj) , pdepw_1d(ik+1) ) 150 pe3t (ji,jj,ik ) = pdepw(ji,jj,ik+1) - pdepw(ji,jj,ik) 151 pe3t (ji,jj,ik+1) = pe3t (ji,jj,ik ) 152 ! 153 pdept(ji,jj,ik ) = pdepw(ji,jj,ik ) + pe3t (ji,jj,ik ) * 0.5_wp 154 pdept(ji,jj,ik+1) = pdepw(ji,jj,ik+1) + pe3t (ji,jj,ik+1) * 0.5_wp 155 pe3w (ji,jj,ik+1) = pdept(ji,jj,ik+1) - pdept(ji,jj,ik) 156 END_2D 166 157 ! ! bottom scale factors and depth at U-, V-, UW and VW-points 167 158 pe3u (:,:,:) = pe3t(:,:,:) 168 159 pe3uw(:,:,:) = pe3w(:,:,:) 169 DO jk = 1, jpk ! Computed as the minimum of neighbooring scale factors 170 DO jj = 1, jpjm1 171 DO ji = 1, jpi 172 pe3v (ji,jj,jk) = MIN( pe3t(ji,jj,jk), pe3t(ji,jj+1,jk) ) 173 pe3vw(ji,jj,jk) = MIN( pe3w(ji,jj,jk), pe3w(ji,jj+1,jk) ) 174 pe3f (ji,jj,jk) = pe3v(ji,jj,jk) 175 END DO 176 END DO 177 END DO 160 DO_3D( 0, 0, 0, 0, 1, jpk ) 161 ! ! Computed as the minimum of neighbooring scale factors 162 pe3v (ji,jj,jk) = MIN( pe3t(ji,jj,jk), pe3t(ji,jj+1,jk) ) 163 pe3vw(ji,jj,jk) = MIN( pe3w(ji,jj,jk), pe3w(ji,jj+1,jk) ) 164 pe3f (ji,jj,jk) = pe3v(ji,jj,jk) 165 END_3D 178 166 CALL lbc_lnk( 'usrdef_zgr', pe3v , 'V', 1._wp ) ; CALL lbc_lnk( 'usrdef_zgr', pe3vw, 'V', 1._wp ) 179 167 CALL lbc_lnk( 'usrdef_zgr', pe3f , 'F', 1._wp )
Note: See TracChangeset
for help on using the changeset viewer.