Changeset 13103


Ignore:
Timestamp:
2020-06-12T13:44:47+02:00 (3 months ago)
Author:
rblod
Message:

ticket #2129 : merge trunk@13100 and correct a bug in bathy connection

Files:
1 deleted
10 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/src/OCE/DIA/diaar5.F90

    r12630 r13103  
    7777      REAL(wp), ALLOCATABLE, DIMENSION(:,:)     :: zarea_ssh , zbotpres       ! 2D workspace  
    7878      REAL(wp), ALLOCATABLE, DIMENSION(:,:)     :: zpe, z2d                   ! 2D workspace  
    79       REAL(wp), ALLOCATABLE, DIMENSION(:,:,:)   :: zrhd , zrhop, ztpot   ! 3D workspace 
     79      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:)   :: zrhd , ztpot               ! 3D workspace 
    8080      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) :: ztsn                       ! 4D workspace 
    8181 
     
    8787      IF( l_ar5 ) THEN  
    8888         ALLOCATE( zarea_ssh(jpi,jpj), zbotpres(jpi,jpj), z2d(jpi,jpj) ) 
    89          ALLOCATE( zrhd(jpi,jpj,jpk) , zrhop(jpi,jpj,jpk) ) 
     89         ALLOCATE( zrhd(jpi,jpj,jpk) ) 
    9090         ALLOCATE( ztsn(jpi,jpj,jpk,jpts) ) 
    9191         zarea_ssh(:,:) = e1e2t(:,:) * ssh(:,:,Kmm) 
     
    155155       
    156156         !                                         ! steric sea surface height 
    157          CALL eos( ts(:,:,:,:,Kmm), zrhd, zrhop, gdept(:,:,:,Kmm) )                 ! now in situ and potential density 
    158          zrhop(:,:,jpk) = 0._wp 
    159          CALL iom_put( 'rhop', zrhop ) 
    160          ! 
    161157         zbotpres(:,:) = 0._wp                        ! no atmospheric surface pressure, levitating sea-ice 
    162158         DO jk = 1, jpkm1 
    163             zbotpres(:,:) = zbotpres(:,:) + e3t(:,:,jk,Kmm) * zrhd(:,:,jk) 
     159            zbotpres(:,:) = zbotpres(:,:) + e3t(:,:,jk,Kmm) * rhd(:,:,jk) 
    164160         END DO 
    165161         IF( ln_linssh ) THEN 
     
    168164                  DO jj = 1,jpj 
    169165                     iks = mikt(ji,jj) 
    170                      zbotpres(ji,jj) = zbotpres(ji,jj) + ssh(ji,jj,Kmm) * zrhd(ji,jj,iks) + riceload(ji,jj) 
     166                     zbotpres(ji,jj) = zbotpres(ji,jj) + ssh(ji,jj,Kmm) * rhd(ji,jj,iks) + riceload(ji,jj) 
    171167                  END DO 
    172168               END DO 
    173169            ELSE 
    174                zbotpres(:,:) = zbotpres(:,:) + ssh(:,:,Kmm) * zrhd(:,:,1) 
     170               zbotpres(:,:) = zbotpres(:,:) + ssh(:,:,Kmm) * rhd(:,:,1) 
    175171            END IF 
    176172         END IF 
     
    293289      IF( l_ar5 ) THEN 
    294290        DEALLOCATE( zarea_ssh , zbotpres, z2d ) 
    295         DEALLOCATE( zrhd      , zrhop    ) 
    296291        DEALLOCATE( ztsn                 ) 
    297292      ENDIF 
     
    367362      IF(   iom_use( 'voltot'  ) .OR. iom_use( 'sshtot'    )  .OR. iom_use( 'sshdyn' )  .OR.  &  
    368363         &  iom_use( 'masstot' ) .OR. iom_use( 'temptot'   )  .OR. iom_use( 'saltot' ) .OR.  &     
    369          &  iom_use( 'botpres' ) .OR. iom_use( 'sshthster' )  .OR. iom_use( 'sshsteric' )  ) L_ar5 = .TRUE. 
     364         &  iom_use( 'botpres' ) .OR. iom_use( 'sshthster' )  .OR. iom_use( 'sshsteric' ) .OR. & 
     365         &  iom_use( 'rhop' )  ) L_ar5 = .TRUE. 
    370366   
    371367      IF( l_ar5 ) THEN 
  • NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/src/OCE/DIA/diawri.F90

    r12933 r13103  
    171171         CALL iom_put( "sbs", z2d )                ! bottom salinity 
    172172      ENDIF 
     173 
     174      CALL iom_put( "rhop", rhop(:,:,:) )          ! 3D potential density (sigma0) 
    173175 
    174176      IF ( iom_use("taubot") ) THEN                ! bottom stress 
  • NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/src/OCE/DOM/istate.F90

    r13026 r13103  
    2424   USE dom_oce        ! ocean space and time domain  
    2525   USE daymod         ! calendar 
    26    USE divhor         ! horizontal divergence            (div_hor routine) 
    2726   USE dtatsd         ! data temperature and salinity   (dta_tsd routine) 
    2827   USE dtauvd         ! data: U & V current             (dta_uvd routine) 
     
    131130         uu   (:,:,:,Kmm)   = uu  (:,:,:,Kbb) 
    132131         vv   (:,:,:,Kmm)   = vv  (:,:,:,Kbb) 
    133          hdiv(:,:,jpk) = 0._wp               ! bottom divergence set one for 0 to zero at jpk level 
    134          CALL div_hor( 0, Kbb, Kmm )         ! compute interior hdiv value   
    135 !!gm                                    hdiv(:,:,:) = 0._wp 
    136132 
    137133!!gm POTENTIAL BUG : 
  • NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/src/OCE/ICB/icbrst.F90

    r13058 r13103  
    192192      CHARACTER(len=256)     :: cl_path 
    193193      CHARACTER(len=256)     :: cl_filename 
    194       CHARACTER(len=256)     :: cl_kt 
     194      CHARACTER(len=)     :: cl_kt 
    195195      CHARACTER(LEN=12 )     :: clfmt            ! writing format 
    196196      TYPE(iceberg), POINTER :: this 
     
    213213         ! file name 
    214214         WRITE(cl_kt, '(i8.8)') kt 
    215          cl_filename = TRIM(cexper)//"_"//TRIM(ADJUSTL(cl_kt))//"_"//TRIM(cn_icbrst_out) 
     215         cl_filename = TRIM(cexper)//"_"//cl_kt//"_"//TRIM(cn_icbrst_out) 
    216216         IF( lk_mpp ) THEN 
    217217            idg = MAX( INT(LOG10(REAL(MAX(1,jpnij-1),wp))) + 1, 4 )          ! how many digits to we need to write? min=4, max=9 
    218218            WRITE(clfmt, "('(a,a,i', i1, '.', i1, ',a)')") idg, idg          ! '(a,a,ix.x,a)' 
    219             WRITE(cl_filename,clfmt) TRIM(cl_filename), '_', narea-1, '.nc' 
     219            WRITE(cl_filename,  clfmt) TRIM(cl_filename), '_', narea-1, '.nc' 
    220220         ELSE 
    221             WRITE(cl_filename,'(A,".nc")') TRIM(cl_filename) 
     221            WRITE(cl_filename,'(a,a)') TRIM(cl_filename),               '.nc' 
    222222         ENDIF 
    223223 
  • NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/src/OCE/ICB/icbtrj.F90

    r13058 r13103  
    6666      CHARACTER(len=80)      ::   cl_filename 
    6767      CHARACTER(LEN=12)      ::   clfmt            ! writing format 
    68       CHARACTER(LEN=20)      ::   cldate_ini, cldate_end 
     68      CHARACTER(LEN=8 )      ::   cldate_ini, cldate_end 
    6969      TYPE(iceberg), POINTER ::   this 
    7070      TYPE(point)  , POINTER ::   pt 
     
    8282 
    8383      ! define trajectory output name 
    84       cl_filename = 'trajectory_icebergs_'//TRIM(ADJUSTL(cldate_ini))//'-'//TRIM(ADJUSTL(cldate_end)) 
     84      cl_filename = 'trajectory_icebergs_'//cldate_ini//'-'//cldate_end 
    8585      IF ( lk_mpp ) THEN 
    8686         idg = MAX( INT(LOG10(REAL(MAX(1,jpnij-1),wp))) + 1, 4 )          ! how many digits to we need to write? min=4, max=9 
    8787         WRITE(clfmt, "('(a,a,i', i1, '.', i1, ',a)')") idg, idg          ! '(a,a,ix.x,a)' 
    88          WRITE(cl_filename,clfmt) TRIM(cl_filename), '_', narea-1, '.nc' 
     88         WRITE(cl_filename,  clfmt) TRIM(cl_filename), '_', narea-1, '.nc' 
    8989      ELSE 
    90          WRITE(cl_filename,'(A,".nc")') TRIM(cl_filename) 
     90         WRITE(cl_filename,'(a,a)') TRIM(cl_filename),               '.nc' 
    9191      ENDIF 
    9292      IF( lwp .AND. nn_verbose_level >= 0 )   WRITE(numout,'(2a)') 'icebergs, icb_trj_init: creating ',TRIM(cl_filename) 
  • NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/src/OCE/IOM/iom_def.F90

    r12649 r13103  
    3333   INTEGER, PARAMETER, PUBLIC ::   jpmax_vars   = 1200 !: maximum number of variables in one file 
    3434   INTEGER, PARAMETER, PUBLIC ::   jpmax_dims   =  4   !: maximum number of dimensions for one variable 
    35    INTEGER, PARAMETER, PUBLIC ::   jpmax_digits =  5   !: maximum number of digits for the cpu number in the file name 
     35   INTEGER, PARAMETER, PUBLIC ::   jpmax_digits =  9   !: maximum number of digits for the cpu number in the file name 
    3636 
    3737 
  • NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/src/OCE/LBC/lib_mpp.F90

    r13058 r13103  
    12211221      CHARACTER(LEN=10) ::   clfmt            ! writing format 
    12221222      INTEGER           ::   iost 
    1223       INTEGER           ::   idg  ! number of digits 
     1223      INTEGER           ::   idg              ! number of digits 
    12241224      !!---------------------------------------------------------------------- 
    12251225      ! 
  • NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/src/OCE/SBC/sbccpl.F90

    r12952 r13103  
    17851785            ENDDO 
    17861786         ELSE 
    1787             qns_tot(:,:) = qns_tot(:,:) + picefr(:,:) * frcv(jpr_qnsice)%z3(:,:,1) 
     1787            zqns_tot(:,:) = zqns_tot(:,:) + picefr(:,:) * frcv(jpr_qnsice)%z3(:,:,1) 
    17881788            DO jl = 1, jpl 
    1789                zqns_tot(:,:   ) = zqns_tot(:,:) + picefr(:,:) * frcv(jpr_qnsice)%z3(:,:,1) 
    17901789               zqns_ice(:,:,jl) = frcv(jpr_qnsice)%z3(:,:,1) 
    17911790            END DO 
     
    19281927            END DO 
    19291928         ELSE 
    1930             qsr_tot(:,:   ) = qsr_tot(:,:) + picefr(:,:) * frcv(jpr_qsrice)%z3(:,:,1) 
     1929            zqsr_tot(:,:) = zqsr_tot(:,:) + picefr(:,:) * frcv(jpr_qsrice)%z3(:,:,1) 
    19311930            DO jl = 1, jpl 
    1932                zqsr_tot(:,:   ) = zqsr_tot(:,:) + picefr(:,:) * frcv(jpr_qsrice)%z3(:,:,1) 
    19331931               zqsr_ice(:,:,jl) = frcv(jpr_qsrice)%z3(:,:,1) 
    19341932            END DO 
  • NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/src/OCE/TRD/trdtra.F90

    r12489 r13103  
    8282      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in), OPTIONAL ::   ptra    ! now tracer variable 
    8383      ! 
    84       INTEGER ::   jk   ! loop indices 
     84      INTEGER ::   jk    ! loop indices 
     85      INTEGER ::   i01   ! 0 or 1 
    8586      REAL(wp),        DIMENSION(jpi,jpj,jpk) ::   ztrds             ! 3D workspace 
    8687      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) ::   zwt, zws, ztrdt   ! 3D workspace 
     
    9091         IF( trd_tra_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'trd_tra : unable to allocate arrays' ) 
    9192      ENDIF 
    92  
     93      ! 
     94      i01 = COUNT( (/ PRESENT(pu) .OR. ( ktrd /= jptra_xad .AND. ktrd /= jptra_yad .AND. ktrd /= jptra_zad ) /) ) 
     95      ! 
    9396      IF( ctype == 'TRA' .AND. ktra == jp_tem ) THEN   !==  Temperature trend  ==! 
    9497         ! 
    95          SELECT CASE( ktrd ) 
     98         SELECT CASE( ktrd*i01 ) 
    9699         !                            ! advection: transform the advective flux into a trend 
    97100         CASE( jptra_xad )   ;   CALL trd_tra_adv( ptrd, pu, ptra, 'X', trdtx, Kmm )  
     
    112115      IF( ctype == 'TRA' .AND. ktra == jp_sal ) THEN      !==  Salinity trends  ==! 
    113116         ! 
    114          SELECT CASE( ktrd ) 
     117         SELECT CASE( ktrd*i01 ) 
    115118         !                            ! advection: transform the advective flux into a trend 
    116119         !                            !            and send T & S trends to trd_tra_mng 
     
    163166      IF( ctype == 'TRC' ) THEN                           !==  passive tracer trend  ==! 
    164167         ! 
    165          SELECT CASE( ktrd ) 
     168         SELECT CASE( ktrd*i01 ) 
    166169         !                            ! advection: transform the advective flux into a masked trend 
    167170         CASE( jptra_xad )   ;   CALL trd_tra_adv( ptrd , pu , ptra, 'X', ztrds, Kmm )  
  • utils/tools_dev_r12970_AGRIF_CMEMS/DOMAINcfg/src/agrif_connect.F90

    r13056 r13103  
    123123                     e3t_interp(ji,jj,jk) = MAX( ptab(ji,jj,jk),MIN(e3zps_min, e3t_1d(jk)*e3zps_rat) ) 
    124124                     e3t_interp(ji,jj,jk) = MIN( e3t_interp(ji,jj,jk),e3t_1d(jk) ) 
    125                      e3t_0(ji,jj,jk) = ztabramp(ji,jj)*e3t_0(ji,jj,jk)+(1.-ztabramp(ji,jj))*e3t_interp(ji,jj,jk) 
     125                     e3t_0(ji,jj,jk) = ( 1. + ztabramp(ji,jj) )*e3t_0(ji,jj,jk) + ztabramp(ji,jj)*e3t_interp(ji,jj,jk) 
    126126                  ENDIF 
    127127             END DO 
Note: See TracChangeset for help on using the changeset viewer.