Changeset 5989 for branches/2014/dev_r4650_UKMO10_Tidally_Meaned_Diagnostics/NEMOGCM/NEMO/OPA_SRC/DOM/domain.F90
- Timestamp:
- 2015-12-03T09:10:32+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2014/dev_r4650_UKMO10_Tidally_Meaned_Diagnostics/NEMOGCM/NEMO/OPA_SRC/DOM/domain.F90
r5260 r5989 19 19 !! dom_nam : read and contral domain namelists 20 20 !! dom_ctl : control print for the ocean domain 21 !! dom_stiff : diagnose maximum grid stiffness/hydrostatic consistency (s-coordinate) 21 22 !!---------------------------------------------------------------------- 22 23 USE oce ! ocean variables … … 25 26 USE phycst ! physical constants 26 27 USE closea ! closed seas 27 USE in_out_manager ! I/O manager28 USE lib_mpp ! distributed memory computing library29 30 28 USE domhgr ! domain: set the horizontal mesh 31 29 USE domzgr ! domain: set the vertical mesh … … 36 34 USE c1d ! 1D vertical configuration 37 35 USE dyncor_c1d ! Coriolis term (c1d case) (cor_c1d routine) 36 ! 37 USE in_out_manager ! I/O manager 38 USE lib_mpp ! distributed memory computing library 39 USE lbclnk ! ocean lateral boundary condition (or mpp link) 38 40 USE timing ! Timing 39 USE lbclnk ! ocean lateral boundary condition (or mpp link)40 41 41 42 IMPLICIT NONE … … 81 82 ENDIF 82 83 ! 83 CALL dom_nam ! read namelist ( namrun, namdom , namcla)84 CALL dom_nam ! read namelist ( namrun, namdom ) 84 85 CALL dom_clo ! Closed seas and lake 85 86 CALL dom_hgr ! Horizontal mesh … … 88 89 IF( ln_sco ) CALL dom_stiff ! Maximum stiffness ratio/hydrostatic consistency 89 90 ! 90 ht_0(:,:) = 0. 0_wp! Reference ocean depth at T-points91 hu_0(:,:) = 0. 0_wp! Reference ocean depth at U-points92 hv_0(:,:) = 0. 0_wp! Reference ocean depth at V-points91 ht_0(:,:) = 0._wp ! Reference ocean depth at T-points 92 hu_0(:,:) = 0._wp ! Reference ocean depth at U-points 93 hv_0(:,:) = 0._wp ! Reference ocean depth at V-points 93 94 DO jk = 1, jpk 94 95 ht_0(:,:) = ht_0(:,:) + e3t_0(:,:,jk) * tmask(:,:,jk) … … 97 98 END DO 98 99 ! 99 IF( lk_vvl )CALL dom_vvl_init ! Vertical variable mesh100 IF( lk_vvl ) CALL dom_vvl_init ! Vertical variable mesh 100 101 ! 101 102 IF( lk_c1d ) CALL cor_c1d ! 1D configuration: Coriolis set at T-point … … 131 132 !! ** input : - namrun namelist 132 133 !! - namdom namelist 133 !! - namcla namelist134 134 !! - namnc4 namelist ! "key_netcdf4" only 135 135 !!---------------------------------------------------------------------- 136 136 USE ioipsl 137 NAMELIST/namrun/ nn_no , cn_exp , cn_ocerst_in, cn_ocerst_out, ln_rstart , nn_rstctl, & 137 NAMELIST/namrun/ cn_ocerst_indir, cn_ocerst_outdir, nn_stocklist, ln_rst_list, & 138 & nn_no , cn_exp , cn_ocerst_in, cn_ocerst_out, ln_rstart , nn_rstctl, & 138 139 & nn_it000, nn_itend , nn_date0 , nn_leapy , nn_istate , nn_stock , & 139 & nn_write, ln_dimgnnn, ln_mskland , ln_c lobber, nn_chunksz, nn_euler140 & nn_write, ln_dimgnnn, ln_mskland , ln_cfmeta , ln_clobber, nn_chunksz, nn_euler 140 141 NAMELIST/namdom/ nn_bathy, rn_bathy , rn_e3zps_min, rn_e3zps_rat, nn_msh, rn_hmin, & 141 142 & nn_acc , rn_atfp , rn_rdt , rn_rdtmin , & … … 145 146 & ppsur, ppa0, ppa1, ppkth, ppacr, ppdzmin, pphmax, ldbletanh, & 146 147 & ppa2, ppkth2, ppacr2 147 NAMELIST/namcla/ nn_cla148 148 #if defined key_netcdf4 149 149 NAMELIST/namnc4/ nn_nchunks_i, nn_nchunks_j, nn_nchunks_k, ln_nc4zip … … 154 154 REWIND( numnam_ref ) ! Namelist namrun in reference namelist : Parameters of the run 155 155 READ ( numnam_ref, namrun, IOSTAT = ios, ERR = 901) 156 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namrun in reference namelist', lwp )156 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namrun in reference namelist', lwp ) 157 157 158 158 REWIND( numnam_cfg ) ! Namelist namrun in configuration namelist : Parameters of the run 159 159 READ ( numnam_cfg, namrun, IOSTAT = ios, ERR = 902 ) 160 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namrun in configuration namelist', lwp )160 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namrun in configuration namelist', lwp ) 161 161 IF(lwm) WRITE ( numond, namrun ) 162 162 ! … … 169 169 WRITE(numout,*) ' experiment name for output cn_exp = ', cn_exp 170 170 WRITE(numout,*) ' file prefix restart input cn_ocerst_in= ', cn_ocerst_in 171 WRITE(numout,*) ' restart input directory cn_ocerst_indir= ', cn_ocerst_indir 171 172 WRITE(numout,*) ' file prefix restart output cn_ocerst_out= ', cn_ocerst_out 173 WRITE(numout,*) ' restart output directory cn_ocerst_outdir= ', cn_ocerst_outdir 172 174 WRITE(numout,*) ' restart logical ln_rstart = ', ln_rstart 173 175 WRITE(numout,*) ' start with forward time step nn_euler = ', nn_euler … … 178 180 WRITE(numout,*) ' leap year calendar (0/1) nn_leapy = ', nn_leapy 179 181 WRITE(numout,*) ' initial state output nn_istate = ', nn_istate 180 WRITE(numout,*) ' frequency of restart file nn_stock = ', nn_stock 182 IF( ln_rst_list ) THEN 183 WRITE(numout,*) ' list of restart dump times nn_stocklist =', nn_stocklist 184 ELSE 185 WRITE(numout,*) ' frequency of restart file nn_stock = ', nn_stock 186 ENDIF 181 187 WRITE(numout,*) ' frequency of output file nn_write = ', nn_write 182 188 WRITE(numout,*) ' multi file dimgout ln_dimgnnn = ', ln_dimgnnn 183 189 WRITE(numout,*) ' mask land points ln_mskland = ', ln_mskland 190 WRITE(numout,*) ' additional CF standard metadata ln_cfmeta = ', ln_cfmeta 184 191 WRITE(numout,*) ' overwrite an existing file ln_clobber = ', ln_clobber 185 192 WRITE(numout,*) ' NetCDF chunksize (bytes) nn_chunksz = ', nn_chunksz … … 195 202 ninist = nn_istate 196 203 nstock = nn_stock 204 nstocklist = nn_stocklist 197 205 nwrite = nn_write 198 206 neuler = nn_euler 199 IF ( neuler == 1 .AND. .NOT. ln_rstart ) THEN207 IF ( neuler == 1 .AND. .NOT. ln_rstart ) THEN 200 208 WRITE(ctmp1,*) 'ln_rstart =.FALSE., nn_euler is forced to 0 ' 201 209 CALL ctl_warn( ctmp1 ) … … 242 250 904 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdom in configuration namelist', lwp ) 243 251 IF(lwm) WRITE ( numond, namdom ) 244 252 ! 245 253 IF(lwp) THEN 246 254 WRITE(numout,*) … … 284 292 WRITE(numout,*) ' ppacr2 = ', ppacr2 285 293 ENDIF 286 294 ! 287 295 ntopo = nn_bathy ! conversion DOCTOR names into model names (this should disappear soon) 288 296 e3zps_min = rn_e3zps_min … … 295 303 rdtmax = rn_rdtmin 296 304 rdth = rn_rdth 297 298 REWIND( numnam_ref ) ! Namelist namcla in reference namelist : Cross land advection299 READ ( numnam_ref, namcla, IOSTAT = ios, ERR = 905)300 905 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcla in reference namelist', lwp )301 302 REWIND( numnam_cfg ) ! Namelist namcla in configuration namelist : Cross land advection303 READ ( numnam_cfg, namcla, IOSTAT = ios, ERR = 906 )304 906 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcla in configuration namelist', lwp )305 IF(lwm) WRITE( numond, namcla )306 307 IF(lwp) THEN308 WRITE(numout,*)309 WRITE(numout,*) ' Namelist namcla'310 WRITE(numout,*) ' cross land advection nn_cla = ', nn_cla311 ENDIF312 IF ( nn_cla .EQ. 1 ) THEN313 IF ( cp_cfg == "orca" .AND. jp_cfg == 2 ) THEN ! ORCA R2314 CONTINUE315 ELSE316 CALL ctl_stop( 'STOP', 'Cross land advation iplemented only for ORCA2 configuration: cp_cfg = "orca" and jp_cfg = 2 ' )317 ENDIF318 ENDIF319 305 320 306 #if defined key_netcdf4 … … 400 386 END SUBROUTINE dom_ctl 401 387 388 402 389 SUBROUTINE dom_stiff 403 390 !!---------------------------------------------------------------------- … … 418 405 REAL(wp), DIMENSION(4) :: zr1 419 406 !!---------------------------------------------------------------------- 420 rx1(:,:) = 0. e0421 zrxmax = 0. e0422 zr1(:) = 0. e0423 407 rx1(:,:) = 0._wp 408 zrxmax = 0._wp 409 zr1(:) = 0._wp 410 ! 424 411 DO ji = 2, jpim1 425 412 DO jj = 2, jpjm1 … … 446 433 END DO 447 434 END DO 448 449 435 CALL lbc_lnk( rx1, 'T', 1. ) 450 451 zrxmax = MAXVAL( rx1)452 436 ! 437 zrxmax = MAXVAL( rx1 ) 438 ! 453 439 IF( lk_mpp ) CALL mpp_max( zrxmax ) ! max over the global domain 454 440 ! 455 441 IF(lwp) THEN 456 442 WRITE(numout,*) … … 458 444 WRITE(numout,*) '~~~~~~~~~' 459 445 ENDIF 460 446 ! 461 447 END SUBROUTINE dom_stiff 462 463 464 448 465 449 !!======================================================================
Note: See TracChangeset
for help on using the changeset viewer.