Changeset 11822 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests
- Timestamp:
- 2019-10-29T11:41:36+01:00 (4 years ago)
- Location:
- NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests
- Files:
-
- 1 deleted
- 49 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/BENCH/EXPREF/best_jpni_jpnj_eorca025
r9856 r11822 624 624 nb_cores 36180 ( 180 x 201 ), nb_points 80 ( 10 x 8 ) 625 625 nb_cores 38560 ( 160 x 241 ), nb_points 77 ( 11 x 7 ) 626 nb_cores 41406 ( 206 x 201 ), nb_points 72 ( 9 x 8 ) 627 nb_cores 43380 ( 180 x 241 ), nb_points 70 ( 10 x 7 ) 628 nb_cores 48240 ( 240 x 201 ), nb_points 64 ( 8 x 8 ) 629 nb_cores 49646 ( 206 x 241 ), nb_points 63 ( 9 x 7 ) 630 nb_cores 54360 ( 180 x 302 ), nb_points 60 ( 10 x 6 ) 631 nb_cores 54360 ( 360 x 151 ), nb_points 60 ( 6 x 10 ) 632 nb_cores 57840 ( 240 x 241 ), nb_points 56 ( 8 x 7 ) 633 nb_cores 62212 ( 206 x 302 ), nb_points 54 ( 9 x 6 ) 634 nb_cores 69408 ( 288 x 241 ), nb_points 49 ( 7 x 7 ) 635 nb_cores 72360 ( 360 x 201 ), nb_points 48 ( 6 x 8 ) 636 nb_cores 82812 ( 206 x 402 ), nb_points 45 ( 9 x 5 ) 637 nb_cores 86760 ( 360 x 241 ), nb_points 42 ( 6 x 7 ) 638 nb_cores 96480 ( 240 x 402 ), nb_points 40 ( 8 x 5 ) 639 nb_cores 96480 ( 480 x 201 ), nb_points 40 ( 5 x 8 ) -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/BENCH/EXPREF/best_jpni_jpnj_eorca12
r9856 r11822 1300 1300 nb_cores 49852 ( 206 x 242 ), nb_points 345 ( 23 x 15 ) 1301 1301 nb_cores 49950 ( 270 x 185 ), nb_points 342 ( 18 x 19 ) 1302 nb_cores 50400 ( 288 x 175 ), nb_points 340 ( 17 x 20 ) 1303 nb_cores 50400 ( 240 x 210 ), nb_points 340 ( 20 x 17 ) 1304 nb_cores 51294 ( 309 x 166 ), nb_points 336 ( 16 x 21 ) 1305 nb_cores 52272 ( 216 x 242 ), nb_points 330 ( 22 x 15 ) 1306 nb_cores 53190 ( 270 x 197 ), nb_points 324 ( 18 x 18 ) 1307 nb_cores 53280 ( 288 x 185 ), nb_points 323 ( 17 x 19 ) 1308 nb_cores 54000 ( 240 x 225 ), nb_points 320 ( 20 x 16 ) 1309 nb_cores 55176 ( 228 x 242 ), nb_points 315 ( 21 x 15 ) 1310 nb_cores 56199 ( 393 x 143 ), nb_points 312 ( 13 x 24 ) 1311 nb_cores 56700 ( 270 x 210 ), nb_points 306 ( 18 x 17 ) 1312 nb_cores 57165 ( 309 x 185 ), nb_points 304 ( 16 x 19 ) 1313 nb_cores 58080 ( 240 x 242 ), nb_points 300 ( 20 x 15 ) 1314 nb_cores 58916 ( 206 x 286 ), nb_points 299 ( 23 x 13 ) 1315 nb_cores 59760 ( 360 x 166 ), nb_points 294 ( 14 x 21 ) 1316 nb_cores 60480 ( 288 x 210 ), nb_points 289 ( 17 x 17 ) 1317 nb_cores 60750 ( 270 x 225 ), nb_points 288 ( 18 x 16 ) 1318 nb_cores 61605 ( 333 x 185 ), nb_points 285 ( 15 x 19 ) 1319 nb_cores 63000 ( 360 x 175 ), nb_points 280 ( 14 x 20 ) 1320 nb_cores 64800 ( 288 x 225 ), nb_points 272 ( 17 x 16 ) 1321 nb_cores 65340 ( 270 x 242 ), nb_points 270 ( 18 x 15 ) 1322 nb_cores 66600 ( 360 x 185 ), nb_points 266 ( 14 x 19 ) 1323 nb_cores 68040 ( 216 x 315 ), nb_points 264 ( 22 x 12 ) 1324 nb_cores 68640 ( 240 x 286 ), nb_points 260 ( 20 x 13 ) 1325 nb_cores 69525 ( 309 x 225 ), nb_points 256 ( 16 x 16 ) 1326 nb_cores 69696 ( 288 x 242 ), nb_points 255 ( 17 x 15 ) 1327 nb_cores 70920 ( 360 x 197 ), nb_points 252 ( 14 x 18 ) 1328 nb_cores 72705 ( 393 x 185 ), nb_points 247 ( 13 x 19 ) 1329 nb_cores 74778 ( 309 x 242 ), nb_points 240 ( 16 x 15 ) 1330 nb_cores 75600 ( 360 x 210 ), nb_points 238 ( 14 x 17 ) 1331 nb_cores 77220 ( 270 x 286 ), nb_points 234 ( 18 x 13 ) 1332 nb_cores 79680 ( 480 x 166 ), nb_points 231 ( 11 x 21 ) 1333 nb_cores 79920 ( 432 x 185 ), nb_points 228 ( 12 x 19 ) 1334 nb_cores 80586 ( 333 x 242 ), nb_points 225 ( 15 x 15 ) 1335 nb_cores 81000 ( 360 x 225 ), nb_points 224 ( 14 x 16 ) 1336 nb_cores 82368 ( 288 x 286 ), nb_points 221 ( 17 x 13 ) 1337 nb_cores 84000 ( 480 x 175 ), nb_points 220 ( 11 x 20 ) 1338 nb_cores 84000 ( 240 x 350 ), nb_points 220 ( 20 x 11 ) 1339 nb_cores 85050 ( 270 x 315 ), nb_points 216 ( 18 x 12 ) 1340 nb_cores 87120 ( 360 x 242 ), nb_points 210 ( 14 x 15 ) 1341 nb_cores 88374 ( 309 x 286 ), nb_points 208 ( 16 x 13 ) 1342 nb_cores 90720 ( 288 x 315 ), nb_points 204 ( 17 x 12 ) 1343 nb_cores 90720 ( 432 x 210 ), nb_points 204 ( 12 x 17 ) 1344 nb_cores 94500 ( 270 x 350 ), nb_points 198 ( 18 x 11 ) 1345 nb_cores 94680 ( 360 x 263 ), nb_points 196 ( 14 x 14 ) 1346 nb_cores 95106 ( 393 x 242 ), nb_points 195 ( 13 x 15 ) 1347 nb_cores 97200 ( 432 x 225 ), nb_points 192 ( 12 x 16 ) 1348 nb_cores 99900 ( 540 x 185 ), nb_points 190 ( 10 x 19 ) -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/BENCH/EXPREF/namelist_cfg_orca025_like
r10539 r11822 9 9 nn_it000 = 1 ! first time step 10 10 nn_itend = 1000 ! last time step 11 nn_stock = 0! frequency of creation of a restart file (modulo referenced to 1)12 nn_write = 0! frequency of write in the output file (modulo referenced to nn_it000)11 nn_stock = -1 ! frequency of creation of a restart file (modulo referenced to 1) 12 nn_write = -1 ! frequency of write in the output file (modulo referenced to nn_it000) 13 13 / 14 14 !----------------------------------------------------------------------- … … 30 30 &namctl ! Control prints (default: OFF) 31 31 !----------------------------------------------------------------------- 32 ln_ctl = .false. ! trends control print (expensive!)33 32 nn_print = 0 ! level of print (0 no extra print) 34 33 ln_timing = .false. ! timing by routine write out in timing.output file -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/BENCH/EXPREF/namelist_cfg_orca12_like
r10539 r11822 9 9 nn_it000 = 1 ! first time step 10 10 nn_itend = 1000 ! last time step 11 nn_stock = 0! frequency of creation of a restart file (modulo referenced to 1)12 nn_write = 0! frequency of write in the output file (modulo referenced to nn_it000)11 nn_stock = -1 ! frequency of creation of a restart file (modulo referenced to 1) 12 nn_write = -1 ! frequency of write in the output file (modulo referenced to nn_it000) 13 13 / 14 14 !----------------------------------------------------------------------- … … 30 30 &namctl ! Control prints (default: OFF) 31 31 !----------------------------------------------------------------------- 32 ln_ctl = .false. ! trends control print (expensive!)33 32 nn_print = 0 ! level of print (0 no extra print) 34 33 ln_timing = .false. ! timing by routine write out in timing.output file -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/BENCH/EXPREF/namelist_cfg_orca1_like
r10539 r11822 9 9 nn_it000 = 1 ! first time step 10 10 nn_itend = 1000 ! last time step 11 nn_stock = 0! frequency of creation of a restart file (modulo referenced to 1)12 nn_write = 0! frequency of write in the output file (modulo referenced to nn_it000)11 nn_stock = -1 ! frequency of creation of a restart file (modulo referenced to 1) 12 nn_write = -1 ! frequency of write in the output file (modulo referenced to nn_it000) 13 13 / 14 14 !----------------------------------------------------------------------- … … 30 30 &namctl ! Control prints (default: OFF) 31 31 !----------------------------------------------------------------------- 32 ln_ctl = .false. ! trends control print (expensive!)33 32 nn_print = 0 ! level of print (0 no extra print) 34 33 ln_timing = .false. ! timing by routine write out in timing.output file -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/BENCH/EXPREF/namelist_ice_cfg
r10179 r11822 74 74 &namini ! Ice initialization 75 75 !------------------------------------------------------------------------------ 76 rn_thres_sst = 0.5 ! max delta temp. above Tfreeze with initial ice = (sst - tfreeze) 76 77 / 77 78 !------------------------------------------------------------------------------ -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/BENCH/EXPREF/namelist_top_cfg
r10343 r11822 57 57 ! ! file name ! frequency (hours) ! variable ! time interp. ! clim ! 'yearly'/ ! weights ! rotation ! land/sea mask ! 58 58 ! ! ! (if <0 months) ! name ! (logical) ! (T/F) ! 'monthly' ! filename ! pairing ! filename ! 59 sn_trcdta(1) = 'data_DIC_nomask' , -12 60 sn_trcdta(2) = 'data_Alkalini_nomask' , -12 61 sn_trcdta(3) = 'data_O2_nomask' , -1 62 sn_trcdta(5) = 'data_PO4_nomask' , -1 63 sn_trcdta(7) = 'data_Si_nomask' , -1 64 sn_trcdta(10) = 'data_DOC_nomask' , -12 65 sn_trcdta(14) = 'data_Fer_nomask' , -12 66 sn_trcdta(23) = 'data_NO3_nomask' , -1 59 sn_trcdta(1) = 'data_DIC_nomask' , -12. , 'DIC' , .false. , .true. , 'yearly' , '' , '' , '' 60 sn_trcdta(2) = 'data_Alkalini_nomask' , -12. , 'Alkalini', .false. , .true. , 'yearly' , '' , '' , '' 61 sn_trcdta(3) = 'data_O2_nomask' , -1. , 'O2' , .true. , .true. , 'yearly' , '' , '' , '' 62 sn_trcdta(5) = 'data_PO4_nomask' , -1. , 'PO4' , .true. , .true. , 'yearly' , '' , '' , '' 63 sn_trcdta(7) = 'data_Si_nomask' , -1. , 'Si' , .true. , .true. , 'yearly' , '' , '' , '' 64 sn_trcdta(10) = 'data_DOC_nomask' , -12. , 'DOC' , .false. , .true. , 'yearly' , '' , '' , '' 65 sn_trcdta(14) = 'data_Fer_nomask' , -12. , 'Fer' , .false. , .true. , 'yearly' , '' , '' , '' 66 sn_trcdta(23) = 'data_NO3_nomask' , -1. , 'NO3' , .true. , .true. , 'yearly' , '' , '' , '' 67 67 rn_trfac(1) = 1.0e-06 ! multiplicative factor 68 68 rn_trfac(2) = 1.0e-06 ! - - - - -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/BENCH/EXPREF/sh_bench
r9869 r11822 9 9 machine=$( hostname | sed -e "s/[0-9]*//g" ) 10 10 case $machine in 11 "jean-zay") ncore_node=40 ;; 11 12 "beaufixlogin") ncore_node=40 ;; 12 13 "curie") ncore_node=16 ;; -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/BENCH/EXPREF/submit_bench
r9870 r11822 6 6 # 7 7 set -u 8 set -vx8 #set -vx 9 9 # 10 10 cores=$1 … … 15 15 # 16 16 # number of processes for each executable 17 nproc_exe1=$( echo $cores | bc ) 18 (( nproc = $nproc_exe1 )) 19 (( nnode = $nproc / $ncore_node )) 20 [ $nnode -lt 1 ] && nnode=1 17 nproc_exe1=$( echo $cores | bc ) 18 nproc=$nproc_exe1 19 nnode=$(( ( $nproc + $ncore_node - 1 ) / $ncore_node )) 21 20 22 21 nproc5=$( printf "%05d\n" ${nproc_exe1} ) 22 23 case ${resolution} in 24 "1") 25 if [ $nproc_exe1 -lt 50 ] 26 then 27 timejob=3600 28 elif [ $nproc_exe1 -lt 100 ] 29 then 30 timejob=1800 31 elif [ $nproc_exe1 -lt 200 ] 32 then 33 timejob=900 34 else 35 timejob=600 36 fi 37 ;; 38 "025") 39 if [ $nproc_exe1 -lt 50 ] 40 then 41 timejob=15000 42 elif [ $nproc_exe1 -lt 100 ] 43 then 44 timejob=7000 45 elif [ $nproc_exe1 -lt 200 ] 46 then 47 timejob=3600 48 elif [ $nproc_exe1 -lt 400 ] 49 then 50 timejob=2000 51 elif [ $nproc_exe1 -lt 800 ] 52 then 53 timejob=1000 54 else 55 timejob=600 56 fi 57 ;; 58 "12") 59 if [ $nproc_exe1 -lt 200 ] 60 then 61 timejob=30000 62 elif [ $nproc_exe1 -lt 400 ] 63 then 64 timejob=15000 65 elif [ $nproc_exe1 -lt 800 ] 66 then 67 timejob=20000 68 elif [ $nproc_exe1 -lt 1600 ] 69 then 70 timejob=15000 71 elif [ $nproc_exe1 -lt 3200 ] 72 then 73 timejob=7500 74 elif [ $nproc_exe1 -lt 10000 ] 75 then 76 timejob=5000 77 elif [ $nproc_exe1 -lt 20000 ] 78 then 79 timejob=2500 80 else 81 timejob=1200 82 fi 83 ;; 84 esac 85 23 86 24 87 ###################################################################### … … 100 163 if [[ ( "$machine" == "curie" ) || ( "$machine" == "irene" ) ]] 101 164 then 102 103 case ${resolution} in104 "1")105 if [ $nproc_exe1 -lt 50 ]106 then107 timejob=3600108 elif [ $nproc_exe1 -lt 100 ]109 then110 timejob=1800111 elif [ $nproc_exe1 -lt 200 ]112 then113 timejob=900114 else115 timejob=600116 fi117 ;;118 "025")119 if [ $nproc_exe1 -lt 50 ]120 then121 timejob=15000122 elif [ $nproc_exe1 -lt 100 ]123 then124 timejob=7000125 elif [ $nproc_exe1 -lt 200 ]126 then127 timejob=3600128 elif [ $nproc_exe1 -lt 400 ]129 then130 timejob=2000131 elif [ $nproc_exe1 -lt 800 ]132 then133 timejob=1000134 else135 timejob=600136 fi137 ;;138 "12")139 if [ $nproc_exe1 -lt 200 ]140 then141 timejob=30000142 elif [ $nproc_exe1 -lt 400 ]143 then144 timejob=15000145 elif [ $nproc_exe1 -lt 800 ]146 then147 timejob=8000148 elif [ $nproc_exe1 -lt 1600 ]149 then150 timejob=5000151 elif [ $nproc_exe1 -lt 3200 ]152 then153 timejob=2500154 else155 timejob=1200156 fi157 ;;158 esac159 165 160 166 [ "$machine" == "curie" ] && queuename=standard || queuename=skylake 161 167 162 jobname=$HOME/binrun/jobbench 168 EXPjob=../EXP_${resolution}_${nproc5}_${dateref} 169 mkdir -p ${EXPjob} 170 cd ${EXPjob} 171 jobname=jobbench 163 172 cat > $jobname << EOF 164 173 #!/bin/bash … … 176 185 # 177 186 178 cd \${BRIDGE_MSUB_PWD}/.. 179 180 181 EXPjob=EXP_${resolution}_${nproc5}_${dateref} 182 rsync -av --exclude="*eo" EXPREF/ \${EXPjob}/ 183 rsync -av EXP00/nemo \${EXPjob}/nemo 184 cd \${EXPjob} 187 cd \${BRIDGE_MSUB_PWD} 188 189 for ff in \${BRIDGE_MSUB_PWD}/../EXPREF/namelist_*cfg \${BRIDGE_MSUB_PWD}/../EXPREF/namelist_*ref \${BRIDGE_MSUB_PWD}/../BLD/bin/nemo.exe 190 do 191 cp \$ff . 192 done 185 193 186 194 jpni=${cores/\**/} 187 195 jpnj=${cores/?*\*/} 188 196 189 sed -e "s/jpni *=.*/jpni = \${jpni}/" -e "s/jpnj *=.*/jpnj = \${jpnj}/" namelist_cfg_orca${resolution}_like > namelist_cfg 190 191 time ccc_mprun -n \${BRIDGE_MSUB_NPROC} ./nemo > jobout_${resolution}_${nproc5}_${dateref} 197 sed -e "s/jpni *=.*/jpni = \${jpni}/" \ 198 -e "s/jpnj *=.*/jpnj = \${jpnj}/"\ 199 -e "s/ln_timing *= *.false./ln_timing = .true./" \ 200 \${BRIDGE_MSUB_PWD}/../EXPREF/namelist_cfg_orca${resolution}_like > namelist_cfg 201 202 time ccc_mprun -n \${BRIDGE_MSUB_NPROC} ./nemo.exe > jobout_${resolution}_${nproc5}_${dateref} 2>&1 192 203 193 204 EOF … … 196 207 197 208 fi 209 210 ###################################################################### 211 ### Jean-Zay 212 ###################################################################### 213 214 if [ "$machine" == "jean-zay" ] 215 then 216 hh=$( printf "%02d\n" $(( ${timejob} / 3600 )) ) 217 mm=$( printf "%02d\n" $(( ( ${timejob} % 3600 ) / 60 )) ) 218 ss=$( printf "%02d\n" $(( ( ${timejob} % 3600 ) % 60 )) ) 219 220 EXPjob=../EXP_${resolution}_${nproc5}_${dateref} 221 mkdir -p ${EXPjob} 222 cd ${EXPjob} 223 jobname=jobbench 224 cat > $jobname << EOF 225 #!/bin/bash 226 #SBATCH --job-name=Seq # nom du job 227 #SBATCH --partition=cpu_gct3 # demande d'allocation sur la partition CPU 228 #SBATCH --nodes=${nnode} # nombre de noeuds 229 #SBATCH --ntasks-per-node=${ncore_node} # nombre de taches MPI par noeud 230 #SBATCH --ntasks-per-core=1 # 1 processus MPI par coeur physique (pas d'hyperthreading) 231 #SBATCH --time=${hh}:${mm}:${ss} # temps d execution maximum demande (HH:MM:SS) 232 #SBATCH --output=bench_${resolution}_${nproc5}_%j.eo # nom du fichier de sortie 233 #SBATCH --error=bench_${resolution}_${nproc5}_%j.eo # nom du fichier d'erreur (ici en commun avec la sortie) 234 #========================================== 235 set -u 236 #set -xv 237 # 238 #cd \${SLURM_SUBMIT_DIR} 239 cd \${JOBSCRATCH} 240 pwd 241 242 for ff in \${SLURM_SUBMIT_DIR}/../EXPREF/namelist_*cfg \${SLURM_SUBMIT_DIR}/../EXPREF/namelist_*ref \${SLURM_SUBMIT_DIR}/../BLD/bin/nemo.exe 243 do 244 cp \$ff . 245 done 246 247 jpni=${cores/\**/} 248 jpnj=${cores/?*\*/} 249 250 sed -e "s/jpni *=.*/jpni = \${jpni}/" \ 251 -e "s/jpnj *=.*/jpnj = \${jpnj}/" \ 252 -e "s/ln_timing *= *.false./ln_timing = .true./" \ 253 \${SLURM_SUBMIT_DIR}/../EXPREF/namelist_cfg_orca${resolution}_like > namelist_cfg 254 255 ls -l 256 257 echo 258 echo 259 echo " =========== start the model ===========" 260 echo 261 echo 262 263 time srun --mpi=pmi2 --cpu-bind=cores -K1 -n ${nproc} ./nemo.exe > jobout_${resolution}_${nproc5}_${dateref} 2>&1 264 265 ls -l 266 267 if [ "\$( pwd )" != "\${SLURM_SUBMIT_DIR}" ] 268 then 269 rsync -av namelist_cfg time.step ocean.output jobout_${resolution}_${nproc5}_${dateref} communication_report.txt layout.dat timing.output output.namelist* \${SLURM_SUBMIT_DIR} 270 fi 271 272 EOF 273 274 sbatch $jobname 275 276 fi -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/BENCH/MY_SRC/diawri.F90
r11758 r11822 211 211 ENDIF 212 212 213 IF( ln_zad_Aimp ) ww = ww + wi ! Recombine explicit and implicit parts of vertical velocity for diagnostic output 214 ! 213 215 CALL iom_put( "woce", ww ) ! vertical velocity 214 216 IF( iom_use('w_masstr') .OR. iom_use('w_masstr2') ) THEN ! vertical mass transport & its square value … … 221 223 IF( iom_use('w_masstr2') ) CALL iom_put( "w_masstr2", z3d(:,:,:) * z3d(:,:,:) ) 222 224 ENDIF 225 ! 226 IF( ln_zad_Aimp ) ww = ww - wi ! Remove implicit part of vertical velocity that was added for diagnostic output 223 227 224 228 CALL iom_put( "avt" , avt ) ! T vert. eddy diff. coef. … … 460 464 CALL iom_rstput( 0, 0, inum, 'vozocrtx', uu(:,:,:,Kmm) ) ! now i-velocity 461 465 CALL iom_rstput( 0, 0, inum, 'vomecrty', vv(:,:,:,Kmm) ) ! now j-velocity 462 CALL iom_rstput( 0, 0, inum, 'vovecrtz', ww ) ! now k-velocity 466 IF( ln_zad_Aimp ) THEN 467 CALL iom_rstput( 0, 0, inum, 'vovecrtz', ww + wi ) ! now k-velocity 468 ELSE 469 CALL iom_rstput( 0, 0, inum, 'vovecrtz', ww ) ! now k-velocity 470 ENDIF 463 471 IF( ALLOCATED(ahtu) ) THEN 464 472 CALL iom_rstput( 0, 0, inum, 'ahtu', ahtu ) ! aht at u-point -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/BENCH/MY_SRC/usrdef_istate.F90
r10179 r11822 64 64 DO jj = 1, jpj 65 65 DO ji = 1, jpi 66 z2d(ji,jj) = 0.1 * ( 0.5 - REAL( nimpp + ji - 1 + ( njmpp + jj - 2) * jpiglo, wp ) / REAL( jpiglo * jpjglo, wp ) )66 z2d(ji,jj) = 0.1 * ( 0.5 - REAL( mig(ji) + mjg(jj) * jpiglo, wp ) / REAL( jpiglo * jpjglo, wp ) ) 67 67 ENDDO 68 68 ENDDO … … 73 73 DO jk = 1, jpk 74 74 zfact = REAL(jk-1,wp) / REAL(jpk-1,wp) ! 0 to 1 to add a basic stratification 75 ! temperature choosen to lead to 20% ice 76 pts(:,:,jk,jp_tem) = 2._wp - 0.1_wp * zfact + z2d(:,:) * 100._wp ! 2 to 1.9 +/- 5 degG 77 WHERE ( pts(:,:,jk,jp_tem) < -1.5_wp ) pts(:,:,jk,jp_tem) = -1.5_wp + z2d(:,:) * 0.2_wp 75 ! temperature choosen to lead to ~50% ice at the beginning if rn_thres_sst = 0.5 76 pts(:,:,jk,jp_tem) = 20._wp*z2d(:,:) - 1._wp - 0.5_wp * zfact ! -1 to -1.5 +/-1.0 degG 78 77 ! salinity: 79 78 pts(:,:,jk,jp_sal) = 30._wp + 1._wp * zfact + z2d(:,:) ! 30 to 31 +/- 0.05 psu … … 84 83 ! 85 84 CALL lbc_lnk('usrdef_istate', pssh, 'T', 1. ) ! apply boundary conditions 86 CALL lbc_lnk( 'usrdef_istate',pts, 'T', 1. ) ! apply boundary conditions87 CALL lbc_lnk( 'usrdef_istate',pu, 'U', -1. ) ! apply boundary conditions88 CALL lbc_lnk( 'usrdef_istate',pv, 'V', -1. ) ! apply boundary conditions85 CALL lbc_lnk('usrdef_istate', pts, 'T', 1. ) ! apply boundary conditions 86 CALL lbc_lnk('usrdef_istate', pu, 'U', -1. ) ! apply boundary conditions 87 CALL lbc_lnk('usrdef_istate', pv, 'V', -1. ) ! apply boundary conditions 89 88 90 89 END SUBROUTINE usr_def_istate -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/BENCH/MY_SRC/usrdef_nam.F90
r10428 r11822 29 29 CONTAINS 30 30 31 SUBROUTINE usr_def_nam( ldtxt, ldnam,cd_cfg, kk_cfg, kpi, kpj, kpk, kperio )31 SUBROUTINE usr_def_nam( cd_cfg, kk_cfg, kpi, kpj, kpk, kperio ) 32 32 !!---------------------------------------------------------------------- 33 33 !! *** ROUTINE dom_nam *** … … 41 41 !! ** input : - namusr_def namelist found in namelist_cfg 42 42 !!---------------------------------------------------------------------- 43 CHARACTER(len=*), DIMENSION(:), INTENT(out) :: ldtxt, ldnam ! stored print information44 43 CHARACTER(len=*) , INTENT(out) :: cd_cfg ! configuration name 45 44 INTEGER , INTENT(out) :: kk_cfg ! configuration resolution … … 48 47 ! 49 48 ! 50 INTEGER :: ios , ii! Local integer49 INTEGER :: ios ! Local integer 51 50 ! !!* namusr_def namelist *!! 52 51 INTEGER :: nn_isize ! number of point in i-direction of global(local) domain if >0 (<0) … … 55 54 INTEGER :: nn_perio ! periodicity 56 55 ! !!* nammpp namelist *!! 57 CHARACTER(len=1) :: cn_mpi_send 58 INTEGER :: nn_buffer, jpni, jpnj 56 INTEGER :: jpni, jpnj 59 57 LOGICAL :: ln_nnogather 60 58 !! 61 59 NAMELIST/namusr_def/ nn_isize, nn_jsize, nn_ksize, nn_perio 62 NAMELIST/nammpp/ cn_mpi_send, nn_buffer,jpni, jpnj, ln_nnogather60 NAMELIST/nammpp/ jpni, jpnj, ln_nnogather 63 61 !!---------------------------------------------------------------------- 64 62 ! 65 63 REWIND( numnam_cfg ) ! Namelist namusr_def (exist in namelist_cfg only) 66 64 READ ( numnam_cfg, namusr_def, IOSTAT = ios, ERR = 903 ) 67 903 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namusr_def in configuration namelist', .TRUE. ) 68 WRITE( ldnam(:), namusr_def ) 65 903 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namusr_def in configuration namelist' ) 66 ! 67 IF(lwm) WRITE( numond, namusr_def ) 69 68 ! 70 69 cd_cfg = 'BENCH' ! name & resolution (not used) 71 70 kk_cfg = 0 72 71 ! 73 72 IF( nn_isize < 0 .AND. nn_jsize < 0 ) THEN 74 73 ! 75 74 REWIND( numnam_ref ) ! Namelist nammpp in reference namelist: mpi variables 76 75 READ ( numnam_ref, nammpp, IOSTAT = ios, ERR = 901) 77 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nammpp in reference namelist' , lwp)76 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nammpp in reference namelist' ) 78 77 ! 79 78 REWIND( numnam_cfg ) ! Namelist nammpp in configuration namelist: mpi variables 80 79 READ ( numnam_cfg, nammpp, IOSTAT = ios, ERR = 902 ) 81 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'nammpp in configuration namelist' , lwp)80 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'nammpp in configuration namelist' ) 82 81 83 82 kpi = ( -nn_isize - 2*nn_hls ) * jpni + 2*nn_hls … … 87 86 kpj = nn_jsize 88 87 ENDIF 89 88 ! 90 89 kpk = nn_ksize 91 90 kperio = nn_perio 92 93 91 ! ! control print 94 ii = 1 95 WRITE(ldtxt(ii),*) ' ' ; ii = ii + 1 96 WRITE(ldtxt(ii),*) 'usr_def_nam : read the user defined namelist (namusr_def) in namelist_cfg' ; ii = ii + 1 97 WRITE(ldtxt(ii),*) '~~~~~~~~~~~ ' ; ii = ii + 1 98 WRITE(ldtxt(ii),*) ' Namelist namusr_def : BENCH test case' ; ii = ii + 1 99 IF( nn_isize > 0 ) THEN 100 WRITE(ldtxt(ii),*) ' global domain size-x nn_isize = ', nn_isize ; ii = ii + 1 101 ELSE 102 WRITE(ldtxt(ii),*) ' jpni = ', jpni ; ii = ii + 1 103 WRITE(ldtxt(ii),*) ' local domain size-x -nn_isize = ', -nn_isize ; ii = ii + 1 104 WRITE(ldtxt(ii),*) ' global domain size-x kpi = ', kpi ; ii = ii + 1 92 IF(lwp) THEN 93 WRITE(numout,*) ' ' 94 WRITE(numout,*) 'usr_def_nam : read the user defined namelist (namusr_def) in namelist_cfg' 95 WRITE(numout,*) '~~~~~~~~~~~ ' 96 WRITE(numout,*) ' Namelist namusr_def : BENCH test case' 97 IF( nn_isize > 0 ) THEN 98 WRITE(numout,*) ' global domain size-x nn_isize = ', nn_isize 99 ELSE 100 WRITE(numout,*) ' jpni = ', jpni 101 WRITE(numout,*) ' local domain size-x -nn_isize = ', -nn_isize 102 WRITE(numout,*) ' global domain size-x kpi = ', kpi 103 ENDIF 104 IF( nn_jsize > 0 ) THEN 105 WRITE(numout,*) ' global domain size-y nn_jsize = ', nn_jsize 106 ELSE 107 WRITE(numout,*) ' jpnj = ', jpnj 108 WRITE(numout,*) ' local domain size-y -nn_jsize = ', -nn_jsize 109 WRITE(numout,*) ' global domain size-y kpj = ', kpj 110 ENDIF 111 WRITE(numout,*) ' global domain size-z nn_ksize = ', nn_ksize 112 WRITE(numout,*) ' LBC of the global domain kperio = ', kperio 105 113 ENDIF 106 IF( nn_jsize > 0 ) THEN107 WRITE(ldtxt(ii),*) ' global domain size-y nn_jsize = ', nn_jsize ; ii = ii + 1108 ELSE109 WRITE(ldtxt(ii),*) ' jpnj = ', jpnj ; ii = ii + 1110 WRITE(ldtxt(ii),*) ' local domain size-y -nn_jsize = ', -nn_jsize ; ii = ii + 1111 WRITE(ldtxt(ii),*) ' global domain size-y kpj = ', kpj ; ii = ii + 1112 ENDIF113 WRITE(ldtxt(ii),*) ' global domain size-z nn_ksize = ', nn_ksize ; ii = ii + 1114 WRITE(ldtxt(ii),*) ' LBC of the global domain kperio = ', kperio ; ii = ii + 1115 114 ! 116 115 END SUBROUTINE usr_def_nam -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/BENCH/MY_SRC/usrdef_zgr.F90
r10170 r11822 194 194 z2d(:,:) = REAL( jpkm1 , wp ) ! flat bottom 195 195 ! 196 IF( jperio == 3 .OR. jperio ==4 ) THEN ! add a small island in the upper corners to avoid model instabilities... 197 z2d(mi0( 1):mi1( 3),mj0(jpjglo-2):mj1(jpjglo)) = 0. 198 z2d(mi0(jpiglo-2):mi1(jpiglo),mj0(jpjglo-2):mj1(jpjglo)) = 0. 199 ENDIF 200 ! 196 201 CALL lbc_lnk( 'usrdef_zgr', z2d, 'T', 1. ) ! set surrounding land to zero (here jperio=0 ==>> closed) 197 202 ! -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/BENCH/MY_SRC/zdfiwm.F90
r11758 r11822 407 407 REWIND( numnam_ref ) ! Namelist namzdf_iwm in reference namelist : Wave-driven mixing 408 408 READ ( numnam_ref, namzdf_iwm, IOSTAT = ios, ERR = 901) 409 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_iwm in reference namelist' , lwp)409 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzdf_iwm in reference namelist' ) 410 410 ! 411 411 REWIND( numnam_cfg ) ! Namelist namzdf_iwm in configuration namelist : Wave-driven mixing 412 412 READ ( numnam_cfg, namzdf_iwm, IOSTAT = ios, ERR = 902 ) 413 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namzdf_iwm in configuration namelist' , lwp)413 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namzdf_iwm in configuration namelist' ) 414 414 IF(lwm) WRITE ( numond, namzdf_iwm ) 415 415 ! -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/CANAL/EXPREF/context_nemo.xml
r9930 r11822 6 6 <context id="nemo"> 7 7 <!-- $id$ --> 8 <variable_definition> 9 <!-- Year of time origin for NetCDF files; defaults to 1800 --> 10 <variable id="ref_year" type="int" > 1800 </variable> 11 <variable id="rau0" type="float" > 1026.0 </variable> 12 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 13 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 14 <variable id="rhoic" type="float" > 917.0 </variable> 15 <variable id="rhosn" type="float" > 330.0 </variable> 16 <variable id="missval" type="float" > 1.e20 </variable> 17 </variable_definition> 8 18 <!-- Fields definition --> 9 19 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> … … 18 28 19 29 <axis_definition> 20 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" />21 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" />22 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" />23 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" />24 <axis id="nfloat" long_name="Float number" unit="-" />25 <axis id="icbcla" long_name="Iceberg class" unit="1"/>26 <axis id="ncatice" long_name="Ice category" unit="1"/>27 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC"/>28 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC"/>30 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 31 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" /> 32 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" /> 33 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" /> 34 <axis id="nfloat" long_name="Float number" unit="-" /> 35 <axis id="icbcla" long_name="Iceberg class" unit="1" /> 36 <axis id="ncatice" long_name="Ice category" unit="1" /> 37 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC" /> 38 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC" /> 29 39 </axis_definition> 30 40 -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/CANAL/EXPREF/namelist_cfg
r10075 r11822 275 275 !! namdiu Cool skin and warm layer models (default: OFF) 276 276 !! namdiu Cool skin and warm layer models (default: OFF) 277 !! namflo float parameters ( "key_float")278 !! nam_diaharm Harmonic analysis of tidal constituents ( "key_diaharm")279 !! nam dct transports through some sections ("key_diadct")277 !! namflo float parameters (default: OFF) 278 !! nam_diaharm Harmonic analysis of tidal constituents (default: OFF) 279 !! nam_diadct transports through some sections (default: OFF) 280 280 !! nam_diatmb Top Middle Bottom Output (default: OFF) 281 281 !! nam_dia25h 25h Mean Output (default: OFF) -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/CANAL/MY_SRC/diawri.F90
r11771 r11822 532 532 !! define all the NETCDF files and fields 533 533 !! At each time step call histdef to compute the mean if ncessary 534 !! Each n write time step, output the instantaneous or mean fields534 !! Each nn_write time step, output the instantaneous or mean fields 535 535 !!---------------------------------------------------------------------- 536 536 INTEGER, INTENT( in ) :: kt ! ocean time-step index … … 549 549 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zw3d ! 3D workspace 550 550 !!---------------------------------------------------------------------- 551 !552 IF( ln_timing ) CALL timing_start('dia_wri')553 551 ! 554 552 IF( ninist == 1 ) THEN !== Output the initial state and forcings ==! … … 557 555 ENDIF 558 556 ! 557 IF( nn_write == -1 ) RETURN ! we will never do any output 558 ! 559 IF( ln_timing ) CALL timing_start('dia_wri') 560 ! 559 561 ! 0. Initialisation 560 562 ! ----------------- … … 566 568 clop = "x" ! no use of the mask value (require less cpu time and otherwise the model crashes) 567 569 #if defined key_diainstant 568 zsto = n write * rdt570 zsto = nn_write * rdt 569 571 clop = "inst("//TRIM(clop)//")" 570 572 #else … … 572 574 clop = "ave("//TRIM(clop)//")" 573 575 #endif 574 zout = n write * rdt576 zout = nn_write * rdt 575 577 zmax = ( nitend - nit000 + 1 ) * rdt 576 578 … … 603 605 ! WRITE root name in date.file for use by postpro 604 606 IF(lwp) THEN 605 CALL dia_nam( clhstnam, n write,' ' )607 CALL dia_nam( clhstnam, nn_write,' ' ) 606 608 CALL ctl_opn( inum, 'date.file', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea ) 607 609 WRITE(inum,*) clhstnam … … 611 613 ! Define the T grid FILE ( nid_T ) 612 614 613 CALL dia_nam( clhstnam, n write, 'grid_T' )615 CALL dia_nam( clhstnam, nn_write, 'grid_T' ) 614 616 IF(lwp) WRITE(numout,*) " Name of NETCDF file ", clhstnam ! filename 615 617 CALL histbeg( clhstnam, jpi, glamt, jpj, gphit, & ! Horizontal grid: glamt and gphit … … 647 649 ! Define the U grid FILE ( nid_U ) 648 650 649 CALL dia_nam( clhstnam, n write, 'grid_U' )651 CALL dia_nam( clhstnam, nn_write, 'grid_U' ) 650 652 IF(lwp) WRITE(numout,*) " Name of NETCDF file ", clhstnam ! filename 651 653 CALL histbeg( clhstnam, jpi, glamu, jpj, gphiu, & ! Horizontal grid: glamu and gphiu … … 660 662 ! Define the V grid FILE ( nid_V ) 661 663 662 CALL dia_nam( clhstnam, n write, 'grid_V' ) ! filename664 CALL dia_nam( clhstnam, nn_write, 'grid_V' ) ! filename 663 665 IF(lwp) WRITE(numout,*) " Name of NETCDF file ", clhstnam 664 666 CALL histbeg( clhstnam, jpi, glamv, jpj, gphiv, & ! Horizontal grid: glamv and gphiv … … 673 675 ! Define the W grid FILE ( nid_W ) 674 676 675 CALL dia_nam( clhstnam, n write, 'grid_W' ) ! filename677 CALL dia_nam( clhstnam, nn_write, 'grid_W' ) ! filename 676 678 IF(lwp) WRITE(numout,*) " Name of NETCDF file ", clhstnam 677 679 CALL histbeg( clhstnam, jpi, glamt, jpj, gphit, & ! Horizontal grid: glamt and gphit … … 764 766 ENDIF 765 767 766 IF( .NOT. ln_cpl) THEN768 IF( ln_ssr ) THEN 767 769 CALL histdef( nid_T, "sohefldp", "Surface Heat Flux: Damping" , "W/m2" , & ! qrp 768 770 & jpi, jpj, nh_T, 1 , 1, 1 , -99 , 32, clop, zsto, zout ) … … 772 774 & jpi, jpj, nh_T, 1 , 1, 1 , -99 , 32, clop, zsto, zout ) 773 775 ENDIF 774 775 IF( ln_cpl .AND. nn_ice <= 1 ) THEN 776 CALL histdef( nid_T, "sohefldp", "Surface Heat Flux: Damping" , "W/m2" , & ! qrp 777 & jpi, jpj, nh_T, 1 , 1, 1 , -99 , 32, clop, zsto, zout ) 778 CALL histdef( nid_T, "sowafldp", "Surface Water Flux: Damping" , "Kg/m2/s", & ! erp 779 & jpi, jpj, nh_T, 1 , 1, 1 , -99 , 32, clop, zsto, zout ) 780 CALL histdef( nid_T, "sosafldp", "Surface salt flux: Damping" , "Kg/m2/s", & ! erp * sn 781 & jpi, jpj, nh_T, 1 , 1, 1 , -99 , 32, clop, zsto, zout ) 782 ENDIF 783 776 784 777 clmx ="l_max(only(x))" ! max index on a period 785 778 ! CALL histdef( nid_T, "sobowlin", "Bowl Index" , "W-point", & ! bowl INDEX … … 857 850 ! donne le nombre d'elements, et ndex la liste des indices a sortir 858 851 859 IF( lwp .AND. MOD( itmod, n write ) == 0 ) THEN852 IF( lwp .AND. MOD( itmod, nn_write ) == 0 ) THEN 860 853 WRITE(numout,*) 'dia_wri : write model outputs in NetCDF files at ', kt, 'time-step' 861 854 WRITE(numout,*) '~~~~~~ ' … … 921 914 ENDIF 922 915 923 IF( .NOT. ln_cpl) THEN916 IF( ln_ssr ) THEN 924 917 CALL histwrite( nid_T, "sohefldp", it, qrp , ndim_hT, ndex_hT ) ! heat flux damping 925 918 CALL histwrite( nid_T, "sowafldp", it, erp , ndim_hT, ndex_hT ) ! freshwater flux damping 926 IF( ln_ssr ) zw2d(:,:) = erp(:,:) * ts(:,:,1,jp_sal,Kmm) * tmask(:,:,1) 927 CALL histwrite( nid_T, "sosafldp", it, zw2d , ndim_hT, ndex_hT ) ! salt flux damping 928 ENDIF 929 IF( ln_cpl .AND. nn_ice <= 1 ) THEN 930 CALL histwrite( nid_T, "sohefldp", it, qrp , ndim_hT, ndex_hT ) ! heat flux damping 931 CALL histwrite( nid_T, "sowafldp", it, erp , ndim_hT, ndex_hT ) ! freshwater flux damping 932 IF( ln_ssr ) zw2d(:,:) = erp(:,:) * ts(:,:,1,jp_sal,Kmm) * tmask(:,:,1) 919 zw2d(:,:) = erp(:,:) * ts(:,:,1,jp_sal,Kmm) * tmask(:,:,1) 933 920 CALL histwrite( nid_T, "sosafldp", it, zw2d , ndim_hT, ndex_hT ) ! salt flux damping 934 921 ENDIF -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/CANAL/MY_SRC/domvvl.F90
r11771 r11822 994 994 REWIND( numnam_ref ) ! Namelist nam_vvl in reference namelist : 995 995 READ ( numnam_ref, nam_vvl, IOSTAT = ios, ERR = 901) 996 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_vvl in reference namelist' , lwp)996 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_vvl in reference namelist' ) 997 997 REWIND( numnam_cfg ) ! Namelist nam_vvl in configuration namelist : Parameters of the run 998 998 READ ( numnam_cfg, nam_vvl, IOSTAT = ios, ERR = 902 ) 999 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'nam_vvl in configuration namelist' , lwp)999 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'nam_vvl in configuration namelist' ) 1000 1000 IF(lwm) WRITE ( numond, nam_vvl ) 1001 1001 ! -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/CANAL/MY_SRC/usrdef_nam.F90
r10074 r11822 58 58 CONTAINS 59 59 60 SUBROUTINE usr_def_nam( ldtxt, ldnam,cd_cfg, kk_cfg, kpi, kpj, kpk, kperio )60 SUBROUTINE usr_def_nam( cd_cfg, kk_cfg, kpi, kpj, kpk, kperio ) 61 61 !!---------------------------------------------------------------------- 62 62 !! *** ROUTINE dom_nam *** … … 70 70 !! ** input : - namusr_def namelist found in namelist_cfg 71 71 !!---------------------------------------------------------------------- 72 CHARACTER(len=*), DIMENSION(:), INTENT(out) :: ldtxt, ldnam ! stored print information73 72 CHARACTER(len=*) , INTENT(out) :: cd_cfg ! configuration name 74 73 INTEGER , INTENT(out) :: kk_cfg ! configuration resolution … … 76 75 INTEGER , INTENT(out) :: kperio ! lateral global domain b.c. 77 76 ! 78 INTEGER :: ios , ii! Local integer79 REAL(wp):: zh ! Local scalars77 INTEGER :: ios ! Local integer 78 REAL(wp):: zh ! Local scalars 80 79 !! 81 80 NAMELIST/namusr_def/ rn_domszx, rn_domszy, rn_domszz, rn_dx, rn_dy, rn_dz, rn_0xratio, rn_0yratio & … … 85 84 !!---------------------------------------------------------------------- 86 85 ! 87 ii = 188 !89 86 REWIND( numnam_cfg ) ! Namelist namusr_def (exist in namelist_cfg only) 90 87 READ ( numnam_cfg, namusr_def, IOSTAT = ios, ERR = 902 ) 91 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namusr_def in configuration namelist', .TRUE. ) 88 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namusr_def in configuration namelist', cdtxt ) 89 ! 90 IF(lwm) WRITE( numond, namusr_def ) 92 91 ! 93 92 #if defined key_agrif … … 103 102 #endif 104 103 ! 105 WRITE( ldnam(:), namusr_def )104 IF(lwm) WRITE( numond, namusr_def ) 106 105 ! 107 106 cd_cfg = 'EW_CANAL' ! name & resolution (not used) … … 120 119 ! 121 120 zh = (kpk-1)*rn_dz 122 ! ! control print123 WRITE(ldtxt(ii),*) ' ' ; ii = ii + 1124 WRITE(ldtxt(ii),*) 'usr_def_nam : read the user defined namelist (namusr_def) in namelist_cfg' ; ii = ii + 1125 WRITE(ldtxt(ii),*) '~~~~~~~~~~~ ' ; ii = ii + 1126 WRITE(ldtxt(ii),*) ' Namelist namusr_def : EW_CANAL test case' ; ii = ii + 1127 WRITE(ldtxt(ii),*) ' horizontal domain size-x rn_domszx = ', rn_domszx, ' km' ; ii = ii + 1128 WRITE(ldtxt(ii),*) ' horizontal domain size-y rn_domszy = ', rn_domszy, ' km' ; ii = ii + 1129 WRITE(ldtxt(ii),*) ' vertical domain size-z rn_domszz = ', rn_domszz, ' m' ; ii = ii + 1130 WRITE(ldtxt(ii),*) ' horizontal x-resolution rn_dx = ', rn_dx, ' km' ; ii = ii + 1131 WRITE(ldtxt(ii),*) ' horizontal y-resolution rn_dy = ', rn_dy, ' km' ; ii = ii + 1132 WRITE(ldtxt(ii),*) ' vertical resolution rn_dz = ', rn_dz, ' m' ; ii = ii + 1133 WRITE(ldtxt(ii),*) ' x-domain ratio of the 0 rn_0xratio = ', rn_0xratio ; ii = ii + 1134 WRITE(ldtxt(ii),*) ' y-domain ratio of the 0 rn_0yratio = ', rn_0yratio ; ii = ii + 1135 WRITE(ldtxt(ii),*) ' H [m] : ', zh ; ii = ii + 1136 WRITE(ldtxt(ii),*) ' F computation nn_fcase = ', nn_fcase ; ii = ii + 1137 WRITE(ldtxt(ii),*) ' Reference latitude rn_ppgphi0 = ', rn_ppgphi0 ; ii = ii + 1138 WRITE(ldtxt(ii),*) ' 10m wind speed rn_u10 = ', rn_u10, ' m/s' ; ii = ii + 1139 WRITE(ldtxt(ii),*) ' wind latitudinal extension rn_windszy = ', rn_windszy, ' km' ; ii = ii + 1140 WRITE(ldtxt(ii),*) ' wind longitudinal extension rn_windszx = ', rn_windszx, ' km' ; ii = ii + 1141 WRITE(ldtxt(ii),*) ' Uoce multiplicative factor rn_uofac = ', rn_uofac ; ii = ii + 1142 WRITE(ldtxt(ii),*) ' initial Canal max current rn_vtxmax = ', rn_vtxmax, ' m/s' ; ii = ii + 1143 WRITE(ldtxt(ii),*) ' initial zonal current rn_uzonal = ', rn_uzonal, ' m/s' ; ii = ii + 1144 WRITE(ldtxt(ii),*) ' Jet latitudinal extension rn_ujetszy = ', rn_ujetszy, ' km' ; ii = ii + 1145 WRITE(ldtxt(ii),*) ' Jet longitudinal extension rn_ujetszx = ', rn_ujetszx, ' km' ; ii = ii + 1146 WRITE(ldtxt(ii),*) ' bottom definition (0:flat) nn_botcase = ', nn_botcase ; ii = ii + 1147 WRITE(ldtxt(ii),*) ' initial condition case nn_initcase= ', nn_initcase ; ii = ii + 1148 WRITE(ldtxt(ii),*) ' (0:rest, 1:zonal current, 10:shear)' ; ii = ii + 1149 WRITE(ldtxt(ii),*) ' add random noise on initial ssh ln_sshnoise= ', ln_sshnoise ; ii = ii + 1150 WRITE(ldtxt(ii),*) ' Gaussian lambda parameter rn_lambda = ', rn_lambda ; ii = ii + 1151 !152 121 ! ! Set the lateral boundary condition of the global domain 153 122 kperio = 1 ! EW_CANAL configuration : closed basin 154 ! 155 WRITE(ldtxt(ii),*) ' ' ; ii = ii + 1 156 WRITE(ldtxt(ii),*) ' Lateral boundary condition of the global domain' ; ii = ii + 1 157 WRITE(ldtxt(ii),*) ' EW_CANAL : closed basin jperio = ', kperio ; ii = ii + 1 123 ! ! control print 124 IF(lwp) THEN 125 WRITE(numout,*) ' ' 126 WRITE(numout,*) 'usr_def_nam : read the user defined namelist (namusr_def) in namelist_cfg' 127 WRITE(numout,*) '~~~~~~~~~~~ ' 128 WRITE(numout,*) ' Namelist namusr_def : EW_CANAL test case' 129 WRITE(numout,*) ' horizontal domain size-x rn_domszx = ', rn_domszx, ' km' 130 WRITE(numout,*) ' horizontal domain size-y rn_domszy = ', rn_domszy, ' km' 131 WRITE(numout,*) ' vertical domain size-z rn_domszz = ', rn_domszz, ' m' 132 WRITE(numout,*) ' horizontal x-resolution rn_dx = ', rn_dx, ' km' 133 WRITE(numout,*) ' horizontal y-resolution rn_dy = ', rn_dy, ' km' 134 WRITE(numout,*) ' vertical resolution rn_dz = ', rn_dz, ' m' 135 WRITE(numout,*) ' x-domain ratio of the 0 rn_0xratio = ', rn_0xratio 136 WRITE(numout,*) ' y-domain ratio of the 0 rn_0yratio = ', rn_0yratio 137 WRITE(numout,*) ' H [m] : ', zh 138 WRITE(numout,*) ' F computation nn_fcase = ', nn_fcase 139 WRITE(numout,*) ' Reference latitude rn_ppgphi0 = ', rn_ppgphi0 140 WRITE(numout,*) ' 10m wind speed rn_u10 = ', rn_u10, ' m/s' 141 WRITE(numout,*) ' wind latitudinal extension rn_windszy = ', rn_windszy, ' km' 142 WRITE(numout,*) ' wind longitudinal extension rn_windszx = ', rn_windszx, ' km' 143 WRITE(numout,*) ' Uoce multiplicative factor rn_uofac = ', rn_uofac 144 WRITE(numout,*) ' initial Canal max current rn_vtxmax = ', rn_vtxmax, ' m/s' 145 WRITE(numout,*) ' initial zonal current rn_uzonal = ', rn_uzonal, ' m/s' 146 WRITE(numout,*) ' Jet latitudinal extension rn_ujetszy = ', rn_ujetszy, ' km' 147 WRITE(numout,*) ' Jet longitudinal extension rn_ujetszx = ', rn_ujetszx, ' km' 148 WRITE(numout,*) ' bottom definition (0:flat) nn_botcase = ', nn_botcase 149 WRITE(numout,*) ' initial condition case nn_initcase= ', nn_initcase 150 WRITE(numout,*) ' (0:rest, 1:zonal current, 10:shear)' 151 WRITE(numout,*) ' add random noise on initial ssh ln_sshnoise= ', ln_sshnoise 152 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 156 ENDIF 158 157 ! 159 158 END SUBROUTINE usr_def_nam -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/ICE_ADV1D/EXPREF/namelist_cfg
r10513 r11822 201 201 !! namdiu Cool skin and warm layer models (default: OFF) 202 202 !! namdiu Cool skin and warm layer models (default: OFF) 203 !! namflo float parameters ( "key_float")204 !! nam_diaharm Harmonic analysis of tidal constituents ( "key_diaharm")205 !! nam dct transports through some sections ("key_diadct")203 !! namflo float parameters (default: OFF) 204 !! nam_diaharm Harmonic analysis of tidal constituents (default: OFF) 205 !! nam_diadct transports through some sections (default: OFF) 206 206 !! nam_diatmb Top Middle Bottom Output (default: OFF) 207 207 !! nam_dia25h 25h Mean Output (default: OFF) -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/ICE_ADV1D/EXPREF/namelist_cfg_120pts
r10513 r11822 201 201 !! namdiu Cool skin and warm layer models (default: OFF) 202 202 !! namdiu Cool skin and warm layer models (default: OFF) 203 !! namflo float parameters ( "key_float")204 !! nam_diaharm Harmonic analysis of tidal constituents ( "key_diaharm")205 !! nam dct transports through some sections ("key_diadct")203 !! namflo float parameters (default: OFF) 204 !! nam_diaharm Harmonic analysis of tidal constituents (default: OFF) 205 !! nam_diadct transports through some sections (default: OFF) 206 206 !! nam_diatmb Top Middle Bottom Output (default: OFF) 207 207 !! nam_dia25h 25h Mean Output (default: OFF) -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/ICE_ADV1D/EXPREF/namelist_cfg_240pts
r10513 r11822 201 201 !! namdiu Cool skin and warm layer models (default: OFF) 202 202 !! namdiu Cool skin and warm layer models (default: OFF) 203 !! namflo float parameters ( "key_float")204 !! nam_diaharm Harmonic analysis of tidal constituents ( "key_diaharm")205 !! nam dct transports through some sections ("key_diadct")203 !! namflo float parameters (default: OFF) 204 !! nam_diaharm Harmonic analysis of tidal constituents (default: OFF) 205 !! nam_diadct transports through some sections (default: OFF) 206 206 !! nam_diatmb Top Middle Bottom Output (default: OFF) 207 207 !! nam_dia25h 25h Mean Output (default: OFF) -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/ICE_ADV1D/EXPREF/namelist_cfg_60pts
r10513 r11822 201 201 !! namdiu Cool skin and warm layer models (default: OFF) 202 202 !! namdiu Cool skin and warm layer models (default: OFF) 203 !! namflo float parameters ( "key_float")204 !! nam_diaharm Harmonic analysis of tidal constituents ( "key_diaharm")205 !! nam dct transports through some sections ("key_diadct")203 !! namflo float parameters (default: OFF) 204 !! nam_diaharm Harmonic analysis of tidal constituents (default: OFF) 205 !! nam_diadct transports through some sections (default: OFF) 206 206 !! nam_diatmb Top Middle Bottom Output (default: OFF) 207 207 !! nam_dia25h 25h Mean Output (default: OFF) -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/ICE_ADV1D/MY_SRC/usrdef_nam.F90
r10513 r11822 40 40 CONTAINS 41 41 42 SUBROUTINE usr_def_nam( ldtxt, ldnam,cd_cfg, kk_cfg, kpi, kpj, kpk, kperio )42 SUBROUTINE usr_def_nam( cd_cfg, kk_cfg, kpi, kpj, kpk, kperio ) 43 43 !!---------------------------------------------------------------------- 44 44 !! *** ROUTINE dom_nam *** … … 52 52 !! ** input : - namusr_def namelist found in namelist_cfg 53 53 !!---------------------------------------------------------------------- 54 CHARACTER(len=*), DIMENSION(:), INTENT(out) :: ldtxt, ldnam ! stored print information55 54 CHARACTER(len=*) , INTENT(out) :: cd_cfg ! configuration name 56 55 INTEGER , INTENT(out) :: kk_cfg ! configuration resolution … … 58 57 INTEGER , INTENT(out) :: kperio ! lateral global domain b.c. 59 58 ! 60 INTEGER :: ios , ii! Local integer59 INTEGER :: ios ! Local integer 61 60 REAL(wp):: zlx, zly ! Local scalars 62 61 !! … … 64 63 !!---------------------------------------------------------------------- 65 64 ! 66 ii = 167 !68 65 REWIND( numnam_cfg ) ! Namelist namusr_def (exist in namelist_cfg only) 69 66 READ ( numnam_cfg, namusr_def, IOSTAT = ios, ERR = 902 ) 70 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namusr_def in configuration namelist' , .TRUE.)67 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namusr_def in configuration namelist' ) 71 68 ! 72 WRITE( ldnam(:), namusr_def )69 IF(lwm) WRITE( numond, namusr_def ) 73 70 ! 74 71 cd_cfg = 'ICE_ADV1D' ! name & resolution (not used) … … 82 79 zlx = kpi*rn_dx*1.e-3 83 80 zly = kpj*rn_dy*1.e-3 84 ! ! control print85 WRITE(ldtxt(ii),*) ' ' ; ii = ii + 186 WRITE(ldtxt(ii),*) 'usr_def_nam : read the user defined namelist (namusr_def) in namelist_cfg' ; ii = ii + 187 WRITE(ldtxt(ii),*) '~~~~~~~~~~~ ' ; ii = ii + 188 WRITE(ldtxt(ii),*) ' Namelist namusr_def : ICE_ADV1D test case' ; ii = ii + 189 WRITE(ldtxt(ii),*) ' horizontal resolution rn_dx = ', rn_dx, ' meters' ; ii = ii + 190 WRITE(ldtxt(ii),*) ' horizontal resolution rn_dy = ', rn_dy, ' meters' ; ii = ii + 191 WRITE(ldtxt(ii),*) ' ICE_ADV1D domain ' ; ii = ii + 192 WRITE(ldtxt(ii),*) ' LX [km]: ', zlx ; ii = ii + 193 WRITE(ldtxt(ii),*) ' LY [km]: ', zly ; ii = ii + 194 WRITE(ldtxt(ii),*) ' resulting global domain size : jpiglo = ', kpi ; ii = ii + 195 WRITE(ldtxt(ii),*) ' jpjglo = ', kpj ; ii = ii + 196 WRITE(ldtxt(ii),*) ' jpkglo = ', kpk ; ii = ii + 197 WRITE(ldtxt(ii),*) ' Coriolis:', ln_corio ; ii = ii + 198 !99 81 ! ! Set the lateral boundary condition of the global domain 100 82 kperio = 0 ! ICE_ADV1D configuration : bi-periodic basin 101 ! 102 WRITE(ldtxt(ii),*) ' ' ; ii = ii + 1 103 WRITE(ldtxt(ii),*) ' Lateral boundary condition of the global domain' ; ii = ii + 1 104 WRITE(ldtxt(ii),*) ' ICE_ADV1D : closed basin jperio = ', kperio ; ii = ii + 1 83 ! ! control print 84 IF(lwp) THEN 85 WRITE(numout,*) ' ' 86 WRITE(numout,*) 'usr_def_nam : read the user defined namelist (namusr_def) in namelist_cfg' 87 WRITE(numout,*) '~~~~~~~~~~~ ' 88 WRITE(numout,*) ' Namelist namusr_def : ICE_ADV1D test case' 89 WRITE(numout,*) ' horizontal resolution rn_dx = ', rn_dx, ' meters' 90 WRITE(numout,*) ' horizontal resolution rn_dy = ', rn_dy, ' meters' 91 WRITE(numout,*) ' ICE_ADV1D domain ' 92 WRITE(numout,*) ' LX [km]: ', zlx 93 WRITE(numout,*) ' LY [km]: ', zly 94 WRITE(numout,*) ' resulting global domain size : jpiglo = ', kpi 95 WRITE(numout,*) ' jpjglo = ', kpj 96 WRITE(numout,*) ' jpkglo = ', kpk 97 WRITE(numout,*) ' Coriolis:', ln_corio 98 WRITE(numout,*) ' ' 99 WRITE(numout,*) ' Lateral boundary condition of the global domain' 100 WRITE(numout,*) ' ICE_ADV1D : closed basin jperio = ', kperio 101 ENDIF 105 102 ! 106 103 END SUBROUTINE usr_def_nam -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/ICE_ADV2D/EXPREF/namelist_cfg
r10520 r11822 201 201 !! namdiu Cool skin and warm layer models (default: OFF) 202 202 !! namdiu Cool skin and warm layer models (default: OFF) 203 !! namflo float parameters ( "key_float")204 !! nam_diaharm Harmonic analysis of tidal constituents ( "key_diaharm")205 !! nam dct transports through some sections ("key_diadct")203 !! namflo float parameters (default: OFF) 204 !! nam_diaharm Harmonic analysis of tidal constituents (default: OFF) 205 !! nam_diadct transports through some sections (default: OFF) 206 206 !! nam_diatmb Top Middle Bottom Output (default: OFF) 207 207 !! nam_dia25h 25h Mean Output (default: OFF) -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/ICE_ADV2D/MY_SRC/usrdef_nam.F90
r10515 r11822 40 40 CONTAINS 41 41 42 SUBROUTINE usr_def_nam( ldtxt, ldnam,cd_cfg, kk_cfg, kpi, kpj, kpk, kperio )42 SUBROUTINE usr_def_nam( cd_cfg, kk_cfg, kpi, kpj, kpk, kperio ) 43 43 !!---------------------------------------------------------------------- 44 44 !! *** ROUTINE dom_nam *** … … 52 52 !! ** input : - namusr_def namelist found in namelist_cfg 53 53 !!---------------------------------------------------------------------- 54 CHARACTER(len=*), DIMENSION(:), INTENT(out) :: ldtxt, ldnam ! stored print information55 54 CHARACTER(len=*) , INTENT(out) :: cd_cfg ! configuration name 56 55 INTEGER , INTENT(out) :: kk_cfg ! configuration resolution … … 58 57 INTEGER , INTENT(out) :: kperio ! lateral global domain b.c. 59 58 ! 60 INTEGER :: ios , ii! Local integer59 INTEGER :: ios ! Local integer 61 60 REAL(wp):: zlx, zly ! Local scalars 62 61 !! … … 64 63 !!---------------------------------------------------------------------- 65 64 ! 66 ii = 167 !68 65 REWIND( numnam_cfg ) ! Namelist namusr_def (exist in namelist_cfg only) 69 66 READ ( numnam_cfg, namusr_def, IOSTAT = ios, ERR = 902 ) 70 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namusr_def in configuration namelist', .TRUE. ) 67 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namusr_def in configuration namelist' ) 68 ! 69 IF(lwm) WRITE( numond, namusr_def ) 71 70 ! 72 71 #if defined key_agrif … … 79 78 #endif 80 79 ! 81 WRITE( ldnam(:), namusr_def )80 IF(lwm) WRITE( numond, namusr_def ) 82 81 ! 83 82 cd_cfg = 'ICE_ADV2D' ! name & resolution (not used) 84 kk_cfg = INT( rn_dx )83 kk_cfg = NINT( rn_dx ) 85 84 ! 86 ! Global Domain size: ICE_ADV2D domain is 300 km x 300 Km x 10 m 87 kpi = INT( 300.e3 / rn_dx ) -1 88 kpj = INT( 300.e3 / rn_dy ) -1 89 #if defined key_agrif 90 IF( .NOT. Agrif_Root() ) THEN 85 IF( Agrif_Root() ) THEN ! Global Domain size: ICE_AGRIF domain is 300 km x 300 Km x 10 m 86 kpi = NINT( 300.e3 / rn_dx ) - 1 87 kpj = NINT( 300.e3 / rn_dy ) - 1 88 ELSE 91 89 kpi = nbcellsx + 2 + 2*nbghostcells 92 90 kpj = nbcellsy + 2 + 2*nbghostcells 93 91 ENDIF 94 #endif95 92 kpk = 1 96 93 ! … … 99 96 zlx = kpi*rn_dx*1.e-3 100 97 zly = kpj*rn_dy*1.e-3 98 ! 99 IF( Agrif_Root() ) THEN ; kperio = 7 ! ICE_AGRIF configuration : bi-periodic basin 100 ELSE ; kperio = 0 ! closed periodicity for the zoom 101 ENDIF 101 102 ! ! control print 102 WRITE(ldtxt(ii),*) ' ' ; ii = ii + 1 103 WRITE(ldtxt(ii),*) 'usr_def_nam : read the user defined namelist (namusr_def) in namelist_cfg' ; ii = ii + 1 104 WRITE(ldtxt(ii),*) '~~~~~~~~~~~ ' ; ii = ii + 1 105 WRITE(ldtxt(ii),*) ' Namelist namusr_def : ICE_ADV2D test case' ; ii = ii + 1 106 WRITE(ldtxt(ii),*) ' horizontal resolution rn_dx = ', rn_dx, ' meters' ; ii = ii + 1 107 WRITE(ldtxt(ii),*) ' horizontal resolution rn_dy = ', rn_dy, ' meters' ; ii = ii + 1 108 WRITE(ldtxt(ii),*) ' ICE_ADV2D domain = 300 km x 300Km x 1 grid-point ' ; ii = ii + 1 109 WRITE(ldtxt(ii),*) ' LX [km]: ', zlx ; ii = ii + 1 110 WRITE(ldtxt(ii),*) ' LY [km]: ', zly ; ii = ii + 1 111 WRITE(ldtxt(ii),*) ' resulting global domain size : jpiglo = ', kpi ; ii = ii + 1 112 WRITE(ldtxt(ii),*) ' jpjglo = ', kpj ; ii = ii + 1 113 WRITE(ldtxt(ii),*) ' jpkglo = ', kpk ; ii = ii + 1 114 WRITE(ldtxt(ii),*) ' Coriolis:', ln_corio ; ii = ii + 1 115 ! 116 ! ! Set the lateral boundary condition of the global domain 117 kperio = 7 ! ICE_ADV2D configuration : bi-periodic basin 118 #if defined key_agrif 119 IF( .NOT. Agrif_Root() ) THEN 120 kperio = 0 103 IF(lwp) THEN 104 WRITE(numout,*) ' ' 105 WRITE(numout,*) 'usr_def_nam : read the user defined namelist (namusr_def) in namelist_cfg' 106 WRITE(numout,*) '~~~~~~~~~~~ ' 107 WRITE(numout,*) ' Namelist namusr_def : ICE_ADV2D test case' 108 WRITE(numout,*) ' horizontal resolution rn_dx = ', rn_dx, ' meters' 109 WRITE(numout,*) ' horizontal resolution rn_dy = ', rn_dy, ' meters' 110 WRITE(numout,*) ' ICE_ADV2D domain = 300 km x 300Km x 1 grid-point ' 111 WRITE(numout,*) ' LX [km]: ', zlx 112 WRITE(numout,*) ' LY [km]: ', zly 113 WRITE(numout,*) ' resulting global domain size : jpiglo = ', kpi 114 WRITE(numout,*) ' jpjglo = ', kpj 115 WRITE(numout,*) ' jpkglo = ', kpk 116 WRITE(numout,*) ' Coriolis:', ln_corio 117 WRITE(numout,*) ' ' 118 WRITE(numout,*) ' Lateral boundary condition of the global domain' 119 WRITE(numout,*) ' ICE_ADV2D : bi-periodic basin jperio = ', kperio 121 120 ENDIF 122 #endif123 !124 WRITE(ldtxt(ii),*) ' ' ; ii = ii + 1125 WRITE(ldtxt(ii),*) ' Lateral boundary condition of the global domain' ; ii = ii + 1126 WRITE(ldtxt(ii),*) ' ICE_ADV2D : bi-periodic basin jperio = ', kperio ; ii = ii + 1127 121 ! 128 122 END SUBROUTINE usr_def_nam -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/ICE_AGRIF/EXPREF/1_namelist_cfg
r10516 r11822 201 201 !! namdiu Cool skin and warm layer models (default: OFF) 202 202 !! namdiu Cool skin and warm layer models (default: OFF) 203 !! namflo float parameters ( "key_float")204 !! nam_diaharm Harmonic analysis of tidal constituents ( "key_diaharm")205 !! nam dct transports through some sections ("key_diadct")203 !! namflo float parameters (default: OFF) 204 !! nam_diaharm Harmonic analysis of tidal constituents (default: OFF) 205 !! nam_diadct transports through some sections (default: OFF) 206 206 !! nam_diatmb Top Middle Bottom Output (default: OFF) 207 207 !! nam_dia25h 25h Mean Output (default: OFF) -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/ICE_AGRIF/EXPREF/file_def_nemo-ice.xml
r10516 r11822 23 23 <field field_ref="icethic" name="sithic_max" operation="maximum" /> 24 24 <field field_ref="icethic" name="sithic_min" operation="minimum" /> 25 <field field_ref="iceneg_pres" name="sineg_pres" />26 <field field_ref="iceneg_volu" name="sineg_volu" />27 25 <field field_ref="fasticepres" name="fasticepres" /> 28 26 <field field_ref="icevolu" name="sivolu" /> -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/ICE_AGRIF/EXPREF/namelist_cfg
r10516 r11822 201 201 !! namdiu Cool skin and warm layer models (default: OFF) 202 202 !! namdiu Cool skin and warm layer models (default: OFF) 203 !! namflo float parameters ( "key_float")204 !! nam_diaharm Harmonic analysis of tidal constituents ( "key_diaharm")205 !! nam dct transports through some sections ("key_diadct")203 !! namflo float parameters (default: OFF) 204 !! nam_diaharm Harmonic analysis of tidal constituents (default: OFF) 205 !! nam_diadct transports through some sections (default: OFF) 206 206 !! nam_diatmb Top Middle Bottom Output (default: OFF) 207 207 !! nam_dia25h 25h Mean Output (default: OFF) -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/ICE_AGRIF/MY_SRC/usrdef_nam.F90
r10516 r11822 40 40 CONTAINS 41 41 42 SUBROUTINE usr_def_nam( ldtxt, ldnam,cd_cfg, kk_cfg, kpi, kpj, kpk, kperio )42 SUBROUTINE usr_def_nam( cd_cfg, kk_cfg, kpi, kpj, kpk, kperio ) 43 43 !!---------------------------------------------------------------------- 44 44 !! *** ROUTINE dom_nam *** … … 52 52 !! ** input : - namusr_def namelist found in namelist_cfg 53 53 !!---------------------------------------------------------------------- 54 CHARACTER(len=*), DIMENSION(:), INTENT(out) :: ldtxt, ldnam ! stored print information55 54 CHARACTER(len=*) , INTENT(out) :: cd_cfg ! configuration name 56 55 INTEGER , INTENT(out) :: kk_cfg ! configuration resolution … … 58 57 INTEGER , INTENT(out) :: kperio ! lateral global domain b.c. 59 58 ! 60 INTEGER :: ios , ii! Local integer59 INTEGER :: ios ! Local integer 61 60 REAL(wp):: zlx, zly ! Local scalars 62 61 !! … … 64 63 !!---------------------------------------------------------------------- 65 64 ! 66 ii = 167 !68 65 REWIND( numnam_cfg ) ! Namelist namusr_def (exist in namelist_cfg only) 69 66 READ ( numnam_cfg, namusr_def, IOSTAT = ios, ERR = 902 ) 70 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namusr_def in configuration namelist', .TRUE. ) 67 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namusr_def in configuration namelist' ) 68 ! 69 IF(lwm) WRITE( numond, namusr_def ) 71 70 ! 72 71 #if defined key_agrif … … 79 78 #endif 80 79 ! 81 WRITE( ldnam(:), namusr_def )80 IF(lwm) WRITE( numond, namusr_def ) 82 81 ! 83 82 cd_cfg = 'ICE_AGRIF' ! name & resolution (not used) 84 kk_cfg = INT( rn_dx )83 kk_cfg = NINT( rn_dx ) 85 84 ! 86 ! Global Domain size: ICE_AGRIF domain is 300 km x 300 Km x 10 m 87 kpi = INT( 300.e3 / rn_dx ) -1 88 kpj = INT( 300.e3 / rn_dy ) -1 89 #if defined key_agrif 90 IF( .NOT. Agrif_Root() ) THEN 85 IF( Agrif_Root() ) THEN ! Global Domain size: ICE_AGRIF domain is 300 km x 300 Km x 10 m 86 kpi = NINT( 300.e3 / rn_dx ) - 1 87 kpj = NINT( 300.e3 / rn_dy ) - 1 88 ELSE 91 89 kpi = nbcellsx + 2 + 2*nbghostcells 92 90 kpj = nbcellsy + 2 + 2*nbghostcells 93 91 ENDIF 94 #endif95 92 kpk = 1 96 93 ! … … 99 96 zlx = kpi*rn_dx*1.e-3 100 97 zly = kpj*rn_dy*1.e-3 98 ! 99 IF( Agrif_Root() ) THEN ; kperio = 7 ! ICE_AGRIF configuration : bi-periodic basin 100 ELSE ; kperio = 0 ! closed periodicity for the zoom 101 ENDIF 101 102 ! ! control print 102 WRITE(ldtxt(ii),*) ' ' ; ii = ii + 1 103 WRITE(ldtxt(ii),*) 'usr_def_nam : read the user defined namelist (namusr_def) in namelist_cfg' ; ii = ii + 1 104 WRITE(ldtxt(ii),*) '~~~~~~~~~~~ ' ; ii = ii + 1 105 WRITE(ldtxt(ii),*) ' Namelist namusr_def : ICE_AGRIF test case' ; ii = ii + 1 106 WRITE(ldtxt(ii),*) ' horizontal resolution rn_dx = ', rn_dx, ' meters' ; ii = ii + 1 107 WRITE(ldtxt(ii),*) ' horizontal resolution rn_dy = ', rn_dy, ' meters' ; ii = ii + 1 108 WRITE(ldtxt(ii),*) ' ICE_AGRIF domain = 300 km x 300Km x 1 grid-point ' ; ii = ii + 1 109 WRITE(ldtxt(ii),*) ' LX [km]: ', zlx ; ii = ii + 1 110 WRITE(ldtxt(ii),*) ' LY [km]: ', zly ; ii = ii + 1 111 WRITE(ldtxt(ii),*) ' resulting global domain size : jpiglo = ', kpi ; ii = ii + 1 112 WRITE(ldtxt(ii),*) ' jpjglo = ', kpj ; ii = ii + 1 113 WRITE(ldtxt(ii),*) ' jpkglo = ', kpk ; ii = ii + 1 114 WRITE(ldtxt(ii),*) ' Coriolis:', ln_corio ; ii = ii + 1 115 ! 116 ! ! Set the lateral boundary condition of the global domain 117 kperio = 7 ! ICE_AGRIF configuration : bi-periodic basin 118 #if defined key_agrif 119 IF( .NOT. Agrif_Root() ) THEN 120 kperio = 0 103 IF(lwp) THEN 104 WRITE(numout,*) ' ' 105 WRITE(numout,*) 'usr_def_nam : read the user defined namelist (namusr_def) in namelist_cfg' 106 WRITE(numout,*) '~~~~~~~~~~~ ' 107 WRITE(numout,*) ' Namelist namusr_def : ICE_AGRIF test case' 108 WRITE(numout,*) ' horizontal resolution rn_dx = ', rn_dx, ' meters' 109 WRITE(numout,*) ' horizontal resolution rn_dy = ', rn_dy, ' meters' 110 WRITE(numout,*) ' ICE_AGRIF domain = 300 km x 300Km x 1 grid-point ' 111 WRITE(numout,*) ' LX [km]: ', zlx 112 WRITE(numout,*) ' LY [km]: ', zly 113 WRITE(numout,*) ' resulting global domain size : jpiglo = ', kpi 114 WRITE(numout,*) ' jpjglo = ', kpj 115 WRITE(numout,*) ' jpkglo = ', kpk 116 WRITE(numout,*) ' Coriolis:', ln_corio 117 WRITE(numout,*) ' ' 118 WRITE(numout,*) ' Lateral boundary condition of the global domain' 119 WRITE(numout,*) ' ICE_AGRIF : bi-periodic basin jperio = ', kperio 121 120 ENDIF 122 #endif123 !124 WRITE(ldtxt(ii),*) ' ' ; ii = ii + 1125 WRITE(ldtxt(ii),*) ' Lateral boundary condition of the global domain' ; ii = ii + 1126 WRITE(ldtxt(ii),*) ' ICE_AGRIF : bi-periodic basin jperio = ', kperio ; ii = ii + 1127 121 ! 128 122 END SUBROUTINE usr_def_nam -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/ISOMIP/EXPREF/context_nemo.xml
r9930 r11822 6 6 <context id="nemo"> 7 7 <!-- $id$ --> 8 <variable_definition> 9 <!-- Year of time origin for NetCDF files; defaults to 1800 --> 10 <variable id="ref_year" type="int" > 1800 </variable> 11 <variable id="rau0" type="float" > 1026.0 </variable> 12 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 13 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 14 <variable id="rhoic" type="float" > 917.0 </variable> 15 <variable id="rhosn" type="float" > 330.0 </variable> 16 <variable id="missval" type="float" > 1.e20 </variable> 17 </variable_definition> 8 18 <!-- Fields definition --> 9 19 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> … … 18 28 19 29 <axis_definition> 20 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" />21 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" />22 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" />23 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" />24 <axis id="nfloat" long_name="Float number" unit="-" />25 <axis id="icbcla" long_name="Iceberg class" unit="1"/>26 <axis id="ncatice" long_name="Ice category" unit="1"/>27 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC"/>28 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC"/>30 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 31 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" /> 32 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" /> 33 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" /> 34 <axis id="nfloat" long_name="Float number" unit="-" /> 35 <axis id="icbcla" long_name="Iceberg class" unit="1" /> 36 <axis id="ncatice" long_name="Ice category" unit="1" /> 37 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC" /> 38 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC" /> 29 39 </axis_definition> 30 40 -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/ISOMIP/EXPREF/namelist_cfg
r10075 r11822 78 78 ! ! ! (if <0 months) ! name ! (logical) ! (T/F) ! 'monthly' ! filename ! pairing ! filename ! 79 79 ! nn_isf == 4 80 sn_fwfisf = 'rnfisf' , -12 80 sn_fwfisf = 'rnfisf' , -12. ,'sowflisf', .false. , .true. , 'yearly' , '' , '' , '' 81 81 ! nn_isf == 3 82 sn_rnfisf = 'rnfisf' , -12 82 sn_rnfisf = 'rnfisf' , -12. ,'sofwfisf', .false. , .true. , 'yearly' , '' , '' , '' 83 83 ! nn_isf == 2 and 3 84 sn_depmax_isf = 'rnfisf' , -12 85 sn_depmin_isf = 'rnfisf' , -12 84 sn_depmax_isf = 'rnfisf' , -12. ,'sozisfmax' , .false. , .true. , 'yearly' , '' , '' , '' 85 sn_depmin_isf = 'rnfisf' , -12. ,'sozisfmin' , .false. , .true. , 'yearly' , '' , '' , '' 86 86 ! nn_isf == 2 87 sn_Leff_isf = 'rnfisf' , -12 87 sn_Leff_isf = 'rnfisf' , -12. ,'Leff' , .false. , .true. , 'yearly' , '' , '' , '' 88 88 ! for all case 89 89 nn_isf = 1 ! ice shelf melting/freezing … … 272 272 !! namdiu Cool skin and warm layer models (default: OFF) 273 273 !! namdiu Cool skin and warm layer models (default: OFF) 274 !! namflo float parameters ( "key_float")275 !! nam_diaharm Harmonic analysis of tidal constituents ( "key_diaharm")276 !! nam dct transports through some sections ("key_diadct")274 !! namflo float parameters (default: OFF) 275 !! nam_diaharm Harmonic analysis of tidal constituents (default: OFF) 276 !! nam_diadct transports through some sections (default: OFF) 277 277 !! nam_diatmb Top Middle Bottom Output (default: OFF) 278 278 !! nam_dia25h 25h Mean Output (default: OFF) -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/ISOMIP/MY_SRC/usrdef_nam.F90
r10074 r11822 42 42 CONTAINS 43 43 44 SUBROUTINE usr_def_nam( ldtxt, ldnam,cd_cfg, kk_cfg, kpi, kpj, kpk, kperio )44 SUBROUTINE usr_def_nam( cd_cfg, kk_cfg, kpi, kpj, kpk, kperio ) 45 45 !!---------------------------------------------------------------------- 46 46 !! *** ROUTINE dom_nam *** … … 54 54 !! ** input : - namusr_def namelist found in namelist_cfg 55 55 !!---------------------------------------------------------------------- 56 CHARACTER(len=*), DIMENSION(:), INTENT(out) :: ldtxt, ldnam ! stored print information57 56 CHARACTER(len=*) , INTENT(out) :: cd_cfg ! configuration name 58 57 INTEGER , INTENT(out) :: kk_cfg ! configuration resolution … … 60 59 INTEGER , INTENT(out) :: kperio ! lateral global domain b.c. 61 60 ! 62 INTEGER :: ios , ii! Local integer61 INTEGER :: ios ! Local integer 63 62 !! 64 63 NAMELIST/namusr_def/ ln_zco, ln_zps, ln_sco, rn_e1deg, rn_e2deg, rn_e3 65 64 !!---------------------------------------------------------------------- 66 65 ! 67 ii = 168 !69 66 REWIND( numnam_cfg ) ! Namelist namusr_def (exist in namelist_cfg only) 70 67 READ ( numnam_cfg, namusr_def, IOSTAT = ios, ERR = 902 ) 71 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namusr_def in configuration namelist' , .TRUE.)68 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namusr_def in configuration namelist' ) 72 69 ! 73 WRITE( ldnam(:), namusr_def )70 IF(lwm) WRITE( numond, namusr_def ) 74 71 ! 75 72 cd_cfg = 'ISOMIP' ! name & resolution (not used) … … 81 78 kpk = INT( rbathy / rn_e3 ) + 1 ! add 1 for t-point in the seafloor 82 79 ! 83 ! ! control print84 WRITE(ldtxt(ii),*) ' ' ; ii = ii + 185 WRITE(ldtxt(ii),*) 'usr_def_nam : read the user defined namelist (namusr_def) in namelist_cfg' ; ii = ii + 186 WRITE(ldtxt(ii),*) '~~~~~~~~~~~ ' ; ii = ii + 187 WRITE(ldtxt(ii),*) ' Namelist namusr_def : ISOMIP test case' ; ii = ii + 188 WRITE(ldtxt(ii),*) ' type of vertical coordinate : ' ; ii = ii + 189 WRITE(ldtxt(ii),*) ' z-coordinate flag ln_zco = ', ln_zco ; ii = ii + 190 WRITE(ldtxt(ii),*) ' z-partial-step coordinate flag ln_zps = ', ln_zps ; ii = ii + 191 WRITE(ldtxt(ii),*) ' s-coordinate flag ln_sco = ', ln_sco ; ii = ii + 192 WRITE(ldtxt(ii),*) ' resolution' ; ii = ii + 193 WRITE(ldtxt(ii),*) ' zonal resolution rn_e1deg = ', rn_e1deg, ' degrees' ; ii = ii + 194 WRITE(ldtxt(ii),*) ' meridional resolution rn_e1deg = ', rn_e1deg, ' degrees' ; ii = ii + 195 WRITE(ldtxt(ii),*) ' vertical resolution rn_e3 = ', rn_e3 , ' meters' ; ii = ii + 196 WRITE(ldtxt(ii),*) ' ISOMIP domain = 15° x 10° x 900 m' ; ii = ii + 197 WRITE(ldtxt(ii),*) ' resulting global domain size : jpiglo = ', kpi ; ii = ii + 198 WRITE(ldtxt(ii),*) ' jpjglo = ', kpj ; ii = ii + 199 WRITE(ldtxt(ii),*) ' jpkglo = ', kpk ; ii = ii + 1100 !101 !102 80 ! ! Set the lateral boundary condition of the global domain 103 81 kperio = 0 ! ISOMIP configuration : close basin 104 82 ! 105 WRITE(ldtxt(ii),*) ' ' ; ii = ii + 1 106 WRITE(ldtxt(ii),*) ' Lateral boundary condition of the global domain' ; ii = ii + 1 107 WRITE(ldtxt(ii),*) ' ISOMIP : closed basin jperio = ', kperio ; ii = ii + 1 83 ! ! control print 84 IF(lwp) THEN 85 WRITE(numout,*) ' ' 86 WRITE(numout,*) 'usr_def_nam : read the user defined namelist (namusr_def) in namelist_cfg' 87 WRITE(numout,*) '~~~~~~~~~~~ ' 88 WRITE(numout,*) ' Namelist namusr_def : ISOMIP test case' 89 WRITE(numout,*) ' type of vertical coordinate : ' 90 WRITE(numout,*) ' z-coordinate flag ln_zco = ', ln_zco 91 WRITE(numout,*) ' z-partial-step coordinate flag ln_zps = ', ln_zps 92 WRITE(numout,*) ' s-coordinate flag ln_sco = ', ln_sco 93 WRITE(numout,*) ' resolution' 94 WRITE(numout,*) ' zonal resolution rn_e1deg = ', rn_e1deg, ' degrees' 95 WRITE(numout,*) ' meridional resolution rn_e1deg = ', rn_e1deg, ' degrees' 96 WRITE(numout,*) ' vertical resolution rn_e3 = ', rn_e3 , ' meters' 97 WRITE(numout,*) ' ISOMIP domain = 15° x 10° x 900 m' 98 WRITE(numout,*) ' resulting global domain size : jpiglo = ', kpi 99 WRITE(numout,*) ' jpjglo = ', kpj 100 WRITE(numout,*) ' jpkglo = ', kpk 101 WRITE(numout,*) ' ' 102 WRITE(numout,*) ' Lateral boundary condition of the global domain' 103 WRITE(numout,*) ' ISOMIP : closed basin jperio = ', kperio 104 ENDIF 108 105 ! 109 106 END SUBROUTINE usr_def_nam -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/LOCK_EXCHANGE/EXPREF/context_nemo.xml
r9930 r11822 6 6 <context id="nemo"> 7 7 <!-- $id$ --> 8 <variable_definition> 9 <!-- Year of time origin for NetCDF files; defaults to 1800 --> 10 <variable id="ref_year" type="int" > 1800 </variable> 11 <variable id="rau0" type="float" > 1026.0 </variable> 12 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 13 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 14 <variable id="rhoic" type="float" > 917.0 </variable> 15 <variable id="rhosn" type="float" > 330.0 </variable> 16 <variable id="missval" type="float" > 1.e20 </variable> 17 </variable_definition> 8 18 <!-- Fields definition --> 9 19 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> … … 18 28 19 29 <axis_definition> 20 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" />21 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" />22 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" />23 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" />24 <axis id="nfloat" long_name="Float number" unit="-" />25 <axis id="icbcla" long_name="Iceberg class" unit="1"/>26 <axis id="ncatice" long_name="Ice category" unit="1"/>27 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC"/>28 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC"/>30 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 31 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" /> 32 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" /> 33 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" /> 34 <axis id="nfloat" long_name="Float number" unit="-" /> 35 <axis id="icbcla" long_name="Iceberg class" unit="1" /> 36 <axis id="ncatice" long_name="Ice category" unit="1" /> 37 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC" /> 38 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC" /> 29 39 </axis_definition> 30 40 -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/LOCK_EXCHANGE/EXPREF/namelist_FCT2_flux_ubs_cfg
r10075 r11822 277 277 !! namdiu Cool skin and warm layer models (default: OFF) 278 278 !! namdiu Cool skin and warm layer models (default: OFF) 279 !! namflo float parameters ( "key_float")280 !! nam_diaharm Harmonic analysis of tidal constituents ( "key_diaharm")281 !! nam dct transports through some sections ("key_diadct")279 !! namflo float parameters (default: OFF) 280 !! nam_diaharm Harmonic analysis of tidal constituents (default: OFF) 281 !! nam_diadct transports through some sections (default: OFF) 282 282 !! nam_diatmb Top Middle Bottom Output (default: OFF) 283 283 !! nam_dia25h 25h Mean Output (default: OFF) -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/LOCK_EXCHANGE/MY_SRC/usrdef_nam.F90
r10074 r11822 38 38 CONTAINS 39 39 40 SUBROUTINE usr_def_nam( ldtxt, ldnam,cd_cfg, kk_cfg, kpi, kpj, kpk, kperio )40 SUBROUTINE usr_def_nam( cd_cfg, kk_cfg, kpi, kpj, kpk, kperio ) 41 41 !!---------------------------------------------------------------------- 42 42 !! *** ROUTINE dom_nam *** … … 50 50 !! ** input : - namusr_def namelist found in namelist_cfg 51 51 !!---------------------------------------------------------------------- 52 CHARACTER(len=*), DIMENSION(:), INTENT(out) :: ldtxt, ldnam ! stored print information53 52 CHARACTER(len=*) , INTENT(out) :: cd_cfg ! configuration name 54 53 INTEGER , INTENT(out) :: kk_cfg ! configuration resolution … … 56 55 INTEGER , INTENT(out) :: kperio ! lateral global domain b.c. 57 56 ! 58 INTEGER :: ios , ii! Local integer57 INTEGER :: ios ! Local integer 59 58 !! 60 59 NAMELIST/namusr_def/ rn_dx, rn_dz 61 60 !!---------------------------------------------------------------------- 62 61 ! 63 ii = 164 !65 62 REWIND( numnam_cfg ) ! Namelist namusr_def (exist in namelist_cfg only) 66 63 READ ( numnam_cfg, namusr_def, IOSTAT = ios, ERR = 902 ) 67 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namusr_def in configuration namelist' , .TRUE.)64 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namusr_def in configuration namelist' ) 68 65 ! 69 WRITE( ldnam(:), namusr_def )66 IF(lwm) WRITE( numond, namusr_def ) 70 67 ! 71 68 ! … … 77 74 kpj = 3 78 75 kpk = INT( 20. / rn_dz ) + 1 79 !80 ! ! control print81 WRITE(ldtxt(ii),*) ' ' ; ii = ii + 182 WRITE(ldtxt(ii),*) 'usr_def_nam : read the user defined namelist (namusr_def) in namelist_cfg' ; ii = ii + 183 WRITE(ldtxt(ii),*) '~~~~~~~~~~~ ' ; ii = ii + 184 WRITE(ldtxt(ii),*) ' Namelist namusr_def : LOCK_EXCHANGE test case' ; ii = ii + 185 WRITE(ldtxt(ii),*) ' horizontal resolution rn_dx = ', rn_dx, ' meters' ; ii = ii + 186 WRITE(ldtxt(ii),*) ' vertical resolution rn_dz = ', rn_dz, ' meters' ; ii = ii + 187 WRITE(ldtxt(ii),*) ' LOCK_EXCHANGE domain = 64 km x 3 grid-points x 20 m' ; ii = ii + 188 WRITE(ldtxt(ii),*) ' resulting global domain size : jpiglo = ', kpi ; ii = ii + 189 WRITE(ldtxt(ii),*) ' jpjglo = ', kpj ; ii = ii + 190 WRITE(ldtxt(ii),*) ' jpkglo = ', kpk ; ii = ii + 191 !92 76 ! ! Set the lateral boundary condition of the global domain 93 77 kperio = 0 ! LOCK_EXCHANGE configuration : closed domain 94 78 ! 95 WRITE(ldtxt(ii),*) ' ' ; ii = ii + 1 96 WRITE(ldtxt(ii),*) ' Lateral boundary condition of the global domain' ; ii = ii + 1 97 WRITE(ldtxt(ii),*) ' closed jperio = ', kperio ; ii = ii + 1 79 ! ! control print 80 IF(lwp) THEN 81 WRITE(numout,*) ' ' 82 WRITE(numout,*) 'usr_def_nam : read the user defined namelist (namusr_def) in namelist_cfg' 83 WRITE(numout,*) '~~~~~~~~~~~ ' 84 WRITE(numout,*) ' Namelist namusr_def : LOCK_EXCHANGE test case' 85 WRITE(numout,*) ' horizontal resolution rn_dx = ', rn_dx, ' meters' 86 WRITE(numout,*) ' vertical resolution rn_dz = ', rn_dz, ' meters' 87 WRITE(numout,*) ' LOCK_EXCHANGE domain = 64 km x 3 grid-points x 20 m' 88 WRITE(numout,*) ' resulting global domain size : jpiglo = ', kpi 89 WRITE(numout,*) ' jpjglo = ', kpj 90 WRITE(numout,*) ' jpkglo = ', kpk 91 WRITE(numout,*) ' ' 92 WRITE(numout,*) ' Lateral boundary condition of the global domain' 93 WRITE(numout,*) ' closed jperio = ', kperio 94 ENDIF 98 95 ! 99 96 END SUBROUTINE usr_def_nam -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/OVERFLOW/EXPREF/context_nemo.xml
r9930 r11822 6 6 <context id="nemo"> 7 7 <!-- $id$ --> 8 <variable_definition> 9 <!-- Year of time origin for NetCDF files; defaults to 1800 --> 10 <variable id="ref_year" type="int" > 1800 </variable> 11 <variable id="rau0" type="float" > 1026.0 </variable> 12 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 13 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 14 <variable id="rhoic" type="float" > 917.0 </variable> 15 <variable id="rhosn" type="float" > 330.0 </variable> 16 <variable id="missval" type="float" > 1.e20 </variable> 17 </variable_definition> 8 18 <!-- Fields definition --> 9 19 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> … … 18 28 19 29 <axis_definition> 20 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" />21 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" />22 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" />23 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" />24 <axis id="nfloat" long_name="Float number" unit="-" />25 <axis id="icbcla" long_name="Iceberg class" unit="1"/>26 <axis id="ncatice" long_name="Ice category" unit="1"/>27 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC"/>28 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC"/>30 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 31 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" /> 32 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" /> 33 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" /> 34 <axis id="nfloat" long_name="Float number" unit="-" /> 35 <axis id="icbcla" long_name="Iceberg class" unit="1" /> 36 <axis id="ncatice" long_name="Ice category" unit="1" /> 37 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC" /> 38 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC" /> 29 39 </axis_definition> 30 40 -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/OVERFLOW/EXPREF/namelist_zps_FCT4_flux_ubs_cfg
r10075 r11822 291 291 !! namdiu Cool skin and warm layer models (default: OFF) 292 292 !! namdiu Cool skin and warm layer models (default: OFF) 293 !! namflo float parameters ( "key_float")294 !! nam_diaharm Harmonic analysis of tidal constituents ( "key_diaharm")295 !! nam dct transports through some sections ("key_diadct")293 !! namflo float parameters (default: OFF) 294 !! nam_diaharm Harmonic analysis of tidal constituents (default: OFF) 295 !! nam_diadct transports through some sections (default: OFF) 296 296 !! nam_diatmb Top Middle Bottom Output (default: OFF) 297 297 !! nam_dia25h 25h Mean Output (default: OFF) -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/OVERFLOW/MY_SRC/usrdef_nam.F90
r10074 r11822 39 39 CONTAINS 40 40 41 SUBROUTINE usr_def_nam( ldtxt, ldnam,cd_cfg, kk_cfg, kpi, kpj, kpk, kperio )41 SUBROUTINE usr_def_nam( cd_cfg, kk_cfg, kpi, kpj, kpk, kperio ) 42 42 !!---------------------------------------------------------------------- 43 43 !! *** ROUTINE dom_nam *** … … 51 51 !! ** input : - namusr_def namelist found in namelist_cfg 52 52 !!---------------------------------------------------------------------- 53 CHARACTER(len=*), DIMENSION(:), INTENT(out) :: ldtxt, ldnam ! stored print information54 53 CHARACTER(len=*) , INTENT(out) :: cd_cfg ! configuration name 55 54 INTEGER , INTENT(out) :: kk_cfg ! configuration resolution … … 57 56 INTEGER , INTENT(out) :: kperio ! lateral global domain b.c. 58 57 ! 59 INTEGER :: ios , ii! Local integer58 INTEGER :: ios ! Local integer 60 59 !! 61 60 NAMELIST/namusr_def/ ln_zco, ln_zps, ln_sco, rn_dx, rn_dz 62 61 !!---------------------------------------------------------------------- 63 62 ! 64 ii = 165 !66 63 REWIND( numnam_cfg ) ! Namelist namusr_def (exist in namelist_cfg only) 67 64 READ ( numnam_cfg, namusr_def, IOSTAT = ios, ERR = 902 ) 68 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namusr_def in configuration namelist' , .TRUE.)65 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namusr_def in configuration namelist' ) 69 66 ! 70 WRITE( ldnam(:), namusr_def )67 IF(lwm) WRITE( numond, namusr_def ) 71 68 ! 72 69 cd_cfg = 'OVERFLOW' ! name & resolution (not used) … … 79 76 ! 80 77 ! ! control print 81 WRITE( ldtxt(ii),*) ' ' ; ii = ii + 182 WRITE( ldtxt(ii),*) 'usr_def_nam : read the user defined namelist (namusr_def) in namelist_cfg' ; ii = ii + 183 WRITE( ldtxt(ii),*) '~~~~~~~~~~~ ' ; ii = ii + 184 WRITE( ldtxt(ii),*) ' Namelist namusr_def : OVERFLOW test case' ; ii = ii + 185 WRITE( ldtxt(ii),*) ' type of vertical coordinate : ' ; ii = ii + 186 WRITE( ldtxt(ii),*) ' z-coordinate flag ln_zco = ', ln_zco ; ii = ii + 187 WRITE( ldtxt(ii),*) ' z-partial-step coordinate flag ln_zps = ', ln_zps ; ii = ii + 188 WRITE( ldtxt(ii),*) ' s-coordinate flag ln_sco = ', ln_sco ; ii = ii + 189 WRITE( ldtxt(ii),*) ' horizontal resolution rn_dx = ', rn_dx, ' meters' ; ii = ii + 190 WRITE( ldtxt(ii),*) ' vertical resolution rn_dz = ', rn_dz, ' meters' ; ii = ii + 191 WRITE( ldtxt(ii),*) ' OVERFLOW domain = 200 km x 3 grid-points x 2000 m' ; ii = ii + 192 WRITE( ldtxt(ii),*) ' resulting global domain size : jpiglo = ', kpi ; ii = ii + 193 WRITE( ldtxt(ii),*) ' jpjglo = ', kpj ; ii = ii + 194 WRITE( ldtxt(ii),*) ' jpkglo = ', kpk ; ii = ii + 178 WRITE(numout,*) ' ' 79 WRITE(numout,*) 'usr_def_nam : read the user defined namelist (namusr_def) in namelist_cfg' 80 WRITE(numout,*) '~~~~~~~~~~~ ' 81 WRITE(numout,*) ' Namelist namusr_def : OVERFLOW test case' 82 WRITE(numout,*) ' type of vertical coordinate : ' 83 WRITE(numout,*) ' z-coordinate flag ln_zco = ', ln_zco 84 WRITE(numout,*) ' z-partial-step coordinate flag ln_zps = ', ln_zps 85 WRITE(numout,*) ' s-coordinate flag ln_sco = ', ln_sco 86 WRITE(numout,*) ' horizontal resolution rn_dx = ', rn_dx, ' meters' 87 WRITE(numout,*) ' vertical resolution rn_dz = ', rn_dz, ' meters' 88 WRITE(numout,*) ' OVERFLOW domain = 200 km x 3 grid-points x 2000 m' 89 WRITE(numout,*) ' resulting global domain size : jpiglo = ', kpi 90 WRITE(numout,*) ' jpjglo = ', kpj 91 WRITE(numout,*) ' jpkglo = ', kpk 95 92 ! 96 93 ! ! Set the lateral boundary condition of the global domain 97 94 kperio = 0 ! OVERFLOW configuration : close basin 98 95 ! 99 WRITE( ldtxt(ii),*) ' ' ; ii = ii + 1100 WRITE( ldtxt(ii),*) ' Lateral boundary condition of the global domain' ; ii = ii + 1101 WRITE( ldtxt(ii),*) ' OVERFLOW : closed basin jperio = ', kperio ; ii = ii + 196 WRITE(numout,*) ' ' 97 WRITE(numout,*) ' Lateral boundary condition of the global domain' 98 WRITE(numout,*) ' OVERFLOW : closed basin jperio = ', kperio 102 99 ! 103 100 END SUBROUTINE usr_def_nam -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/OVERFLOW/MY_SRC/usrdef_zgr.F90
r10425 r11822 96 96 ! ! ==>>> set by hand non-zero value on first/last columns & rows 97 97 DO ji = mi0(1), mi1(1) ! first row of global domain only 98 zhu(ji,2) = zht( 1,2)99 END DO 100 DO ji = mi0(jpi ), mi1(jpi)! last row of global domain only101 zhu(ji,2) = zht(j pi,2)98 zhu(ji,2) = zht(ji,2) 99 END DO 100 DO ji = mi0(jpiglo), mi1(jpiglo) ! last row of global domain only 101 zhu(ji,2) = zht(ji,2) 102 102 END DO 103 103 zhu(:,1) = zhu(:,2) -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/README.rst
r10605 r11822 3 3 ********************** 4 4 5 The complete and up-to-date set of test cases is available on 6 `NEMO test cases Github repository <http://github.com/NEMO-ocean/NEMO-examples>`_. 7 8 Download it directly in the ``./tests`` root directory with 5 .. todo:: 6 7 8 9 .. contents:: 10 :local: 11 :depth: 1 12 13 Installation 14 ============ 15 16 Download 17 -------- 18 19 | The complete and up-to-date set of test cases is available on 20 :github:`NEMO test cases repository <NEMO-examples>`. 21 | Download it directly into the :file:`./tests` root directory with 9 22 10 23 .. code-block:: console … … 12 25 $ git clone http://github.com/NEMO-ocean/NEMO-examples 13 26 14 .. contents:: 15 :local: 16 17 Procedure 18 ========= 19 20 Compile test cases 21 ------------------ 22 23 The compilation of the test cases is very similar to the manner the reference configurations are compiled. 24 If you are not familiar on how to compile NEMO, it is first recomended to read :doc:`the instructions <install>` 25 26 | In the same manner as the ref. cfg are compiled with '-r' option, test cases can be compile by the use of makenemo with '-a' option. 27 | Here an example to compile a copy named WAD2 of the wetting and drying test case (WAD) on the macport_osx architecture on 4 cores: 27 Compilation 28 ----------- 29 30 The compilation of the test cases is very similar to 31 the manner the reference configurations are compiled. 32 If you are not familiar on how to compile NEMO, 33 it is first recomended to read :doc:`the instructions <install>`. 34 35 | As the reference configurations are compiled with ``-r`` option, 36 test cases can be compiled by the use of :file:`makenemo` with ``-a`` option. 37 | Here an example to compile a copy named WAD2 of the wetting and drying test case (WAD): 28 38 29 39 .. code-block:: console 30 40 31 $ ./makenemo -n 'WAD2' -a 'WAD' -m 'macport_osx' -j '4' 32 33 Run and analyse the test cases 34 ------------------------------ 35 36 There no requirement of specific input file for the test_cases presented here. The XIOS xml input files and namelist are already setup correctly. 41 $ ./makenemo -n 'WAD2' -a 'WAD' -m 'my_arch' -j '4' 42 43 Run and analysis 44 ---------------- 45 46 There no requirement of specific input file for the test_cases presented here. 47 The XIOS xml input files and namelist are already setup correctly. 37 48 For detailed description and Jupyter notebook, the reader is directed on 38 the `NEMO test cases repository <http://github.com/NEMO-ocean/NEMO-examples>`_49 the :github:`NEMO test cases repository <NEMO-examples>` 39 50 40 51 The description below is a brief advertisement of some test cases. 41 52 53 List of test cases 54 ================== 55 42 56 ICE_AGRIF 43 ========= 44 45 This test case illustrates the advection of an ice patch across an East/West and North/South periodic channel 46 over a slab ocean (i.e. one ocean layer), and with an AGRIF zoom (1:3) in the center 47 The purpose of this configuration is to test the advection of the ice patch in 48 and across the AGRIF boundary 49 One can either impose ice velocities or ice-atm. stresses and let rheology define velocities 50 (see README for details) 51 52 .. image:: _static/ICE_AGRIF_UDIAG_43days_UM5.gif 57 --------- 58 59 .. figure:: _static/ICE_AGRIF_UDIAG_43days_UM5.gif 60 :width: 200px 61 :align: left 62 63 .. 64 65 | This test case illustrates the advection of an ice patch across 66 an East/West and North/South periodic channel over a slab ocean (i.e. one ocean layer), 67 and with an AGRIF zoom (1:3) in the center. 68 | The purpose of this configuration is to 69 test the advection of the ice patch in and across the AGRIF boundary. 70 One can either impose ice velocities or ice-atm. 71 Stresses and let rheology define velocities (see :file:`README` for details) 53 72 54 73 VORTEX 55 ====== 56 57 This test case illustrates the propagation of an anticyclonic eddy over a Beta plan and a flat bottom. 58 It is implemented here with an online refined subdomain (1:3) out of which the vortex propagates. 59 It serves as a benchmark for quantitative estimates of nesting errors as in Debreu et al. (2012) :cite:`DEBREU2012`, 60 Penven et al. (2006) :cite:`PENVEN2006` or Spall and Holland (1991) :cite:`SPALL1991`. 61 62 The animation below (sea level anomaly in meters) illustrates with two 1:2 successively nested grids how 63 the vortex smoothly propagates out of the refined grids. 64 65 .. image:: _static/VORTEX_anim.gif 74 ------ 75 76 .. figure:: _static/VORTEX_anim.gif 77 :width: 200px 78 :align: right 79 80 .. 81 82 This test case illustrates the propagation of an anticyclonic eddy over a Beta plan and a flat bottom. 83 It is implemented here with an online refined subdomain (1:3) out of which the vortex propagates. 84 It serves as a benchmark for quantitative estimates of nesting errors as in :cite:`DEBREU2012`, 85 :cite:`PENVEN2006` or :cite:`SPALL1991`. 86 87 The animation (sea level anomaly in meters) illustrates with 88 two 1:2 successively nested grids how the vortex smoothly propagates out of the refined grids. 66 89 67 90 ISOMIP 68 ====== 69 70 The purpose of this test case is to evaluate the impact of various schemes and new development with the iceshelf cavities circulation and melt. 71 This configuration served as initial assesment of the ice shelf module in Losh et al. (2008) :cite:`LOSCH2008` and Mathiot et al. (2017) :cite:`MATHIOT2017`. 72 The default setup is the one described `here <http://staff.acecrc.org.au/~bkgalton/ISOMIP/test_cavities.pdf>`_. 73 74 The figure below (meridional overturning circulation) illustrates the circulation generated after 10000 days by the ice shelf melting (ice pump). 75 76 .. image:: _static/ISOMIP_moc.png 91 ------ 92 93 .. figure:: _static/ISOMIP_moc.png 94 :width: 200px 95 :align: left 96 97 .. 98 99 | The purpose of this test case is to evaluate the impact of various schemes and new development with 100 the iceshelf cavities circulation and melt. 101 This configuration served as initial assesment of the ice shelf module in :cite:`LOSCH2008` and 102 :cite:`MATHIOT2017`. 103 The default setup is the one described |ISOMIP|_. 104 | The figure (meridional overturning circulation) illustrates 105 the circulation generated after 10000 days by the ice shelf melting (ice pump). 106 107 .. |ISOMIP| replace:: here 77 108 78 109 LOCK_EXCHANGE 79 ============= 80 81 The LOCK EXCHANGE experiment is a classical fluid dynamics experiment that has been adapted 82 by Haidvogel and Beckmann (1999) :cite:`HAIDVOGEL1999` for testing advection schemes in ocean circulation models. 83 It has been used by several authors including Burchard and Bolding (2002) :cite:`BURCHARD2002` and Ilicak et al. (2012) :cite:`ILICAK2012`. 84 The LOCK EXCHANGE experiment can in particular illustrate the impact of different choices of numerical schemes 85 and/or subgrid closures on spurious interior mixing. 86 87 Below the animation of the LOCK_EXCHANGE test case using the advection scheme FCT4 (forth order) for tracer and ubs for dynamics. 88 89 .. image:: _static/LOCK-FCT4_flux_ubs.gif 110 ------------- 111 112 .. figure:: _static/LOCK-FCT4_flux_ubs.gif 113 :width: 200px 114 :align: right 115 116 .. 117 118 | The LOCK EXCHANGE experiment is a classical fluid dynamics experiment that has been adapted 119 by :cite:`HAIDVOGEL1999` for testing advection schemes in ocean circulation models. 120 It has been used by several authors including :cite:`BURCHARD2002` and :cite:`ILICAK2012`. 121 The LOCK EXCHANGE experiment can in particular illustrate 122 the impact of different choices of numerical schemes and/or subgrid closures on 123 spurious interior mixing. 124 | Here the animation of the LOCK_EXCHANGE test case using 125 the advection scheme FCT4 (forth order) for tracer and ubs for dynamics. 90 126 91 127 OVERFLOW 92 ======== 93 94 The OVERFLOW experiment illustrates the impact of different choices of numerical schemes 95 and/or subgrid closures on spurious interior mixing close to bottom topography. 96 The OVERFLOW experiment is adapted from the non-rotating overflow configuration described 97 in Haidvogel and Beckmann (1999) :cite:`HAIDVOGEL1999` and further used by Ilicak et al. (2012) :cite:`ILICAK2012`. 98 Here we can assess the behaviour of the second-order tracer advection scheme FCT2 and fortht-order FCT4, z-coordinate and sigma coordinate (...). 99 100 Below the animation of the OVERFLOW test case in sigma coordinate with the forth-order advection scheme FCT4. 101 102 .. image:: _static/OVF-sco_FCT4_flux_cen-ahm1000.gif 128 -------- 129 130 .. figure:: _static/OVF-sco_FCT4_flux_cen-ahm1000.gif 131 :width: 200px 132 :align: left 133 134 .. 135 136 | The OVERFLOW experiment illustrates the impact of different choices of numerical schemes and/or 137 subgrid closures on spurious interior mixing close to bottom topography. 138 The OVERFLOW experiment is adapted from the non-rotating overflow configuration described in 139 :cite:`HAIDVOGEL1999` and further used by :cite:`ILICAK2012`. 140 Here we can assess the behaviour of the second-order tracer advection scheme FCT2 and 141 forth-order FCT4, z-coordinate and sigma coordinate (...). 142 | Here the animation of the OVERFLOW test case in sigma coordinate with 143 the forth-order advection scheme FCT4. 103 144 104 145 WAD 105 === 106 107 A set of simple closed basin geometries for testing the Wetting and drying capabilities. 108 Examples range from a closed channel with EW linear bottom slope to a parabolic EW channel with a Gaussian ridge. 109 110 Below the animation of the test case 7. This test case is a simple linear slope with a mid-depth shelf with an open boundary forced with a sinusoidally varying ssh. 111 This test case has been introduced to emulate a typical coastal application with a tidally forced open boundary with an adverse SSH gradient that, when released, creates a surge up the slope. 112 The parameters are chosen such that the surge rises above sea-level before falling back and oscillating towards an equilibrium position 113 114 .. image:: _static/wad_testcase_7.gif 146 --- 147 148 .. figure:: _static/wad_testcase_7.gif 149 :width: 200px 150 :align: right 151 152 .. 153 154 | A set of simple closed basin geometries for testing the Wetting and drying capabilities. 155 Examples range from a closed channel with EW linear bottom slope to 156 a parabolic EW channel with a Gaussian ridge. 157 | Here the animation of the test case 7. 158 This test case is a simple linear slope with a mid-depth shelf with 159 an open boundary forced with a sinusoidally varying ssh. 160 This test case has been introduced to emulate a typical coastal application with 161 a tidally forced open boundary with an adverse SSH gradient that, 162 when released, creates a surge up the slope. 163 The parameters are chosen such that 164 the surge rises above sea-level before falling back and oscillating towards an equilibrium position. 115 165 116 166 CANAL 117 ===== 118 119 East-west periodic canal of variable size with several initial states and associated geostrophic currents (zonal jets or vortex). 120 121 .. image::_static/CANAL_image.gif 167 ----- 168 169 .. figure:: _static/CANAL_image.gif 170 :width: 200px 171 :align: left 172 173 .. 174 175 East-west periodic canal of variable size with several initial states and 176 associated geostrophic currents (zonal jets or vortex). 122 177 123 178 ICE_ADV2D 124 ========= 125 126 This test case illustrates the advection of an ice patch across an East/West and North/South periodic channel 127 over a slab ocean (i.e. one ocean layer).179 --------- 180 181 | This test case illustrates the advection of an ice patch across 182 an East/West and North/South periodic channel over a slab ocean (i.e. one ocean layer). 128 183 The configuration is similar to ICE_AGRIF, except for the AGRIF zoom. 129 184 | The purpose of this configuration is to test the advection schemes available in the sea-ice code 130 185 (for now, Prather and Ultimate-Macho from 1st to 5th order), 131 186 especially the occurence of overshoots in ice thickness 132 133 187 134 188 ICE_ADV1D 135 ========= 136 137 This experiment is the classical Schar & Smolarkiewicz (1996) test case :cite:`SCHAR1996`,138 which has been used in :cite:`LIPSCOMB2004`, 139 and in which very specific shapes of ice concentration,thickness and volume converge toward the center of a basin.189 --------- 190 191 | This experiment is the classical :cite:`SCHAR1996` test case , 192 which has been used in :cite:`LIPSCOMB2004`, and in which very specific shapes of ice concentration, 193 thickness and volume converge toward the center of a basin. 140 194 Convergence is unidirectional (in x) while fields are homogeneous in y. 141 The purpose of this configuration is to test the caracteristics of advection schemes available in the sea-ice code 195 | The purpose of this configuration is to 196 test the caracteristics of advection schemes available in the sea-ice code 142 197 (for now, Prather and Ultimate-Macho from 1st to 5th order), 143 especially the constitency between concentration, thickness and volume, and the preservation of initial shapes.144 145 References 146 ========== 147 148 .. bibliography:: test _cases.bib149 150 151 198 especially the constitency between concentration, thickness and volume, 199 and the preservation of initial shapes. 200 201 .. rubric:: References 202 203 .. bibliography:: tests.bib 204 :all: 205 :style: unsrt 206 :labelprefix: T -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/VORTEX/EXPREF/1_namelist_cfg
r10075 r11822 272 272 !! namdiu Cool skin and warm layer models (default: OFF) 273 273 !! namdiu Cool skin and warm layer models (default: OFF) 274 !! namflo float parameters ( "key_float")275 !! nam_diaharm Harmonic analysis of tidal constituents ( "key_diaharm")276 !! nam dct transports through some sections ("key_diadct")274 !! namflo float parameters (default: OFF) 275 !! nam_diaharm Harmonic analysis of tidal constituents (default: OFF) 276 !! nam_diadct transports through some sections (default: OFF) 277 277 !! nam_diatmb Top Middle Bottom Output (default: OFF) 278 278 !! nam_dia25h 25h Mean Output (default: OFF) -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/VORTEX/EXPREF/context_nemo.xml
r9930 r11822 6 6 <context id="nemo"> 7 7 <!-- $id$ --> 8 <variable_definition> 9 <!-- Year of time origin for NetCDF files; defaults to 1800 --> 10 <variable id="ref_year" type="int" > 1800 </variable> 11 <variable id="rau0" type="float" > 1026.0 </variable> 12 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 13 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 14 <variable id="rhoic" type="float" > 917.0 </variable> 15 <variable id="rhosn" type="float" > 330.0 </variable> 16 <variable id="missval" type="float" > 1.e20 </variable> 17 </variable_definition> 8 18 <!-- Fields definition --> 9 19 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> … … 18 28 19 29 <axis_definition> 20 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" />21 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" />22 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" />23 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" />24 <axis id="nfloat" long_name="Float number" unit="-" />25 <axis id="icbcla" long_name="Iceberg class" unit="1"/>26 <axis id="ncatice" long_name="Ice category" unit="1"/>27 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC"/>28 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC"/>30 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 31 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" /> 32 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" /> 33 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" /> 34 <axis id="nfloat" long_name="Float number" unit="-" /> 35 <axis id="icbcla" long_name="Iceberg class" unit="1" /> 36 <axis id="ncatice" long_name="Ice category" unit="1" /> 37 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC" /> 38 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC" /> 29 39 </axis_definition> 30 40 -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/VORTEX/EXPREF/namelist_cfg
r10075 r11822 263 263 !! namdiu Cool skin and warm layer models (default: OFF) 264 264 !! namdiu Cool skin and warm layer models (default: OFF) 265 !! namflo float parameters ( "key_float")266 !! nam_diaharm Harmonic analysis of tidal constituents ( "key_diaharm")267 !! nam dct transports through some sections ("key_diadct")265 !! namflo float parameters (default: OFF) 266 !! nam_diaharm Harmonic analysis of tidal constituents (default; OFF) 267 !! nam_diadct transports through some sections (default: OFF) 268 268 !! nam_diatmb Top Middle Bottom Output (default: OFF) 269 269 !! nam_dia25h 25h Mean Output (default: OFF) -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/VORTEX/MY_SRC/domvvl.F90
r11483 r11822 990 990 REWIND( numnam_ref ) ! Namelist nam_vvl in reference namelist : 991 991 READ ( numnam_ref, nam_vvl, IOSTAT = ios, ERR = 901) 992 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_vvl in reference namelist' , lwp)992 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_vvl in reference namelist' ) 993 993 REWIND( numnam_cfg ) ! Namelist nam_vvl in configuration namelist : Parameters of the run 994 994 READ ( numnam_cfg, nam_vvl, IOSTAT = ios, ERR = 902 ) 995 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'nam_vvl in configuration namelist' , lwp)995 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'nam_vvl in configuration namelist' ) 996 996 IF(lwm) WRITE ( numond, nam_vvl ) 997 997 ! -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/VORTEX/MY_SRC/usrdef_nam.F90
r10074 r11822 40 40 CONTAINS 41 41 42 SUBROUTINE usr_def_nam( ldtxt, ldnam,cd_cfg, kk_cfg, kpi, kpj, kpk, kperio )42 SUBROUTINE usr_def_nam( cd_cfg, kk_cfg, kpi, kpj, kpk, kperio ) 43 43 !!---------------------------------------------------------------------- 44 44 !! *** ROUTINE dom_nam *** … … 52 52 !! ** input : - namusr_def namelist found in namelist_cfg 53 53 !!---------------------------------------------------------------------- 54 CHARACTER(len=*), DIMENSION(:), INTENT(out) :: ldtxt, ldnam ! stored print information55 54 CHARACTER(len=*) , INTENT(out) :: cd_cfg ! configuration name 56 55 INTEGER , INTENT(out) :: kk_cfg ! configuration resolution … … 58 57 INTEGER , INTENT(out) :: kperio ! lateral global domain b.c. 59 58 ! 60 INTEGER :: ios , ii! Local integer59 INTEGER :: ios ! Local integer 61 60 REAL(wp):: zlx, zly, zh ! Local scalars 62 61 !! … … 64 63 !!---------------------------------------------------------------------- 65 64 ! 66 ii = 167 !68 65 REWIND( numnam_cfg ) ! Namelist namusr_def (exist in namelist_cfg only) 69 66 READ ( numnam_cfg, namusr_def, IOSTAT = ios, ERR = 902 ) 70 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namusr_def in configuration namelist' , .TRUE.)67 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namusr_def in configuration namelist' ) 71 68 ! 72 69 #if defined key_agrif … … 80 77 #endif 81 78 ! 82 WRITE( ldnam(:), namusr_def )79 IF(lwm) WRITE( numond, namusr_def ) 83 80 ! 84 81 cd_cfg = 'VORTEX' ! name & resolution (not used) 85 kk_cfg = INT( rn_dx )82 kk_cfg = nINT( rn_dx ) 86 83 ! 87 ! Global Domain size: VORTEX global domain is 1800 km x 1800 Km x 5000 m 88 kpi = INT( 1800.e3 / rn_dx ) + 3 89 kpj = INT( 1800.e3 / rn_dy ) + 3 90 kpk = INT( 5000._wp / rn_dz ) + 1 91 #if defined key_agrif 92 IF( .NOT. Agrif_Root() ) THEN 84 IF( Agrif_Root() ) THEN ! Global Domain size: VORTEX global domain is 1800 km x 1800 Km x 5000 m 85 kpi = NINT( 1800.e3 / rn_dx ) + 3 86 kpj = NINT( 1800.e3 / rn_dy ) + 3 87 ELSE 93 88 kpi = nbcellsx + 2 + 2*nbghostcells 94 89 kpj = nbcellsy + 2 + 2*nbghostcells 95 90 ENDIF 96 #endif 91 kpk = NINT( 5000._wp / rn_dz ) + 1 97 92 ! 98 93 zlx = (kpi-2)*rn_dx*1.e-3 99 94 zly = (kpj-2)*rn_dy*1.e-3 100 95 zh = (kpk-1)*rn_dz 101 ! ! control print102 WRITE(ldtxt(ii),*) ' ' ; ii = ii + 1103 WRITE(ldtxt(ii),*) 'usr_def_nam : read the user defined namelist (namusr_def) in namelist_cfg' ; ii = ii + 1104 WRITE(ldtxt(ii),*) '~~~~~~~~~~~ ' ; ii = ii + 1105 WRITE(ldtxt(ii),*) ' Namelist namusr_def : VORTEX test case' ; ii = ii + 1106 WRITE(ldtxt(ii),*) ' horizontal resolution rn_dx = ', rn_dx, ' m' ; ii = ii + 1107 WRITE(ldtxt(ii),*) ' horizontal resolution rn_dy = ', rn_dy, ' m' ; ii = ii + 1108 WRITE(ldtxt(ii),*) ' vertical resolution rn_dz = ', rn_dz, ' m' ; ii = ii + 1109 WRITE(ldtxt(ii),*) ' VORTEX domain: ' ; ii = ii + 1110 WRITE(ldtxt(ii),*) ' LX [km]: ', zlx ; ii = ii + 1111 WRITE(ldtxt(ii),*) ' LY [km]: ', zly ; ii = ii + 1112 WRITE(ldtxt(ii),*) ' H [m] : ', zh ; ii = ii + 1113 WRITE(ldtxt(ii),*) ' Reference latitude rn_ppgphi0 = ', rn_ppgphi0 ; ii = ii + 1114 !115 96 ! ! Set the lateral boundary condition of the global domain 116 97 kperio = 0 ! VORTEX configuration : closed basin 117 ! 118 WRITE(ldtxt(ii),*) ' ' ; ii = ii + 1 119 WRITE(ldtxt(ii),*) ' Lateral boundary condition of the global domain' ; ii = ii + 1 120 WRITE(ldtxt(ii),*) ' VORTEX : closed basin jperio = ', kperio ; ii = ii + 1 98 ! ! control print 99 IF(lwp) THEN 100 WRITE(numout,*) ' ' 101 WRITE(numout,*) 'usr_def_nam : read the user defined namelist (namusr_def) in namelist_cfg' 102 WRITE(numout,*) '~~~~~~~~~~~ ' 103 WRITE(numout,*) ' Namelist namusr_def : VORTEX test case' 104 WRITE(numout,*) ' horizontal resolution rn_dx = ', rn_dx, ' m' 105 WRITE(numout,*) ' horizontal resolution rn_dy = ', rn_dy, ' m' 106 WRITE(numout,*) ' vertical resolution rn_dz = ', rn_dz, ' m' 107 WRITE(numout,*) ' VORTEX domain: ' 108 WRITE(numout,*) ' LX [km]: ', zlx 109 WRITE(numout,*) ' LY [km]: ', zly 110 WRITE(numout,*) ' H [m] : ', zh 111 WRITE(numout,*) ' Reference latitude rn_ppgphi0 = ', rn_ppgphi0 112 WRITE(numout,*) ' ' 113 WRITE(numout,*) ' Lateral boundary condition of the global domain' 114 WRITE(numout,*) ' VORTEX : closed basin jperio = ', kperio 115 ENDIF 121 116 ! 122 117 END SUBROUTINE usr_def_nam -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/WAD/EXPREF/context_nemo.xml
r9930 r11822 6 6 <context id="nemo"> 7 7 <!-- $id$ --> 8 <variable_definition> 9 <!-- Year of time origin for NetCDF files; defaults to 1800 --> 10 <variable id="ref_year" type="int" > 1800 </variable> 11 <variable id="rau0" type="float" > 1026.0 </variable> 12 <variable id="cpocean" type="float" > 3991.86795711963 </variable> 13 <variable id="convSpsu" type="float" > 0.99530670233846 </variable> 14 <variable id="rhoic" type="float" > 917.0 </variable> 15 <variable id="rhosn" type="float" > 330.0 </variable> 16 <variable id="missval" type="float" > 1.e20 </variable> 17 </variable_definition> 8 18 <!-- Fields definition --> 9 19 <field_definition src="./field_def_nemo-oce.xml"/> <!-- NEMO ocean dynamics --> … … 18 28 19 29 <axis_definition> 20 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" />21 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" />22 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" />23 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" />24 <axis id="nfloat" long_name="Float number" unit="-" />25 <axis id="icbcla" long_name="Iceberg class" unit="1"/>26 <axis id="ncatice" long_name="Ice category" unit="1"/>27 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC"/>28 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC"/>30 <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 31 <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" /> 32 <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" /> 33 <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" /> 34 <axis id="nfloat" long_name="Float number" unit="-" /> 35 <axis id="icbcla" long_name="Iceberg class" unit="1" /> 36 <axis id="ncatice" long_name="Ice category" unit="1" /> 37 <axis id="iax_20C" long_name="20 degC isotherm" unit="degC" /> 38 <axis id="iax_28C" long_name="28 degC isotherm" unit="degC" /> 29 39 </axis_definition> 30 40 -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/WAD/EXPREF/namelist_cfg
r11763 r11822 180 180 &nambdy_dta ! open boundaries - external data 181 181 !----------------------------------------------------------------------- 182 ln_zinterp = .false. ! T if a vertical interpolation is required. Variables gdep[tuv] and e3[tuv] must exist in the file 183 ! ! automatically defined to T if the number of vertical levels in bdy dta /= jpk 184 ln_full_vel = .false. ! T if [uv]3d are "full" velocities and not only its baroclinic components 185 ! ! in this case, baroclinic and barotropic velocities will be recomputed -> [uv]2d not needed 186 ! 187 cn_dir = './' 182 188 ! ! file name ! frequency (hours) ! variable ! time interp. ! clim ! 'yearly'/ ! weights ! rotation ! land/sea mask ! 183 189 ! ! ! (if <0 months) ! name ! (logical) ! (T/F ) ! 'monthly' ! filename ! pairing ! filename ! 184 bn_ssh = 'bdyssh_tc7' , 1 , 'sshbdy', .true. , .true. , 'daily' , '' , '' , '' 185 bn_u2d = 'bdyuv_tc7' , 1 , 'ubdy' , .true. , .true. , 'daily' , '' , '' , '' 186 bn_v2d = 'bdyuv_tc7' , 1 , 'vbdy' , .true. , .true. , 'daily' , '' , '' , '' 187 cn_dir = './' ! root directory for the location of the bulk files 188 ln_full_vel = .false. ! 190 bn_ssh = 'bdyssh_tc7' , 1. , 'sshbdy', .true. , .true. , 'daily' , '' , '' , '' 191 bn_u2d = 'bdyuv_tc7' , 1. , 'ubdy' , .true. , .true. , 'daily' , '' , '' , '' 192 bn_v2d = 'bdyuv_tc7' , 1. , 'vbdy' , .true. , .true. , 'daily' , '' , '' , '' 189 193 / 190 194 !----------------------------------------------------------------------- … … 417 421 !! namdiu Cool skin and warm layer models (default: OFF) 418 422 !! namdiu Cool skin and warm layer models (default: OFF) 419 !! namflo float parameters ( "key_float")420 !! nam_diaharm Harmonic analysis of tidal constituents ( "key_diaharm")421 !! nam dct transports through some sections ("key_diadct")423 !! namflo float parameters (default: OFF) 424 !! nam_diaharm Harmonic analysis of tidal constituents (default: OFF) 425 !! nam_diadct transports through some sections (default: OFF) 422 426 !! nam_diatmb Top Middle Bottom Output (default: OFF) 423 427 !! nam_dia25h 25h Mean Output (default: OFF) … … 439 443 / 440 444 !----------------------------------------------------------------------- 441 &namdct ! transports through some sections ("key_diadct") 442 !----------------------------------------------------------------------- 445 &nam_diadct ! transports through some sections (default: OFF) 446 !----------------------------------------------------------------------- 447 ln_diadct = .false. ! Calculate transport thru sections or not 443 448 nn_dct = 60 ! time step frequency for transports computing 444 449 nn_dctwri = 60 ! time step frequency for transports writing -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/tests/WAD/MY_SRC/usrdef_nam.F90
r10074 r11822 39 39 CONTAINS 40 40 41 SUBROUTINE usr_def_nam( ldtxt, ldnam,cd_cfg, kk_cfg, kpi, kpj, kpk, kperio )41 SUBROUTINE usr_def_nam( cd_cfg, kk_cfg, kpi, kpj, kpk, kperio ) 42 42 !!---------------------------------------------------------------------- 43 43 !! *** ROUTINE dom_nam *** … … 51 51 !! ** input : - namusr_def namelist found in namelist_cfg 52 52 !!---------------------------------------------------------------------- 53 CHARACTER(len=*), DIMENSION(:), INTENT(out) :: ldtxt, ldnam ! stored print information54 53 CHARACTER(len=*) , INTENT(out) :: cd_cfg ! configuration name 55 54 INTEGER , INTENT(out) :: kk_cfg ! configuration resolution … … 57 56 INTEGER , INTENT(out) :: kperio ! lateral global domain b.c. 58 57 ! 59 INTEGER :: ios , ii! Local integer58 INTEGER :: ios ! Local integer 60 59 !! 61 60 NAMELIST/namusr_def/ rn_dx, rn_dz, nn_wad_test 62 61 !!---------------------------------------------------------------------- 63 62 ! 64 ii = 165 !66 63 REWIND( numnam_cfg ) ! Namelist namusr_def (exist in namelist_cfg only) 67 64 READ ( numnam_cfg, namusr_def, IOSTAT = ios, ERR = 902 ) 68 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namusr_def in configuration namelist' , .TRUE.)65 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namusr_def in configuration namelist' ) 69 66 ! 70 WRITE( ldnam(:), namusr_def )67 IF(lwm) WRITE( numond, namusr_def ) 71 68 ! 72 69 ! … … 79 76 kpj = INT( 32.e3 / rn_dx ) + 2 80 77 kpk = INT( 10. / rn_dz ) + 1 81 !82 ! ! control print83 WRITE(ldtxt(ii),*) ' ' ; ii = ii + 184 WRITE(ldtxt(ii),*) 'usr_def_nam : read the user defined namelist (namusr_def) in namelist_cfg' ; ii = ii + 185 WRITE(ldtxt(ii),*) '~~~~~~~~~~~ ' ; ii = ii + 186 WRITE(ldtxt(ii),*) ' Namelist namusr_def : WAD_TEST_CASES test case' ; ii = ii + 187 WRITE(ldtxt(ii),*) ' horizontal resolution rn_dx = ', rn_dx, ' meters' ; ii = ii + 188 WRITE(ldtxt(ii),*) ' vertical resolution rn_dz = ', rn_dz, ' meters' ; ii = ii + 189 WRITE(ldtxt(ii),*) ' WAD_TEST_CASES domain = 52 km x 34 km x 10 m' ; ii = ii + 190 WRITE(ldtxt(ii),*) ' resulting global domain size : jpiglo = ', kpi ; ii = ii + 191 WRITE(ldtxt(ii),*) ' jpjglo = ', kpj ; ii = ii + 192 WRITE(ldtxt(ii),*) ' jpkglo = ', kpk ; ii = ii + 193 !94 78 ! ! Set the lateral boundary condition of the global domain 95 79 kperio = 0 ! WAD_TEST_CASES configuration : closed domain 96 80 IF( nn_wad_test == 8 ) kperio = 7 ! North-South cyclic test 97 81 ! 98 WRITE(ldtxt(ii),*) ' ' ; ii = ii + 1 99 WRITE(ldtxt(ii),*) ' Lateral boundary condition of the global domain' ; ii = ii + 1 100 WRITE(ldtxt(ii),*) ' closed jperio = ', kperio ; ii = ii + 1 82 ! ! control print 83 IF(lwp) THEN 84 WRITE(numout,*) ' ' 85 WRITE(numout,*) 'usr_def_nam : read the user defined namelist (namusr_def) in namelist_cfg' 86 WRITE(numout,*) '~~~~~~~~~~~ ' 87 WRITE(numout,*) ' Namelist namusr_def : WAD_TEST_CASES test case' 88 WRITE(numout,*) ' horizontal resolution rn_dx = ', rn_dx, ' meters' 89 WRITE(numout,*) ' vertical resolution rn_dz = ', rn_dz, ' meters' 90 WRITE(numout,*) ' WAD_TEST_CASES domain = 52 km x 34 km x 10 m' 91 WRITE(numout,*) ' resulting global domain size : jpiglo = ', kpi 92 WRITE(numout,*) ' jpjglo = ', kpj 93 WRITE(numout,*) ' jpkglo = ', kpk 94 WRITE(numout,*) ' ' 95 WRITE(numout,*) ' Lateral boundary condition of the global domain' 96 WRITE(numout,*) ' closed jperio = ', kperio 97 ENDIF 101 98 ! 102 99 END SUBROUTINE usr_def_nam
Note: See TracChangeset
for help on using the changeset viewer.