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 4666 for branches/2014/dev_r4650_UKMO2_ice_shelves/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_cen2.F90 – NEMO

Ignore:
Timestamp:
2014-06-11T14:52:23+02:00 (10 years ago)
Author:
mathiot
Message:

#1331 : add ISOMIP config files + ice shelf code

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2014/dev_r4650_UKMO2_ice_shelves/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_cen2.F90

    r4499 r4666  
    3333   USE wrk_nemo        ! Memory Allocation 
    3434   USE timing          ! Timing 
     35   USE phycst 
    3536 
    3637   IMPLICIT NONE 
     
    121122      REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(inout) ::   pta             ! tracer trend  
    122123      ! 
    123       INTEGER  ::   ji, jj, jk, jn   ! dummy loop indices 
    124       INTEGER  ::   ierr             ! local integer 
     124      INTEGER  ::   ji, jj, jk, jn, ik   ! dummy loop indices 
     125      INTEGER  ::   ierr                 ! local integer 
    125126      REAL(wp) ::   zbtr, ztra                            ! local scalars 
    126127      REAL(wp) ::   zfp_ui, zfp_vj, zfp_w, zcofi          !   -      - 
     
    128129      REAL(wp) ::   zupsut, zcenut, zupst                 !   -      - 
    129130      REAL(wp) ::   zupsvt, zcenvt, zcent, zice           !   -      - 
    130       REAL(wp), POINTER, DIMENSION(:,:  ) :: ztfreez  
     131      REAL(wp), POINTER, DIMENSION(:,:  ) :: ztfreez, zpress  
    131132      REAL(wp), POINTER, DIMENSION(:,:,:) :: zwz, zind 
    132133      !!---------------------------------------------------------------------- 
     
    134135      IF( nn_timing == 1 )  CALL timing_start('tra_adv_cen2') 
    135136      ! 
    136       CALL wrk_alloc( jpi, jpj, ztfreez ) 
     137      CALL wrk_alloc( jpi, jpj, ztfreez, zpress ) 
    137138      CALL wrk_alloc( jpi, jpj, jpk, zwz, zind ) 
    138139      ! 
     
    169170!!gm  not strickly exact : the freezing point should be computed at each ocean levels... 
    170171!!gm  not a big deal since cen2 is no more used in global ice-ocean simulations 
    171       ztfreez(:,:) = tfreez( tsn(:,:,1,jp_sal) ) 
     172!!ch  changes for ice shelf to retain standard behaviour elsewhere, even if not optimal  
     173      DO jj = 1, jpj  
     174         DO ji = 1, jpi  
     175            ik=mikt(ji,jj)  
     176            IF (ik > 1 ) THEN  
     177               zpress(ji,jj) = grav*rau0*fsdept(ji,jj,ik)*1.e-04   
     178            ELSE  
     179               zpress(ji,jj) = 0.0  
     180            ENDIF   
     181         END DO  
     182      END DO  
     183      ztfreez(:,:) = tfreez( tsn(:,:,1, jp_sal), zpress(:,:) ) 
     184       
    172185      DO jk = 1, jpk 
    173186         DO jj = 1, jpj 
     
    224237         !                                                     ! Surface value :  
    225238         IF( lk_vvl ) THEN   ;   zwz(:,:, 1 ) = 0.e0                         ! volume variable 
    226          ELSE                ;   zwz(:,:, 1 ) = pwn(:,:,1) * ptn(:,:,1,jn)   ! linear free surface  
     239         ELSE 
     240            DO jj = 1, jpj   ! vector opt. 
     241               DO ji = 1, jpi   ! vector opt. 
     242                  ik=mikt(ji,jj)                 
     243                  zwz(ji,jj,ik ) = pwn(ji,jj,ik) * ptn(ji,jj,ik,jn)   ! linear free surface  
     244                  zwz(ji,jj,1:ik-1) = 0.e0 
     245               END DO 
     246            END DO 
    227247         ENDIF 
    228248         ! 
     
    281301      ENDIF 
    282302      ! 
    283       CALL wrk_dealloc( jpi, jpj, ztfreez ) 
     303      CALL wrk_dealloc( jpi, jpj, ztfreez, zpress ) 
    284304      CALL wrk_dealloc( jpi, jpj, jpk, zwz, zind ) 
    285305      ! 
Note: See TracChangeset for help on using the changeset viewer.