Changeset 3952
- Timestamp:
- 2013-07-02T15:20:13+02:00 (11 years ago)
- 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 53 53 nevp = 120 ! number of EVP subcycling iterations 54 54 telast = 9600 ! timescale for EVP elastic waves 55 hminrhg = 0.05 ! ice thickness (m) below which ice velocity equal ocean velocity 55 56 alphaevp = 1.0 ! coefficient for the solution of EVP int. stresses 56 57 / -
branches/2013/dev_r3406_CNRS_LIM3/NEMOGCM/CONFIG/ORCA2_LIM/EXP00/xmlio_server.def
r2528 r3952 30 30 ! setting nn_nchunks_k = jpk will give a chunk size of 1 in the vertical which 31 31 ! is optimal for postprocessing which works exclusively with horizontal slabs 32 ln_nc4zip = . TRUE. ! (T) use netcdf4 chunking and compression32 ln_nc4zip = .FALSE. ! (T) use netcdf4 chunking and compression 33 33 ! (F) ignore chunking information and produce netcdf3-compatible files 34 34 / -
branches/2013/dev_r3406_CNRS_LIM3/NEMOGCM/CONFIG/README_config_lim3
r3932 r3952 1 1 to 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) 3 4 to compile config ORCA2_LIM3 4 5 ./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 124 124 125 125 ! add ssh if not vvl 126 #if ndefkey_vvl126 #if ! defined key_vvl 127 127 zdiff_v2 = zdiff_v2 + zdiff_v1 128 128 zdiff_hc = zdiff_hc + glob_sum( zsurf(:,:) * ( sshn(:,:) * tsn(:,:,1,jp_tem) & … … 149 149 ENDDO 150 150 ! add ssh if not vvl 151 #if ndefkey_vvl151 #if ! defined key_vvl 152 152 z_v2 = z_v2 + z_v1 153 153 z_hc = z_hc + glob_sum( zsurf(:,:) * sshn(:,:) * tsn(:,:,1,jp_tem) ) … … 307 307 frc_t = 0._wp 308 308 frc_s = 0._wp 309 ENDIF 309 ENDIF 310 310 311 311 ELSEIF( TRIM(cdrw) == 'WRITE' ) THEN ! Create restart file -
branches/2013/dev_r3406_CNRS_LIM3/NEMOGCM/NEMO/OPA_SRC/LBC/lib_mpp.F90
r3938 r3952 362 362 363 363 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 ) 365 365 !!---------------------------------------------------------------------- 366 366 !! *** routine mpp_lnk_3d *** … … 390 390 CHARACTER(len=3), OPTIONAL , INTENT(in ) :: cd_mpp ! fill the overlap area only 391 391 REAL(wp) , OPTIONAL , INTENT(in ) :: pval ! background value (used at closed boundaries) 392 LOGICAL , OPTIONAL , INTENT(in ) :: ldup ! duplicate value (used at closed boundaries)393 392 !! 394 393 INTEGER :: ji, jj, jk, jl ! dummy loop indices … … 428 427 ptab( 1 ,:,:) = ptab(jpim1,:,:) 429 428 ptab(jpi,:,:) = ptab( 2 ,:,:) 430 ELSEIF ( nperio == 0 .AND. PRESENT( ldup ) ) THEN431 ptab(3,:,:) = ptab(2,:,:)432 ptab(:,3,:) = ptab(:,2,:)433 ptab(nlci-2,:,:) = ptab(nlci-1,:,:)434 ptab(:,nlcj-2,:) = ptab(:,nlcj-1,:)435 436 429 ELSE !* closed 437 430 IF( .NOT. cd_type == 'F' ) ptab( 1 :jpreci,:,:) = zland ! south except F-point … … 566 559 567 560 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 ) 569 562 !!---------------------------------------------------------------------- 570 563 !! *** routine mpp_lnk_2d *** … … 592 585 CHARACTER(len=3), OPTIONAL , INTENT(in ) :: cd_mpp ! fill the overlap area only 593 586 REAL(wp) , OPTIONAL , INTENT(in ) :: pval ! background value (used at closed boundaries) 594 LOGICAL , OPTIONAL , INTENT(in ) :: ldup ! duplicate value (used at closed boundaries)595 587 !! 596 588 INTEGER :: ji, jj, jl ! dummy loop indices … … 629 621 pt2d( 1 ,:) = pt2d(jpim1,:) ! west 630 622 pt2d(jpi,:) = pt2d( 2 ,:) ! east 631 ELSEIF ( nperio == 0 .AND. PRESENT( ldup ) ) THEN632 pt2d(3,:) = pt2d(2,:)633 pt2d(:,3) = pt2d(:,2)634 pt2d(nlci-2,:) = pt2d(nlci-1,:)635 pt2d(:,nlcj-2) = pt2d(:,nlcj-1)636 623 ELSE ! closed 637 624 IF( .NOT. cd_type == 'F' ) pt2d( 1 :jpreci,:) = zland ! south except F-point … … 2024 2011 CALL MPI_ALLREDUCE( kice, zwork, jpnij, mpi_integer, mpi_sum, mpi_comm_opa, ierr ) 2025 2012 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 ) THEN2029 !SF DEALLOCATE(kice, zwork)2030 !SF RETURN2031 !SF ENDIF2032 2013 2033 2014 ! Allocate the right size to nrank_north … … 2046 2027 ! Create the world group 2047 2028 CALL MPI_COMM_GROUP( mpi_comm_opa, ngrp_world, ierr ) 2048 2029 2049 2030 ! Create the ice group from the world group 2050 2031 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 35 35 REAL(wp) :: zd_max ! maximum grid spacing over the global domain 36 36 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 41 38 !!---------------------------------------------------------------------- 42 39 ! … … 91 88 CALL ldf_dyn_c3d_orca( ld_print ) 92 89 ENDIF 93 94 ! Control print95 IF(lwp .AND. ld_print ) THEN96 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 ENDIF103 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 106 103 107 104 ! ahm3 and ahm4 at U- and V-points (used for bilaplacian operator … … 175 172 WRITE(numout,*) 176 173 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) 178 175 WRITE(numout,*) 179 176 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) 181 178 ENDIF 182 179 ENDIF -
branches/2013/dev_r3406_CNRS_LIM3/NEMOGCM/NEMO/OPA_SRC/SBC/sbcfwb.F90
r3938 r3952 98 98 emp (:,:) = emp (:,:) - z_fwf 99 99 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 101 103 ENDIF 102 104 ! … … 129 131 emp (:,:) = emp (:,:) + fwfold 130 132 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 132 136 ENDIF 133 137 ! … … 171 175 ! 172 176 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 174 180 erp (:,:) = erp (:,:) + zerp_cor(:,:) 175 181 ! -
branches/2013/dev_r3406_CNRS_LIM3/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssr.F90
r3938 r3952 176 176 zerp = zsrp * ( 1. - 2.*rnfmsk(ji,jj) ) & ! No damping in vicinity of river mouths 177 177 & * ( sss_m(ji,jj) - sf_sss(1)%fnow(ji,jj,1) ) 178 #if defined key_lim3 178 179 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 179 183 erp (ji,jj) = zerp / MAX( sss_m(ji,jj), 1.e-20 ) ! converted into an equivalent volume flux (diagnostic only) 180 184 END DO … … 193 197 IF( ln_sssr_bnd ) zerp = SIGN( 1., zerp ) * MIN( zerp_bnd, ABS(zerp) ) 194 198 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 195 202 erp(ji,jj) = zerp 196 203 END DO -
branches/2013/dev_r3406_CNRS_LIM3/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90
r3938 r3952 45 45 LOGICAL , PUBLIC :: ln_qsr_2bd = .TRUE. !: 2 band light absorption flag 46 46 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) 48 48 INTEGER , PUBLIC :: nn_chldta = 0 !: use Chlorophyll data (=1) or not (=0) 49 49 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 169 169 sbc_tsc(ji,jj,jp_tem) = ro0cpr * qns(ji,jj) - zsrau * emp(ji,jj) * tsn(ji,jj,1,jp_tem) 170 170 ! 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 172 172 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 173 176 END DO 174 177 END DO
Note: See TracChangeset
for help on using the changeset viewer.