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 15015 for NEMO/branches/2021/ticket2680_C1D_PAPA/tests/ISOMIP+/MY_SRC/dtatsd.F90 – NEMO

Ignore:
Timestamp:
2021-06-17T19:17:25+02:00 (3 years ago)
Author:
gsamson
Message:

merge trunk into branch (#2680)

Location:
NEMO/branches/2021/ticket2680_C1D_PAPA
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2021/ticket2680_C1D_PAPA

    • Property svn:externals
      •  

        old new  
        99 
        1010# SETTE 
        11 ^/utils/CI/sette@14244        sette 
         11^/utils/CI/sette@HEAD        sette 
         12 
  • NEMO/branches/2021/ticket2680_C1D_PAPA/tests/ISOMIP+/MY_SRC/dtatsd.F90

    r14857 r15015  
    66   !! History :  OPA  ! 1991-03  ()  Original code 
    77   !!             -   ! 1992-07  (M. Imbard) 
    8    !!            8.0  ! 1999-10  (M.A. Foujols, M. Imbard)  NetCDF FORMAT  
    9    !!   NEMO     1.0  ! 2002-06  (G. Madec)  F90: Free form and module  
     8   !!            8.0  ! 1999-10  (M.A. Foujols, M. Imbard)  NetCDF FORMAT 
     9   !!   NEMO     1.0  ! 2002-06  (G. Madec)  F90: Free form and module 
    1010   !!            3.3  ! 2010-10  (C. Bricaud, S. Masson)  use of fldread 
    1111   !!            3.4  ! 2010-11  (G. Madec, C. Ethe) Merge of dtatem and dtasal + remove CPP keys 
     
    4949      !!---------------------------------------------------------------------- 
    5050      !!                   ***  ROUTINE dta_tsd_init  *** 
    51       !!                     
    52       !! ** Purpose :   initialisation of T & S input data  
    53       !!  
     51      !! 
     52      !! ** Purpose :   initialisation of T & S input data 
     53      !! 
    5454      !! ** Method  : - Read namtsd namelist 
    55       !!              - allocates T & S data structure  
     55      !!              - allocates T & S data structure 
    5656      !!---------------------------------------------------------------------- 
    5757      LOGICAL, INTENT(in), OPTIONAL ::   ld_tradmp   ! force the initialization when tradp is used 
     
    7777 
    7878      IF( PRESENT( ld_tradmp ) )   ln_tsd_dmp = .TRUE.     ! forces the initialization when tradmp is used 
    79        
     79 
    8080      IF(lwp) THEN                  ! control print 
    8181         WRITE(numout,*) 
     
    114114            CALL ctl_stop( 'dta_tsd : unable to allocate T & S data arrays' )   ;   RETURN 
    115115         ENDIF 
    116          ! 
    117116         !                         ! fill sf_tsd with sn_tem & sn_sal and control print 
    118117         slf_i(jp_tem) = sn_tem   ;   slf_i(jp_sal) = sn_sal 
     
    150149      !!---------------------------------------------------------------------- 
    151150      !!                   ***  ROUTINE dta_tsd  *** 
    152       !!                     
     151      !! 
    153152      !! ** Purpose :   provides T and S data at kt 
    154       !!  
     153      !! 
    155154      !! ** Method  : - call fldread routine 
    156       !!              - ORCA_R2: add some hand made alteration to read data   
     155      !!              - ORCA_R2: add some hand made alteration to read data 
    157156      !!              - 'key_orca_lev10' interpolates on 10 times more levels 
    158157      !!              - s- or mixed z-s coordinate: vertical interpolation on model mesh 
     
    162161      !! ** Action  :   ptsd   T-S data on medl mesh and interpolated at time-step kt 
    163162      !!---------------------------------------------------------------------- 
    164       INTEGER                              , INTENT(in   ) ::   kt     ! ocean time-step 
    165       CHARACTER(LEN=3)                     , INTENT(in   ) ::   cddta  ! dmp or ini 
     163      INTEGER                          , INTENT(in   ) ::   kt     ! ocean time-step 
     164      CHARACTER(LEN=3)                 , INTENT(in   ) ::   cddta  ! dmp or ini 
    166165      REAL(wp), DIMENSION(A2D(nn_hls),jpk,jpts), INTENT(  out) ::   ptsd   ! T & S data 
    167166      ! 
     
    224223                     IF( (zl-gdept_1d(jkk)) * (zl-gdept_1d(jkk+1)) <= 0._wp ) THEN 
    225224                        zi = ( zl - gdept_1d(jkk) ) / (gdept_1d(jkk+1)-gdept_1d(jkk)) 
    226                         ztp(jk) = ptsd(ji,jj,jkk,jp_tem) + ( ptsd(ji,jj,jkk+1,jp_tem) - ptsd(ji,jj,jkk,jp_tem) ) * zi  
     225                        ztp(jk) = ptsd(ji,jj,jkk,jp_tem) + ( ptsd(ji,jj,jkk+1,jp_tem) - ptsd(ji,jj,jkk,jp_tem) ) * zi 
    227226                        zsp(jk) = ptsd(ji,jj,jkk,jp_sal) + ( ptsd(ji,jj,jkk+1,jp_sal) - ptsd(ji,jj,jkk,jp_sal) ) * zi 
    228227                     ENDIF 
     
    237236            ptsd(ji,jj,jpk,jp_sal) = 0._wp 
    238237         END_2D 
    239          !  
     238         ! 
    240239      ELSE                                !==   z- or zps- coordinate   ==! 
    241          !                              
     240         ! 
    242241         DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpk ) 
    243242            ptsd(ji,jj,jk,jp_tem) = ptsd(ji,jj,jk,jp_tem) * tmask(ji,jj,jk)    ! Mask 
     
    247246         IF( ln_zps ) THEN                      ! zps-coordinate (partial steps) interpolation at the last ocean level 
    248247            DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 
    249                ik = mbkt(ji,jj)  
     248               ik = mbkt(ji,jj) 
    250249               IF( ik > 1 ) THEN 
    251250                  zl = ( gdept_1d(ik) - gdept_0(ji,jj,ik) ) / ( gdept_1d(ik) - gdept_1d(ik-1) ) 
     
    255254               ik = mikt(ji,jj) 
    256255               IF( ik > 1 ) THEN 
    257                   zl = ( gdept_0(ji,jj,ik) - gdept_1d(ik) ) / ( gdept_1d(ik+1) - gdept_1d(ik) )  
     256                  zl = ( gdept_0(ji,jj,ik) - gdept_1d(ik) ) / ( gdept_1d(ik+1) - gdept_1d(ik) ) 
    258257                  ptsd(ji,jj,ik,jp_tem) = (1.-zl) * ptsd(ji,jj,ik,jp_tem) + zl * ptsd(ji,jj,ik+1,jp_tem) 
    259258                  ptsd(ji,jj,ik,jp_sal) = (1.-zl) * ptsd(ji,jj,ik,jp_sal) + zl * ptsd(ji,jj,ik+1,jp_sal) 
Note: See TracChangeset for help on using the changeset viewer.