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 382 for trunk/NEMO/OFF_SRC/DOM – NEMO

Changeset 382 for trunk/NEMO/OFF_SRC/DOM


Ignore:
Timestamp:
2006-02-06T16:15:11+01:00 (18 years ago)
Author:
opalod
Message:

nemo_v1_bugfix_021:CE+RB: bug in the definition of the vertical grid (partial step)

bad read of the time step

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OFF_SRC/DOM/domrea.F90

    r354 r382  
    9191         inum4                      ! 'mesh_zgr.nc'  file 
    9292      INTEGER  ::   itime           !  output from restini ??? 
    93       REAL(wp) ::   zdate0, zdepwp, ze3tp, ze3wp 
     93      REAL(wp) ::   zdate0, zdt 
    9494      REAL(wp), DIMENSION(jpidta,jpjdta) ::   & 
    9595         zta       ! dummy array for bathymetry  
     
    112112 
    113113      llog  = .FALSE. 
     114 
    114115      CALL ymds2ju( 0, 1, 1, 0.e0, zdate0 )    ! calendar initialization 
    115116 
     
    128129            CALL restini( clnam0, jpidta   , jpjdta   , glamt, gphit,  &   ! create 'mesh_mask.nc' file 
    129130            &             jpk   , gdept , trim(clnam0)        ,  &   ! in unit inum0 
    130             &             itime , zdate0, rdt   , inum0, domain_id=nidom ) 
     131            &             itime , zdate0, zdt   , inum0, domain_id=nidom ) 
    131132            inum2 = inum0                                            ! put all the informations 
    132133            inum3 = inum0                                            ! in unit inum0 
     
    141142            CALL restini( clnam1, jpidta   , jpjdta   , glamt, gphit,  &   ! create 'mesh.nc' file  
    142143            &             jpk   , gdept , trim(clnam1)        ,  &   ! in unit inum1  
    143             &             itime , zdate0, rdt   , inum1, domain_id=nidom ) 
     144            &             itime , zdate0, zdt   , inum1, domain_id=nidom ) 
    144145            CALL restini( clnam2, jpidta   , jpjdta   , glamt, gphit,  &   ! create 'mask.nc' file  
    145146            &             jpk   , gdept , trim(clnam2)        ,  &   ! in unit inum2  
    146             &             itime , zdate0, rdt   , inum2, domain_id=nidom ) 
     147            &             itime , zdate0, zdt   , inum2, domain_id=nidom ) 
    147148            inum3 = inum1                                            ! put mesh informations  
    148149            inum4 = inum1                                            ! in unit inum1  
     
    157158            CALL restini( clnam3, jpidta   , jpjdta   , glamt, gphit,  &   ! create 'mesh_hgr.nc' file 
    158159            &             jpk   , gdept , trim(clnam3)        ,  &   ! in unit inum3 
    159             &             itime , zdate0, rdt   , inum3, domain_id=nidom ) 
     160            &             itime , zdate0, zdt   , inum3, domain_id=nidom ) 
    160161            CALL restini( clnam4, jpidta   , jpjdta   , glamt, gphit,  &   ! create 'mesh_zgr.nc' file 
    161162            &             jpk   , gdept , trim(clnam4)        ,  &   ! in unit inum4 
    162             &             itime , zdate0, rdt   , inum4, domain_id=nidom ) 
     163            &             itime , zdate0, zdt   , inum4, domain_id=nidom ) 
    163164            CALL restini( clnam2, jpidta   , jpjdta   , glamt, gphit,  &   ! create 'mask.nc' file 
    164165            &             jpk   , gdept , trim(clnam2)        ,  &   ! in unit inum2 
    165             &             itime , zdate0, rdt   , inum2, domain_id=nidom ) 
     166            &             itime , zdate0, zdt   , inum2, domain_id=nidom ) 
    166167 
    167168         END SELECT 
     
    200201           END DO 
    201202         END DO 
     203 
     204#if defined key_off_degrad 
     205         CALL restget( inum2, 'facvolt', jpidta, jpjdta, jpk, 0, llog, zt3a ) 
     206         DO jk = 1, jpk 
     207           DO jj = 1, nlcj 
     208             DO ji = 1, nlci 
     209               facvol(ji,jj,jk) = zt3a(mig(ji),mjg(jj),jk) 
     210             END DO 
     211           END DO 
     212         END DO 
     213#endif 
    202214 
    203215         !                                                         ! horizontal mesh (inum3) 
     
    391403         CALL restget( inum4, 'e3w'   , 1, 1, jpk, 0, llog, e3w   ) 
    392404 
    393          do jk=1,jpk 
    394         gdept_ps(:,:,jk) = gdept(jk) 
    395         gdepw_ps(:,:,jk) = gdepw(jk) 
    396          end do 
    397  
    398      DO jj = 1, jpj 
    399         DO ji = 1, jpi 
    400            ik = mbathy(ji,jj)  
    401            ! ocean point only  
    402            IF( ik > 0 ) THEN 
    403               ! max ocean level case 
    404               IF( ik == jpkm1 ) THEN 
    405                  zdepwp = mbathy(ji,jj) 
    406                  ze3tp  = mbathy(ji,jj) - gdepw(ik) 
    407                  ze3wp = 0.5 * e3w(ik) * ( 1. + ( ze3tp/e3t(ik) ) ) 
    408                  gdepw_ps(ji,jj,ik+1) = zdepwp 
    409                  gdept_ps(ji,jj,ik  ) = gdept(ik-1) + ze3wp 
    410                  gdept_ps(ji,jj,ik+1) = gdept_ps(ji,jj,ik) + ze3tp 
    411                  ! standard case 
    412               ELSE 
    413 !!alex 
    414                  IF( mbathy(ji,jj) <= gdepw(ik+1) ) THEN 
    415                     gdepw_ps(ji,jj,ik+1) = mbathy(ji,jj) 
    416                  ELSE 
    417                     gdepw_ps(ji,jj,ik+1) = gdepw(ik+1) 
    418                  ENDIF 
    419 !!Alex 
    420 !!Alex           gdepw_ps(ji,jj,ik+1) = mbathy(ji,jj) 
    421                  gdept_ps(ji,jj,ik  ) =  gdepw(ik) + ( gdepw_ps(ji,jj,ik+1) - gdepw(ik))   & 
    422                                       * ((gdept   (      ik  ) - gdepw(ik))   & 
    423                                       / ( gdepw   (      ik+1) - gdepw(ik))) 
    424                  gdept_ps(ji,jj,ik+1) = gdept_ps(ji,jj,ik) + e3t_ps  (ji,jj,ik) 
    425               ENDIF 
    426            ENDIF 
    427         END DO 
    428      END DO 
    429  
     405         DO jk=1,jpk 
     406            gdept_ps(:,:,jk) = gdept(jk) 
     407            gdepw_ps(:,:,jk) = gdepw(jk) 
     408         END DO 
     409 
     410         DO jj = 1, jpj 
     411            DO ji = 1, jpi 
     412               ik = mbathy(ji,jj) - 1 
     413               ! ocean point only  
     414               IF( ik > 0 ) THEN 
     415                  ! max ocean level case 
     416                  gdepw_ps(ji,jj,ik+1) = hdepw(ji,jj) 
     417                  gdept_ps(ji,jj,ik  ) = hdept(ji,jj) 
     418                  gdept_ps(ji,jj,ik+1) = gdept_ps(ji,jj,ik) + e3t_ps(ji,jj,ik) 
     419               ENDIF 
     420            END DO 
     421         END DO 
     422          
    430423 
    431424# else 
Note: See TracChangeset for help on using the changeset viewer.