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 3952 for branches/2013/dev_r3406_CNRS_LIM3 – NEMO

Ignore:
Timestamp:
2013-07-02T15:20:13+02:00 (11 years ago)
Author:
flavoni
Message:

ok for LIM2, still reproducibility error on LIM3 case

Location:
branches/2013/dev_r3406_CNRS_LIM3/NEMOGCM
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • branches/2013/dev_r3406_CNRS_LIM3/NEMOGCM/CONFIG/ORCA2_LIM/EXP00/namelist_ice_lim2

    r2580 r3952  
    5353   nevp        =   120     !  number of EVP subcycling iterations 
    5454   telast      =   9600    !  timescale for EVP elastic waves 
     55   hminrhg     =   0.05     !  ice thickness (m) below which ice velocity equal ocean velocity 
    5556   alphaevp    =   1.0     !  coefficient for the solution of EVP int. stresses 
    5657/ 
  • branches/2013/dev_r3406_CNRS_LIM3/NEMOGCM/CONFIG/ORCA2_LIM/EXP00/xmlio_server.def

    r2528 r3952  
    3030                              !  setting nn_nchunks_k = jpk will give a chunk size of 1 in the vertical which 
    3131                              !  is optimal for postprocessing which works exclusively with horizontal slabs 
    32    ln_nc4zip      =   .TRUE.  !  (T) use netcdf4 chunking and compression 
     32   ln_nc4zip      =   .FALSE.  !  (T) use netcdf4 chunking and compression 
    3333                              !  (F) ignore chunking information and produce netcdf3-compatible files   
    3434/ 
  • branches/2013/dev_r3406_CNRS_LIM3/NEMOGCM/CONFIG/README_config_lim3

    r3932 r3952  
    11to create config ORCA2_LIM3 with NEMO_clement: 
    2 ./makenemo -n ORCA2_LIM3 -r ORCA2_LIM -s NEMO_clement -m x3750_ADA -j0 
     2./makenemo -n ORCA2_LIM3 -r ORCA2_LIM  -m x3750_ADA -j0 
     3(change cpp keys, with key_lim3) 
    34to compile config ORCA2_LIM3 
    45./makenemo -n ORCA2_LIM3 -s NEMO_clement -m x3750_ADA -j8 
  • branches/2013/dev_r3406_CNRS_LIM3/NEMOGCM/NEMO/OPA_SRC/DIA/diahsb.F90

    r3938 r3952  
    124124       
    125125      ! add ssh if not vvl 
    126 #ifndef key_vvl 
     126#if ! defined key_vvl 
    127127     zdiff_v2 = zdiff_v2 + zdiff_v1 
    128128     zdiff_hc = zdiff_hc + glob_sum( zsurf(:,:) * ( sshn(:,:) * tsn(:,:,1,jp_tem)   & 
     
    149149      ENDDO 
    150150      ! add ssh if not vvl 
    151 #ifndef key_vvl 
     151#if ! defined key_vvl 
    152152     z_v2 = z_v2 + z_v1 
    153153     z_hc = z_hc + glob_sum( zsurf(:,:) * sshn(:,:) * tsn(:,:,1,jp_tem) ) 
     
    307307          frc_t = 0._wp                                            
    308308          frc_s = 0._wp                                                   
    309        ENDIF    
     309       ENDIF 
    310310 
    311311     ELSEIF( TRIM(cdrw) == 'WRITE' ) THEN   ! Create restart file 
  • branches/2013/dev_r3406_CNRS_LIM3/NEMOGCM/NEMO/OPA_SRC/LBC/lib_mpp.F90

    r3938 r3952  
    362362 
    363363 
    364    SUBROUTINE mpp_lnk_3d( ptab, cd_type, psgn, cd_mpp, pval, ldup ) 
     364   SUBROUTINE mpp_lnk_3d( ptab, cd_type, psgn, cd_mpp, pval ) 
    365365      !!---------------------------------------------------------------------- 
    366366      !!                  ***  routine mpp_lnk_3d  *** 
     
    390390      CHARACTER(len=3), OPTIONAL      , INTENT(in   ) ::   cd_mpp   ! fill the overlap area only  
    391391      REAL(wp)        , OPTIONAL      , INTENT(in   ) ::   pval     ! background value (used at closed boundaries) 
    392       LOGICAL         , OPTIONAL      , INTENT(in   ) ::   ldup     ! duplicate value (used at closed boundaries) 
    393392      !! 
    394393      INTEGER  ::   ji, jj, jk, jl             ! dummy loop indices 
     
    428427            ptab( 1 ,:,:) = ptab(jpim1,:,:) 
    429428            ptab(jpi,:,:) = ptab(  2  ,:,:) 
    430          ELSEIF ( nperio == 0 .AND. PRESENT( ldup ) ) THEN 
    431             ptab(3,:,:) = ptab(2,:,:) 
    432             ptab(:,3,:) = ptab(:,2,:) 
    433             ptab(nlci-2,:,:) = ptab(nlci-1,:,:) 
    434             ptab(:,nlcj-2,:) = ptab(:,nlcj-1,:) 
    435             
    436429         ELSE                                     !* closed 
    437430            IF( .NOT. cd_type == 'F' )   ptab(     1       :jpreci,:,:) = zland    ! south except F-point 
     
    566559 
    567560 
    568    SUBROUTINE mpp_lnk_2d( pt2d, cd_type, psgn, cd_mpp, pval, ldup ) 
     561   SUBROUTINE mpp_lnk_2d( pt2d, cd_type, psgn, cd_mpp, pval ) 
    569562      !!---------------------------------------------------------------------- 
    570563      !!                  ***  routine mpp_lnk_2d  *** 
     
    592585      CHARACTER(len=3), OPTIONAL  , INTENT(in   ) ::   cd_mpp   ! fill the overlap area only  
    593586      REAL(wp)        , OPTIONAL  , INTENT(in   ) ::   pval     ! background value (used at closed boundaries) 
    594       LOGICAL         , OPTIONAL  , INTENT(in   ) ::   ldup     ! duplicate value (used at closed boundaries) 
    595587      !! 
    596588      INTEGER  ::   ji, jj, jl   ! dummy loop indices 
     
    629621            pt2d( 1 ,:) = pt2d(jpim1,:)                                    ! west 
    630622            pt2d(jpi,:) = pt2d(  2  ,:)                                    ! east 
    631          ELSEIF ( nperio == 0 .AND. PRESENT( ldup ) ) THEN 
    632             pt2d(3,:) = pt2d(2,:) 
    633             pt2d(:,3) = pt2d(:,2) 
    634             pt2d(nlci-2,:) = pt2d(nlci-1,:) 
    635             pt2d(:,nlcj-2) = pt2d(:,nlcj-1) 
    636623         ELSE                                     ! closed 
    637624            IF( .NOT. cd_type == 'F' )   pt2d(     1       :jpreci,:) = zland    ! south except F-point 
     
    20242011      CALL MPI_ALLREDUCE( kice, zwork, jpnij, mpi_integer, mpi_sum, mpi_comm_opa, ierr ) 
    20252012      ndim_rank_ice = SUM( zwork )           
    2026   
    2027       !SF ! if there is no ice in the domain, return to the main program (clem modif) 
    2028      !SF  IF ( ndim_rank_ice == 0 ) THEN 
    2029       !SF    DEALLOCATE(kice, zwork) 
    2030      !SF     RETURN 
    2031      !SF  ENDIF 
    20322013 
    20332014      ! Allocate the right size to nrank_north 
     
    20462027      ! Create the world group 
    20472028      CALL MPI_COMM_GROUP( mpi_comm_opa, ngrp_world, ierr ) 
    2048   
     2029 
    20492030      ! Create the ice group from the world group 
    20502031      CALL MPI_GROUP_INCL( ngrp_world, ndim_rank_ice, nrank_ice, ngrp_ice, ierr ) 
  • branches/2013/dev_r3406_CNRS_LIM3/NEMOGCM/NEMO/OPA_SRC/LDF/ldfdyn_c3d.h90

    r3938 r3952  
    3535      REAL(wp) ::   zd_max       ! maximum grid spacing over the global domain 
    3636      REAL(wp) ::   za00, zc, zd, zetmax, zefmax, zeumax, zevmax   ! local scalars 
    37       REAL(wp), POINTER, DIMENSION(:)   :: zcoef    
    38       INTEGER,  PARAMETER               :: zrim = 5  ! number of grid points over which diffusion is increased linearly 
    39       REAL(wp), PARAMETER               :: zinc_coef = 0.0 ! coef of diffusion increase   
    40       INTEGER  ::   ii0, ii1, ij0, ij1   ! temporary integers 
     37      REAL(wp), POINTER, DIMENSION(:) :: zcoef    
    4138      !!---------------------------------------------------------------------- 
    4239      ! 
     
    9188            CALL ldf_dyn_c3d_orca( ld_print ) 
    9289         ENDIF 
    93      
    94           ! Control print 
    95          IF(lwp .AND. ld_print ) THEN 
    96             WRITE(numout,*) 
    97             WRITE(numout,*) '         3D ahm1 array (k=1)' 
    98             CALL prihre( ahm1(:,:,1), jpi, jpj, 1, jpi, 1, 1, jpj, 1, 1.e-3, numout ) 
    99             WRITE(numout,*) 
    100             WRITE(numout,*) '         3D ahm2 array (k=1)' 
    101             CALL prihre( ahm2(:,:,1), jpi, jpj, 1, jpi, 1, 1, jpj, 1, 1.e-3, numout ) 
    102          ENDIF 
    103  
    104       ENDIF 
    105        
     90 
     91      ENDIF 
     92       
     93      ! Control print 
     94      IF(lwp .AND. ld_print ) THEN 
     95         WRITE(numout,*) 
     96         WRITE(numout,*) '         3D ahm1 array (k=1)' 
     97         CALL prihre( ahm1(:,:,1), jpi, jpj, 1, jpi, 20, 1, jpj, 20, 1.e-3, numout ) 
     98         WRITE(numout,*) 
     99         WRITE(numout,*) '         3D ahm2 array (k=1)' 
     100         CALL prihre( ahm2(:,:,1), jpi, jpj, 1, jpi, 20, 1, jpj, 20, 1.e-3, numout ) 
     101      ENDIF 
     102 
    106103 
    107104      ! ahm3 and ahm4 at U- and V-points (used for bilaplacian operator 
     
    175172            WRITE(numout,*) 
    176173            WRITE(numout,*) 'inildf: ahm3 array at level 1' 
    177             CALL prihre(ahm3(:,:,1  ),jpi,jpj,1,jpi,1,1,jpj,1,1.e-12,numout) 
     174            CALL prihre(ahm3(:,:,1  ),jpi,jpj,1,jpi,1,1,jpj,1,1.e-3,numout) 
    178175            WRITE(numout,*) 
    179176            WRITE(numout,*) 'inildf: ahm4 array at level 1' 
    180             CALL prihre(ahm4(:,:,jpk),jpi,jpj,1,jpi,1,1,jpj,1,1.e-12,numout) 
     177            CALL prihre(ahm4(:,:,jpk),jpi,jpj,1,jpi,1,1,jpj,1,1.e-3,numout) 
    181178         ENDIF 
    182179      ENDIF 
  • branches/2013/dev_r3406_CNRS_LIM3/NEMOGCM/NEMO/OPA_SRC/SBC/sbcfwb.F90

    r3938 r3952  
    9898            emp (:,:) = emp (:,:) - z_fwf  
    9999            erp (:,:) = erp (:,:) - z_fwf  
    100 !SF bad            emps(:,:) = emps(:,:) - z_fwf  
     100#if defined key_lim2 
     101            emps(:,:) = emps(:,:) - z_fwf      ! emps is the mass flux in lim2 case 
     102#endif 
    101103         ENDIF 
    102104         ! 
     
    129131            emp (:,:) = emp (:,:) + fwfold 
    130132            erp (:,:) = erp (:,:) + fwfold 
    131 !SF bad            emps(:,:) = emps(:,:) + fwfold 
     133#if defined key_lim2 
     134            emps(:,:) = emps(:,:) + fwfold      ! emps is the mass flux in lim2 case 
     135#endif 
    132136         ENDIF 
    133137         ! 
     
    171175            ! 
    172176            emp (:,:) = emp (:,:) + zerp_cor(:,:) 
    173 !SF bad            emps(:,:) = emps(:,:) + zerp_cor(:,:) 
     177#if defined key_lim2 
     178            emps(:,:) = emps(:,:) + zerp_cor(:,:)      ! emps is the mass flux in lim2 case 
     179#endif 
    174180            erp (:,:) = erp (:,:) + zerp_cor(:,:) 
    175181            ! 
  • branches/2013/dev_r3406_CNRS_LIM3/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssr.F90

    r3938 r3952  
    176176                     zerp = zsrp * ( 1. - 2.*rnfmsk(ji,jj) )   &      ! No damping in vicinity of river mouths 
    177177                        &        * ( sss_m(ji,jj) - sf_sss(1)%fnow(ji,jj,1) )    
     178#if defined key_lim3 
    178179                     emps(ji,jj) = emps(ji,jj) + zerp 
     180#else 
     181                     emps(ji,jj) = emps(ji,jj) + zerp / MAX( sss_m(ji,jj) , 1.e-20 )      ! lim2 case emps is a mass flux 
     182#endif 
    179183                     erp (ji,jj) = zerp / MAX( sss_m(ji,jj), 1.e-20 ) ! converted into an equivalent volume flux (diagnostic only) 
    180184                  END DO 
     
    193197                     IF( ln_sssr_bnd )   zerp = SIGN( 1., zerp ) * MIN( zerp_bnd, ABS(zerp) ) 
    194198                     emp(ji,jj) = emp (ji,jj) + zerp 
     199#if defined key_lim2 
     200                     emps(ji,jj) = emps(ji,jj) + zerp      ! lim2 case: emps is a mass flux 
     201#endif 
    195202                     erp(ji,jj) = zerp 
    196203                  END DO 
  • branches/2013/dev_r3406_CNRS_LIM3/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90

    r3938 r3952  
    4545   LOGICAL , PUBLIC ::   ln_qsr_2bd = .TRUE.    !: 2 band         light absorption flag 
    4646   LOGICAL , PUBLIC ::   ln_qsr_bio = .FALSE.   !: bio-model      light absorption flag 
    47    LOGICAL , PUBLIC ::   ln_qsr_ice = .TRUE.    !: light penetration for ice-model LIM3 (clem) 
     47   LOGICAL , PUBLIC ::   ln_qsr_ice = .FALSE.   !: light penetration for ice-model LIM3 (clem) 
    4848   INTEGER , PUBLIC ::   nn_chldta  = 0         !: use Chlorophyll data (=1) or not (=0) 
    4949   REAL(wp), PUBLIC ::   rn_abs     = 0.58_wp   !: fraction absorbed in the very near surface (RGB & 2 bands) 
  • branches/2013/dev_r3406_CNRS_LIM3/NEMOGCM/NEMO/OPA_SRC/TRA/trasbc.F90

    r3938 r3952  
    169169               sbc_tsc(ji,jj,jp_tem) = ro0cpr * qns(ji,jj) - zsrau * emp(ji,jj) * tsn(ji,jj,1,jp_tem) 
    170170               ! concent./dilut. effect due to sea-ice melt/formation and (possibly) SSS restoration 
    171                !sbc_tsc(ji,jj,jp_sal) = ( emps(ji,jj) - emp(ji,jj) ) * zsrau * tsn(ji,jj,1,jp_sal) 
     171#if defined key_lim3 
    172172               sbc_tsc(ji,jj,jp_sal) = emps(ji,jj) * zsrau  ! IOVINO + CLEM 
     173#else 
     174               sbc_tsc(ji,jj,jp_sal) = ( emps(ji,jj) - emp(ji,jj) ) * zsrau * tsn(ji,jj,1,jp_sal) 
     175#endif 
    173176            END DO 
    174177         END DO 
Note: See TracChangeset for help on using the changeset viewer.