Changeset 10998
- Timestamp:
- 2019-05-20T10:27:28+02:00 (5 years ago)
- Location:
- NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/ICE/iceistate.F90
r10534 r10998 68 68 CONTAINS 69 69 70 SUBROUTINE ice_istate 70 SUBROUTINE ice_istate( Kbb, Kmm, Kaa ) 71 71 !!------------------------------------------------------------------- 72 72 !! *** ROUTINE ice_istate *** … … 89 89 !! where there is no ice (clem: I do not know why, is it mandatory?) 90 90 !!-------------------------------------------------------------------- 91 INTEGER, INTENT(in) :: Kbb, Kmm, Kaa ! ocean time level indices 92 ! 91 93 INTEGER :: ji, jj, jk, jl ! dummy loop indices 92 94 INTEGER :: i_hemis, i_fill, jl0 ! local integers … … 425 427 IF( ln_ice_embd ) THEN ! embedded sea-ice: deplete the initial ssh below sea-ice area 426 428 ! 427 ssh n(:,:) = sshn(:,:) - snwice_mass(:,:) * r1_rau0428 ssh b(:,:) = sshb(:,:) - snwice_mass(:,:) * r1_rau0429 ssh(:,:,Kmm) = ssh(:,:,Kmm) - snwice_mass(:,:) * r1_rau0 430 ssh(:,:,Kbb) = ssh(:,:,Kbb) - snwice_mass(:,:) * r1_rau0 429 431 ! 430 432 IF( .NOT.ln_linssh ) THEN 431 433 ! 432 WHERE( ht_0(:,:) > 0 ) ; z2d(:,:) = 1._wp + ssh n(:,:)*tmask(:,:,1) / ht_0(:,:)434 WHERE( ht_0(:,:) > 0 ) ; z2d(:,:) = 1._wp + ssh(:,:,Kmm)*tmask(:,:,1) / ht_0(:,:) 433 435 ELSEWHERE ; z2d(:,:) = 1._wp ; END WHERE 434 436 ! 435 437 DO jk = 1,jpkm1 ! adjust initial vertical scale factors 436 e3t _n(:,:,jk) = e3t_0(:,:,jk) * z2d(:,:)437 e3t _b(:,:,jk) = e3t_n(:,:,jk)438 e3t _a(:,:,jk) = e3t_n(:,:,jk)438 e3t(:,:,jk,Kmm) = e3t_0(:,:,jk) * z2d(:,:) 439 e3t(:,:,jk,Kbb) = e3t(:,:,jk,Kmm) 440 e3t(:,:,jk,Kaa) = e3t(:,:,jk,Kmm) 439 441 END DO 440 442 ! … … 443 445 ! Horizontal scale factor interpolations 444 446 ! -------------------------------------- 445 CALL dom_vvl_interpol( e3t _b(:,:,:), e3u_b(:,:,:), 'U' )446 CALL dom_vvl_interpol( e3t _b(:,:,:), e3v_b(:,:,:), 'V' )447 CALL dom_vvl_interpol( e3t _n(:,:,:), e3u_n(:,:,:), 'U' )448 CALL dom_vvl_interpol( e3t _n(:,:,:), e3v_n(:,:,:), 'V' )449 CALL dom_vvl_interpol( e3u _n(:,:,:), e3f_n(:,:,:), 'F' )447 CALL dom_vvl_interpol( e3t(:,:,:,Kbb), e3u(:,:,:,Kbb), 'U' ) 448 CALL dom_vvl_interpol( e3t(:,:,:,Kbb), e3v(:,:,:,Kbb), 'V' ) 449 CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3u(:,:,:,Kmm), 'U' ) 450 CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3v(:,:,:,Kmm), 'V' ) 451 CALL dom_vvl_interpol( e3u(:,:,:,Kmm), e3f(:,:,:), 'F' ) 450 452 ! Vertical scale factor interpolations 451 453 ! ------------------------------------ 452 CALL dom_vvl_interpol( e3t _n(:,:,:), e3w_n (:,:,:), 'W' )453 CALL dom_vvl_interpol( e3u _n(:,:,:), e3uw_n(:,:,:), 'UW' )454 CALL dom_vvl_interpol( e3v _n(:,:,:), e3vw_n(:,:,:), 'VW' )455 CALL dom_vvl_interpol( e3u _b(:,:,:), e3uw_b(:,:,:), 'UW' )456 CALL dom_vvl_interpol( e3v _b(:,:,:), e3vw_b(:,:,:), 'VW' )454 CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3w (:,:,:,Kmm), 'W' ) 455 CALL dom_vvl_interpol( e3u(:,:,:,Kmm), e3uw(:,:,:,Kmm), 'UW' ) 456 CALL dom_vvl_interpol( e3v(:,:,:,Kmm), e3vw(:,:,:,Kmm), 'VW' ) 457 CALL dom_vvl_interpol( e3u(:,:,:,Kbb), e3uw(:,:,:,Kbb), 'UW' ) 458 CALL dom_vvl_interpol( e3v(:,:,:,Kbb), e3vw(:,:,:,Kbb), 'VW' ) 457 459 ! t- and w- points depth 458 460 ! ---------------------- 459 461 !!gm not sure of that.... 460 gdept _n(:,:,1) = 0.5_wp * e3w_n(:,:,1)461 gdepw _n(:,:,1) = 0.0_wp462 gde3w _n(:,:,1) = gdept_n(:,:,1) - sshn(:,:)462 gdept(:,:,1,Kmm) = 0.5_wp * e3w(:,:,1,Kmm) 463 gdepw(:,:,1,Kmm) = 0.0_wp 464 gde3w(:,:,1) = gdept(:,:,1,Kmm) - ssh(:,:,Kmm) 463 465 DO jk = 2, jpk 464 gdept _n(:,:,jk) = gdept_n(:,:,jk-1) + e3w_n(:,:,jk)465 gdepw _n(:,:,jk) = gdepw_n(:,:,jk-1) + e3t_n(:,:,jk-1)466 gde3w _n(:,:,jk) = gdept_n(:,:,jk ) - sshn (:,:)466 gdept(:,:,jk,Kmm) = gdept(:,:,jk-1,Kmm) + e3w(:,:,jk ,Kmm) 467 gdepw(:,:,jk,Kmm) = gdepw(:,:,jk-1,Kmm) + e3t(:,:,jk-1,Kmm) 468 gde3w(:,:,jk) = gdept(:,:,jk ,Kmm) - ssh (:,:,Kmm) 467 469 END DO 468 470 ENDIF -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/ICE/icestp.F90
r10535 r10998 95 95 CONTAINS 96 96 97 SUBROUTINE ice_stp( kt, ksbc )97 SUBROUTINE ice_stp( kt, Kbb, ksbc ) 98 98 !!--------------------------------------------------------------------- 99 99 !! *** ROUTINE ice_stp *** … … 115 115 !! utau, vtau, taum, wndm, qns , qsr, emp , sfx 116 116 !!--------------------------------------------------------------------- 117 INTEGER, INTENT(in) :: kt ! ocean time step 118 INTEGER, INTENT(in) :: ksbc ! flux formulation (user defined, bulk, or Pure Coupled) 117 INTEGER, INTENT(in) :: kt ! ocean time step 118 INTEGER, INTENT(in) :: Kbb ! ocean time level index 119 INTEGER, INTENT(in) :: ksbc ! flux formulation (user defined, bulk, or Pure Coupled) 119 120 ! 120 121 INTEGER :: jl ! dummy loop index … … 209 210 ! --- Ocean time step --- ! 210 211 !-------------------------! 211 IF( ln_icedyn ) CALL ice_update_tau( kt, u b(:,:,1), vb(:,:,1) ) ! -- update surface ocean stresses212 IF( ln_icedyn ) CALL ice_update_tau( kt, uu(:,:,1,Kbb), vv(:,:,1,Kbb) ) ! -- update surface ocean stresses 212 213 !!gm remark, the ocean-ice stress is not saved in ice diag call above ..... find a solution!!! 213 214 ! … … 217 218 218 219 219 SUBROUTINE ice_init 220 SUBROUTINE ice_init( Kbb, Kmm, Kaa ) 220 221 !!---------------------------------------------------------------------- 221 222 !! *** ROUTINE ice_init *** … … 223 224 !! ** purpose : Initialize sea-ice parameters 224 225 !!---------------------------------------------------------------------- 226 INTEGER, INTENT(in) :: Kbb, Kmm, Kaa 227 ! 225 228 INTEGER :: ji, jj, ierr 226 229 !!---------------------------------------------------------------------- … … 254 257 IF( .NOT. ln_rstart ) THEN ! start from rest: sea-ice deduced from sst 255 258 CALL ice_istate_init 256 CALL ice_istate 259 CALL ice_istate( Kbb, Kmm, Kaa ) 257 260 ELSE ! start from a restart file 258 261 CALL ice_rst_read -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/ICE/iceupdate.F90
r10425 r10998 15 15 !! ice_update_tau : update i- and j-stresses, and its modulus at the ocean surface 16 16 !!---------------------------------------------------------------------- 17 USE oce , ONLY : sshn, sshb18 17 USE phycst ! physical constants 19 18 USE dom_oce ! ocean domain -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/C1D/step_c1d.F90
r10978 r10998 66 66 ! Update data, open boundaries, surface boundary condition (including sea-ice) 67 67 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 68 CALL sbc ( kstp )! Sea Boundary Condition (including sea-ice)68 CALL sbc ( kstp, Nbb, Nnn ) ! Sea Boundary Condition (including sea-ice) 69 69 70 70 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/SBC/sbcmod.F90
r10989 r10998 76 76 CONTAINS 77 77 78 SUBROUTINE sbc_init( Kbb, Kmm )78 SUBROUTINE sbc_init( Kbb, Kmm, Kaa ) 79 79 !!--------------------------------------------------------------------- 80 80 !! *** ROUTINE sbc_init *** … … 88 88 !! - nsbc: type of sbc 89 89 !!---------------------------------------------------------------------- 90 INTEGER, INTENT(in) :: Kbb, Kmm 90 INTEGER, INTENT(in) :: Kbb, Kmm, Kaa ! ocean time level indices 91 91 INTEGER :: ios, icpt ! local integer 92 92 LOGICAL :: ll_purecpl, ll_opa, ll_not_nemo ! local logical … … 341 341 IF( sbc_ice_alloc() /= 0 ) CALL ctl_stop('STOP', 'sbc_ice_alloc : unable to allocate arrays' ) 342 342 ELSEIF( nn_ice == 2 ) THEN 343 CALL ice_init 343 CALL ice_init( Kbb, Kmm, Kaa ) ! ICE initialization 344 344 ENDIF 345 345 #endif … … 442 442 CASE( 1 ) ; CALL sbc_ice_if ( kt, Kbb, Kmm ) ! Ice-cover climatology ("Ice-if" model) 443 443 #if defined key_si3 444 CASE( 2 ) ; CALL ice_stp ( kt, nsbc )! SI3 ice model444 CASE( 2 ) ; CALL ice_stp ( kt, Kbb, nsbc ) ! SI3 ice model 445 445 #endif 446 446 CASE( 3 ) ; CALL sbc_ice_cice ( kt, nsbc ) ! CICE ice model -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/nemogcm.F90
r10978 r10998 429 429 IF( ln_diurnal_only ) THEN ! diurnal only: a subset of the initialisation routines 430 430 CALL istate_init( Nbb, Nnn, Naa ) ! ocean initial state (Dynamics and tracers) 431 CALL sbc_init( Nbb, Nnn )! Forcings : surface module431 CALL sbc_init( Nbb, Nnn, Naa ) ! Forcings : surface module 432 432 CALL tra_qsr_init ! penetrative solar radiation qsr 433 433 IF( ln_diaobs ) THEN ! Observation & model comparison … … 443 443 444 444 ! ! external forcing 445 CALL tide_init ! tidal harmonics446 CALL sbc_init( Nbb, Nnn )! surface boundary conditions (including sea-ice)447 CALL bdy_init ! Open boundaries initialisation445 CALL tide_init ! tidal harmonics 446 CALL sbc_init( Nbb, Nnn, Naa ) ! surface boundary conditions (including sea-ice) 447 CALL bdy_init ! Open boundaries initialisation 448 448 449 449 ! ! Ocean physics -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/step.F90
r10985 r10998 119 119 IF( ln_apr_dyn ) CALL sbc_apr ( kstp ) ! atmospheric pressure (NB: call before bdy_dta which needs ssh_ib) 120 120 IF( ln_bdy ) CALL bdy_dta ( kstp, Nnn, time_offset=+1 ) ! update dynamic & tracer data at open boundaries 121 CALL sbc ( kstp, Nbb, Nnn ) 121 CALL sbc ( kstp, Nbb, Nnn ) ! Sea Boundary Condition (including sea-ice) 122 122 123 123 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OFF/nemogcm.F90
r10978 r10998 317 317 CALL istate_init( Nnn, Naa ) ! ocean initial state (Dynamics and tracers) 318 318 319 CALL sbc_init( Nbb, Nnn ) ! Forcings : surface module319 CALL sbc_init( Nbb, Nnn, Naa ) ! Forcings : surface module 320 320 321 321 ! ! Tracer physics -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/SAS/nemogcm.F90
r10978 r10998 376 376 377 377 ! ! external forcing 378 CALL sbc_init( Nbb, Nnn ) ! Forcings : surface module378 CALL sbc_init( Nbb, Nnn, Naa ) ! Forcings : surface module 379 379 380 380 ! ==> clem: open boundaries init. is mandatory for sea-ice because ice BDY is not decoupled from
Note: See TracChangeset
for help on using the changeset viewer.