Changeset 5836 for trunk/NEMOGCM/NEMO/OPA_SRC/DOM/domain.F90
- Timestamp:
- 2015-10-26T15:49:40+01:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/OPA_SRC/DOM/domain.F90
r5363 r5836 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 !!---------------------------------------------------------------------- … … 146 146 & ppsur, ppa0, ppa1, ppkth, ppacr, ppdzmin, pphmax, ldbletanh, & 147 147 & ppa2, ppkth2, ppacr2 148 NAMELIST/namcla/ nn_cla149 148 #if defined key_netcdf4 150 149 NAMELIST/namnc4/ nn_nchunks_i, nn_nchunks_j, nn_nchunks_k, ln_nc4zip … … 155 154 REWIND( numnam_ref ) ! Namelist namrun in reference namelist : Parameters of the run 156 155 READ ( numnam_ref, namrun, IOSTAT = ios, ERR = 901) 157 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 ) 158 157 159 158 REWIND( numnam_cfg ) ! Namelist namrun in configuration namelist : Parameters of the run 160 159 READ ( numnam_cfg, namrun, IOSTAT = ios, ERR = 902 ) 161 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 ) 162 161 IF(lwm) WRITE ( numond, namrun ) 163 162 ! … … 251 250 904 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdom in configuration namelist', lwp ) 252 251 IF(lwm) WRITE ( numond, namdom ) 253 252 ! 254 253 IF(lwp) THEN 255 254 WRITE(numout,*) … … 293 292 WRITE(numout,*) ' ppacr2 = ', ppacr2 294 293 ENDIF 295 294 ! 296 295 ntopo = nn_bathy ! conversion DOCTOR names into model names (this should disappear soon) 297 296 e3zps_min = rn_e3zps_min … … 304 303 rdtmax = rn_rdtmin 305 304 rdth = rn_rdth 306 307 REWIND( numnam_ref ) ! Namelist namcla in reference namelist : Cross land advection308 READ ( numnam_ref, namcla, IOSTAT = ios, ERR = 905)309 905 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcla in reference namelist', lwp )310 311 REWIND( numnam_cfg ) ! Namelist namcla in configuration namelist : Cross land advection312 READ ( numnam_cfg, namcla, IOSTAT = ios, ERR = 906 )313 906 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcla in configuration namelist', lwp )314 IF(lwm) WRITE( numond, namcla )315 316 IF(lwp) THEN317 WRITE(numout,*)318 WRITE(numout,*) ' Namelist namcla'319 WRITE(numout,*) ' cross land advection nn_cla = ', nn_cla320 ENDIF321 IF ( nn_cla .EQ. 1 ) THEN322 IF ( cp_cfg == "orca" .AND. jp_cfg == 2 ) THEN ! ORCA R2323 CONTINUE324 ELSE325 CALL ctl_stop( 'STOP', 'Cross land advation iplemented only for ORCA2 configuration: cp_cfg = "orca" and jp_cfg = 2 ' )326 ENDIF327 ENDIF328 305 329 306 #if defined key_netcdf4 … … 409 386 END SUBROUTINE dom_ctl 410 387 388 411 389 SUBROUTINE dom_stiff 412 390 !!---------------------------------------------------------------------- … … 427 405 REAL(wp), DIMENSION(4) :: zr1 428 406 !!---------------------------------------------------------------------- 429 rx1(:,:) = 0. e0430 zrxmax = 0. e0431 zr1(:) = 0. e0432 407 rx1(:,:) = 0._wp 408 zrxmax = 0._wp 409 zr1(:) = 0._wp 410 ! 433 411 DO ji = 2, jpim1 434 412 DO jj = 2, jpjm1 … … 455 433 END DO 456 434 END DO 457 458 435 CALL lbc_lnk( rx1, 'T', 1. ) 459 460 zrxmax = MAXVAL( rx1)461 436 ! 437 zrxmax = MAXVAL( rx1 ) 438 ! 462 439 IF( lk_mpp ) CALL mpp_max( zrxmax ) ! max over the global domain 463 440 ! 464 441 IF(lwp) THEN 465 442 WRITE(numout,*) … … 467 444 WRITE(numout,*) '~~~~~~~~~' 468 445 ENDIF 469 446 ! 470 447 END SUBROUTINE dom_stiff 471 472 473 448 474 449 !!======================================================================
Note: See TracChangeset
for help on using the changeset viewer.