Changeset 14982


Ignore:
Timestamp:
2021-06-11T16:52:03+02:00 (6 months ago)
Author:
hadcv
Message:

#2665: Various fixes for code enabled with key_qco/key_linssh

Location:
NEMO/trunk/src/OCE
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/OCE/OBS/diaobs.F90

    r14834 r14982  
    9999   CHARACTER(len=8), PUBLIC, DIMENSION(:), ALLOCATABLE ::   cobstypesprof, cobstypessurf   !: Profile & surface obs types 
    100100 
     101#  include "domzgr_substitute.h90" 
    101102   !!---------------------------------------------------------------------- 
    102103   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
     
    623624      INTEGER :: jtype             ! Data loop variable 
    624625      INTEGER :: jvar              ! Variable number 
    625       INTEGER :: ji, jj            ! Loop counters 
     626      INTEGER :: ji, jj, jk        ! Loop counters 
    626627      REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE :: & 
    627628         & zprofvar                ! Model values for variables in a prof ob 
     
    634635         & zglam,    &             ! Model longitudes for prof variables 
    635636         & zgphi                   ! Model latitudes for prof variables 
     637      REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: zdept, zdepw 
    636638 
    637639      !----------------------------------------------------------------------- 
     
    650652 
    651653      IF ( nproftypes > 0 ) THEN 
     654 
     655         ALLOCATE( zdept(jpi,jpj,jpk), zdepw(jpi,jpj,jpk) ) 
     656         DO jk = 1, jpk 
     657            zdept(:,:,jk) = gdept(:,:,jk,Kmm) 
     658            zdepw(:,:,jk) = gdepw(:,:,jk,Kmm) 
     659         END DO 
    652660 
    653661         DO jtype = 1, nproftypes 
     
    687695                  &               nit000, idaystp, jvar,                   & 
    688696                  &               zprofvar(:,:,:,jvar),                    & 
    689                   &               gdept(:,:,:,Kmm), gdepw(:,:,:,Kmm),      & 
     697                  &               zdept(:,:,:), zdepw(:,:,:),      & 
    690698                  &               zprofmask(:,:,:,jvar),                   & 
    691699                  &               zglam(:,:,jvar), zgphi(:,:,jvar),        & 
     
    697705 
    698706         END DO 
     707 
     708         DEALLOCATE( zdept, zdepw ) 
    699709 
    700710      ENDIF 
  • NEMO/trunk/src/OCE/OBS/obs_prep.F90

    r14275 r14982  
    3333   PUBLIC   calc_month_len   ! Calculate the number of days in the months of a year 
    3434 
     35#  include "domzgr_substitute.h90" 
    3536   !!---------------------------------------------------------------------- 
    3637   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
     
    10741075         & gdepw_1d,      & 
    10751076         & gdepw_0,       &                        
    1076          & gdepw,         & 
     1077         & gdepw, r3t,    & 
    10771078         & gdept,         & 
    10781079         & ln_zco,        & 
     
    11281129         & zglam, &           ! Model longitude at grid points 
    11291130         & zgphi              ! Model latitude at grid points 
     1131      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zdepw 
    11301132      INTEGER, DIMENSION(2,2,kprofno) :: & 
    11311133         & igrdi, &           ! Grid i,j 
     
    11861188      CALL obs_int_comm_2d( 2, 2, kprofno, kpi, kpj, igrdi, igrdj, plam, zglam ) 
    11871189      CALL obs_int_comm_2d( 2, 2, kprofno, kpi, kpj, igrdi, igrdj, pphi, zgphi ) 
    1188       CALL obs_int_comm_3d( 2, 2, kprofno, kpi, kpj, kpk, igrdi, igrdj, gdepw(:,:,:,Kmm), & 
    1189         &                     zgdepw ) 
     1190      DO jk = 1, jpk 
     1191         zdepw(:,:,jk) = gdepw(:,:,jk,Kmm) 
     1192      END DO 
     1193      CALL obs_int_comm_3d( 2, 2, kprofno, kpi, kpj, kpk, igrdi, igrdj, zdepw(:,:,:), zgdepw ) 
    11901194 
    11911195      DO jobs = 1, kprofno 
  • NEMO/trunk/src/OCE/TRA/tradmp.F90

    r14718 r14982  
    5353   !! * Substitutions 
    5454#  include "do_loop_substitute.h90" 
     55#  include "domzgr_substitute.h90" 
    5556   !!---------------------------------------------------------------------- 
    5657   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
     
    9697      INTEGER ::   ji, jj, jk, jn   ! dummy loop indices 
    9798      REAL(wp), DIMENSION(A2D(nn_hls),jpk,jpts)     ::  zts_dta 
     99      REAL(wp), DIMENSION(:,:,:)  , ALLOCATABLE ::  zwrk 
    98100      REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE ::  ztrdts 
    99101      !!---------------------------------------------------------------------- 
     
    102104      ! 
    103105      IF( l_trdtra .OR. iom_use('hflx_dmp_cea') .OR. iom_use('sflx_dmp_cea') ) THEN   !* Save ta and sa trends 
    104          ALLOCATE( ztrdts(jpi,jpj,jpk,jpts) ) 
    105          ztrdts(:,:,:,:) = pts(:,:,:,:,Krhs) 
     106         ALLOCATE( ztrdts(A2D(nn_hls),jpk,jpts) ) 
     107         DO jn = 1, jpts 
     108            DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpk ) 
     109               ztrdts(ji,jj,jk,jn) = pts(ji,jj,jk,jn,Krhs) 
     110            END_3D 
     111         END DO 
    106112      ENDIF 
    107113      !                           !==  input T-S data at kt  ==! 
     
    141147      ! 
    142148      ! outputs (clem trunk) 
    143       IF( iom_use('hflx_dmp_cea') )       & 
    144          &   CALL iom_put('hflx_dmp_cea', & 
    145          &   SUM( ( pts(:,:,:,jp_tem,Krhs) - ztrdts(:,:,:,jp_tem) ) * e3t(:,:,:,Kmm), dim=3 ) * rcp * rho0 ) ! W/m2 
    146       IF( iom_use('sflx_dmp_cea') )       & 
    147          &   CALL iom_put('sflx_dmp_cea', & 
    148          &   SUM( ( pts(:,:,:,jp_sal,Krhs) - ztrdts(:,:,:,jp_sal) ) * e3t(:,:,:,Kmm), dim=3 ) * rho0 )       ! g/m2/s 
     149      IF( iom_use('hflx_dmp_cea') .OR. iom_use('sflx_dmp_cea') ) THEN 
     150         ALLOCATE( zwrk(A2D(nn_hls),jpk) )          ! Needed to handle expressions containing e3t when using key_qco or key_linssh 
     151         zwrk(:,:,:) = 0._wp 
     152 
     153         IF( iom_use('hflx_dmp_cea') ) THEN 
     154            DO_3D( 0, 0, 0, 0, 1, jpk ) 
     155               zwrk(ji,jj,jk) = ( pts(ji,jj,jk,jp_tem,Krhs) - ztrdts(ji,jj,jk,jp_tem) ) * e3t(ji,jj,jk,Kmm) 
     156            END_3D 
     157            CALL iom_put('hflx_dmp_cea', SUM( zwrk(:,:,:), dim=3 ) * rcp * rho0 ) ! W/m2 
     158         ENDIF 
     159         IF( iom_use('sflx_dmp_cea') ) THEN 
     160            DO_3D( 0, 0, 0, 0, 1, jpk ) 
     161               zwrk(ji,jj,jk) = ( pts(ji,jj,jk,jp_sal,Krhs) - ztrdts(ji,jj,jk,jp_sal) ) * e3t(ji,jj,jk,Kmm) 
     162            END_3D 
     163            CALL iom_put('sflx_dmp_cea', SUM( zwrk(:,:,:), dim=3 ) * rho0 )       ! g/m2/s 
     164         ENDIF 
     165 
     166         DEALLOCATE( zwrk ) 
     167      ENDIF 
    149168      ! 
    150169      IF( l_trdtra )   THEN       ! trend diagnostic 
  • NEMO/trunk/src/OCE/ZDF/zdfric.F90

    r14834 r14982  
    5151   !! * Substitutions 
    5252#  include "do_loop_substitute.h90" 
     53#  include "domzgr_substitute.h90" 
    5354   !!---------------------------------------------------------------------- 
    5455   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
Note: See TracChangeset for help on using the changeset viewer.