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.
Diff [7806:8103] for branches/2015/dev_r5003_MERCATOR6_CRS – NEMO

Ignore:
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

    r7806 r8103  
    410410            SELECT CASE ( cd_type ) 
    411411             
    412                CASE( 'T', 'W' ) 
     412               CASE( 'T', 'W','U','V' ) 
    413413                  DO jk = 1, jpk 
    414414                     zsurf   (:,:,jk) =  p_e12(:,:) * p_e3(:,:,jk) *  p_mask(:,:,jk)  
     
    11711171         ! check 
    11721172         !========================================================================== 
     1173         !CALL FLUSH(narea+1000-1) 
    11731174         !WRITE(narea+1000-1,*)"nfipproc(ji,jj),narea :",nfipproc(iproci,iprocj),narea 
    11741175         !WRITE(narea+1000-1,*)"proc i,j ",iproci,iprocj 
     
    11901191         !WRITE(narea+1000-1,*)"glamt gphit ",glamt(1,1),gphit(jpi,jpj),glamt(jpi,jpj),gphit(jpi,jpj) 
    11911192         !WRITE(narea+1000-1,*)"min max tmask ",MINVAL(tmask),MAXVAL(tmask) 
    1192  
     1193         !CALL FLUSH(narea+1000-1) 
    11931194         !========================================================================== 
    11941195         ! coarsened domain: dimensions along I 
     
    12331234               mis2_crs(ji)=ijis 
    12341235               mie2_crs(ji)=ijie 
     1236               !WRITE(narea+1000-1,*)"glo crs",ji,ijis,ijie,ijis-nimpp+1,ijie-nimpp+1 
    12351237            ENDDO 
    12361238 
     
    12541256         ijis=ji 
    12551257         ii_start = mis2_crs(ijis)-nimpp+1 
     1258         WRITE(narea+1000-1,*)"start ",ijis,mis2_crs(ijis),ii_start ; CALL FLUSH(narea+1000-1) 
    12561259 
    12571260         !---------------------------------------------------------------------------------------------- 
     
    12921295 
    12931296         ji=jpiglo_crs 
    1294          DO WHILE( mie2_crs(ji) - nimpp + 1 .GT. jpi ) 
     1297         DO WHILE( mie2_crs(ji) - nimpp + 1 .GT. nlci ) 
    12951298            ji=ji-1 
    12961299            IF( ji==1 )EXIT 
    12971300         END DO 
    12981301         ijie=ji 
     1302         !WRITE(narea+1000-1,*)"end ",ijie ; CALL FLUSH(narea+1000-1) 
    12991303 
    13001304         !------------------------------------------------------------------------------- 
     
    13021306         !------------------------------------------------------------------------------- 
    13031307         nlei_crs=ijie-nimpp_crs+1 
    1304          nlci_crs=nlei_crs+jpreci 
    1305          IF( iproci == jpni )nlei_crs=nlci_crs 
     1308         !nlci_crs=nlei_crs ! cbr ???? +jpreci 
     1309         !IF( iproci == jpni ) THEN ; nlci_crs=nlei_crs ! cbr ???? +jpreci 
     1310         !ELSE                      ; nlci_crs=nlei_crs+1 
     1311         !ENDIF 
     1312         !cbr???? IF( iproci == jpni )nlei_crs=nlci_crs 
    13061313 
    13071314         !------------------------------------------------------------------------------- 
     
    13101317         DO ji = 1, jpi_crs 
    13111318            mig_crs(ji) = ji + nimpp_crs - 1 
     1319            WRITE(narea+1000-1,*)"crs loctoglo",ji,mig_crs(ji) ; CALL FLUSH(narea+1000-1) 
    13121320         ENDDO 
    13131321         DO ji = 1, jpiglo_crs 
     
    13201328         !--------------------------------------------------------------------------------------- 
    13211329         DO ji = 1, nlei_crs 
     1330            IF( mig_crs(ji) .GT. jpiglo_crs )WRITE(narea+1000-1,*)"BUG1 " ; CALL FLUSH(narea+1000-1) 
    13221331            mis_crs(ji) = mis2_crs(mig_crs(ji)) - nimpp + 1 
    13231332            mie_crs(ji) = mie2_crs(mig_crs(ji)) - nimpp + 1 
    1324             IF( iproci == jpni  .AND. ji == nlei_crs )THEN 
    1325                mie_crs(ji) = nlei 
    1326                mie2_crs(mig_crs(ji)) = mig(nlei) 
    1327             ENDIF 
     1333            !IF( iproci == jpni  .AND. ji == nlei_crs )THEN 
     1334            !   mie_crs(ji) = nlei 
     1335            !   mie2_crs(mig_crs(ji)) = mig(nlei) 
     1336            !ENDIF 
    13281337            nfactx(ji)  = mie_crs(ji)-mis_crs(ji)+1 
    13291338         ENDDO 
     1339 
     1340         !--------- 
     1341         !cbr  
     1342         IF( iproci == 1 ) THEN 
     1343            nldi_crs=1 
     1344            mis_crs(1) = 1 
     1345            mie_crs(1) = 1 
     1346            mis2_crs(1) = 1 
     1347            mie2_crs(1) = 1 
     1348         ENDIF 
     1349 
     1350         IF( iproci == jpni ) THEN 
     1351            nlei_crs=jpiglo_crs-nimpp_crs+1 
     1352            nlci_crs=nlei_crs 
     1353            mis_crs(nlei_crs) = 1 
     1354            mie_crs(nlei_crs) = 1 
     1355            mis2_crs(nlei_crs) = 1 
     1356            mie2_crs(nlei_crs) = 1 
     1357            nfactx(nlei_crs)=0 
     1358         ELSE 
     1359            nlci_crs=nlei_crs+1 
     1360         ENDIF 
     1361 
     1362         !WRITE(narea+1000-1,*)"loc crs jpi nldi,nlei,nlci ",jpi_crs, nldi_crs            ,nlei_crs             ,nlci_crs 
     1363         !CALL FLUSH(narea+1000-1) 
     1364         !WRITE(narea+1000-1,*)"glo crs jpi nldi,nlei      ",jpi_crs, nldi_crs+nimpp_crs-1,nlei_crs+nimpp_crs-1 
     1365         !CALL FLUSH(narea+1000-1) 
     1366         !DO ji = 1, jpi_crs 
     1367         !   WRITE(narea+1000-1,*)"crs i",ji,ji+nimpp_crs-1,mis_crs(ji),mie_crs(ji),mis_crs(ji)+nimpp-1,mie_crs(ji)+nimpp-1,nfactx(ji) 
     1368         !ENDDO 
    13301369 
    13311370         !========================================================================== 
     
    14541493         ENDIF 
    14551494 
     1495         !WRITE(narea+1000-1,*)"loc crs jpj nldj,nlej,nlcj ",jpj_crs, nldj_crs            ,nlej_crs             ,nlcj_crs 
     1496         !CALL FLUSH(narea+1000-1) 
     1497         !WRITE(narea+1000-1,*)"glo crs jpj nldj,nlej      ",jpj_crs, nldj_crs+njmpp_crs-1,nlej_crs+njmpp_crs-1 
     1498         !CALL FLUSH(narea+1000-1) 
    14561499         !------------------------------------------------------------------------------- 
    14571500         ! J-7 local to global and global to local indices for CRS grid 
     
    15211564         ! check 
    15221565         !========================================================================== 
     1566         !WRITE(narea+1000-1,*)"mpp_crs ",nimpp_crs,njmpp_crs 
    15231567         !WRITE(narea+1000-1,*)"loc crs jpi nldi,nlei,nlci ",jpi_crs, nldi_crs            ,nlei_crs             ,nlci_crs 
    15241568         !WRITE(narea+1000-1,*)"glo crs jpi nldi,nlei      ",jpi_crs, nldi_crs+nimpp_crs-1,nlei_crs+nimpp_crs-1 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/CRS/crsfld.F90

    r7806 r8103  
    9393#if defined key_vvl 
    9494  
    95  
    96       IF( kt /= nit000 )THEN 
    97          zfse3t(:,:,:) = e3t_b(:,:,:) 
    98          zfse3u(:,:,:) = e3u_b(:,:,:) 
    99          zfse3v(:,:,:) = e3v_b(:,:,:) 
    100          zfse3w(:,:,:) = e3w_b(:,:,:) 
    101  
    102          CALL crs_dom_e3( e1t, e2t, zfse3t, p_sfc_3d_crs=e1e2w_crs, cd_type='T', p_mask=tmask, p_e3_crs=e3t_b_crs, p_e3_max_crs=zs_crs) 
    103          CALL crs_dom_e3( e1t, e2t, zfse3w, p_sfc_3d_crs=e1e2w_crs, cd_type='W', p_mask=tmask, p_e3_crs=e3w_b_crs, p_e3_max_crs=zs_crs) 
    104          CALL crs_dom_e3( e1u, e2u, zfse3u, p_sfc_2d_crs=e2u_crs  , cd_type='U', p_mask=umask, p_e3_crs=e3u_b_crs, p_e3_max_crs=zs_crs) 
    105          CALL crs_dom_e3( e1v, e2v, zfse3v, p_sfc_2d_crs=e1v_crs  , cd_type='V', p_mask=vmask, p_e3_crs=e3v_b_crs, p_e3_max_crs=zs_crs) 
    106  
    107          DO jk = 1, jpk 
    108             DO ji = 1, jpi_crs 
    109                DO jj = 1, jpj_crs 
    110                   IF( e3t_b_crs(ji,jj,jk) == 0._wp ) e3t_b_crs(ji,jj,jk) = e3t_1d(jk) 
    111                   IF( e3w_b_crs(ji,jj,jk) == 0._wp ) e3w_b_crs(ji,jj,jk) = e3w_1d(jk) 
    112                   IF( e3u_b_crs(ji,jj,jk) == 0._wp ) e3u_b_crs(ji,jj,jk) = e3t_1d(jk) 
    113                   IF( e3v_b_crs(ji,jj,jk) == 0._wp ) e3v_b_crs(ji,jj,jk) = e3t_1d(jk) 
    114                ENDDO 
     95      zfse3t(:,:,:) = e3t_b(:,:,:) 
     96      zfse3u(:,:,:) = e3u_b(:,:,:) 
     97      zfse3v(:,:,:) = e3v_b(:,:,:) 
     98      zfse3w(:,:,:) = e3w_b(:,:,:) 
     99 
     100      CALL crs_dom_e3( e1t, e2t, zfse3t, p_sfc_3d_crs=e1e2w_crs, cd_type='T', p_mask=tmask, p_e3_crs=e3t_b_crs, p_e3_max_crs=zs_crs) 
     101      CALL crs_dom_e3( e1t, e2t, zfse3w, p_sfc_3d_crs=e1e2w_crs, cd_type='W', p_mask=tmask, p_e3_crs=e3w_b_crs, p_e3_max_crs=zs_crs) 
     102      CALL crs_dom_e3( e1u, e2u, zfse3u, p_sfc_2d_crs=e2u_crs  , cd_type='U', p_mask=umask, p_e3_crs=e3u_b_crs, p_e3_max_crs=zs_crs) 
     103      CALL crs_dom_e3( e1v, e2v, zfse3v, p_sfc_2d_crs=e1v_crs  , cd_type='V', p_mask=vmask, p_e3_crs=e3v_b_crs, p_e3_max_crs=zs_crs) 
     104 
     105      DO jk = 1, jpk 
     106         DO ji = 1, jpi_crs 
     107            DO jj = 1, jpj_crs 
     108               IF( e3t_b_crs(ji,jj,jk) == 0._wp ) e3t_b_crs(ji,jj,jk) = e3t_1d(jk) 
     109               IF( e3w_b_crs(ji,jj,jk) == 0._wp ) e3w_b_crs(ji,jj,jk) = e3w_1d(jk) 
     110               IF( e3u_b_crs(ji,jj,jk) == 0._wp ) e3u_b_crs(ji,jj,jk) = e3t_1d(jk) 
     111               IF( e3v_b_crs(ji,jj,jk) == 0._wp ) e3v_b_crs(ji,jj,jk) = e3t_1d(jk) 
    115112            ENDDO 
    116113         ENDDO 
    117  
    118          e3t_n_crs(:,:,:) = e3t_a_crs(:,:,:) 
    119          e3u_n_crs(:,:,:) = e3u_a_crs(:,:,:) 
    120          e3v_n_crs(:,:,:) = e3v_a_crs(:,:,:) 
    121          e3w_n_crs(:,:,:) = e3w_a_crs(:,:,:) 
    122  
    123       ENDIF 
     114      ENDDO 
     115 
     116      zfse3t(:,:,:) = e3t_n(:,:,:) 
     117      zfse3u(:,:,:) = e3u_n(:,:,:) 
     118      zfse3v(:,:,:) = e3v_n(:,:,:) 
     119      zfse3w(:,:,:) = e3w_n(:,:,:) 
     120 
     121      CALL crs_dom_e3( e1t, e2t, zfse3t, p_sfc_3d_crs=e1e2w_crs, cd_type='T', p_mask=tmask, p_e3_crs=e3t_n_crs, p_e3_max_crs=e3t_max_n_crs) 
     122      CALL crs_dom_e3( e1t, e2t, zfse3w, p_sfc_3d_crs=e1e2w_crs, cd_type='W', p_mask=tmask, p_e3_crs=e3w_n_crs, p_e3_max_crs=e3w_max_n_crs) 
     123      CALL crs_dom_e3( e1u, e2u, zfse3u, p_sfc_2d_crs=e2u_crs  , cd_type='U', p_mask=umask, p_e3_crs=e3u_n_crs, p_e3_max_crs=e3u_max_n_crs) 
     124      CALL crs_dom_e3( e1v, e2v, zfse3v, p_sfc_2d_crs=e1v_crs  , cd_type='V', p_mask=vmask, p_e3_crs=e3v_n_crs, p_e3_max_crs=e3v_max_n_crs) 
     125 
     126      DO jk = 1, jpk 
     127         DO ji = 1, jpi_crs 
     128            DO jj = 1, jpj_crs 
     129               IF( e3t_n_crs(ji,jj,jk)     == 0._wp ) e3t_n_crs(ji,jj,jk) = e3t_1d(jk) 
     130               IF( e3w_n_crs(ji,jj,jk)     == 0._wp ) e3w_n_crs(ji,jj,jk) = e3w_1d(jk) 
     131               IF( e3u_n_crs(ji,jj,jk)     == 0._wp ) e3u_n_crs(ji,jj,jk) = e3t_1d(jk) 
     132               IF( e3v_n_crs(ji,jj,jk)     == 0._wp ) e3v_n_crs(ji,jj,jk) = e3t_1d(jk) 
     133               IF( e3t_max_n_crs(ji,jj,jk) == 0._wp ) e3t_max_n_crs(ji,jj,jk) = e3t_1d(jk) 
     134               IF( e3w_max_n_crs(ji,jj,jk) == 0._wp ) e3w_max_n_crs(ji,jj,jk) = e3w_1d(jk) 
     135               IF( e3u_max_n_crs(ji,jj,jk) == 0._wp ) e3u_max_n_crs(ji,jj,jk) = e3t_1d(jk) 
     136               IF( e3v_max_n_crs(ji,jj,jk) == 0._wp ) e3v_max_n_crs(ji,jj,jk) = e3t_1d(jk) 
     137            ENDDO 
     138         ENDDO 
     139      ENDDO 
     140 
    124141#endif 
    125142      !--------------------------------------------------------------------------------------------------- 
     
    138155#endif 
    139156 
    140       IF( kt /= nit000 )THEN 
    141          emp_b_crs(:,:)        = emp_crs(:,:) 
    142          rnf_b_crs(:,:)        = rnf_crs(:,:) 
    143       ELSE 
    144          emp_b_crs(:,:    ) = 0._wp 
    145          rnf_b_crs(:,:    ) = 0._wp 
    146       ENDIF 
     157      CALL crs_dom_ope( rnf_b ,'SUM', 'T', tmask, rnf_b_crs , p_e12=e1e2t, p_surf_crs=e1e2w_msk(:,:,1), psgn=1.0 ) 
     158      CALL crs_dom_ope( emp_b ,'SUM', 'T', tmask, emp_b_crs , p_e12=e1e2t, p_surf_crs=e1e2w_msk(:,:,1), psgn=1.0 ) 
    147159 
    148160      !  Temperature 
     
    192204      !CALL iom_put("e1e3v_msk",e1e3v_msk) 
    193205 
    194       ! vertical scale factors                                                                                  
    195       CALL crs_dom_e3( e1t, e2t, zfse3t, p_sfc_3d_crs=e1e2w_crs, cd_type='T', p_mask=tmask, p_e3_crs=zs_crs, p_e3_max_crs=e3t_max_n_crs) 
    196       CALL crs_dom_e3( e1t, e2t, zfse3w, p_sfc_3d_crs=e1e2w_crs, cd_type='W', p_mask=tmask, p_e3_crs=zs_crs, p_e3_max_crs=e3w_max_n_crs) 
    197       CALL crs_dom_e3( e1u, e2u, zfse3u, p_sfc_2d_crs=e2u_crs  , cd_type='U', p_mask=umask, p_e3_crs=zs_crs, p_e3_max_crs=e3u_max_n_crs) 
    198       CALL crs_dom_e3( e1v, e2v, zfse3v, p_sfc_2d_crs=e1v_crs  , cd_type='V', p_mask=vmask, p_e3_crs=zs_crs, p_e3_max_crs=e3v_max_n_crs) 
    199  
    200       DO jk = 1, jpk 
    201          DO ji = 1, jpi_crs 
    202             DO jj = 1, jpj_crs 
    203                IF( e3t_max_n_crs(ji,jj,jk) == 0._wp ) e3t_max_n_crs(ji,jj,jk) = e3t_1d(jk) 
    204                IF( e3w_max_n_crs(ji,jj,jk) == 0._wp ) e3w_max_n_crs(ji,jj,jk) = e3w_1d(jk) 
    205                IF( e3u_max_n_crs(ji,jj,jk) == 0._wp ) e3u_max_n_crs(ji,jj,jk) = e3t_1d(jk) 
    206                IF( e3v_max_n_crs(ji,jj,jk) == 0._wp ) e3v_max_n_crs(ji,jj,jk) = e3t_1d(jk) 
    207             ENDDO 
    208          ENDDO 
    209       ENDDO 
    210  
    211206      ! depth 
    212       CALL crs_dom_ope( gdepw_n, 'MAX', 'T', tmask, gdept_n_crs, p_e3=zfse3t, psgn=1.0 ) 
     207      CALL crs_dom_ope( gdept_n, 'MAX', 'T', tmask, gdept_n_crs, p_e3=zfse3t, psgn=1.0 ) 
    213208      CALL crs_dom_ope( gdepw_n, 'MAX', 'W', tmask, gdepw_n_crs, p_e3=zfse3w, psgn=1.0 ) 
    214209      DO jk = 1, jpk 
     
    297292 
    298293      !2D fields 
    299       CALL crs_dom_ope( rnf  , 'MAX', 'T', tmask, rnf_crs                                     , psgn=1.0 ) 
     294      CALL crs_dom_ope( rnf  , 'SUM', 'T', tmask, rnf_crs  , p_e12=e1e2t, p_surf_crs=e1e2t_crs, psgn=1.0 ) 
    300295      CALL crs_dom_ope( h_rnf, 'MAX', 'T', tmask, h_rnf_crs                                   , psgn=1.0 ) 
    301296 
     
    304299      nk_rnf_crs=INT(z2d_crs) 
    305300 
    306       CALL crs_dom_ope( qsr  , 'SUM', 'T', tmask, qsr_crs  , p_e12=e1e2t, p_surf_crs=e1e2t_crs, psgn=1.0 ) 
    307       CALL crs_dom_ope( wndm , 'SUM', 'T', tmask, wndm_crs , p_e12=e1e2t, p_surf_crs=e1e2t_crs, psgn=1.0 ) 
    308       CALL crs_dom_ope( emp   ,'SUM', 'T', tmask, emp_crs   , p_e12=e1e2t, p_surf_crs=e1e2t_crs, psgn=1.0 ) 
    309       CALL crs_dom_ope( fmmflx,'SUM', 'T', tmask, fmmflx_crs, p_e12=e1e2t, p_surf_crs=e1e2t_crs, psgn=1.0 ) 
    310  
    311       CALL crs_dom_ope( fr_i  ,'SUM', 'T', tmask, fr_i_crs  , p_e12=e1e2t, p_surf_crs=e1e2t_crs, psgn=1.0 ) 
     301      CALL crs_dom_ope( qsr  , 'SUM', 'T', tmask, qsr_crs   , p_e12=e1e2t, p_surf_crs=e1e2w_msk(:,:,1), psgn=1.0 ) 
     302      CALL crs_dom_ope( wndm , 'SUM', 'T', tmask, wndm_crs  , p_e12=e1e2t, p_surf_crs=e1e2w_msk(:,:,1), psgn=1.0 ) 
     303      CALL crs_dom_ope( emp   ,'SUM', 'T', tmask, emp_crs   , p_e12=e1e2t, p_surf_crs=e1e2w_msk(:,:,1), psgn=1.0 ) 
     304      CALL crs_dom_ope( fmmflx,'SUM', 'T', tmask, fmmflx_crs, p_e12=e1e2t, p_surf_crs=e1e2w_msk(:,:,1), psgn=1.0 ) 
     305 
     306      CALL crs_dom_ope( fr_i  ,'SUM', 'T', tmask, fr_i_crs  , p_e12=e1e2t, p_surf_crs=e1e2w_msk(:,:,1), psgn=1.0 ) 
    312307      fr_i_crs=MAX( 0._wp, MIN( fr_i_crs , 1._wp ) ) 
    313308 
     
    323318      CALL iom_put( "qsr"      , qsr_crs  )   ! qsr output  
    324319      CALL iom_put( "empmr"    , emp_crs  )   ! water flux output  
    325       CALL iom_put( "saltflx"  , sfx_crs  )   ! salt flux output  
     320      CALL iom_put( "saltflx"  , fmmflx_crs  )   ! salt flux output  
    326321      CALL iom_put( "ice_cover", fr_i_crs )   ! ice cover output  
    327322 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90

    r7806 r8103  
    13901390      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zmask 
    13911391      INTEGER  :: ni,nj 
     1392      !!---------------------------------------------------------------------- 
    13921393       
    13931394      ni=nlei-nldi+1 ; nj=nlej-nldj+1 
     
    14041405      IF ( ln_mskland ) THEN 
    14051406         ! mask land points, keep values on coast line -> specific mask for U, V and W points 
    1406          SELECT CASE ( cdgrd ) 
    1407          CASE('T')   ;   zmask(:,:,:)       = tmask(:,:,:) 
    1408          CASE('U')   ;   zmask(2:jpim1,:,:) = tmask(2:jpim1,:,:) + tmask(3:jpi,:,:)   ;   CALL lbc_lnk( zmask, 'U', 1. ) 
    1409          CASE('V')   ;   zmask(:,2:jpjm1,:) = tmask(:,2:jpjm1,:) + tmask(:,3:jpj,:)   ;   CALL lbc_lnk( zmask, 'V', 1. ) 
    1410          CASE('W')   ;   zmask(:,:,2:jpk  ) = tmask(:,:,1:jpkm1) + tmask(:,:,2:jpk)   ;   zmask(:,:,1) = tmask(:,:,1) 
    1411          END SELECT 
     1407 
     1408         IF( lk_crs .AND. jpi == jpi_crs .AND. jpi .NE. 0  )THEN 
     1409 
     1410            SELECT CASE ( cdgrd ) 
     1411            CASE('T')   ;   zmask(:,:,:)       = tmask_crs(:,:,:) 
     1412            CASE('U')   ;   zmask(2:jpim1,:,:) = tmask_crs(2:jpim1,:,:) + tmask_crs(3:jpi,:,:)   ;   CALL crs_lbc_lnk( zmask, 'U', 1. ) 
     1413            CASE('V')   ;   zmask(:,2:jpjm1,:) = tmask_crs(:,2:jpjm1,:) + tmask_crs(:,3:jpj,:)   ;   CALL crs_lbc_lnk( zmask, 'V', 1. ) 
     1414            CASE('W')   ;   zmask(:,:,2:jpk  ) = tmask_crs(:,:,1:jpkm1) + tmask_crs(:,:,2:jpk)   ;   zmask(:,:,1) = tmask_crs(:,:,1) 
     1415            END SELECT 
     1416 
     1417         ELSE 
     1418 
     1419            SELECT CASE ( cdgrd ) 
     1420            CASE('T')   ;   zmask(:,:,:)       = tmask(:,:,:) 
     1421            CASE('U')   ;   zmask(2:jpim1,:,:) = tmask(2:jpim1,:,:) + tmask(3:jpi,:,:)   ;   CALL lbc_lnk( zmask, 'U', 1. ) 
     1422            CASE('V')   ;   zmask(:,2:jpjm1,:) = tmask(:,2:jpjm1,:) + tmask(:,3:jpj,:)   ;   CALL lbc_lnk( zmask, 'V', 1. ) 
     1423            CASE('W')   ;   zmask(:,:,2:jpk  ) = tmask(:,:,1:jpkm1) + tmask(:,:,2:jpk)   ;   zmask(:,:,1) = tmask(:,:,1) 
     1424            END SELECT 
     1425 
     1426         ENDIF 
    14121427         ! 
    14131428#if ! defined key_xios2 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/LDF/ldftra_c2d_crs.h90

    r7806 r8103  
    4242      ENDIF 
    4343 
    44       zd_max = MAX( MAXVAL( e1t(:,:) ), MAXVAL( e2t(:,:) ) ) 
     44      zd_max = MAX( MAXVAL( e1t(:,:)*tmask(:,:,1) ), MAXVAL( e2t(:,:)*tmask(:,:,1) ) ) 
    4545      IF( lk_mpp ) CALL mpp_max( zd_max )   ! max over the global domain 
    4646 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso_crs.F90

    r7806 r8103  
    264264                     &            + vmask_crs(ji,jj-1,jk-1) + vmask_crs(ji,jj  ,jk), 1.  ) 
    265265                  ! 
    266                   zcoef3 = zcoef0 * e1e2w_crs(ji,jj,jk) * zmsku * wslpi_crs(ji,jj,jk) / e1t_crs(ji,jj) 
    267                   zcoef4 = zcoef0 * e1e2w_crs(ji,jj,jk) * zmskv * wslpj_crs(ji,jj,jk) / e2t_crs(ji,jj) 
     266                  zcoef3 = zcoef0 * e1e2w_msk(ji,jj,jk) * zmsku * wslpi_crs(ji,jj,jk) / e1t_crs(ji,jj) 
     267                  zcoef4 = zcoef0 * e1e2w_msk(ji,jj,jk) * zmskv * wslpj_crs(ji,jj,jk) / e2t_crs(ji,jj) 
    268268                  ztfw(ji,jj,jk) = zcoef3 * (   zdit(ji  ,jj  ,jk-1) + zdit(ji-1,jj  ,jk)      & 
    269269                     &                        + zdit(ji-1,jj  ,jk-1) + zdit(ji  ,jj  ,jk)  )   & 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/TOP_SRC/TRP/trcldf_crs.F90

    r7806 r8103  
    1818   USE trc             ! ocean passive tracers variables 
    1919   USE trcnam_trp      ! passive tracers transport namelist variables 
    20    USE ldftra_oce      ! lateral diffusion coefficient on tracers 
     20   !USE ldftra_oce      ! lateral diffusion coefficient on tracers 
     21   USE ldftra_oce,ONLY: ln_traldf_grif,rn_aht_0,rn_ahtb_0,lk_traldf_eiv     ! lateral diffusion coefficient on tracers 
    2122   USE ldfslp          ! ??? 
    2223   USE traldf_bilapg   ! lateral mixing            (tra_ldf_bilapg routine) 
     
    5859      INTEGER, INTENT( in ) ::   kt   ! ocean time-step index 
    5960      !! 
    60       INTEGER            :: jn 
     61      INTEGER            :: ji,jj,jk,jn 
     62      REAL(wp)           :: zdep 
    6163      CHARACTER (len=22) :: charout 
    6264      REAL(wp), POINTER, DIMENSION(:,:,:,:) ::   ztrtrd 
     
    6870 
    6971      rldf = rldf_rat 
     72      ! 
     73      r_fact_lap(:,:,:) = 1. 
     74      DO jk= 1, jpk 
     75         DO jj = 1, jpj 
     76            DO ji = 1, jpi 
     77               IF( fsdept(ji,jj,jk) > 200. .AND. gphit(ji,jj) < 5. .AND. gphit(ji,jj) > -5. ) THEN 
     78                  zdep = MAX( fsdept(ji,jj,jk) - 1000., 0. ) / 1000. 
     79                  r_fact_lap(ji,jj,jk) = MAX( 1., rn_fact_lap * EXP( -zdep ) ) 
     80               ENDIF 
     81            END DO 
     82         END DO 
     83      END DO 
    7084 
    7185      IF( l_trdtrc )  THEN 
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/TOP_SRC/oce_trc.F90

    r7806 r8103  
    215215   USE crs , ONLY :   fr_i       =>    fr_i_crs       !: ice fraction (between 0 to 1) 
    216216 
    217    USE trcnam_trp , ONLY :  aht0     =>   rn_ahtrc_0        !: horizontal eddy diffusivity for tracers (m2/s) 
     217   USE ldftra_oce , ONLY :  aht0     =>   aht0        !: horizontal eddy diffusivity for tracers (m2/s) 
    218218   USE crs , ONLY :  ahtu     =>   ahtu_crs        !: lateral diffusivity coef. at u-points  
    219219   USE crs , ONLY :  ahtv     =>   ahtv_crs        !: lateral diffusivity coef. at v-points  
Note: See TracChangeset for help on using the changeset viewer.