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 460 – NEMO

Changeset 460


Ignore:
Timestamp:
2006-05-10T19:10:25+02:00 (18 years ago)
Author:
opalod
Message:

nemo_v1_update_051:RB: update diagnostics routines following the new coordinate definition (gdept -> gdept_0)

Location:
trunk/NEMO/OPA_SRC/DIA
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/DIA/diadimg.F90

    r247 r460  
    8484 
    8585    CASE ( 'T') 
    86        z4dep(:)=fsdept(1,1,:) 
     86       z4dep(:)=gdept_0(:) 
    8787 
    8888    CASE ( 'W' ) 
    89        z4dep(:)=fsdepw(1,1,:) 
     89       z4dep(:)=gdepw_0(:) 
    9090 
    9191    CASE ( '2' ) 
  • trunk/NEMO/OPA_SRC/DIA/diagap.F90

    r352 r460  
    3131   !! * Module variables 
    3232   INTEGER ::                 & 
    33 !???  numgap,                 &  ! logical unit for differences diagnostic 
    3433      ngap  ,                 &  ! time step frequency 
    3534      nprg                       ! switch for control print 
     
    171170         ! Vertical grids : gdept, gdepw 
    172171         CALL histvert( numgap, "deptht", "Vertical T levels",   & 
    173                          "m", jpk, gdept, ndepidg ) 
     172                         "m", jpk, gdept_0, ndepidg ) 
    174173 
    175174         ! define fields to be stored 
  • trunk/NEMO/OPA_SRC/DIA/diahdy.F90

    r247 r460  
    107107         IF(lwp) WRITE(numout,*) 'dia_hdy : computation of dynamical heigh' 
    108108         IF(lwp) WRITE(numout,*) '~~~~~~~' 
    109 # if defined key_s_coord || defined key_partial_steps 
    110          ! Dynamic height diagnostics  not yet implemented 
    111          IF(lwp) WRITE(numout,cform_err) 
    112          IF(lwp) WRITE(numout,*) '          key_s_coord or key_partial_steps used' 
    113          IF(lwp) WRITE(numout,*) '          Dynamical height diagnostics not yet implemented' 
    114          nstop = nstop + 1 
    115 # endif 
    116  
    117          DO jk = 1, jpk 
    118             IF( fsdepw(1,1,jk) > zgdsup ) GOTO 110 
     109         IF( .NOT. ln_zco ) THEN      ! Dynamic height diagnostics only implemented in z-coordinate 
     110            IF(lwp) WRITE(numout,cform_err) 
     111            IF(lwp) WRITE(numout,*) '          ln_zps or ln_sco, Dynamical height diagnostics not yet implemented' 
     112            nstop = nstop + 1 
     113         ENDIF 
     114         DO jk = 1, jpk 
     115            IF( gdepw_0(jk) > zgdsup ) GOTO 110 
    119116         END DO 
    120117         IF(lwp) WRITE(numout,*)'problem zgdsup greater than gdepw(jpk)' 
     
    126123         ! Interpolation coefficients for zgdsup-gdepw(ihdsup) layer 
    127124 
    128          za = fsdepw(1,1,ihdsup  ) 
    129          zb = fsdepw(1,1,ihdsup+1) 
     125         za = gdepw_0(ihdsup  ) 
     126         zb = gdepw_0(ihdsup+1) 
    130127         IF( za > zgdsup .OR. zb < zgdsup ) THEN 
    131128            IF(lwp) WRITE(numout,*) za, zb, ihdsup, zgdsup 
     
    140137         DO jk = 1, jpk 
    141138            zp = 0.e0 
    142             zh = fsdept(1,1,jk) 
     139            zh = gdept_0(jk) 
    143140            zt = 0.e0 
    144141            zs = 35. 
     
    181178            zs = 35. 
    182179            zsr= zwky(jk) 
    183             zh = fsdept(1,1,jk) 
     180            zh = gdept_0(jk) 
    184181 
    185182            ze = ( 9.1697e-11*zt+2.0816e-9 ) *zt-9.9348e-8 
     
    231228      DO jj = 1, jpj 
    232229         DO ji = 1, jpi 
    233             zhd = zfacto * zciint * fse3t(ji,jj,ik) * zsva(ji,jj,ik) 
     230            zhd = zfacto * zciint * e3t_0(ik) * zsva(ji,jj,ik) 
    234231            hdy(ji,jj,ik) = zhd * tmask(ji,jj,ik) * tmask(ji,jj,ik-1) 
    235232         END DO 
     
    241238         DO jj = 1, jpj 
    242239            DO ji = 1, jpi 
    243                zhd = hdy(ji,jj,jk+1) + zfacto * fse3t(ji,jj,jk) * zsva(ji,jj,jk) 
     240               zhd = hdy(ji,jj,jk+1) + zfacto * e3t_0(jk) * zsva(ji,jj,jk) 
    244241               hdy(ji,jj,jk) = zhd * tmask(ji,jj,jk) * tmask(ji,jj,jk-1) 
    245242            END DO 
     
    252249      DO jj = 1, jpj 
    253250         DO ji = 1, jpi 
    254             zhd = hdy(ji,jj,ik+1) + zfacto * fse3t(ji,jj,ik) * zsva(ji,jj,ik) 
     251            zhd = hdy(ji,jj,ik+1) + zfacto * e3t_0(ik) * zsva(ji,jj,ik) 
    255252            hdy(ji,jj,ik) = zhd * tmask(ji,jj,ik) 
    256253         END DO 
  • trunk/NEMO/OPA_SRC/DIA/diaptr.F90

    r406 r460  
    1414   !!                : flux array; Generic interface: ptr_vj_3d, ptr_vj_2d 
    1515   !!---------------------------------------------------------------------- 
     16   !! History : 
     17   !!   9.0  !  03-09  (C. Talandir, G. Madec)  Original code 
     18   !!   9.0  !  06-01  (A. Biastoch)  Allow sub-basins computation 
     19   !!---------------------------------------------------------------------- 
    1620   !! * Modules used 
    1721   USE oce           ! ocean dynamics and active tracers 
     
    2226   USE dianam 
    2327   USE phycst 
     28   USE ioipsl          ! NetCDF IPSL library 
     29   USE daymod 
    2430 
    2531   IMPLICIT NONE 
     
    8995      !! ** Action  : - p_fval: i-k-mean poleward flux of pva 
    9096      !! 
    91       !! History : 
    92       !!   9.0  !  03-09  (G. Madec)  Original code 
    9397      !!---------------------------------------------------------------------- 
    9498      !! * arguments 
     
    98102      !! * local declarations 
    99103      INTEGER  ::   ji, jj, jk        ! dummy loop arguments 
    100 #if ! defined key_agrif 
    101       INTEGER  ::   ijpj = jpj        ! ??? 
    102 #else 
    103104      INTEGER  ::   ijpj             ! ??? 
    104 #endif       
    105105      REAL(wp),DIMENSION(jpj) ::   & 
    106106         p_fval                       ! function value 
    107107      !!-------------------------------------------------------------------- 
    108 #if defined key_agrif 
     108 
    109109      ijpj = jpj 
    110 #endif       
    111  
    112110      p_fval(:) = 0.e0 
    113111      DO jk = 1, jpkm1 
     
    137135      !! ** Action  : - p_fval: i-k-mean poleward flux of pva 
    138136      !! 
    139       !! History : 
    140       !!   9.0  !  03-09  (G. Madec)  Original code 
    141137      !!---------------------------------------------------------------------- 
    142138      !! * arguments 
     
    146142      !! * local declarations 
    147143      INTEGER  ::   ji,jj             ! dummy loop arguments 
    148 #if ! defined key_agrif 
    149       INTEGER  ::   ijpj = jpj        ! ??? 
    150 #else 
    151144      INTEGER  ::   ijpj             ! ??? 
    152 #endif       
    153145      REAL(wp),DIMENSION(jpj) ::   & 
    154146         p_fval                       ! function value 
    155147      !!-------------------------------------------------------------------- 
    156 #if defined key_agrif 
     148       
    157149      ijpj = jpj 
    158 #endif       
    159   
    160150      p_fval(:) = 0.e0 
    161151      DO jj = 2, jpjm1 
     
    182172      !! ** Action  : - p_fval: i-k-mean poleward flux of pva 
    183173      !! 
    184       !! History : 
    185       !!   9.0  !  03-09  (G. Madec)  Original code 
    186174      !!---------------------------------------------------------------------- 
    187175      !! * arguments 
     
    204192         DO jj = 2, jpjm1 
    205193           DO ji = fs_2, fs_jpim1 
    206             p_fval(jj,jk) = p_fval(jj,jk) + pva(ji,jj,jk) * e1v(ji,jj) * fse3v(ji,jj,jk) & 
    207                &            * tmask_i(ji,jj+1) * tmask_i(ji,jj) 
     194            p_fval(jj,jk) = p_fval(jj,jk) + pva(ji,jj,jk) * e1v(ji,jj) * fse3v(ji,jj,jk)   & 
     195               &                                          * tmask_i(ji,jj+1) * tmask_i(ji,jj) 
    208196           END DO 
    209197         END DO 
    210198      END DO 
    211199 
    212       IF(lk_mpp)   THEN 
    213          ish(1) = jpj*jpk ; ish2(1)=jpj ; ish2(2)=jpk 
    214          zwork(:)= RESHAPE(p_fval, ish ) 
    215          CALL mpp_sum(zwork, jpj*jpk ) 
    216          p_fval(:,:)= RESHAPE(zwork,ish2) 
     200      IF(lk_mpp) THEN 
     201         ish(1) = jpj*jpk  ;  ish2(1) = jpj  ;  ish2(2) = jpk 
     202         zwork(:)= RESHAPE( p_fval, ish ) 
     203         CALL mpp_sum( zwork, jpj*jpk ) 
     204         p_fval(:,:)= RESHAPE( zwork, ish2 ) 
    217205      END IF 
    218206 
     
    231219      !! ** Action  : - p_fval: i-k-mean poleward flux of pva 
    232220      !! 
    233       !! History : 
    234       !!   9.0  !  03-09  (G. Madec)  Original code 
    235       !!   9.0  !  06-01  (A. Biastoch)  Allow sub-basins computation 
    236221      !!---------------------------------------------------------------------- 
    237222      !! * arguments 
     
    260245      END DO 
    261246      p_fval(:,:) = p_fval(:,:) * 0.5 
    262       IF(lk_mpp)   THEN 
    263          ish(1) = jpj*jpk ; ish2(1)=jpj ; ish2(2)=jpk 
    264          zwork(:)= RESHAPE(p_fval, ish ) 
    265          CALL mpp_sum(zwork, jpj*jpk ) 
     247      IF(lk_mpp) THEN 
     248         ish(1) = jpj*jpk   ;   ish2(1) = jpj   ;   ish2(2) = jpk 
     249         zwork(:)= RESHAPE( p_fval, ish ) 
     250         CALL mpp_sum( zwork, jpj*jpk ) 
    266251         p_fval(:,:)= RESHAPE(zwork,ish2) 
    267252      END IF 
     
    491476      !! ** Purpose :   Initialization, namelist read 
    492477      !! 
    493       !! ** Method  :    
    494       !! 
    495       !! ** input   :   Namlist namptr 
    496       !! 
    497       !! ** Action  :   
    498       !! 
    499       !! history : 
    500       !!   9.0  !  03-08  (Autor Names)  Original code 
    501       !!---------------------------------------------------------------------- 
    502       !! * local declarations 
     478      !!---------------------------------------------------------------------- 
    503479      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   z_1         ! temporary workspace 
    504480 
     
    529505   END SUBROUTINE dia_ptr_init 
    530506 
    531    !!--------------------------------------------------------------------- 
    532    !!   Default option :                                       NetCDF file 
    533    !!--------------------------------------------------------------------- 
    534507 
    535508   SUBROUTINE dia_ptr_wri( kt ) 
     
    541514      !! ** Method  :   NetCDF file 
    542515      !! 
    543       !! History : 
    544       !!   9.0  !  03-09  (G. Madec)  Original code 
    545       !!---------------------------------------------------------------------- 
    546       USE ioipsl          ! NetCDF IPSL library 
    547       USE daymod 
    548  
     516      !!---------------------------------------------------------------------- 
    549517      !! * Arguments 
    550518      INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
     
    635603         CALL histbeg(clhstnam, 1, zfoo, jpj, zphi,   & 
    636604            1, 1, 1, jpj, 0, zjulian, zdt, nhoridz, numptr, domain_id=nidom ) 
    637          ! Vertical grids : gdept, gdepw 
     605         ! Vertical grids : gdept_0, gdepw_0 
    638606         CALL histvert( numptr, "deptht", "Vertical T levels",   & 
    639             "m", jpk, gdept, ndepidzt ) 
     607            "m", jpk, gdept_0, ndepidzt ) 
    640608         CALL histvert( numptr, "depthw", "Vertical W levels",   & 
    641             "m", jpk, gdepw, ndepidzw ) 
     609            "m", jpk, gdepw_0, ndepidzw ) 
    642610          
    643611         !  Zonal mean T and S 
  • trunk/NEMO/OPA_SRC/DIA/diawri.F90

    r389 r460  
    2929   USE flx_oce         ! sea-ice/ocean forcings variables 
    3030   USE diadimg         ! dimg direct access file format output 
     31   USE ioipsl 
    3132 
    3233   IMPLICIT NONE 
     
    100101      !!   9.0  !  05-11  (V. Garnier) Surface pressure gradient organization 
    101102      !!---------------------------------------------------------------------- 
    102       !! * Modules used 
    103       USE ioipsl 
    104  
    105103      !! * Arguments 
    106104      INTEGER, INTENT( in ) ::   kt      ! ocean time-step index 
     
    186184            &          0, zjulian, zdt, nh_T, nid_T, domain_id=nidom ) 
    187185         CALL histvert( nid_T, "deptht", "Vertical T levels",      &  ! Vertical grid: gdept 
    188             &           "m", ipk, gdept, nz_T ) 
     186            &           "m", ipk, gdept_0, nz_T ) 
    189187         !                                                            ! Index of ocean points 
    190188         CALL wheneq( jpi*jpj*ipk, tmask, 1, 1., ndex_T , ndim_T  )      ! volume 
     
    199197            &          0, zjulian, zdt, nh_U, nid_U, domain_id=nidom ) 
    200198         CALL histvert( nid_U, "depthu", "Vertical U levels",      &  ! Vertical grid: gdept 
    201             &           "m", ipk, gdept, nz_U ) 
     199            &           "m", ipk, gdept_0, nz_U ) 
    202200         !                                                            ! Index of ocean points 
    203201         CALL wheneq( jpi*jpj*ipk, umask, 1, 1., ndex_U , ndim_U  )      ! volume 
     
    212210            &          0, zjulian, zdt, nh_V, nid_V, domain_id=nidom ) 
    213211         CALL histvert( nid_V, "depthv", "Vertical V levels",      &  ! Vertical grid : gdept 
    214             &          "m", ipk, gdept, nz_V ) 
     212            &          "m", ipk, gdept_0, nz_V ) 
    215213         !                                                            ! Index of ocean points 
    216214         CALL wheneq( jpi*jpj*ipk, vmask, 1, 1., ndex_V , ndim_V  )      ! volume 
     
    225223            &          0, zjulian, zdt, nh_W, nid_W, domain_id=nidom ) 
    226224         CALL histvert( nid_W, "depthw", "Vertical W levels",      &  ! Vertical grid: gdepw 
    227             &          "m", ipk, gdepw, nz_W ) 
     225            &          "m", ipk, gdepw_0, nz_W ) 
    228226  
    229227 
     
    539537      !!    "   !  05-11  (V. Garnier) Surface pressure gradient organization 
    540538      !!---------------------------------------------------------------------- 
    541       !! * Modules used 
    542       USE ioipsl 
    543  
    544539      !! * Arguments 
    545540      CHARACTER (len=* ), INTENT( in ) ::   & 
     
    580575          1, jpi, 1, jpj, 0, zjulian, zdt, nh_i, id_i, domain_id=nidom )          ! Horizontal grid : glamt and gphit 
    581576      CALL histvert( id_i, "deptht", "Vertical T levels",   &    ! Vertical grid : gdept 
    582           "m", jpk, gdept, nz_i) 
     577          "m", jpk, gdept_0, nz_i) 
    583578 
    584579      ! Declare all the output fields as NetCDF variables 
Note: See TracChangeset for help on using the changeset viewer.