New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 2971 for branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/TOP_SRC/trcsub.F90 – NEMO

Ignore:
Timestamp:
2011-10-21T14:29:39+02:00 (13 years ago)
Author:
kpedwards
Message:

Latest changes for substepping - add key_trabbl.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2011/dev_r2802_TOP_substepping/NEMOGCM/NEMO/TOP_SRC/trcsub.F90

    r2944 r2971  
    2222   USE zdfgls, ONLY: en 
    2323#endif 
     24   USE trabbl 
    2425   USE zdf_oce 
    2526   USE domvvl 
     
    6768      !!------------------------------------------------------------------- 
    6869 
    69        IF (kt == nit000) THEN 
     70       IF( kt == nit000 ) THEN 
    7071           IF(lwp) WRITE(numout,*) 
    7172           IF(lwp) WRITE(numout,*) 'trc_sub_stp : substepping of the passive tracers' 
     
    8687          un_tm   (:,:,:)        = un_tm   (:,:,:)        + un   (:,:,:)        * fse3u(:,:,:)  
    8788          vn_tm   (:,:,:)        = vn_tm   (:,:,:)        + vn   (:,:,:)        * fse3v(:,:,:)  
    88           wn_tm   (:,:,:)        = wn_tm   (:,:,:)        + wn   (:,:,:)        * fse3w(:,:,:)  
    8989          tsn_tm  (:,:,:,jp_tem) = tsn_tm  (:,:,:,jp_tem) + tsn  (:,:,:,jp_tem) * fse3t(:,:,:)   
    9090          tsn_tm  (:,:,:,jp_sal) = tsn_tm  (:,:,:,jp_sal) + tsn  (:,:,:,jp_sal) * fse3t(:,:,:)   
     
    9999          vslp_tm (:,:,:)        = vslp_tm (:,:,:)        + vslp (:,:,:)        * fse3v(:,:,:)  
    100100#endif 
     101# if defined key_trabbl 
     102          IF( nn_bbl_ldf == 1 ) THEN 
     103             ahu_bbl_tm(:,:)     = ahu_bbl_tm(:,:)        + ahu_bbl(:,:)  
     104             ahv_bbl_tm(:,:)     = ahv_bbl_tm(:,:)        + ahv_bbl(:,:)  
     105          ENDIF 
     106          IF( nn_bbl_adv == 1 ) THEN 
     107             utr_bbl_tm(:,:)     = utr_bbl_tm(:,:)        + utr_bbl(:,:)  
     108             vtr_bbl_tm(:,:)     = vtr_bbl_tm(:,:)        + vtr_bbl(:,:)  
     109          ENDIF 
     110# endif 
    101111          ! 
    102112          sshn_tm  (:,:)         = sshn_tm  (:,:)         + sshn  (:,:)  
     
    169179         vslp_temp  (:,:,:)      = vslp  (:,:,:) 
    170180#endif 
     181# if defined key_trabbl 
     182          IF( nn_bbl_ldf == 1 ) THEN 
     183             ahu_bbl_temp(:,:)   = ahu_bbl(:,:)   
     184             ahv_bbl_temp(:,:)   = ahv_bbl(:,:)  
     185          ENDIF 
     186          IF( nn_bbl_adv == 1 ) THEN 
     187             utr_bbl_temp(:,:)   = utr_bbl(:,:)  
     188             vtr_bbl_temp(:,:)   = vtr_bbl(:,:)  
     189          ENDIF 
     190# endif 
    171191         sshn_temp  (:,:)        = sshn  (:,:) 
    172192         sshu_n_temp(:,:)        = sshu_n(:,:) 
     
    229249# endif 
    230250#endif 
    231 !  Variables reset in trc_sub_ssh 
     251         !                                    !  Variables reset in trc_sub_ssh 
    232252         rotn_temp  (:,:,:)      = rotn  (:,:,:) 
    233253         hdivn_temp (:,:,:)      = hdivn (:,:,:) 
     
    258278         un_tm    (:,:,:)        = un_tm   (:,:,:)        + un   (:,:,:)        * e3u_temp(:,:,:)  
    259279         vn_tm    (:,:,:)        = vn_tm   (:,:,:)        + vn   (:,:,:)        * e3v_temp(:,:,:)  
    260          wn_tm    (:,:,:)        = wn_tm   (:,:,:)        + wn   (:,:,:)        * e3w_temp(:,:,:)  
    261280         tsn_tm   (:,:,:,jp_tem) = tsn_tm  (:,:,:,jp_tem) + tsn  (:,:,:,jp_tem) * e3t_temp(:,:,:)   
    262281         tsn_tm   (:,:,:,jp_sal) = tsn_tm  (:,:,:,jp_sal) + tsn  (:,:,:,jp_sal) * e3t_temp(:,:,:)   
     
    271290         vslp_tm  (:,:,:)        = vslp_tm (:,:,:)        + vslp (:,:,:)        * e3v_temp(:,:,:)  
    272291#endif 
     292# if defined key_trabbl 
     293          IF( nn_bbl_ldf == 1 ) THEN 
     294             ahu_bbl_tm(:,:)     = ahu_bbl_tm(:,:)        + ahu_bbl(:,:)  
     295             ahv_bbl_tm(:,:)     = ahv_bbl_tm(:,:)        + ahv_bbl(:,:)  
     296          ENDIF 
     297          IF( nn_bbl_adv == 1 ) THEN 
     298             utr_bbl_tm(:,:)     = utr_bbl_tm(:,:)        + utr_bbl(:,:)  
     299             vtr_bbl_tm(:,:)     = vtr_bbl_tm(:,:)        + vtr_bbl(:,:)  
     300          ENDIF 
     301# endif 
    273302         sshn_tm  (:,:)          = sshn_tm    (:,:)       + sshn  (:,:)  
    274303         sshu_n_tm(:,:)          = sshu_n_tm  (:,:)       + sshu_n(:,:)  
     
    300329            emps  (:,:)          = emps_tm    (:,:) * r1_ndttrc  
    301330            fr_i  (:,:)          = fr_i_tm    (:,:) * r1_ndttrc 
     331# if defined key_trabbl 
     332            IF( nn_bbl_ldf == 1 ) THEN 
     333               ahu_bbl(:,:)      = ahu_bbl_tm (:,:) * r1_ndttrc   
     334               ahv_bbl(:,:)      = ahv_bbl_tm (:,:) * r1_ndttrc  
     335            ENDIF 
     336            IF( nn_bbl_adv == 1 ) THEN 
     337               utr_bbl(:,:)      = utr_bbl_tm (:,:) * r1_ndttrc   
     338               vtr_bbl(:,:)      = vtr_bbl_tm (:,:) * r1_ndttrc  
     339            ENDIF 
     340# endif 
    302341         ELSE 
    303342            wndm  (:,:)          = wndm_tm    (:,:) * r1_ndttrcp1  
     
    306345            emps  (:,:)          = emps_tm    (:,:) * r1_ndttrcp1  
    307346            fr_i  (:,:)          = fr_i_tm    (:,:) * r1_ndttrcp1  
     347# if defined key_trabbl 
     348            IF( nn_bbl_ldf == 1 ) THEN 
     349               ahu_bbl(:,:)      = ahu_bbl_tm (:,:) * r1_ndttrcp1   
     350               ahv_bbl(:,:)      = ahv_bbl_tm (:,:) * r1_ndttrcp1  
     351            ENDIF 
     352            IF( nn_bbl_adv == 1 ) THEN 
     353               utr_bbl(:,:)      = utr_bbl_tm (:,:) * r1_ndttrcp1   
     354               vtr_bbl(:,:)      = vtr_bbl_tm (:,:) * r1_ndttrcp1  
     355            ENDIF 
     356# endif 
    308357         ENDIF 
    309358         ! 
     
    318367                  un   (ji,jj,jk)        = un_tm   (ji,jj,jk)        * z1_ne3u 
    319368                  vn   (ji,jj,jk)        = vn_tm   (ji,jj,jk)        * z1_ne3v 
    320                   wn   (ji,jj,jk)        = wn_tm   (ji,jj,jk)        * z1_ne3w 
    321369                  tsn  (ji,jj,jk,jp_tem) = tsn_tm  (ji,jj,jk,jp_tem) * z1_ne3t 
    322370                  tsn  (ji,jj,jk,jp_sal) = tsn_tm  (ji,jj,jk,jp_sal) * z1_ne3t 
     
    413461#endif 
    414462 
    415          CALL lbc_lnk( un    (:,:,:)       , 'U', 1. )  
    416          CALL lbc_lnk( vn    (:,:,:)       , 'V', 1. )  
    417          CALL lbc_lnk( wn    (:,:,:)       , 'V', 1. )  
     463         CALL lbc_lnk( un    (:,:,:)       , 'U',-1. )  
     464         CALL lbc_lnk( vn    (:,:,:)       , 'V',-1. )  
    418465         CALL lbc_lnk( tsn   (:,:,:,jp_tem), 'T', 1. )  
    419466         CALL lbc_lnk( tsn   (:,:,:,jp_sal), 'T', 1. )  
     
    423470# endif 
    424471#if defined key_ldfslp 
    425          CALL lbc_lnk( uslp  (:,:,:)       , 'U', 1. )  
    426          CALL lbc_lnk( vslp  (:,:,:)       , 'V', 1. )  
    427          CALL lbc_lnk( wslpi (:,:,:)       , 'W', 1. )  
    428          CALL lbc_lnk( wslpj (:,:,:)       , 'W', 1. )  
     472         CALL lbc_lnk( uslp  (:,:,:)       , 'U',-1. )  
     473         CALL lbc_lnk( vslp  (:,:,:)       , 'V',-1. )  
     474         CALL lbc_lnk( wslpi (:,:,:)       , 'W',-1. )  
     475         CALL lbc_lnk( wslpj (:,:,:)       , 'W',-1. )  
    429476#endif 
    430477         CALL lbc_lnk( sshn  (:,:)         , 'T', 1. )  
     
    447494         CALL lbc_lnk( qsr   (:,:)         , 'T', 1. )  
    448495         CALL lbc_lnk( wndm  (:,:)         , 'T', 1. )  
     496# if defined key_trabbl 
     497         IF( nn_bbl_ldf == 1 ) THEN 
     498            CALL lbc_lnk( ahu_bbl(:,:)     , 'U', 1. )  
     499            CALL lbc_lnk( ahv_bbl(:,:)     , 'v', 1. )  
     500         ENDIF 
     501         IF( nn_bbl_adv == 1 ) THEN 
     502            CALL lbc_lnk( utr_bbl(:,:)     , 'U', 1. )  
     503            CALL lbc_lnk( vtr_bbl(:,:)     , 'U', 1. )  
     504         ENDIF 
     505# endif 
    449506#if defined key_traldf_c3d 
    450507         CALL lbc_lnk( ahtt  (:,:,:)       , 'T', 1. )  
     
    472529         CALL trc_sub_ssh( kt )         ! after ssh & vertical velocity 
    473530         ! 
     531         CALL lbc_lnk( wn    (:,:,:)       , 'W',-1. )  
    474532         CALL lbc_lnk( rotn  (:,:,:)       , 'F', 1. )  
    475533         CALL lbc_lnk( hdivn (:,:,:)       , 'T', 1. )  
     
    507565      un_tm   (:,:,:)        = un   (:,:,:)        * fse3u(:,:,:)  
    508566      vn_tm   (:,:,:)        = vn   (:,:,:)        * fse3v(:,:,:)  
    509       wn_tm   (:,:,:)        = wn   (:,:,:)        * fse3w(:,:,:)  
    510567      tsn_tm  (:,:,:,jp_tem) = tsn  (:,:,:,jp_tem) * fse3t(:,:,:)   
    511568      tsn_tm  (:,:,:,jp_sal) = tsn  (:,:,:,jp_sal) * fse3t(:,:,:)   
     
    528585 
    529586      ! Physics variables that are set after initialization: 
    530       fr_i_tm(:,:) = 0. 
    531       emp_tm (:,:) = 0. 
    532       emps_tm(:,:) = 0. 
    533       qsr_tm (:,:) = 0. 
    534       wndm_tm(:,:) = 0. 
     587      fr_i_tm(:,:) = 0._wp 
     588      emp_tm (:,:) = 0._wp 
     589      emps_tm(:,:) = 0._wp 
     590      qsr_tm (:,:) = 0._wp 
     591      wndm_tm(:,:) = 0._wp 
     592# if defined key_trabbl 
     593      IF( nn_bbl_ldf == 1 ) THEN 
     594         ahu_bbl_tm(:,:) = 0._wp 
     595         ahv_bbl_tm(:,:) = 0._wp 
     596      ENDIF 
     597      IF( nn_bbl_adv == 1 ) THEN 
     598         utr_bbl_tm(:,:) = 0._wp 
     599         vtr_bbl_tm(:,:) = 0._wp 
     600      ENDIF 
     601# endif 
    535602      ! 
    536603#if defined key_traldf_c3d 
     
    626693      qsr   (:,:)     =  qsr_temp   (:,:) 
    627694      wndm  (:,:)     =  wndm_temp  (:,:) 
     695# if defined key_trabbl 
     696      IF( nn_bbl_ldf == 1 ) THEN 
     697         ahu_bbl(:,:) = ahu_bbl_temp(:,:)  
     698         ahv_bbl(:,:) = ahv_bbl_temp(:,:)  
     699      ENDIF 
     700      IF( nn_bbl_adv == 1 ) THEN 
     701         utr_bbl(:,:) = utr_bbl_temp(:,:)  
     702         vtr_bbl(:,:) = vtr_bbl_temp(:,:)  
     703      ENDIF 
     704# endif 
    628705      ! 
    629706#if defined key_traldf_c3d 
     
    703780 
    704781      ! Start new averages 
    705 !      DO jk = 1, jpk 
    706782         un_tm   (:,:,:)        = un   (:,:,:)        * fse3u(:,:,:)  
    707783         vn_tm   (:,:,:)        = vn   (:,:,:)        * fse3v(:,:,:)  
    708          wn_tm   (:,:,:)        = wn   (:,:,:)        * fse3w(:,:,:)  
    709784         tsn_tm  (:,:,:,jp_tem) = tsn  (:,:,:,jp_tem) * fse3t(:,:,:)   
    710785         tsn_tm  (:,:,:,jp_sal) = tsn  (:,:,:,jp_sal) * fse3t(:,:,:)   
     
    719794         vslp_tm (:,:,:)        = vslp (:,:,:)        * fse3v(:,:,:)  
    720795#endif 
    721 !      END DO 
    722796      ! 
    723797      sshb_hold  (:,:) = sshn  (:,:) 
     
    736810      qsr_tm     (:,:) = qsr   (:,:) 
    737811      wndm_tm    (:,:) = wndm  (:,:) 
     812# if defined key_trabbl 
     813      IF( nn_bbl_ldf == 1 ) THEN 
     814         ahu_bbl_tm(:,:) = ahu_bbl(:,:)  
     815         ahv_bbl_tm(:,:) = ahv_bbl(:,:)  
     816      ENDIF 
     817      IF( nn_bbl_adv == 1 ) THEN 
     818         utr_bbl_tm(:,:) = utr_bbl(:,:)  
     819         vtr_bbl_tm(:,:) = vtr_bbl(:,:)  
     820      ENDIF 
     821# endif 
    738822      ! 
    739823#if defined key_traldf_c3d 
     
    9451029         &      uslp_temp(jpi,jpj,jpk)      ,  vslp_temp(jpi,jpj,jpk),   & 
    9461030#endif 
     1031#if defined key_trabbl 
     1032         &      ahu_bbl_temp(jpi,jpj)       ,  ahv_bbl_temp(jpi,jpj),    & 
     1033         &      utr_bbl_temp(jpi,jpj)       ,  vtr_bbl_temp(jpi,jpj),    & 
     1034#endif 
    9471035         &      rnf_temp(jpi,jpj)           ,  h_rnf_temp(jpi,jpj) ,     & 
    948          &      tsn_temp(jpi,jpj,jpk,2)     ,                            & 
     1036         &      tsn_temp(jpi,jpj,jpk,2)     ,  emp_b_temp(jpi,jpj),      & 
    9491037         &      emp_temp(jpi,jpj)           ,  emps_temp(jpi,jpj) ,      & 
    9501038         &      hmld_temp(jpi,jpj)          ,  qsr_temp(jpi,jpj) ,       & 
     
    9901078         &      hur_temp(jpi,jpj)           ,  hvr_temp(jpi,jpj),        & 
    9911079         &      un_tm(jpi,jpj,jpk)          ,  vn_tm(jpi,jpj,jpk)  ,     & 
    992          &      wn_tm(jpi,jpj,jpk)          ,  avt_tm(jpi,jpj,jpk) ,     & 
     1080         &      avt_tm(jpi,jpj,jpk)                                ,     & 
    9931081         &      sshn_tm(jpi,jpj)            ,  sshb_hold(jpi,jpj) ,      & 
    9941082         &      sshu_n_tm(jpi,jpj)          ,  sshu_b_hold(jpi,jpj),     & 
     
    10011089         &      wslpi_tm(jpi,jpj,jpk)       ,  wslpj_tm(jpi,jpj,jpk),    & 
    10021090         &      uslp_tm(jpi,jpj,jpk)        ,  vslp_tm(jpi,jpj,jpk),     & 
     1091#endif 
     1092#if defined key_trabbl 
     1093         &      ahu_bbl_tm(jpi,jpj)         ,  ahv_bbl_tm(jpi,jpj),      & 
     1094         &      utr_bbl_tm(jpi,jpj)         ,  vtr_bbl_tm(jpi,jpj),      & 
    10031095#endif 
    10041096         &      rnf_tm(jpi,jpj)             ,  h_rnf_tm(jpi,jpj) ,       & 
Note: See TracChangeset for help on using the changeset viewer.