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 5965 for branches/2014/dev_r4650_UKMO14.5_SST_BIAS_CORRECTION/NEMOGCM/NEMO/OPA_SRC/DOM/istate.F90 – NEMO

Ignore:
Timestamp:
2015-12-01T16:35:30+01:00 (8 years ago)
Author:
timgraham
Message:

Upgraded branch to r5518 of trunk (v3.6 stable revision)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2014/dev_r4650_UKMO14.5_SST_BIAS_CORRECTION/NEMOGCM/NEMO/OPA_SRC/DOM/istate.F90

    r4370 r5965  
    3434   USE dtatsd          ! data temperature and salinity   (dta_tsd routine) 
    3535   USE dtauvd          ! data: U & V current             (dta_uvd routine) 
    36    USE in_out_manager  ! I/O manager 
    37    USE iom             ! I/O library 
    3836   USE zpshde          ! partial step: hor. derivative (zps_hde routine) 
    3937   USE eosbn2          ! equation of state            (eos bn2 routine) 
     
    4240   USE dynspg_flt      ! filtered free surface 
    4341   USE sol_oce         ! ocean solver variables 
     42   ! 
     43   USE in_out_manager  ! I/O manager 
     44   USE iom             ! I/O library 
    4445   USE lib_mpp         ! MPP library 
    4546   USE restart         ! restart 
     
    5657#  include "vectopt_loop_substitute.h90" 
    5758   !!---------------------------------------------------------------------- 
    58    !! NEMO/OPA 3.3 , NEMO Consortium (2010) 
     59   !! NEMO/OPA 3.7 , NEMO Consortium (2014) 
    5960   !! $Id$ 
    6061   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
     
    6869      !! ** Purpose :   Initialization of the dynamics and tracer fields. 
    6970      !!---------------------------------------------------------------------- 
    70       ! - ML - needed for initialization of e3t_b 
    71       INTEGER  ::  ji,jj,jk     ! dummy loop indices 
    72       REAL(wp), POINTER, DIMENSION(:,:,:,:)  ::  zuvd    ! U & V data workspace 
    73       !!---------------------------------------------------------------------- 
    74       ! 
    75       IF( nn_timing == 1 )  CALL timing_start('istate_init') 
    76       ! 
    77  
    78       IF(lwp) WRITE(numout,*) 
     71      INTEGER ::   ji, jj, jk   ! dummy loop indices 
     72      REAL(wp), POINTER, DIMENSION(:,:,:,:) ::   zuvd    ! U & V data workspace 
     73      !!---------------------------------------------------------------------- 
     74      ! 
     75      IF( nn_timing == 1 )   CALL timing_start('istate_init') 
     76      ! 
     77 
     78      IF(lwp) WRITE(numout,*) ' ' 
    7979      IF(lwp) WRITE(numout,*) 'istate_ini : Initialization of the dynamics and tracers' 
    8080      IF(lwp) WRITE(numout,*) '~~~~~~~~~~' 
     
    8383      IF( lk_c1d ) CALL dta_uvd_init          ! Initialization of U & V input data 
    8484 
    85       rhd  (:,:,:  ) = 0.e0 
    86       rhop (:,:,:  ) = 0.e0 
    87       rn2  (:,:,:  ) = 0.e0  
    88       tsa  (:,:,:,:) = 0.e0     
     85      rhd  (:,:,:  ) = 0._wp   ;   rhop (:,:,:  ) = 0._wp      ! set one for all to 0 at level jpk 
     86      rn2b (:,:,:  ) = 0._wp   ;   rn2  (:,:,:  ) = 0._wp      ! set one for all to 0 at levels 1 and jpk 
     87      tsa  (:,:,:,:) = 0._wp                                   ! set one for all to 0 at level jpk 
     88      rab_b(:,:,:,:) = 0._wp   ;   rab_n(:,:,:,:) = 0._wp      ! set one for all to 0 at level jpk 
    8989 
    9090      IF( ln_rstart ) THEN                    ! Restart from a file 
     
    129129         CALL eos( tsb, rhd, rhop, gdept_0(:,:,:) )        ! before potential and in situ densities 
    130130#if ! defined key_c1d 
    131          IF( ln_zps )   CALL zps_hde( nit000, jpts, tsb, gtsu, gtsv,  & ! zps: before hor. gradient 
    132             &                                       rhd, gru , grv  )   ! of t,s,rd at ocean bottom 
     131         IF( ln_zps .AND. .NOT. ln_isfcav)                                 & 
     132            &            CALL zps_hde    ( nit000, jpts, tsb, gtsu, gtsv,  &    ! Partial steps: before horizontal gradient 
     133            &                                            rhd, gru , grv    )  ! of t, s, rd at the last ocean level 
     134         IF( ln_zps .AND.       ln_isfcav)                                 & 
     135            &            CALL zps_hde_isf( nit000, jpts, tsb, gtsu, gtsv,  &    ! Partial steps for top cell (ISF) 
     136            &                                            rhd, gru , grv , aru , arv , gzu , gzv , ge3ru , ge3rv ,   & 
     137            &                                     gtui, gtvi, grui, grvi, arui, arvi, gzui, gzvi, ge3rui, ge3rvi    ) ! of t, s, rd at the last ocean level 
    133138#endif 
    134139         !    
     
    162167      ! 
    163168      DO jk = 1, jpkm1 
    164 #if defined key_vectopt_loop 
    165          DO jj = 1, 1         !Vector opt. => forced unrolling 
    166             DO ji = 1, jpij 
    167 #else  
    168169         DO jj = 1, jpj 
    169170            DO ji = 1, jpi 
    170 #endif                   
    171171               un_b(ji,jj) = un_b(ji,jj) + fse3u_n(ji,jj,jk) * un(ji,jj,jk) * umask(ji,jj,jk) 
    172172               vn_b(ji,jj) = vn_b(ji,jj) + fse3v_n(ji,jj,jk) * vn(ji,jj,jk) * vmask(ji,jj,jk) 
     
    185185      ! 
    186186      ! 
    187       IF( nn_timing == 1 )  CALL timing_stop('istate_init') 
     187      IF( nn_timing == 1 )   CALL timing_stop('istate_init') 
    188188      ! 
    189189   END SUBROUTINE istate_init 
     190 
    190191 
    191192   SUBROUTINE istate_t_s 
     
    219220   END SUBROUTINE istate_t_s 
    220221 
     222 
    221223   SUBROUTINE istate_eel 
    222224      !!---------------------------------------------------------------------- 
     
    233235      USE divcur     ! hor. divergence & rel. vorticity      (div_cur routine) 
    234236      USE iom 
    235   
     237      ! 
    236238      INTEGER  ::   inum              ! temporary logical unit 
    237239      INTEGER  ::   ji, jj, jk        ! dummy loop indices 
     
    244246      REAL(wp), DIMENSION(jpiglo,jpjglo) ::   zssh  ! initial ssh over the global domain 
    245247      !!---------------------------------------------------------------------- 
    246  
     248      ! 
    247249      SELECT CASE ( jp_cfg )  
    248250         !                                              ! ==================== 
     
    375377      INTEGER, PARAMETER ::   ntsinit = 0   ! (0/1) (analytical/input data files) T&S initialization 
    376378      !!---------------------------------------------------------------------- 
    377  
     379      ! 
    378380      SELECT CASE ( ntsinit) 
    379  
     381      ! 
    380382      CASE ( 0 )                  ! analytical T/S profil deduced from LEVITUS 
    381383         IF(lwp) WRITE(numout,*) 
    382384         IF(lwp) WRITE(numout,*) 'istate_gyre : initial analytical T and S profil deduced from LEVITUS ' 
    383385         IF(lwp) WRITE(numout,*) '~~~~~~~~~~~' 
    384  
     386         ! 
    385387         DO jk = 1, jpk 
    386388            DO jj = 1, jpj 
     
    407409            END DO 
    408410         END DO 
    409  
     411         ! 
    410412      CASE ( 1 )                  ! T/S data fields read in dta_tem.nc/data_sal.nc files 
    411413         IF(lwp) WRITE(numout,*) 
     
    431433         tsn(:,:,:,jp_sal) = tsn(:,:,:,jp_sal) * tmask(:,:,:)  
    432434         tsb(:,:,:,jp_sal) = tsn(:,:,:,jp_sal) 
    433  
     435         ! 
    434436      END SELECT 
    435  
     437      ! 
    436438      IF(lwp) THEN 
    437439         WRITE(numout,*) 
     
    440442         WRITE(numout, "(10x, i4, 3f10.2)" ) ( jk, gdept_1d(jk), tsn(2,2,jk,jp_tem), tsn(2,2,jk,jp_sal), jk = 1, jpk ) 
    441443      ENDIF 
    442  
     444      ! 
    443445   END SUBROUTINE istate_gyre 
     446 
    444447 
    445448   SUBROUTINE istate_uvg 
     
    457460      USE divcur          ! hor. divergence & rel. vorticity      (div_cur routine) 
    458461      USE lbclnk          ! ocean lateral boundary condition (or mpp link) 
    459  
     462      ! 
    460463      INTEGER ::   ji, jj, jk        ! dummy loop indices 
    461464      INTEGER ::   indic             ! ??? 
     
    567570   !!===================================================================== 
    568571END MODULE istate 
    569  
Note: See TracChangeset for help on using the changeset viewer.