- Timestamp:
- 2015-12-02T18:00:22+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2014/dev_r4650_UKMO7_STARTHOUR/NEMOGCM/NEMO/OPA_SRC/DOM/domain.F90
r5985 r5987 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 !!---------------------------------------------------------------------- … … 147 147 & ppsur, ppa0, ppa1, ppkth, ppacr, ppdzmin, pphmax, ldbletanh, & 148 148 & ppa2, ppkth2, ppacr2 149 NAMELIST/namcla/ nn_cla150 149 #if defined key_netcdf4 151 150 NAMELIST/namnc4/ nn_nchunks_i, nn_nchunks_j, nn_nchunks_k, ln_nc4zip … … 156 155 REWIND( numnam_ref ) ! Namelist namrun in reference namelist : Parameters of the run 157 156 READ ( numnam_ref, namrun, IOSTAT = ios, ERR = 901) 158 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namrun in reference namelist', lwp )157 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namrun in reference namelist', lwp ) 159 158 160 159 REWIND( numnam_cfg ) ! Namelist namrun in configuration namelist : Parameters of the run 161 160 READ ( numnam_cfg, namrun, IOSTAT = ios, ERR = 902 ) 162 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namrun in configuration namelist', lwp )161 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namrun in configuration namelist', lwp ) 163 162 IF(lwm) WRITE ( numond, namrun ) 164 163 ! … … 253 252 904 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdom in configuration namelist', lwp ) 254 253 IF(lwm) WRITE ( numond, namdom ) 255 254 ! 256 255 IF(lwp) THEN 257 256 WRITE(numout,*) … … 295 294 WRITE(numout,*) ' ppacr2 = ', ppacr2 296 295 ENDIF 297 296 ! 298 297 ntopo = nn_bathy ! conversion DOCTOR names into model names (this should disappear soon) 299 298 e3zps_min = rn_e3zps_min … … 306 305 rdtmax = rn_rdtmin 307 306 rdth = rn_rdth 308 309 REWIND( numnam_ref ) ! Namelist namcla in reference namelist : Cross land advection310 READ ( numnam_ref, namcla, IOSTAT = ios, ERR = 905)311 905 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcla in reference namelist', lwp )312 313 REWIND( numnam_cfg ) ! Namelist namcla in configuration namelist : Cross land advection314 READ ( numnam_cfg, namcla, IOSTAT = ios, ERR = 906 )315 906 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcla in configuration namelist', lwp )316 IF(lwm) WRITE( numond, namcla )317 318 IF(lwp) THEN319 WRITE(numout,*)320 WRITE(numout,*) ' Namelist namcla'321 WRITE(numout,*) ' cross land advection nn_cla = ', nn_cla322 ENDIF323 IF ( nn_cla .EQ. 1 ) THEN324 IF ( cp_cfg == "orca" .AND. jp_cfg == 2 ) THEN ! ORCA R2325 CONTINUE326 ELSE327 CALL ctl_stop( 'STOP', 'Cross land advation iplemented only for ORCA2 configuration: cp_cfg = "orca" and jp_cfg = 2 ' )328 ENDIF329 ENDIF330 307 331 308 #if defined key_netcdf4 … … 411 388 END SUBROUTINE dom_ctl 412 389 390 413 391 SUBROUTINE dom_stiff 414 392 !!---------------------------------------------------------------------- … … 429 407 REAL(wp), DIMENSION(4) :: zr1 430 408 !!---------------------------------------------------------------------- 431 rx1(:,:) = 0. e0432 zrxmax = 0. e0433 zr1(:) = 0. e0434 409 rx1(:,:) = 0._wp 410 zrxmax = 0._wp 411 zr1(:) = 0._wp 412 ! 435 413 DO ji = 2, jpim1 436 414 DO jj = 2, jpjm1 … … 457 435 END DO 458 436 END DO 459 460 437 CALL lbc_lnk( rx1, 'T', 1. ) 461 462 zrxmax = MAXVAL( rx1)463 438 ! 439 zrxmax = MAXVAL( rx1 ) 440 ! 464 441 IF( lk_mpp ) CALL mpp_max( zrxmax ) ! max over the global domain 465 442 ! 466 443 IF(lwp) THEN 467 444 WRITE(numout,*) … … 469 446 WRITE(numout,*) '~~~~~~~~~' 470 447 ENDIF 471 448 ! 472 449 END SUBROUTINE dom_stiff 473 474 475 450 476 451 !!======================================================================
Note: See TracChangeset
for help on using the changeset viewer.