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 7520 for branches/2015 – NEMO

Changeset 7520 for branches/2015


Ignore:
Timestamp:
2016-12-28T17:26:05+01:00 (7 years ago)
Author:
cbricaud
Message:

cleaning and bug correction in CRS branch

Location:
branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/CRS/crsdom.F90

    r7332 r7520  
    708708      !!  Arguments 
    709709      REAL(wp), DIMENSION(jpi,jpj),             INTENT(in)           :: p_fld   ! T, U, V or W on parent grid 
    710       CHARACTER(len=3),                         INTENT(in)           :: cd_op    ! Operation SUM, MAX or MIN 
     710      CHARACTER(len=*),                         INTENT(in)           :: cd_op    ! Operation SUM, MAX or MIN 
    711711      CHARACTER(len=1),                         INTENT(in)           :: cd_type    ! grid type U,V  
    712712      REAL(wp), DIMENSION(jpi,jpj,jpk),         INTENT(in)           :: p_mask    ! Parent grid T,U,V mask 
     
    729729      p_fld_crs(:,:) = 0.0 
    730730 
    731       SELECT CASE ( cd_op ) 
     731      SELECT CASE ( TRIM(cd_op) ) 
    732732       
    733733        CASE ( 'VOL' ) 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/CRS/crsfld.F90

    r7398 r7520  
    316316 
    317317      CALL crs_dom_ope( qsr  , 'SUM', 'T', tmask, qsr_crs  , p_e12=e1e2t, p_surf_crs=e1e2t_crs, psgn=1.0 ) 
    318 #if defined key_vvl 
    319       CALL crs_dom_ope( gdepw_n, 'MAX', 'W', tmask, gdepw_n_crs, p_e3=zfse3w, psgn=1.0 ) 
    320 #else 
    321       CALL crs_dom_ope( gdepw_0, 'MAX', 'W', tmask, gdepw_0_crs, p_e3=zfse3w, psgn=1.0 ) 
    322 #endif 
     318 
    323319      CALL crs_dom_ope( emp   ,'SUM', 'T', tmask, emp_crs   , p_e12=e1e2t, p_surf_crs=e1e2t_crs, psgn=1.0 ) 
    324320      CALL crs_dom_ope( fmmflx,'SUM', 'T', tmask, fmmflx_crs, p_e12=e1e2t, p_surf_crs=e1e2t_crs, psgn=1.0 ) 
    325321      CALL crs_dom_ope( sfx   ,'SUM', 'T', tmask, sfx_crs   , p_e12=e1e2t, p_surf_crs=e1e2t_crs, psgn=1.0 ) 
     322 
    326323      CALL crs_dom_ope( fr_i  ,'SUM', 'T', tmask, fr_i_crs  , p_e12=e1e2t, p_surf_crs=e1e2t_crs, psgn=1.0 ) 
     324      fr_i_crs=MAX( 0._wp, MIN( fr_i_crs , 1._wp ) ) 
    327325 
    328326      z2d=REAL(nmln,wp) 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/SBC/fldread.F90

    r7256 r7520  
    1515   !!                   surface boundary condition 
    1616   !!---------------------------------------------------------------------- 
    17    USE oce             ! ocean dynamics and tracers 
    1817   USE dom_oce         ! ocean space and time domain 
    1918   USE phycst          ! ??? 
     
    2423   USE wrk_nemo        ! work arrays 
    2524   USE lbclnk          ! ocean lateral boundary conditions (C1D case) 
    26    USE ioipsl, ONLY ymds2ju, ju2ymds   ! for calendar 
    27    USE sbc_oce 
     25   USE ioipsl, ONLY  : ymds2ju, ju2ymds   ! for calendar 
     26   USE sbc_oce, ONLY : nn_components,nn_lsm,jp_iam_sas 
    2827    
    2928   IMPLICIT NONE 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zbio.F90

    r7398 r7520  
    5555      INTEGER             :: ji, jj, jk, jn 
    5656      CHARACTER (len=25) :: charout 
    57  
    5857      !!--------------------------------------------------------------------- 
    5958      ! 
     
    7372      END DO 
    7473 
    75            
    7674      CALL p4z_opt  ( kt, knt )     ! Optic: PAR in the water column 
    7775      CALL p4z_sink ( kt, knt )     ! vertical flux of particulate organic matter 
     
    8179      !                             ! (for each element : C, Si, Fe, Chl ) 
    8280      CALL p4z_mort ( kt      )     ! phytoplankton mortality 
    83      !                             ! zooplankton sources/sinks routines  
     81      !                             ! zooplankton sources/sinks routines  
    8482      CALL p4z_micro( kt, knt )           ! microzooplankton 
    8583      CALL p4z_meso ( kt, knt )           ! mesozooplankton 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zopt.F90

    r7398 r7520  
    107107               ekg(ji,jj,jk) = xkrgb(2,irgb) * fse3t(ji,jj,jk) 
    108108               ekr(ji,jj,jk) = xkrgb(3,irgb) * fse3t(ji,jj,jk) 
    109 !#if defined key_crs 
    110 !               zfse3 = e3t_max_crs(ji,jj,jk) 
    111 !#else 
    112 !               zfse3 = fse3t(ji,jj,jk) 
    113 !#endif 
    114 !               ekb(ji,jj,jk) = xkrgb(1,irgb) * zfse3 
    115 !               ekg(ji,jj,jk) = xkrgb(2,irgb) * zfse3 
    116 !               ekr(ji,jj,jk) = xkrgb(3,irgb) * zfse3 
    117109            END DO 
    118110         END DO 
     
    200192                  zetmp4 (ji,jj) = zetmp4 (ji,jj) + ediat    (ji,jj,jk) * fse3t(ji,jj,jk) ! production 
    201193                  zdepmoy(ji,jj) = zdepmoy(ji,jj) + fse3t(ji,jj,jk) 
    202 !#if defined key_crs 
    203 !                zfse3 = e3t_max_crs(ji,jj,jk) 
    204 !#else 
    205 !               zfse3 = fse3t(ji,jj,jk) 
    206 !#endif 
    207 !                  zetmp1 (ji,jj) = zetmp1 (ji,jj) + etot     (ji,jj,jk) * zfse3 ! remineralisation 
    208 !                  zetmp2 (ji,jj) = zetmp2 (ji,jj) + etot_ndcy(ji,jj,jk) * zfse3 ! production 
    209 !                  zetmp3 (ji,jj) = zetmp3 (ji,jj) + enano    (ji,jj,jk) * zfse3 ! production 
    210 !                  zetmp4 (ji,jj) = zetmp4 (ji,jj) + ediat    (ji,jj,jk) * zfse3 ! production 
    211 !                  zdepmoy(ji,jj) = zdepmoy(ji,jj) + zfse3 
    212194               ENDIF 
    213195            END DO 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsed.F90

    r7398 r7520  
    223223         DO ji = 1, jpi 
    224224            ikt  = mbkt(ji,jj) 
    225 !#if defined key_crs 
    226 !            zdep = e3t_max_crs(ji,jj,ikt) / xstep 
    227 !#else 
    228 !            zdep = fse3t(ji,jj,ikt) / xstep 
    229 !#endif 
     225#if defined key_crs 
     226            zdep = e3t_max_crs(ji,jj,ikt) / xstep 
     227#else 
    230228            zdep = fse3t(ji,jj,ikt) / xstep 
     229#endif 
    231230            zwsbio4(ji,jj) = MIN( 0.99 * zdep, wsbio4(ji,jj,ikt) ) 
    232231            zwscal (ji,jj) = MIN( 0.99 * zdep, wscal (ji,jj,ikt) ) 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsink.F90

    r7398 r7520  
    135135             DO ji = 1, jpi 
    136136                IF( tmask(ji,jj,jk) == 1) THEN 
    137 !#if defined key_crs 
    138 !                   zwsmax =  0.5 * e3t_max_crs(ji,jj,jk) / xstep 
    139 !#else 
    140 !                   zwsmax =  0.5 * fse3t(ji,jj,jk) / xstep 
    141 !#endif 
     137#if defined key_crs 
     138                   zwsmax =  0.5 * e3t_max_crs(ji,jj,jk) / xstep 
     139#else 
    142140                   zwsmax =  0.5 * fse3t(ji,jj,jk) / xstep 
     141#endif 
    143142                   iiter1 =  MAX( iiter1, INT( wsbio3(ji,jj,jk) / zwsmax ) ) 
    144143                   iiter2 =  MAX( iiter2, INT( wsbio4(ji,jj,jk) / zwsmax ) ) 
     
    159158            DO ji = 1, jpi 
    160159               IF( tmask(ji,jj,jk) == 1 ) THEN 
    161 !#if defined key_crs 
    162 !                   zwsmax =  0.5 * e3t_max_crs(ji,jj,jk) / xstep 
    163 !#else 
    164 !                   zwsmax =  0.5 * fse3t(ji,jj,jk) / xstep 
    165 !#endif 
    166                  zwsmax = 0.5 * fse3t(ji,jj,jk) / xstep 
     160                 zwsmax =  0.5 * fse3t(ji,jj,jk) / xstep 
    167161                 wsbio3(ji,jj,jk) = MIN( wsbio3(ji,jj,jk), zwsmax * FLOAT( iiter1 ) ) 
    168162                 wsbio4(ji,jj,jk) = MIN( wsbio4(ji,jj,jk), zwsmax * FLOAT( iiter2 ) ) 
     
    870864            DO jj = 1,jpj 
    871865               DO ji = 1, jpi 
     866#if defined key_crs 
     867                  zflx = ( psinkflx(ji,jj,jk) - psinkflx(ji,jj,jk+1) ) / e3t_max_crs(ji,jj,jk) 
     868#else 
    872869                  zflx = ( psinkflx(ji,jj,jk) - psinkflx(ji,jj,jk+1) ) / fse3t(ji,jj,jk) 
     870#endif 
    873871                  trb(ji,jj,jk,jp_tra) = trb(ji,jj,jk,jp_tra) + zflx 
    874872               END DO 
     
    881879         DO jj = 1,jpj 
    882880            DO ji = 1, jpi 
     881#if defined key_crs 
     882               zflx = ( psinkflx(ji,jj,jk) - psinkflx(ji,jj,jk+1) ) / e3t_max_crs(ji,jj,jk) 
     883#else 
    883884               zflx = ( psinkflx(ji,jj,jk) - psinkflx(ji,jj,jk+1) ) / fse3t(ji,jj,jk) 
     885#endif 
    884886               ztrb(ji,jj,jk) = ztrb(ji,jj,jk) + 2. * zflx 
    885887            END DO 
Note: See TracChangeset for help on using the changeset viewer.