Changeset 8970
- Timestamp:
- 2017-12-11T10:01:56+01:00 (6 years ago)
- Location:
- branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/OPA_SRC
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/OPA_SRC/DIA/diaptr.F90
r7753 r8970 397 397 REWIND( numnam_cfg ) ! Namelist namptr in configuration namelist : Poleward transport 398 398 READ ( numnam_cfg, namptr, IOSTAT = ios, ERR = 902 ) 399 902 IF( ios /=0 ) CALL ctl_nam ( ios , 'namptr in configuration namelist', lwp )399 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namptr in configuration namelist', lwp ) 400 400 IF(lwm) WRITE ( numond, namptr ) 401 401 -
branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/OPA_SRC/DOM/domain.F90
r8930 r8970 239 239 IF( nn_print >= 1 ) THEN 240 240 WRITE(numout,*) 241 WRITE(numout,*) ' conversion local ==> global i-index domain '241 WRITE(numout,*) ' conversion local ==> global i-index domain (mig)' 242 242 WRITE(numout,25) (mig(ji),ji = 1,jpi) 243 243 WRITE(numout,*) 244 244 WRITE(numout,*) ' conversion global ==> local i-index domain' 245 WRITE(numout,*) ' starting index '245 WRITE(numout,*) ' starting index (mi0)' 246 246 WRITE(numout,25) (mi0(ji),ji = 1,jpiglo) 247 WRITE(numout,*) ' ending index '247 WRITE(numout,*) ' ending index (mi1)' 248 248 WRITE(numout,25) (mi1(ji),ji = 1,jpiglo) 249 249 WRITE(numout,*) 250 WRITE(numout,*) ' conversion local ==> global j-index domain '250 WRITE(numout,*) ' conversion local ==> global j-index domain (mjg)' 251 251 WRITE(numout,25) (mjg(jj),jj = 1,jpj) 252 252 WRITE(numout,*) 253 253 WRITE(numout,*) ' conversion global ==> local j-index domain' 254 WRITE(numout,*) ' starting index '254 WRITE(numout,*) ' starting index (mj0)' 255 255 WRITE(numout,25) (mj0(jj),jj = 1,jpjglo) 256 WRITE(numout,*) ' ending index '256 WRITE(numout,*) ' ending index (mj1)' 257 257 WRITE(numout,25) (mj1(jj),jj = 1,jpjglo) 258 258 ENDIF -
branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/OPA_SRC/STO/stopar.F90
r5571 r8970 159 159 INTEGER :: ji, jj, jk, jsto, jflt 160 160 REAL(wp) :: stomax 161 161 !!---------------------------------------------------------------------- 162 162 ! 163 163 ! Update 2D stochastic arrays … … 235 235 CALL lbc_lnk( sto3d(:,:,:,jsto), sto3d_typ(jsto), sto3d_sgn(jsto) ) 236 236 END DO 237 237 ! 238 238 END SUBROUTINE sto_par 239 239 … … 267 267 REWIND( numnam_cfg ) ! Namelist namdyn_adv in configuration namelist : Momentum advection scheme 268 268 READ ( numnam_cfg, namsto, IOSTAT = ios, ERR = 902 ) 269 902 IF( ios /=0 ) CALL ctl_nam ( ios , 'namsto in configuration namelist', lwp )269 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namsto in configuration namelist', lwp ) 270 270 IF(lwm) WRITE ( numond, namsto ) 271 272 IF( .NOT.ln_rststo ) THEN ! no use of stochastic parameterization 273 IF(lwp) THEN 274 WRITE(numout,*) 275 WRITE(numout,*) 'sto_par_init : NO use of stochastic parameterization' 276 WRITE(numout,*) '~~~~~~~~~~~~' 277 ENDIF 278 RETURN 279 ENDIF 271 280 272 281 !IF(ln_ens_rst_in) cn_storst_in = cn_mem//cn_storst_in … … 673 682 !! *** ROUTINE sto_rst_read *** 674 683 !! 675 676 684 !! ** Purpose : read stochastic parameters from restart file 677 685 !!---------------------------------------------------------------------- 678 679 686 INTEGER :: jsto, jseed 680 687 INTEGER(KIND=8) :: ziseed(4) ! RNG seeds in integer type … … 683 690 CHARACTER(LEN=9) :: clsto3d='sto3d_000' ! stochastic parameter variable name 684 691 CHARACTER(LEN=10) :: clseed='seed0_0000' ! seed variable name 692 !!---------------------------------------------------------------------- 685 693 686 694 IF ( jpsto2d > 0 .OR. jpsto3d > 0 ) THEN -
branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/OPA_SRC/TRA/trabbc.F90
r8882 r8970 160 160 ! 161 161 CASE ( 1 ) !* constant flux 162 IF(lwp) WRITE(numout,*) ' ***constant heat flux = ', rn_geoflx_cst162 IF(lwp) WRITE(numout,*) ' ===>> constant heat flux = ', rn_geoflx_cst 163 163 qgh_trd0(:,:) = r1_rau0_rcp * rn_geoflx_cst 164 164 ! 165 165 CASE ( 2 ) !* variable geothermal heat flux : read the geothermal fluxes in mW/m2 166 IF(lwp) WRITE(numout,*) ' ***variable geothermal heat flux'166 IF(lwp) WRITE(numout,*) ' ===>> variable geothermal heat flux' 167 167 ! 168 168 ALLOCATE( sf_qgh(1), STAT=ierror ) … … 172 172 ENDIF 173 173 ALLOCATE( sf_qgh(1)%fnow(jpi,jpj,1) ) 174 IF( sn_qgh%ln_tint ) ALLOCATE( sf_qgh(1)%fdta(jpi,jpj,1,2) )174 IF( sn_qgh%ln_tint ) ALLOCATE( sf_qgh(1)%fdta(jpi,jpj,1,2) ) 175 175 ! fill sf_chl with sn_chl and control print 176 176 CALL fld_fill( sf_qgh, (/ sn_qgh /), cn_dir, 'tra_bbc_init', & … … 186 186 ! 187 187 ELSE 188 IF(lwp) WRITE(numout,*) ' ***no geothermal heat flux'188 IF(lwp) WRITE(numout,*) ' ===>> no geothermal heat flux' 189 189 ENDIF 190 190 ! -
branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfgls.F90
r8882 r8970 19 19 USE dom_oce ! ocean space and time domain 20 20 USE domvvl ! ocean space and time domain : variable volume layer 21 USE zdf_oce ! ocean vertical physics22 21 USE zdfdrg , ONLY : r_z0_top , r_z0_bot ! top/bottom roughness 23 22 USE zdfdrg , ONLY : rCdU_top , rCdU_bot ! top/bottom friction … … 133 132 !! coefficients using the GLS turbulent closure scheme. 134 133 !!---------------------------------------------------------------------- 134 USE zdf_oce , ONLY : en, avtb, avmb ! ocean vertical physics 135 !! 135 136 INTEGER , INTENT(in ) :: kt ! ocean time step 136 137 REAL(wp), DIMENSION(:,:,:), INTENT(in ) :: p_sh2 ! shear production term … … 580 581 zdep (:,:) = ((zhsro(:,:) + gdept_n(:,:,1)) / zhsro(:,:))**(rmm*ra_sf) 581 582 zflxs(:,:) = (rnn + rsbc_tke1 * (rnn + rmm*ra_sf) * zdep(:,:))*(1._wp + rsbc_tke1*zdep(:,:))**(2._wp*rmm/3._wp-1_wp) 582 zdep (:,:) = rsbc_psi1 * (zwall_psi(:,:,1)* avm(:,:,1)+zwall_psi(:,:,2)*avm(:,:,2)) * &583 zdep (:,:) = rsbc_psi1 * (zwall_psi(:,:,1)*p_avm(:,:,1)+zwall_psi(:,:,2)*p_avm(:,:,2)) * & 583 584 & ustar2_surf(:,:)**rmm * zkar(:,:)**rnn * (zhsro(:,:) + gdept_n(:,:,1))**(rnn-1.) 584 585 zflxs(:,:) = zdep(:,:) * zflxs(:,:) … … 815 816 END DO 816 817 END DO 817 avt(:,:,1)= 0._wp818 p_avt(:,:,1) = 0._wp 818 819 ! 819 820 IF(ln_ctl) THEN 820 CALL prt_ctl( tab3d_1=en , clinfo1=' gls - e: ', tab3d_2=avt, clinfo2=' t: ', ovlap=1, kdim=jpk)821 CALL prt_ctl( tab3d_1= avm, clinfo1=' gls - m: ', ovlap=1, kdim=jpk )821 CALL prt_ctl( tab3d_1=en , clinfo1=' gls - e: ', tab3d_2=p_avt, clinfo2=' t: ', ovlap=1, kdim=jpk) 822 CALL prt_ctl( tab3d_1=p_avm, clinfo1=' gls - m: ', ovlap=1, kdim=jpk ) 822 823 ENDIF 823 824 ! … … 1144 1145 !! set to rn_emin or recomputed (nn_igls/=0) 1145 1146 !!---------------------------------------------------------------------- 1147 USE zdf_oce , ONLY : en, avt_k, avm_k ! ocean vertical physics 1148 !! 1146 1149 INTEGER , INTENT(in) :: kt ! ocean time-step 1147 1150 CHARACTER(len=*), INTENT(in) :: cdrw ! "READ"/"WRITE" flag -
branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90
r8882 r8970 43 43 USE domvvl ! domain: variable volume layer 44 44 USE sbc_oce ! surface boundary condition: ocean 45 USE zdf_oce ! vertical physics: ocean variables46 45 USE zdfdrg ! vertical physics: top/bottom drag coef. 47 46 USE zdfmxl ! vertical physics: mixed layer … … 185 184 !! ** Action : - en : now turbulent kinetic energy) 186 185 !! --------------------------------------------------------------------- 186 USE zdf_oce , ONLY : en ! ocean vertical physics 187 !! 187 188 REAL(wp), DIMENSION(:,:,:) , INTENT(in ) :: pdepw ! depth of w-points 188 189 REAL(wp), DIMENSION(:,:,:) , INTENT(in ) :: p_e3t, p_e3w ! level thickness (t- & w-points) … … 469 470 !! ** Action : - avt, avm : now vertical eddy diffusivity and viscosity (w-point) 470 471 !!---------------------------------------------------------------------- 472 USE zdf_oce , ONLY : en, avtb, avmb, avtb_2d ! ocean vertical physics 473 !! 471 474 REAL(wp), DIMENSION(:,:,:), INTENT(in ) :: pdepw ! depth (w-points) 472 475 REAL(wp), DIMENSION(:,:,:), INTENT(in ) :: p_e3t, p_e3w ! level thickness (t- & w-points) … … 618 621 ! 619 622 IF(ln_ctl) THEN 620 CALL prt_ctl( tab3d_1=en , clinfo1=' tke - e: ', tab3d_2=avt, clinfo2=' t: ', ovlap=1, kdim=jpk)621 CALL prt_ctl( tab3d_1= avm, clinfo1=' tke - m: ', ovlap=1, kdim=jpk )623 CALL prt_ctl( tab3d_1=en , clinfo1=' tke - e: ', tab3d_2=p_avt, clinfo2=' t: ', ovlap=1, kdim=jpk) 624 CALL prt_ctl( tab3d_1=p_avm, clinfo1=' tke - m: ', ovlap=1, kdim=jpk ) 622 625 ENDIF 623 626 ! … … 641 644 !! ** Action : Increase by 1 the nstop flag is setting problem encounter 642 645 !!---------------------------------------------------------------------- 646 USE zdf_oce , ONLY : ln_zdfiwm ! Internal Wave Mixing flag 647 !! 643 648 INTEGER :: ji, jj, jk ! dummy loop indices 644 649 INTEGER :: ios 645 650 !! 646 NAMELIST/namzdf_tke/ rn_ediff, rn_ediss , rn_ebb , rn_emin , &647 & rn_emin0, rn_bshear, nn_mxl , ln_mxl0 , &648 & rn_mxl0 , nn_pdl , ln_drg , ln_lc , rn_lc 651 NAMELIST/namzdf_tke/ rn_ediff, rn_ediss , rn_ebb , rn_emin , & 652 & rn_emin0, rn_bshear, nn_mxl , ln_mxl0 , & 653 & rn_mxl0 , nn_pdl , ln_drg , ln_lc , rn_lc, & 649 654 & nn_etau , nn_htau , rn_efr 650 655 !!---------------------------------------------------------------------- … … 711 716 IF( nn_htau < 0 .OR. nn_htau > 1 ) CALL ctl_stop( 'bad flag: nn_htau is 0, 1 or 2 ' ) 712 717 IF( nn_etau == 3 .AND. .NOT. ln_cpl ) CALL ctl_stop( 'nn_etau == 3 : HF taum only known in coupled mode' ) 713 718 ! 714 719 IF( ln_mxl0 ) THEN 715 720 IF(lwp) WRITE(numout,*) ' use a surface mixing length = F(stress) : set rn_mxl0 = rmxl_min' … … 728 733 END SELECT 729 734 ENDIF 730 ! !* set vertical eddy coef. to the background value 731 DO jk = 1, jpk 732 avt(:,:,jk) = avtb(jk) * wmask(:,:,jk) 733 avm(:,:,jk) = avmb(jk) * wmask(:,:,jk) 734 END DO 735 dissl(:,:,:) = 1.e-12_wp 736 ! 737 CALL tke_rst( nit000, 'READ' ) !* read or initialize all required files 735 ! !* read or initialize all required files 736 CALL tke_rst( nit000, 'READ' ) ! (en, avt_k, avm_k, dissl) 738 737 ! 739 738 END SUBROUTINE zdf_tke_init … … 750 749 !! set to rn_emin or recomputed 751 750 !!---------------------------------------------------------------------- 751 USE zdf_oce , ONLY : en, avt_k, avm_k ! ocean vertical physics 752 !! 752 753 INTEGER , INTENT(in) :: kt ! ocean time-step 753 754 CHARACTER(len=*), INTENT(in) :: cdrw ! "READ"/"WRITE" flag … … 772 773 ELSE ! start TKE from rest 773 774 IF(lwp) WRITE(numout,*) ' ==>> previous run without TKE scheme, set en to background values' 774 en(:,:,:) = rn_emin * wmask(:,:,:) 775 en (:,:,:) = rn_emin * wmask(:,:,:) 776 dissl(:,:,:) = 1.e-12_wp 775 777 ! avt_k, avm_k already set to the background value in zdf_phy_init 776 778 ENDIF 777 779 ELSE !* Start from rest 778 780 IF(lwp) WRITE(numout,*) ' ==>> start from rest: set en to the background value' 779 en(:,:,:) = rn_emin * wmask(:,:,:) 781 en (:,:,:) = rn_emin * wmask(:,:,:) 782 dissl(:,:,:) = 1.e-12_wp 780 783 ! avt_k, avm_k already set to the background value in zdf_phy_init 781 784 ENDIF -
branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90
r8885 r8970 458 458 459 459 ! ! Active tracers 460 460 IF( ln_traqsr ) CALL tra_qsr_init ! penetrative solar radiation qsr 461 461 CALL tra_bbc_init ! bottom heat flux 462 462 IF( ln_trabbl ) CALL tra_bbl_init ! advective (and/or diffusive) bottom boundary layer scheme
Note: See TracChangeset
for help on using the changeset viewer.