Changeset 5782 for branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO
- Timestamp:
- 2015-10-08T15:51:36+02:00 (9 years ago)
- Location:
- branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OFF_SRC/domrea.F90
r5737 r5782 65 65 ENDIF 66 66 ! 67 CALL dom_nam ! read namelist ( namrun, namdom , namcla)67 CALL dom_nam ! read namelist ( namrun, namdom ) 68 68 CALL dom_zgr ! Vertical mesh and bathymetry option 69 69 CALL dom_grd ! Create a domain file … … 109 109 !! ** input : - namrun namelist 110 110 !! - namdom namelist 111 !! - namcla namelist112 111 !!---------------------------------------------------------------------- 113 112 USE ioipsl … … 125 124 & ppsur, ppa0, ppa1, ppkth, ppacr, ppdzmin, pphmax, ldbletanh, & 126 125 & ppa2, ppkth2, ppacr2 127 NAMELIST/namcla/ nn_cla128 126 #if defined key_netcdf4 129 127 NAMELIST/namnc4/ nn_nchunks_i, nn_nchunks_j, nn_nchunks_k, ln_nc4zip … … 268 266 rdtmax = rn_rdtmin 269 267 rdth = rn_rdth 270 271 REWIND( numnam_ref ) ! Namelist namcla in reference namelist : Cross land advection272 READ ( numnam_ref, namcla, IOSTAT = ios, ERR = 905)273 905 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcla in reference namelist', lwp )274 275 REWIND( numnam_cfg ) ! Namelist namcla in configuration namelist : Cross land advection276 READ ( numnam_cfg, namcla, IOSTAT = ios, ERR = 906 )277 906 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcla in configuration namelist', lwp )278 IF(lwm) WRITE( numond, namcla )279 280 IF(lwp) THEN281 WRITE(numout,*)282 WRITE(numout,*) ' Namelist namcla'283 WRITE(numout,*) ' cross land advection nn_cla = ', nn_cla284 ENDIF285 268 286 269 #if defined key_netcdf4 -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OFF_SRC/dtadyn.F90
r5737 r5782 26 26 USE trc_oce ! share ocean/biogeo variables 27 27 USE phycst ! physical constants 28 USE ldftra ! lateral diffusivity coefficients 28 29 USE trabbl ! active tracer: bottom boundary layer 29 30 USE ldfslp ! lateral diffusion: iso-neutral slopes 30 USE ldfeiv ! eddy induced velocity coef.31 USE ldftra_oce ! ocean tracer lateral physics32 31 USE zdfmxl ! vertical physics: mixed layer depth 33 32 USE eosbn2 ! equation of state - Brunt Vaisala frequency … … 40 39 USE fldread ! read input fields 41 40 USE timing ! Timing 41 USE wrk_nemo 42 42 43 43 IMPLICIT NONE … … 50 50 LOGICAL :: ln_dynwzv !: vertical velocity read in a file (T) or computed from u/v (F) 51 51 LOGICAL :: ln_dynbbl !: bbl coef read in a file (T) or computed (F) 52 LOGICAL :: ln_degrad !: degradation option enabled or not53 52 LOGICAL :: ln_dynrnf !: read runoff data in file (T) or set to zero (F) 54 53 55 INTEGER , PARAMETER :: jpfld = 21! maximum number of fields to read54 INTEGER , PARAMETER :: jpfld = 15 ! maximum number of fields to read 56 55 INTEGER , SAVE :: jf_tem ! index of temperature 57 56 INTEGER , SAVE :: jf_sal ! index of salinity … … 68 67 INTEGER , SAVE :: jf_ubl ! index of u-bbl coef 69 68 INTEGER , SAVE :: jf_vbl ! index of v-bbl coef 70 INTEGER , SAVE :: jf_ahu ! index of u-diffusivity coef71 INTEGER , SAVE :: jf_ahv ! index of v-diffusivity coef72 INTEGER , SAVE :: jf_ahw ! index of w-diffusivity coef73 INTEGER , SAVE :: jf_eiu ! index of u-eiv74 INTEGER , SAVE :: jf_eiv ! index of v-eiv75 INTEGER , SAVE :: jf_eiw ! index of w-eiv76 69 INTEGER , SAVE :: jf_fmf ! index of downward salt flux 77 70 … … 112 105 !! - interpolates data if needed 113 106 !!---------------------------------------------------------------------- 114 ! 115 USE oce, ONLY: zts => tsa 107 USE oce, ONLY: zts => tsa 116 108 USE oce, ONLY: zuslp => ua , zvslp => va 117 USE oce, ONLY: zwslpi => rotb , zwslpj => rotn118 USE oce, ONLY: zu => ub , zv => vb, zw => hdivb109 USE oce, ONLY: zwslpi => ua_sv , zwslpj => va_sv 110 USE oce, ONLY: zu => ub , zv => vb, zw => rke 119 111 ! 120 112 INTEGER, INTENT(in) :: kt ! ocean time-step index 113 ! 114 ! REAL(wp), DIMENSION(jpi,jpj,jpk,jpts) :: zts 115 ! REAL(wp), DIMENSION(jpi,jpj,jpk ) :: zuslp, zvslp, zwslpi, zwslpj 116 ! REAL(wp), DIMENSION(jpi,jpj,jpk ) :: zu, zv, zw 117 ! 121 118 ! 122 119 INTEGER :: ji, jj ! dummy loop indices … … 138 135 CALL fld_read( kt, 1, sf_dyn ) !== read data at kt time step ==! 139 136 ! 140 IF( l k_ldfslp .AND. .NOT.lk_c1d .AND. sf_dyn(jf_tem)%ln_tint ) THEN ! Computes slopes (here avt is used as workspace)137 IF( l_ldfslp .AND. .NOT.lk_c1d .AND. sf_dyn(jf_tem)%ln_tint ) THEN ! Computes slopes (here avt is used as workspace) 141 138 zts(:,:,:,jp_tem) = sf_dyn(jf_tem)%fdta(:,:,:,1) * tmask(:,:,:) ! temperature 142 139 zts(:,:,:,jp_sal) = sf_dyn(jf_sal)%fdta(:,:,:,1) * tmask(:,:,:) ! salinity … … 162 159 ENDIF 163 160 ! 164 IF( l k_ldfslp .AND. .NOT.lk_c1d ) THEN ! Computes slopes (here avt is used as workspace)161 IF( l_ldfslp .AND. .NOT.lk_c1d ) THEN ! Computes slopes (here avt is used as workspace) 165 162 iswap_tem = 0 166 163 IF( kt /= nit000 .AND. ( sf_dyn(jf_tem)%nrec_a(2) - nrecprev_tem ) /= 0 ) iswap_tem = 1 … … 267 264 rnf (:,:) = sf_dyn(jf_rnf)%fnow(:,:,1) * tmask(:,:,1) ! river runoffs 268 265 266 ! ! update eddy diffusivity coeff. and/or eiv coeff. at kt 267 IF( l_ldftra_time .OR. l_ldfeiv_time ) CALL ldf_tra( kt ) 269 268 ! ! bbl diffusive coef 270 269 #if defined key_trabbl && ! defined key_c1d … … 276 275 CALL bbl( kt, nit000, 'TRC') 277 276 END IF 278 #endif279 #if ( ! defined key_degrad && defined key_traldf_c2d && defined key_traldf_eiv ) && ! defined key_c1d280 aeiw(:,:) = sf_dyn(jf_eiw)%fnow(:,:,1) * tmask(:,:,1) ! w-eiv281 ! ! Computes the horizontal values from the vertical value282 DO jj = 2, jpjm1283 DO ji = fs_2, fs_jpim1 ! vector opt.284 aeiu(ji,jj) = .5 * ( aeiw(ji,jj) + aeiw(ji+1,jj ) ) ! Average the diffusive coefficient at u- v- points285 aeiv(ji,jj) = .5 * ( aeiw(ji,jj) + aeiw(ji ,jj+1) ) ! at u- v- points286 END DO287 END DO288 CALL lbc_lnk( aeiu, 'U', 1. ) ; CALL lbc_lnk( aeiv, 'V', 1. ) ! lateral boundary condition289 #endif290 291 #if defined key_degrad && ! defined key_c1d292 ! ! degrad option : diffusive and eiv coef are 3D293 ahtu(:,:,:) = sf_dyn(jf_ahu)%fnow(:,:,:) * umask(:,:,:)294 ahtv(:,:,:) = sf_dyn(jf_ahv)%fnow(:,:,:) * vmask(:,:,:)295 ahtw(:,:,:) = sf_dyn(jf_ahw)%fnow(:,:,:) * tmask(:,:,:)296 # if defined key_traldf_eiv297 aeiu(:,:,:) = sf_dyn(jf_eiu)%fnow(:,:,:) * umask(:,:,:)298 aeiv(:,:,:) = sf_dyn(jf_eiv)%fnow(:,:,:) * vmask(:,:,:)299 aeiw(:,:,:) = sf_dyn(jf_eiw)%fnow(:,:,:) * tmask(:,:,:)300 # endif301 277 #endif 302 278 ! … … 339 315 TYPE(FLD_N), DIMENSION(jpfld) :: slf_d ! array of namelist informations on the fields to read 340 316 TYPE(FLD_N) :: sn_tem, sn_sal, sn_mld, sn_emp, sn_ice, sn_qsr, sn_wnd, sn_rnf ! informations about the fields to be read 341 TYPE(FLD_N) :: sn_uwd, sn_vwd, sn_wwd, sn_avt, sn_ubl, sn_vbl ! " " 342 TYPE(FLD_N) :: sn_ahu, sn_ahv, sn_ahw, sn_eiu, sn_eiv, sn_eiw, sn_fmf ! " " 343 !!---------------------------------------------------------------------- 344 ! 345 NAMELIST/namdta_dyn/cn_dir, ln_dynwzv, ln_dynbbl, ln_degrad, ln_dynrnf, & 317 TYPE(FLD_N) :: sn_uwd, sn_vwd, sn_wwd, sn_avt, sn_ubl, sn_vbl, sn_fmf ! " " 318 NAMELIST/namdta_dyn/cn_dir, ln_dynwzv, ln_dynbbl, ln_dynrnf, & 346 319 & sn_tem, sn_sal, sn_mld, sn_emp, sn_ice, sn_qsr, sn_wnd, sn_rnf, & 347 & sn_uwd, sn_vwd, sn_wwd, sn_avt, sn_ubl, sn_vbl, &348 & sn_ahu, sn_ahv, sn_ahw, sn_eiu, sn_eiv, sn_eiw, sn_fmf320 & sn_uwd, sn_vwd, sn_wwd, sn_avt, sn_ubl, sn_vbl, sn_fmf 321 !!---------------------------------------------------------------------- 349 322 ! 350 323 REWIND( numnam_ref ) ! Namelist namdta_dyn in reference namelist : Offline: init. of dynamical data … … 365 338 WRITE(numout,*) ' vertical velocity read from file (T) or computed (F) ln_dynwzv = ', ln_dynwzv 366 339 WRITE(numout,*) ' bbl coef read from file (T) or computed (F) ln_dynbbl = ', ln_dynbbl 367 WRITE(numout,*) ' degradation option enabled (T) or not (F) ln_degrad = ', ln_degrad368 340 WRITE(numout,*) ' river runoff option enabled (T) or not (F) ln_dynrnf = ', ln_dynrnf 369 341 WRITE(numout,*) 370 342 ENDIF 371 343 ! 372 IF( ln_degrad .AND. .NOT.lk_degrad ) THEN373 CALL ctl_warn( 'dta_dyn_init: degradation option requires key_degrad activated ; force ln_degrad to false' )374 ln_degrad = .FALSE.375 ENDIF376 344 IF( ln_dynbbl .AND. ( .NOT.lk_trabbl .OR. lk_c1d ) ) THEN 377 345 CALL ctl_warn( 'dta_dyn_init: bbl option requires key_trabbl activated ; force ln_dynbbl to false' ) … … 395 363 ENDIF 396 364 397 ! 398 IF( .NOT.ln_degrad ) THEN ! no degrad option 399 IF( lk_traldf_eiv .AND. ln_dynbbl ) THEN ! eiv & bbl 400 jf_ubl = jfld + 1 ; jf_vbl = jfld + 2 ; jf_eiw = jfld + 3 ; jfld = jf_eiw 401 slf_d(jf_ubl) = sn_ubl ; slf_d(jf_vbl) = sn_vbl ; slf_d(jf_eiw) = sn_eiw 402 ENDIF 403 IF( .NOT.lk_traldf_eiv .AND. ln_dynbbl ) THEN ! no eiv & bbl 365 IF( ln_dynbbl ) THEN ! eiv & bbl 404 366 jf_ubl = jfld + 1 ; jf_vbl = jfld + 2 ; jfld = jf_vbl 405 367 slf_d(jf_ubl) = sn_ubl ; slf_d(jf_vbl) = sn_vbl 406 ENDIF 407 IF( lk_traldf_eiv .AND. .NOT.ln_dynbbl ) THEN ! eiv & no bbl 408 jf_eiw = jfld + 1 ; jfld = jf_eiw ; slf_d(jf_eiw) = sn_eiw 409 ENDIF 410 ELSE 411 jf_ahu = jfld + 1 ; jf_ahv = jfld + 2 ; jf_ahw = jfld + 3 ; jfld = jf_ahw 412 slf_d(jf_ahu) = sn_ahu ; slf_d(jf_ahv) = sn_ahv ; slf_d(jf_ahw) = sn_ahw 413 IF( lk_traldf_eiv .AND. ln_dynbbl ) THEN ! eiv & bbl 414 jf_ubl = jfld + 1 ; jf_vbl = jfld + 2 ; 415 slf_d(jf_ubl) = sn_ubl ; slf_d(jf_vbl) = sn_vbl 416 jf_eiu = jfld + 3 ; jf_eiv = jfld + 4 ; jf_eiw = jfld + 5 ; jfld = jf_eiw 417 slf_d(jf_eiu) = sn_eiu ; slf_d(jf_eiv) = sn_eiv ; slf_d(jf_eiw) = sn_eiw 418 ENDIF 419 IF( .NOT.lk_traldf_eiv .AND. ln_dynbbl ) THEN ! no eiv & bbl 420 jf_ubl = jfld + 1 ; jf_vbl = jfld + 2 ; jfld = jf_vbl 421 slf_d(jf_ubl) = sn_ubl ; slf_d(jf_vbl) = sn_vbl 422 ENDIF 423 IF( lk_traldf_eiv .AND. .NOT.ln_dynbbl ) THEN ! eiv & no bbl 424 jf_eiu = jfld + 1 ; jf_eiv = jfld + 2 ; jf_eiw = jfld + 3 ; jfld = jf_eiw 425 slf_d(jf_eiu) = sn_eiu ; slf_d(jf_eiv) = sn_eiv ; slf_d(jf_eiw) = sn_eiw 426 ENDIF 427 ENDIF 428 368 ENDIF 369 370 429 371 ALLOCATE( sf_dyn(jfld), STAT=ierr ) ! set sf structure 430 372 IF( ierr > 0 ) THEN … … 451 393 CALL fld_fill( sf_dyn, slf_d, cn_dir, 'dta_dyn_init', 'Data in file', 'namdta_dyn' ) 452 394 ! 453 IF( l k_ldfslp .AND. .NOT.lk_c1d ) THEN ! slopes395 IF( l_ldfslp .AND. .NOT.lk_c1d ) THEN ! slopes 454 396 IF( sf_dyn(jf_tem)%ln_tint ) THEN ! time interpolation 455 397 ALLOCATE( uslpdta (jpi,jpj,jpk,2), vslpdta (jpi,jpj,jpk,2), & … … 515 457 END DO 516 458 END DO 459 ! ! update the horizontal divergence with the runoff inflow 460 IF( ln_dynrnf ) zhdiv(:,:,1) = zhdiv(:,:,1) - rnf(:,:) * r1_rau0 / fse3t(:,:,1) 461 ! 517 462 CALL lbc_lnk( zhdiv, 'T', 1. ) ! Lateral boundary conditions on zhdiv 518 !519 463 ! computation of vertical velocity from the bottom 520 464 pw(:,:,jpk) = 0._wp … … 539 483 REAL(wp), DIMENSION(jpi,jpj,jpk) , INTENT(out) :: pwslpj ! meridional diapycnal slopes 540 484 !!--------------------------------------------------------------------- 541 #if defined key_ldfslp && ! defined key_c1d 542 CALL eos ( pts, rhd, rhop, gdept_0(:,:,:) )543 CALL eos_rab( pts, rab_n ) ! now local thermal/haline expension ratio at T-points544 CALL bn2 ( pts, rab_n, rn2 ) ! now Brunt-Vaisala545 546 ! Partial steps: before Horizontal DErivative547 IF( ln_zps .AND. .NOT. ln_isfcav) &548 & CALL zps_hde ( kt, jpts, pts, gtsu, gtsv, & ! Partial steps: before horizontal gradient549 & rhd, gru , grv ) ! of t, s, rd at the last ocean level550 IF( ln_zps .AND. ln_isfcav) &551 & CALL zps_hde_isf( kt, jpts, pts, gtsu, gtsv, & ! Partial steps for top cell (ISF)552 & rhd, gru , grv , aru , arv , gzu , gzv , ge3ru , ge3rv , &553 & gtui, gtvi, grui, grvi, arui, arvi, gzui, gzvi, ge3rui, ge3rvi ) ! of t, s, rd at the first ocean level554 555 rn2b(:,:,:) = rn2(:,:,:) ! need for zdfmxl556 CALL zdf_mxl( kt ) ! mixed layer depth557 CALL ldf_slp( kt, rhd, rn2 ) ! slopes558 puslp (:,:,:) = uslp (:,:,:)559 pvslp (:,:,:) = vslp (:,:,:)560 pwslpi(:,:,:) = wslpi(:,:,:)561 pwslpj(:,:,:) = wslpj(:,:,:)562 #else 563 puslp (:,:,:) = 0. ! to avoid warning when compiling564 pvslp (:,:,:) = 0.565 pwslpi(:,:,:) = 0.566 pwslpj(:,:,:) = 0.567 #endif 485 IF( l_ldfslp .AND. .NOT.lk_c1d ) THEN ! Computes slopes (here avt is used as workspace) 486 CALL eos ( pts, rhd, rhop, gdept_0(:,:,:) ) 487 CALL eos_rab( pts, rab_n ) ! now local thermal/haline expension ratio at T-points 488 CALL bn2 ( pts, rab_n, rn2 ) ! now Brunt-Vaisala 489 490 ! Partial steps: before Horizontal DErivative 491 IF( ln_zps .AND. .NOT. ln_isfcav) & 492 & CALL zps_hde ( kt, jpts, pts, gtsu, gtsv, & ! Partial steps: before horizontal gradient 493 & rhd, gru , grv ) ! of t, s, rd at the last ocean level 494 IF( ln_zps .AND. ln_isfcav) & 495 & CALL zps_hde_isf( kt, jpts, pts, gtsu, gtsv, & ! Partial steps for top cell (ISF) 496 & rhd, gru , grv , aru , arv , gzu , gzv , ge3ru , ge3rv , & 497 & gtui, gtvi, grui, grvi, arui, arvi, gzui, gzvi, ge3rui, ge3rvi ) ! of t, s, rd at the first ocean level 498 499 rn2b(:,:,:) = rn2(:,:,:) ! need for zdfmxl 500 CALL zdf_mxl( kt ) ! mixed layer depth 501 CALL ldf_slp( kt, rhd, rn2 ) ! slopes 502 puslp (:,:,:) = uslp (:,:,:) 503 pvslp (:,:,:) = vslp (:,:,:) 504 pwslpi(:,:,:) = wslpi(:,:,:) 505 pwslpj(:,:,:) = wslpj(:,:,:) 506 ELSE 507 puslp (:,:,:) = 0. ! to avoid warning when compiling 508 pvslp (:,:,:) = 0. 509 pwslpi(:,:,:) = 0. 510 pwslpj(:,:,:) = 0. 511 ENDIF 568 512 ! 569 513 END SUBROUTINE dta_dyn_slp -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OFF_SRC/nemogcm.F90
r5504 r5782 26 26 USE traqsr ! solar radiation penetration (tra_qsr_init routine) 27 27 USE trabbl ! bottom boundary layer (tra_bbl_init routine) 28 USE traldf ! lateral physics (tra_ldf_init routine) 28 29 USE zdfini ! vertical physics: initialization 29 30 USE sbcmod ! surface boundary condition (sbc_init routine) … … 283 284 CALL sbc_init ! Forcings : surface module 284 285 285 #if ! defined key_degrad286 286 CALL ldf_tra_init ! Lateral ocean tracer physics 287 #endif 288 IF( lk_ldfslp ) CALL ldf_slp_init ! slope of lateral mixing 287 CALL ldf_eiv_init ! Eddy induced velocity param 288 CALL tra_ldf_init ! lateral mixing 289 IF( l_ldfslp ) CALL ldf_slp_init ! slope of lateral mixing 289 290 290 291 CALL tra_qsr_init ! penetrative solar radiation qsr … … 444 445 USE dom_oce, ONLY: dom_oce_alloc 445 446 USE zdf_oce, ONLY: zdf_oce_alloc 446 USE ldftra_oce, ONLY: ldftra_oce_alloc447 447 USE trc_oce, ONLY: trc_oce_alloc 448 448 ! … … 453 453 ierr = ierr + dia_wri_alloc () 454 454 ierr = ierr + dom_oce_alloc () ! ocean domain 455 ierr = ierr + ldftra_oce_alloc() ! ocean lateral physics : tracers456 455 ierr = ierr + zdf_oce_alloc () ! ocean vertical physics 457 456 ! -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90
r5777 r5782 736 736 ENDIF 737 737 ENDIF 738 739 #if defined key_zdfkpp740 CALL eos( tsn, rhd, fsdept_n(:,:,:) ) ! Compute rhd741 !!gm fabien CALL eos( tsn, rhd ) ! Compute rhd742 #endif743 738 ! 744 739 DEALLOCATE( t_bkginc ) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/C1D/step_c1d.F90
r5758 r5782 123 123 IF( ln_traqsr ) CALL tra_qsr( kstp ) ! penetrative solar radiation qsr 124 124 IF( ln_tradmp ) CALL tra_dmp( kstp ) ! internal damping trends- tracers 125 IF( lk_zdfkpp ) CALL tra_kpp( kstp ) ! KPP non-local tracer fluxes126 125 CALL tra_zdf( kstp ) ! vertical mixing 127 126 CALL eos( tsn, rhd, rhop, gdept_0(:,:,:) ) ! now potential density for zdfmxl -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/DOM/dommsk.F90
r5770 r5782 198 198 END DO 199 199 END DO 200 201 !!gm ????202 #if defined key_zdfkpp203 IF( cp_cfg == 'orca' ) THEN204 IF( jp_cfg == 2 ) THEN ! land point on Bab el Mandeb zonal section205 ij0 = 87 ; ij1 = 88206 ii0 = 160 ; ii1 = 161207 tmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) , 1:jpk ) = 0._wp208 ELSE209 IF(lwp) WRITE(numout,*)210 IF(lwp) WRITE(numout,cform_war)211 IF(lwp) WRITE(numout,*)212 IF(lwp) WRITE(numout,*)' A mask must be applied on Bab el Mandeb strait'213 IF(lwp) WRITE(numout,*)' in case of ORCAs configurations'214 IF(lwp) WRITE(numout,*)' This is a problem which is not yet solved'215 IF(lwp) WRITE(numout,*)216 ENDIF217 ENDIF218 #endif219 !!gm end220 200 221 201 ! Interior domain mask (used for global sum) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/LDF/ldfdyn.F90
r5777 r5782 103 103 WRITE(numout,*) 'ldf_dyn : lateral momentum physics' 104 104 WRITE(numout,*) '~~~~~~~' 105 WRITE(numout,*) ' Namelist nam _dynldf : set lateral mixing parameters'105 WRITE(numout,*) ' Namelist namdyn_ldf : set lateral mixing parameters' 106 106 ! 107 107 WRITE(numout,*) ' type :' -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/LDF/ldftra.F90
r5777 r5782 26 26 USE diaar5, ONLY: lk_diaar5 27 27 ! 28 USE trc_oce, ONLY: lk_offline ! offline flag 28 29 USE in_out_manager ! I/O manager 29 30 USE iom ! I/O module for ehanced bottom friction file … … 352 353 END SELECT 353 354 ! 354 CALL iom_put( "ahtu_2d", ahtu(:,:,1) ) ! surface u-eddy diffusivity coeff. 355 CALL iom_put( "ahtv_2d", ahtv(:,:,1) ) ! surface v-eddy diffusivity coeff. 356 CALL iom_put( "ahtu_3d", ahtu(:,:,:) ) ! 3D u-eddy diffusivity coeff. 357 CALL iom_put( "ahtv_3d", ahtv(:,:,:) ) ! 3D v-eddy diffusivity coeff. 358 ! 355 IF( .NOT.lk_offline ) THEN 356 CALL iom_put( "ahtu_2d", ahtu(:,:,1) ) ! surface u-eddy diffusivity coeff. 357 CALL iom_put( "ahtv_2d", ahtv(:,:,1) ) ! surface v-eddy diffusivity coeff. 358 CALL iom_put( "ahtu_3d", ahtu(:,:,:) ) ! 3D u-eddy diffusivity coeff. 359 CALL iom_put( "ahtv_3d", ahtv(:,:,:) ) ! 3D v-eddy diffusivity coeff. 360 ! 359 361 !!gm : THE IF below is to be checked (comes from Seb) 360 IF( ln_ldfeiv ) THEN 361 CALL iom_put( "aeiu_2d", aeiu(:,:,1) ) ! surface u-EIV coeff. 362 CALL iom_put( "aeiv_2d", aeiv(:,:,1) ) ! surface v-EIV coeff. 363 CALL iom_put( "aeiu_3d", aeiu(:,:,:) ) ! 3D u-EIV coeff. 364 CALL iom_put( "aeiv_3d", aeiv(:,:,:) ) ! 3D v-EIV coeff. 365 ENDIF 362 IF( ln_ldfeiv ) THEN 363 CALL iom_put( "aeiu_2d", aeiu(:,:,1) ) ! surface u-EIV coeff. 364 CALL iom_put( "aeiv_2d", aeiv(:,:,1) ) ! surface v-EIV coeff. 365 CALL iom_put( "aeiu_3d", aeiu(:,:,:) ) ! 3D u-EIV coeff. 366 CALL iom_put( "aeiv_3d", aeiv(:,:,:) ) ! 3D v-EIV coeff. 367 ENDIF 368 ENDIF 366 369 ! 367 370 END SUBROUTINE ldf_tra … … 393 396 READ ( numnam_cfg, namtra_ldfeiv, IOSTAT = ios, ERR = 902 ) 394 397 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtra_ldfeiv in configuration namelist', lwp ) 395 WRITE ( numond, namtra_ldfeiv )398 IF(lwm) WRITE ( numond, namtra_ldfeiv ) 396 399 397 400 IF(lwp) THEN ! control print … … 668 671 IF( ln_ldfeiv_dia .AND. cdtype == 'TRA' ) CALL ldf_eiv_dia( zpsi_uw, zpsi_vw ) 669 672 ! 670 CALL wrk_ alloc( jpi,jpj,jpk, zpsi_uw, zpsi_vw )673 CALL wrk_dealloc( jpi,jpj,jpk, zpsi_uw, zpsi_vw ) 671 674 ! 672 675 IF( nn_timing == 1 ) CALL timing_stop( 'ldf_eiv_trp') -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/TRD/trdpen.F90
r5777 r5782 100 100 CALL wrk_alloc( jpi, jpj, z2d ) 101 101 z2d(:,:) = wn(:,:,1) * ( & 102 103 104 &) / fse3t(:,:,1)102 & - ( rab_n(:,:,1,jp_tem) + rab_pe(:,:,1,jp_tem) ) * tsn(:,:,1,jp_tem) & 103 & + ( rab_n(:,:,1,jp_sal) + rab_pe(:,:,1,jp_sal) ) * tsn(:,:,1,jp_sal) & 104 & ) / fse3t(:,:,1) 105 105 CALL iom_put( "petrd_sad" , z2d ) 106 106 CALL wrk_dealloc( jpi, jpj, z2d ) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/ZDF/zdf_oce.F90
r5777 r5782 45 45 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: avt_k , avm_k ! not enhanced Kz 46 46 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: avmu_k, avmv_k ! not enhanced Kz 47 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: en !: now turbulent kinetic energy [m2/s2] 47 48 48 49 !!---------------------------------------------------------------------- … … 61 62 & avtb(jpk) , bfrva(jpi,jpj) , avtb_2d(jpi,jpj) , & 62 63 & tfrua(jpi, jpj), tfrva(jpi, jpj) , & 63 & avmu (jpi,jpj,jpk), avm (jpi,jpj,jpk), & 64 & avmv (jpi,jpj,jpk), avt (jpi,jpj,jpk), & 65 & avt_k (jpi,jpj,jpk), avm_k (jpi,jpj,jpk), & 66 & avmu_k(jpi,jpj,jpk), avmv_k(jpi,jpj,jpk), STAT = zdf_oce_alloc ) 64 & avmu (jpi,jpj,jpk), avm (jpi,jpj,jpk) , & 65 & avmv (jpi,jpj,jpk), avt (jpi,jpj,jpk) , & 66 & avt_k (jpi,jpj,jpk), avm_k (jpi,jpj,jpk) , & 67 & avmu_k(jpi,jpj,jpk), avmv_k(jpi,jpj,jpk) , & 68 & en (jpi,jpj,jpk), STAT = zdf_oce_alloc ) 67 69 ! 68 70 IF( zdf_oce_alloc /= 0 ) CALL ctl_warn('zdf_oce_alloc: failed to allocate arrays') -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfgls.F90
r5777 r5782 42 42 LOGICAL , PUBLIC, PARAMETER :: lk_zdfgls = .TRUE. !: TKE vertical mixing flag 43 43 ! 44 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: en !: now turbulent kinetic energy45 44 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: mxln !: now mixing length 46 45 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: zwall !: wall function … … 116 115 !! *** FUNCTION zdf_gls_alloc *** 117 116 !!---------------------------------------------------------------------- 118 ALLOCATE( en(jpi,jpj,jpk),mxln(jpi,jpj,jpk), zwall(jpi,jpj,jpk) , &119 & ustars2(jpi,jpj) , ustarb2(jpi,jpj), STAT= zdf_gls_alloc )117 ALLOCATE( mxln(jpi,jpj,jpk), zwall(jpi,jpj,jpk) , & 118 & ustars2(jpi,jpj) , ustarb2(jpi,jpj) , STAT= zdf_gls_alloc ) 120 119 ! 121 120 IF( lk_mpp ) CALL mpp_sum ( zdf_gls_alloc ) -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90
r5777 r5782 89 89 REAL(wp) :: rhftau_scl = 1.0_wp ! scale factor applied to HF part of taum (nn_etau=3) 90 90 91 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: en !: now turbulent kinetic energy [m2/s2]92 91 REAL(wp) , ALLOCATABLE, SAVE, DIMENSION(:,:) :: htau ! depth of tke penetration (nn_htau) 93 92 REAL(wp) , ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: dissl ! now mixing lenght of dissipation … … 118 117 & e_pdl(jpi,jpj,jpk) , e_ric(jpi,jpj,jpk) , & 119 118 #endif 120 & en (jpi,jpj,jpk) ,htau (jpi,jpj) , dissl(jpi,jpj,jpk) , &119 & htau (jpi,jpj) , dissl(jpi,jpj,jpk) , & 121 120 & apdlr(jpi,jpj,jpk) , STAT= zdf_tke_alloc ) 122 121 ! -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/SAS_SRC/diawri.F90
r5766 r5782 26 26 USE dom_oce ! ocean space and time domain 27 27 USE zdf_oce ! ocean vertical physics 28 USE ldfdyn_oce ! ocean dynamics: lateral physics29 28 USE sol_oce ! solver variables 30 29 USE sbc_oce ! Surface boundary condition: ocean fields -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/TRP/trcdmp.F90
r5766 r5782 208 208 ENDIF 209 209 ! 210 IF( lzoom ) nn_zdmp_tr = 0 ! restoring to climatology at closed north or south boundaries210 IF( lzoom .AND. .NOT.lk_c1d ) nn_zdmp_tr = 0 ! restoring to climatology at closed north or south boundaries 211 211 SELECT CASE ( nn_zdmp_tr ) 212 212 CASE ( 0 ) ; IF(lwp) WRITE(numout,*) ' tracer damping throughout the water column' … … 218 218 END SELECT 219 219 220 IF( .NOT. ln_tradmp ) & 221 & CALL ctl_stop( 'passive trace damping need key_tradmp to compute damping coef.' ) 222 ! 223 ! ! Read damping coefficients from file 224 !Read in mask from file 225 CALL iom_open ( cn_resto_tr, imask) 226 CALL iom_get ( imask, jpdom_autoglo, 'resto', restotr) 227 CALL iom_close( imask ) 228 ! 220 IF( .NOT.lk_c1d ) THEN 221 IF( .NOT. ln_tradmp ) & 222 & CALL ctl_stop( 'passive trace damping need ln_tradmp to compute damping coef.' ) 223 ! 224 ! ! Read damping coefficients from file 225 !Read in mask from file 226 CALL iom_open ( cn_resto_tr, imask) 227 CALL iom_get ( imask, jpdom_autoglo, 'resto', restotr) 228 CALL iom_close( imask ) 229 ! 230 ENDIF 229 231 IF( nn_timing == 1 ) CALL timing_stop('trc_dmp_init') 230 232 ! -
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/TOP_SRC/TRP/trctrp.F90
r5766 r5782 86 86 ELSE ! 1D vertical configuration 87 87 CALL trc_sbc( kt ) ! surface boundary condition 88 IF( ln_trcdmp ) CALL trc_dmp( kt ) ! internal damping trends 88 89 CALL trc_zdf( kt ) ! vertical mixing and after tracer fields 89 90 CALL trc_nxt( kt ) ! tracer fields at next time step
Note: See TracChangeset
for help on using the changeset viewer.