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 12928 for NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser/src/OCE/SBC/sbcssm.F90 – NEMO

Ignore:
Timestamp:
2020-05-14T21:46:00+02:00 (4 years ago)
Author:
smueller
Message:

Synchronizing with /NEMO/trunk@12925 (ticket #2170)

Location:
NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser

    • Property svn:externals
      •  

        old new  
        66^/vendors/FCM@HEAD            ext/FCM 
        77^/vendors/IOIPSL@HEAD         ext/IOIPSL 
         8 
         9# SETTE 
         10^/utils/CI/sette@HEAD         sette 
  • NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser/src/OCE/SBC/sbcssm.F90

    r10425 r12928  
    3939CONTAINS 
    4040 
    41    SUBROUTINE sbc_ssm( kt ) 
     41   SUBROUTINE sbc_ssm( kt, Kbb, Kmm ) 
    4242      !!--------------------------------------------------------------------- 
    4343      !!                     ***  ROUTINE sbc_oce  *** 
     
    5353      !!--------------------------------------------------------------------- 
    5454      INTEGER, INTENT(in) ::   kt   ! ocean time step 
     55      INTEGER, INTENT(in) ::   Kbb, Kmm   ! ocean time level indices 
    5556      ! 
    5657      INTEGER  ::   ji, jj               ! loop index 
     
    6061      ! 
    6162      !                                        !* surface T-, U-, V- ocean level variables (T, S, depth, velocity) 
    62       DO jj = 1, jpj 
    63          DO ji = 1, jpi 
    64             zts(ji,jj,jp_tem) = tsn(ji,jj,mikt(ji,jj),jp_tem) 
    65             zts(ji,jj,jp_sal) = tsn(ji,jj,mikt(ji,jj),jp_sal) 
    66          END DO 
    67       END DO 
     63      zts(:,:,jp_tem) = ts(:,:,1,jp_tem,Kmm) 
     64      zts(:,:,jp_sal) = ts(:,:,1,jp_sal,Kmm) 
    6865      ! 
    6966      IF( nn_fsbc == 1 ) THEN                             !   Instantaneous surface fields        ! 
    7067         !                                                ! ---------------------------------------- ! 
    71          ssu_m(:,:) = ub(:,:,1) 
    72          ssv_m(:,:) = vb(:,:,1) 
     68         ssu_m(:,:) = uu(:,:,1,Kbb) 
     69         ssv_m(:,:) = vv(:,:,1,Kbb) 
    7370         IF( l_useCT )  THEN    ;   sst_m(:,:) = eos_pt_from_ct( zts(:,:,jp_tem), zts(:,:,jp_sal) ) 
    74          ELSE                    ;   sst_m(:,:) = zts(:,:,jp_tem) 
     71         ELSE                   ;   sst_m(:,:) = zts(:,:,jp_tem) 
    7572         ENDIF 
    7673         sss_m(:,:) = zts(:,:,jp_sal) 
    7774         !                          ! removed inverse barometer ssh when Patm forcing is used (for sea-ice dynamics) 
    78          IF( ln_apr_dyn ) THEN   ;   ssh_m(:,:) = sshn(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 
    79          ELSE                    ;   ssh_m(:,:) = sshn(:,:) 
    80          ENDIF 
    81          ! 
    82          e3t_m(:,:) = e3t_n(:,:,1) 
     75         IF( ln_apr_dyn ) THEN   ;   ssh_m(:,:) = ssh(:,:,Kmm) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 
     76         ELSE                    ;   ssh_m(:,:) = ssh(:,:,Kmm) 
     77         ENDIF 
     78         ! 
     79         e3t_m(:,:) = e3t(:,:,1,Kmm) 
    8380         ! 
    8481         frq_m(:,:) = fraqsr_1lev(:,:) 
     
    9289            IF(lwp) WRITE(numout,*) '~~~~~~~   ' 
    9390            zcoef = REAL( nn_fsbc - 1, wp ) 
    94             ssu_m(:,:) = zcoef * ub(:,:,1) 
    95             ssv_m(:,:) = zcoef * vb(:,:,1) 
     91            ssu_m(:,:) = zcoef * uu(:,:,1,Kbb) 
     92            ssv_m(:,:) = zcoef * vv(:,:,1,Kbb) 
    9693            IF( l_useCT )  THEN    ;   sst_m(:,:) = zcoef * eos_pt_from_ct( zts(:,:,jp_tem), zts(:,:,jp_sal) ) 
    9794            ELSE                    ;   sst_m(:,:) = zcoef * zts(:,:,jp_tem) 
     
    9996            sss_m(:,:) = zcoef * zts(:,:,jp_sal) 
    10097            !                          ! removed inverse barometer ssh when Patm forcing is used (for sea-ice dynamics) 
    101             IF( ln_apr_dyn ) THEN   ;   ssh_m(:,:) = zcoef * ( sshn(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) ) 
    102             ELSE                    ;   ssh_m(:,:) = zcoef * sshn(:,:) 
    103             ENDIF 
    104             ! 
    105             e3t_m(:,:) = zcoef * e3t_n(:,:,1) 
     98            IF( ln_apr_dyn ) THEN   ;   ssh_m(:,:) = zcoef * ( ssh(:,:,Kmm) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) ) 
     99            ELSE                    ;   ssh_m(:,:) = zcoef *   ssh(:,:,Kmm) 
     100            ENDIF 
     101            ! 
     102            e3t_m(:,:) = zcoef * e3t(:,:,1,Kmm) 
    106103            ! 
    107104            frq_m(:,:) = zcoef * fraqsr_1lev(:,:) 
     
    120117         !                                                !        Cumulate at each time step        ! 
    121118         !                                                ! ---------------------------------------- ! 
    122          ssu_m(:,:) = ssu_m(:,:) + ub(:,:,1) 
    123          ssv_m(:,:) = ssv_m(:,:) + vb(:,:,1) 
     119         ssu_m(:,:) = ssu_m(:,:) + uu(:,:,1,Kbb) 
     120         ssv_m(:,:) = ssv_m(:,:) + vv(:,:,1,Kbb) 
    124121         IF( l_useCT )  THEN     ;   sst_m(:,:) = sst_m(:,:) + eos_pt_from_ct( zts(:,:,jp_tem), zts(:,:,jp_sal) ) 
    125122         ELSE                    ;   sst_m(:,:) = sst_m(:,:) + zts(:,:,jp_tem) 
     
    127124         sss_m(:,:) = sss_m(:,:) + zts(:,:,jp_sal) 
    128125         !                          ! removed inverse barometer ssh when Patm forcing is used (for sea-ice dynamics) 
    129          IF( ln_apr_dyn ) THEN   ;   ssh_m(:,:) = ssh_m(:,:) + sshn(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 
    130          ELSE                    ;   ssh_m(:,:) = ssh_m(:,:) + sshn(:,:) 
    131          ENDIF 
    132          ! 
    133          e3t_m(:,:) = e3t_m(:,:) + e3t_n(:,:,1) 
     126         IF( ln_apr_dyn ) THEN   ;   ssh_m(:,:) = ssh_m(:,:) + ssh(:,:,Kmm) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 
     127         ELSE                    ;   ssh_m(:,:) = ssh_m(:,:) + ssh(:,:,Kmm) 
     128         ENDIF 
     129         ! 
     130         e3t_m(:,:) = e3t_m(:,:) + e3t(:,:,1,Kmm) 
    134131         ! 
    135132         frq_m(:,:) = frq_m(:,:) + fraqsr_1lev(:,:) 
     
    184181 
    185182 
    186    SUBROUTINE sbc_ssm_init 
     183   SUBROUTINE sbc_ssm_init( Kbb, Kmm ) 
    187184      !!---------------------------------------------------------------------- 
    188185      !!                  ***  ROUTINE sbc_ssm_init  *** 
     
    192189      !! ** Action  : - read parameters 
    193190      !!---------------------------------------------------------------------- 
     191      INTEGER, INTENT(in) ::   Kbb, Kmm   ! ocean time level indices 
    194192      REAL(wp) ::   zcoef, zf_sbc   ! local scalar 
    195193      !!---------------------------------------------------------------------- 
     
    242240         ! 
    243241         IF(lwp) WRITE(numout,*) '   default initialisation of ss._m arrays' 
    244          ssu_m(:,:) = ub(:,:,1) 
    245          ssv_m(:,:) = vb(:,:,1) 
    246          IF( l_useCT )  THEN    ;   sst_m(:,:) = eos_pt_from_ct( tsn(:,:,1,jp_tem), tsn(:,:,1,jp_sal) ) 
    247          ELSE                   ;   sst_m(:,:) = tsn(:,:,1,jp_tem) 
    248          ENDIF 
    249          sss_m(:,:) = tsn  (:,:,1,jp_sal) 
    250          ssh_m(:,:) = sshn (:,:) 
    251          e3t_m(:,:) = e3t_n(:,:,1) 
     242         ssu_m(:,:) = uu(:,:,1,Kbb) 
     243         ssv_m(:,:) = vv(:,:,1,Kbb) 
     244         IF( l_useCT )  THEN    ;   sst_m(:,:) = eos_pt_from_ct( ts(:,:,1,jp_tem,Kmm), ts(:,:,1,jp_sal,Kmm) ) 
     245         ELSE                   ;   sst_m(:,:) = ts(:,:,1,jp_tem,Kmm) 
     246         ENDIF 
     247         sss_m(:,:) = ts  (:,:,1,jp_sal,Kmm) 
     248         ssh_m(:,:) = ssh(:,:,Kmm) 
     249         e3t_m(:,:) = e3t (:,:,1,Kmm) 
    252250         frq_m(:,:) = 1._wp 
    253251         ! 
Note: See TracChangeset for help on using the changeset viewer.