Changeset 14086 for NEMO/trunk/src/OCE
- Timestamp:
- 2020-12-04T12:37:14+01:00 (4 years ago)
- Location:
- NEMO/trunk/src/OCE
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/OCE/DIA/diawri.F90
r14053 r14086 141 141 CALL iom_put("e3f_0", e3f_0(:,:,:) ) 142 142 ! 143 IF ( iom_use("tpt_dep") ) THEN 144 DO jk = 1, jpk 145 z3d(:,:,jk) = gdept(:,:,jk,Kmm) 146 END DO 147 CALL iom_put( "tpt_dep", z3d(:,:,:) ) 148 ENDIF 149 143 150 IF ( iom_use("e3t") .OR. iom_use("e3tdef") ) THEN ! time-varying e3t 144 151 DO jk = 1, jpk -
NEMO/trunk/src/OCE/DOM/domvvl.F90
r14072 r14086 2 2 !!====================================================================== 3 3 !! *** MODULE domvvl *** 4 !! Ocean : 4 !! Ocean : 5 5 !!====================================================================== 6 6 !! History : 2.0 ! 2006-06 (B. Levier, L. Marie) original code … … 26 26 USE timing ! Timing 27 27 28 #if defined key_agrif 29 USE agrif_oce ! initial state interpolation 30 USE agrif_oce_interp 31 #endif 32 28 33 IMPLICIT NONE 29 34 PRIVATE … … 58 63 !! Default key Old management of time varying vertical coordinate 59 64 !!---------------------------------------------------------------------- 60 65 61 66 !!---------------------------------------------------------------------- 62 67 !! dom_vvl_init : define initial vertical scale factors, depths and column thickness … … 73 78 PUBLIC dom_vvl_sf_update ! called by step.F90 74 79 PUBLIC dom_vvl_interpol ! called by dynnxt.F90 75 80 76 81 !! * Substitutions 77 82 # include "do_loop_substitute.h90" … … 109 114 !!---------------------------------------------------------------------- 110 115 !! *** ROUTINE dom_vvl_init *** 111 !! 116 !! 112 117 !! ** Purpose : Initialization of all scale factors, depths 113 118 !! and water column heights … … 118 123 !! ** Action : - e3t_(n/b) and tilde_e3t_(n/b) 119 124 !! - Regrid: e3[u/v](:,:,:,Kmm) 120 !! e3[u/v](:,:,:,Kmm) 121 !! e3w(:,:,:,Kmm) 125 !! e3[u/v](:,:,:,Kmm) 126 !! e3w(:,:,:,Kmm) 122 127 !! e3[u/v]w_b 123 !! e3[u/v]w_n 128 !! e3[u/v]w_n 124 129 !! gdept(:,:,:,Kmm), gdepw(:,:,:,Kmm) and gde3w 125 130 !! - h(t/u/v)_0 … … 151 156 !!---------------------------------------------------------------------- 152 157 !! *** ROUTINE dom_vvl_init *** 153 !! 154 !! ** Purpose : Interpolation of all scale factors, 158 !! 159 !! ** Purpose : Interpolation of all scale factors, 155 160 !! depths and water column heights 156 161 !! … … 159 164 !! ** Action : - e3t_(n/b) and tilde_e3t_(n/b) 160 165 !! - Regrid: e3(u/v)_n 161 !! e3(u/v)_b 162 !! e3w_n 163 !! e3(u/v)w_b 164 !! e3(u/v)w_n 166 !! e3(u/v)_b 167 !! e3w_n 168 !! e3(u/v)w_b 169 !! e3(u/v)w_n 165 170 !! gdept_n, gdepw_n and gde3w_n 166 171 !! - h(t/u/v)_0 … … 180 185 CALL dom_vvl_interpol( e3t(:,:,:,Kbb), e3u(:,:,:,Kbb), 'U' ) ! from T to U 181 186 CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3u(:,:,:,Kmm), 'U' ) 182 CALL dom_vvl_interpol( e3t(:,:,:,Kbb), e3v(:,:,:,Kbb), 'V' ) ! from T to V 187 CALL dom_vvl_interpol( e3t(:,:,:,Kbb), e3v(:,:,:,Kbb), 'V' ) ! from T to V 183 188 CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3v(:,:,:,Kmm), 'V' ) 184 189 CALL dom_vvl_interpol( e3u(:,:,:,Kmm), e3f(:,:,:), 'F' ) ! from U to F 185 ! ! Vertical interpolation of e3t,u,v 190 ! ! Vertical interpolation of e3t,u,v 186 191 CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3w (:,:,:,Kmm), 'W' ) ! from T to W 187 192 CALL dom_vvl_interpol( e3t(:,:,:,Kbb), e3w (:,:,:,Kbb), 'W' ) … … 205 210 ! zcoef = tmask - wmask ! 0 everywhere tmask = wmask, ie everywhere expect at jk = mikt 206 211 ! ! 1 everywhere from mbkt to mikt + 1 or 1 (if no isf) 207 ! ! 0.5 where jk = mikt 212 ! ! 0.5 where jk = mikt 208 213 !!gm ??????? BUG ? gdept(:,:,:,Kmm) as well as gde3w does not include the thickness of ISF ?? 209 214 zcoef = ( tmask(ji,jj,jk) - wmask(ji,jj,jk) ) 210 215 gdepw(ji,jj,jk,Kmm) = gdepw(ji,jj,jk-1,Kmm) + e3t(ji,jj,jk-1,Kmm) 211 216 gdept(ji,jj,jk,Kmm) = zcoef * ( gdepw(ji,jj,jk ,Kmm) + 0.5 * e3w(ji,jj,jk,Kmm)) & 212 & + (1-zcoef) * ( gdept(ji,jj,jk-1,Kmm) + e3w(ji,jj,jk,Kmm)) 217 & + (1-zcoef) * ( gdept(ji,jj,jk-1,Kmm) + e3w(ji,jj,jk,Kmm)) 213 218 gde3w(ji,jj,jk) = gdept(ji,jj,jk,Kmm) - ssh(ji,jj,Kmm) 214 219 gdepw(ji,jj,jk,Kbb) = gdepw(ji,jj,jk-1,Kbb) + e3t(ji,jj,jk-1,Kbb) 215 220 gdept(ji,jj,jk,Kbb) = zcoef * ( gdepw(ji,jj,jk ,Kbb) + 0.5 * e3w(ji,jj,jk,Kbb)) & 216 & + (1-zcoef) * ( gdept(ji,jj,jk-1,Kbb) + e3w(ji,jj,jk,Kbb)) 221 & + (1-zcoef) * ( gdept(ji,jj,jk-1,Kbb) + e3w(ji,jj,jk,Kbb)) 217 222 END_3D 218 223 ! … … 273 278 IF( cn_cfg == "orca" .OR. cn_cfg == "ORCA" ) THEN 274 279 IF( nn_cfg == 3 ) THEN ! ORCA2: Suppress ztilde in the Foxe Basin for ORCA2 275 ii0 = 103 + nn_hls - 1 ; ii1 = 111 + nn_hls - 1 280 ii0 = 103 + nn_hls - 1 ; ii1 = 111 + nn_hls - 1 276 281 ij0 = 128 + nn_hls ; ij1 = 135 + nn_hls 277 282 frq_rst_e3t( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 0.0_wp … … 285 290 286 291 287 SUBROUTINE dom_vvl_sf_nxt( kt, Kbb, Kmm, Kaa, kcall ) 292 SUBROUTINE dom_vvl_sf_nxt( kt, Kbb, Kmm, Kaa, kcall ) 288 293 !!---------------------------------------------------------------------- 289 294 !! *** ROUTINE dom_vvl_sf_nxt *** 290 !! 295 !! 291 296 !! ** Purpose : - compute the after scale factors used in tra_zdf, dynnxt, 292 297 !! tranxt and dynspg routines 293 298 !! 294 299 !! ** Method : - z_star case: Repartition of ssh INCREMENT proportionnaly to the level thickness. 295 !! - z_tilde_case: after scale factor increment = 300 !! - z_tilde_case: after scale factor increment = 296 301 !! high frequency part of horizontal divergence 297 302 !! + retsoring towards the background grid … … 301 306 !! 302 307 !! ** Action : - hdiv_lf : restoring towards full baroclinic divergence in z_tilde case 303 !! - tilde_e3t_a: after increment of vertical scale factor 308 !! - tilde_e3t_a: after increment of vertical scale factor 304 309 !! in z_tilde case 305 310 !! - e3(t/u/v)_a … … 405 410 un_td(ji,jj,jk) = rn_ahe3 * umask(ji,jj,jk) * e2_e1u(ji,jj) & 406 411 & * ( tilde_e3t_b(ji,jj,jk) - tilde_e3t_b(ji+1,jj ,jk) ) 407 vn_td(ji,jj,jk) = rn_ahe3 * vmask(ji,jj,jk) * e1_e2v(ji,jj) & 412 vn_td(ji,jj,jk) = rn_ahe3 * vmask(ji,jj,jk) * e1_e2v(ji,jj) & 408 413 & * ( tilde_e3t_b(ji,jj,jk) - tilde_e3t_b(ji ,jj+1,jk) ) 409 414 zwu(ji,jj) = zwu(ji,jj) + un_td(ji,jj,jk) … … 450 455 WRITE(numout, *) 'at i, j, k=', ijk_max 451 456 WRITE(numout, *) 'MIN( tilde_e3t_a(:,:,:) / e3t_0(:,:,:) ) =', z_tmin 452 WRITE(numout, *) 'at i, j, k=', ijk_min 457 WRITE(numout, *) 'at i, j, k=', ijk_min 453 458 CALL ctl_stop( 'STOP', 'MAX( ABS( tilde_e3t_a(:,:,: ) ) / e3t_0(:,:,:) ) too high') 454 459 ENDIF … … 566 571 !!---------------------------------------------------------------------- 567 572 !! *** ROUTINE dom_vvl_sf_update *** 568 !! 569 !! ** Purpose : for z tilde case: compute time filter and swap of scale factors 573 !! 574 !! ** Purpose : for z tilde case: compute time filter and swap of scale factors 570 575 !! compute all depths and related variables for next time step 571 576 !! write outputs and restart file … … 577 582 !! ** Action : - tilde_e3t_(b/n) ready for next time step 578 583 !! - Recompute: 579 !! e3(u/v)_b 580 !! e3w(:,:,:,Kmm) 581 !! e3(u/v)w_b 582 !! e3(u/v)w_n 584 !! e3(u/v)_b 585 !! e3w(:,:,:,Kmm) 586 !! e3(u/v)w_b 587 !! e3(u/v)w_n 583 588 !! gdept(:,:,:,Kmm), gdepw(:,:,:,Kmm) and gde3w 584 589 !! h(u/v) and h(u/v)r … … 611 616 tilde_e3t_b(:,:,:) = tilde_e3t_n(:,:,:) 612 617 ELSE 613 tilde_e3t_b(:,:,:) = tilde_e3t_n(:,:,:) & 618 tilde_e3t_b(:,:,:) = tilde_e3t_n(:,:,:) & 614 619 & + rn_atfp * ( tilde_e3t_b(:,:,:) - 2.0_wp * tilde_e3t_n(:,:,:) + tilde_e3t_a(:,:,:) ) 615 620 ENDIF … … 623 628 ! - ML - e3u(:,:,:,Kbb) and e3v(:,:,:,Kbb) are already computed in dynnxt 624 629 ! - JC - hu(:,:,:,Kbb), hv(:,:,:,:,Kbb), hur_b, hvr_b also 625 630 626 631 CALL dom_vvl_interpol( e3u(:,:,:,Kmm), e3f(:,:,:), 'F' ) 627 632 628 633 ! Vertical scale factor interpolations 629 634 CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3w(:,:,:,Kmm), 'W' ) … … 644 649 gdepw(ji,jj,jk,Kmm) = gdepw(ji,jj,jk-1,Kmm) + e3t(ji,jj,jk-1,Kmm) 645 650 gdept(ji,jj,jk,Kmm) = zcoef * ( gdepw(ji,jj,jk ,Kmm) + 0.5 * e3w(ji,jj,jk,Kmm) ) & 646 & + (1-zcoef) * ( gdept(ji,jj,jk-1,Kmm) + e3w(ji,jj,jk,Kmm) ) 651 & + (1-zcoef) * ( gdept(ji,jj,jk-1,Kmm) + e3w(ji,jj,jk,Kmm) ) 647 652 gde3w(ji,jj,jk) = gdept(ji,jj,jk,Kmm) - ssh(ji,jj,Kmm) 648 653 END_3D … … 763 768 !!--------------------------------------------------------------------- 764 769 !! *** ROUTINE dom_vvl_rst *** 765 !! 770 !! 766 771 !! ** Purpose : Read or write VVL file in restart file 767 772 !! … … 795 800 IF( ln_rstart ) THEN !== Read the restart file ==! 796 801 ! 802 #if defined key_agrif 803 IF ( (.NOT.Agrif_root()).AND.(ln_init_chfrpar) ) THEN 804 ! skip reading restart if initialized from parent: 805 id3 = -1 ; id4 = -1 ; id5 = -1 806 ELSE 807 #endif 797 808 CALL rst_read_open !* open the restart file if necessary 798 809 ! ! --------- ! … … 804 815 id5 = iom_varid( numror, 'hdiv_lf' , ldstop = .FALSE. ) 805 816 ! 817 #if defined key_agrif 818 ENDIF 819 #endif 806 820 ! !* scale factors 807 821 IF(lwp) WRITE(numout,*) ' Kmm scale factor read in the restart file' 808 822 CALL iom_get( numror, jpdom_auto, 'e3t_n', e3t(:,:,:,Kmm) ) 809 WHERE ( tmask(:,:,:) == 0.0_wp ) 823 WHERE ( tmask(:,:,:) == 0.0_wp ) 810 824 e3t(:,:,:,Kmm) = e3t_0(:,:,:) 811 825 END WHERE … … 816 830 IF(lwp) WRITE(numout,*) ' Kbb scale factor read in the restart file' 817 831 CALL iom_get( numror, jpdom_auto, 'e3t_b', e3t(:,:,:,Kbb) ) 818 WHERE ( tmask(:,:,:) == 0.0_wp ) 832 WHERE ( tmask(:,:,:) == 0.0_wp ) 819 833 e3t(:,:,:,Kbb) = e3t_0(:,:,:) 820 834 END WHERE … … 840 854 CALL iom_get( numror, jpdom_auto, 'tilde_e3t_b', tilde_e3t_b(:,:,:) ) 841 855 ENDIF 842 ELSE 843 844 856 ELSE 857 tilde_e3t_b(:,:,:) = 0.0_wp 858 tilde_e3t_n(:,:,:) = 0.0_wp 845 859 ENDIF 846 860 ! ! ------------ ! … … 850 864 CALL iom_get( numror, jpdom_auto, 'hdiv_lf', hdiv_lf(:,:,:) ) 851 865 ELSE ! array is missing 852 hdiv_lf(:,:,:) = 0.0_wp 866 hdiv_lf(:,:,:) = 0.0_wp 853 867 ENDIF 854 868 ENDIF … … 871 885 ELSEIF( TRIM(cdrw) == 'WRITE' ) THEN ! Create restart file ! 872 886 ! !=======================! 887 #if defined key_agrif 888 IF ( .NOT.Agrif_root().AND.(ln_init_chfrpar) ) THEN 889 ! Interpolate initial ssh from parent: 890 CALL Agrif_istate_ssh( Kbb, Kmm ) 891 ! 892 DO jk = 1, jpk 893 e3t(:,:,jk,Kmm) = e3t_0(:,:,jk) * ( ht_0(:,:) + ssh(:,:,Kmm) ) & 894 & / ( ht_0(:,:) + 1._wp - ssmask(:,:) ) * tmask(:,:,jk) & 895 & + e3t_0(:,:,jk) * ( 1._wp - tmask(:,:,jk) ) 896 END DO 897 e3t(:,:,:,Kbb) = e3t(:,:,:,Kmm) 898 ENDIF 899 #endif 873 900 ! 874 901 IF(lwp) WRITE(numout,*) '---- dom_vvl_rst ----' … … 884 911 CALL iom_rstput( kt, nitrst, numrow, 'tilde_e3t_n', tilde_e3t_n(:,:,:)) 885 912 END IF 886 ! ! -------------! 913 ! ! -------------! 887 914 IF( ln_vvl_ztilde ) THEN ! z_tilde case ! 888 915 ! ! ------------ ! … … 898 925 !!--------------------------------------------------------------------- 899 926 !! *** ROUTINE dom_vvl_ctl *** 900 !! 927 !! 901 928 !! ** Purpose : Control the consistency between namelist options 902 929 !! for vertical coordinate … … 907 934 & ln_vvl_zstar_at_eqtor , rn_ahe3 , rn_rst_e3t , & 908 935 & rn_lf_cutoff , rn_zdef_max , ln_vvl_dbg ! not yet implemented: ln_vvl_kepe 909 !!---------------------------------------------------------------------- 936 !!---------------------------------------------------------------------- 910 937 ! 911 938 READ ( numnam_ref, nam_vvl, IOSTAT = ios, ERR = 901) -
NEMO/trunk/src/OCE/DOM/istate.F90
r14053 r14086 34 34 USE lib_mpp ! MPP library 35 35 USE restart ! restart 36 36 37 #if defined key_agrif 38 USE agrif_oce ! initial state interpolation 37 39 USE agrif_oce_interp 38 USE agrif_oce39 40 #endif 40 41 … … 93 94 ln_1st_euler = .true. ! Set time-step indicator at nit000 (euler forward) 94 95 CALL day_init 95 CALL agrif_istate ( Kbb, Kmm, Kaa ) ! Interp from parent96 CALL agrif_istate_oce( Kbb, Kmm, Kaa ) ! Interp from parent 96 97 ! 97 98 ts (:,:,:,:,Kmm) = ts (:,:,:,:,Kbb) … … 104 105 ELSE 105 106 #endif 106 IF( ln_rstart ) THEN ! Restart from a file 107 ! ! ------------------- 108 CALL rst_read( Kbb, Kmm ) ! Read the restart file 109 CALL day_init ! model calendar (using both namelist and restart infos) 110 ! 111 ELSE ! Start from rest 112 ! ! --------------- 113 numror = 0 ! define numror = 0 -> no restart file to read 114 l_1st_euler = .true. ! Set time-step indicator at nit000 (euler forward) 115 CALL day_init ! model calendar (using both namelist and restart infos) 116 ! ! Initialization of ocean to zero 117 ! 118 IF( ln_tsd_init ) THEN 119 CALL dta_tsd( nit000, ts(:,:,:,:,Kbb) ) ! read 3D T and S data at nit000 107 IF( ln_rstart ) THEN ! Restart from a file 108 ! ! ------------------- 109 CALL rst_read( Kbb, Kmm ) ! Read the restart file 110 CALL day_init ! model calendar (using both namelist and restart infos) 120 111 ! 121 uu (:,:,:,Kbb) = 0._wp 122 vv (:,:,:,Kbb) = 0._wp 123 ! 124 ELSE ! user defined initial T and S 125 DO jk = 1, jpk 126 zgdept(:,:,jk) = gdept(:,:,jk,Kbb) 127 END DO 128 CALL usr_def_istate( zgdept, tmask, ts(:,:,:,:,Kbb), uu(:,:,:,Kbb), vv(:,:,:,Kbb) ) 129 ENDIF 130 ts (:,:,:,:,Kmm) = ts (:,:,:,:,Kbb) ! set now values from to before ones 131 uu (:,:,: ,Kmm) = uu (:,:,: ,Kbb) 132 vv (:,:,: ,Kmm) = vv (:,:,: ,Kbb) 112 ELSE ! Start from rest 113 ! ! --------------- 114 numror = 0 ! define numror = 0 -> no restart file to read 115 l_1st_euler = .true. ! Set time-step indicator at nit000 (euler forward) 116 CALL day_init ! model calendar (using both namelist and restart infos) 117 ! ! Initialization of ocean to zero 118 IF( ln_tsd_init ) THEN 119 CALL dta_tsd( nit000, ts(:,:,:,:,Kbb) ) ! read 3D T and S data at nit000 120 ! 121 ssh(:,:,Kbb) = 0._wp ! set the ocean at rest 122 uu (:,:,:,Kbb) = 0._wp 123 vv (:,:,:,Kbb) = 0._wp 124 ! 125 IF( ll_wd ) THEN 126 ssh(:,:,Kbb) = -ssh_ref ! Added in 30 here for bathy that adds 30 as Iterative test CEOD 127 ! 128 ! Apply minimum wetdepth criterion 129 ! 130 DO_2D( 1, 1, 1, 1 ) 131 IF( ht_0(ji,jj) + ssh(ji,jj,Kbb) < rn_wdmin1 ) THEN 132 ssh(ji,jj,Kbb) = tmask(ji,jj,1)*( rn_wdmin1 - (ht_0(ji,jj)) ) 133 ENDIF 134 END_2D 135 ENDIF 136 ! 137 ELSE ! user defined initial T and S 138 DO jk = 1, jpk 139 zgdept(:,:,jk) = gdept(:,:,jk,Kbb) 140 END DO 141 CALL usr_def_istate( zgdept, tmask, ts(:,:,:,:,Kbb), uu(:,:,:,Kbb), vv(:,:,:,Kbb) ) 142 ENDIF 143 ts (:,:,:,:,Kmm) = ts (:,:,:,:,Kbb) ! set now values from to before ones 144 ssh (:,:,Kmm) = ssh(:,:,Kbb) 145 uu (:,:,:,Kmm) = uu (:,:,:,Kbb) 146 vv (:,:,:,Kmm) = vv (:,:,:,Kbb) 133 147 134 148 ! … … 143 157 ! 144 158 ! 145 ENDIF159 ENDIF 146 160 #if defined key_agrif 147 161 ENDIF -
NEMO/trunk/src/OCE/nemogcm.F90
r14072 r14086 51 51 USE istate ! initial state setting (istate_init routine) 52 52 USE trdini ! dyn/tra trends initialization (trd_init routine) 53 USE asminc ! assimilation increments 54 USE asmbkg ! writing out state trajectory 55 USE diadct ! sections transports (dia_dct_init routine) 56 USE diaobs ! Observation diagnostics (dia_obs_init routine) 57 USE diacfl ! CFL diagnostics (dia_cfl_init routine) 58 USE diamlr ! IOM context management for multiple-linear-regression analysis 59 #if defined key_qco 60 USE stepMLF ! NEMO time-stepping (stp_MLF routine) 61 #else 62 USE step ! NEMO time-stepping (stp routine) 63 #endif 64 USE isfstp ! ice shelf (isf_stp_init routine) 53 65 USE icbini ! handle bergs, initialisation 54 66 USE icbstp , ONLY : icb_end ! handle bergs, close iceberg files … … 76 88 USE lbcnfd , ONLY : isendto, nsndto ! Setup of north fold exchanges 77 89 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 78 USE halo_mng ! Halo manager 90 #if defined key_iomput 91 USE xios ! xIOserver 92 #endif 93 #if defined key_agrif 94 USE agrif_all_update ! Master Agrif update 95 USE agrif_oce_update 96 #endif 97 USE halo_mng 79 98 80 99 IMPLICIT NONE … … 158 177 Kbb_a = Nbb; Kmm_a = Nnn; Krhs_a = Nrhs ! agrif_oce module copies of time level indices 159 178 CALL Agrif_step_child_adj(Agrif_Update_All) 179 CALL Agrif_step_child_adj(Agrif_Check_parent_bat) 160 180 ! 161 181 DO WHILE( istp <= nitend .AND. nstop == 0 ) -
NEMO/trunk/src/OCE/step_oce.F90
r14072 r14086 6 6 !!====================================================================== 7 7 !! History : 3.3 ! 2010-08 (C. Ethe) Original code - reorganisation of the initial phase 8 !! 3.7 ! 2014-01 (G. Madec) LDF simplication 8 !! 3.7 ! 2014-01 (G. Madec) LDF simplication 9 9 !!---------------------------------------------------------------------- 10 10 USE oce ! ocean dynamics and tracers variables … … 35 35 USE domvvl ! variable vertical scale factors (dom_vvl_sf_nxt routine) 36 36 ! (dom_vvl_sf_swp routine) 37 37 38 38 USE divhor ! horizontal divergence (div_hor routine) 39 39 USE dynadv ! advection (dyn_adv routine) … … 60 60 61 61 USE stopar ! Stochastic parametrization (sto_par routine) 62 USE stopts 62 USE stopts 63 63 64 64 USE ldfslp ! iso-neutral slopes (ldf_slp routine) … … 73 73 74 74 USE diu_layers ! diurnal SST bulk and coolskin routines 75 USE sbc_oce ! surface fluxes 76 75 USE sbc_oce ! surface fluxes 76 77 77 USE zpshde ! partial step: hor. derivative (zps_hde routine) 78 78
Note: See TracChangeset
for help on using the changeset viewer.