Changeset 10179
- Timestamp:
- 2018-10-08T14:47:55+02:00 (6 years ago)
- Location:
- NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE
- Files:
-
- 2 added
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/LBC/mpp_lnk_generic.h90
r10172 r10179 155 155 IF ( ncom_stp == nit000 ) THEN 156 156 IF( .NOT. ALLOCATED( ncomm_sequence) ) THEN 157 ALLOCATE( ncomm_sequence( 1000,2), STAT=ierr )157 ALLOCATE( ncomm_sequence(2000,2), STAT=ierr ) 158 158 IF( ierr /= 0 ) CALL ctl_stop( 'STOP', 'lnk_generic, cannot allocate ncomm_sequence' ) 159 ALLOCATE( crname( 1000), STAT=ierr )159 ALLOCATE( crname(2000), STAT=ierr ) 160 160 IF( ierr /= 0 ) CALL ctl_stop( 'STOP', 'lnk_generic, cannot allocate crname' ) 161 161 ENDIF 162 162 n_sequence = n_sequence + 1 163 IF( n_sequence > 1000 ) CALL ctl_stop( 'STOP', 'lnk_generic, increase ncomm_sequence first dimension' )163 IF( n_sequence > 2000 ) CALL ctl_stop( 'STOP', 'lnk_generic, increase ncomm_sequence first dimension' ) 164 164 ncomm_sequence(n_sequence,1) = ipk*ipl ! size of 3rd and 4th dimensions 165 165 ncomm_sequence(n_sequence,2) = ipf ! number of arrays to be treated (multi) … … 172 172 WRITE(numout,*) ' -----------------------------------------------' 173 173 WRITE(numout,*) ' ' 174 WRITE(numout,'(A,I 3)') ' Exchanged halos : ', n_sequence174 WRITE(numout,'(A,I4)') ' Exchanged halos : ', n_sequence 175 175 jj = 0; jk = 0; jf = 0; jh = 0 176 176 DO ji = 1, n_sequence -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/SBC/sbcssm.F90
r10068 r10179 18 18 USE sbcapr ! surface boundary condition: atmospheric pressure 19 19 USE eosbn2 ! equation of state and related derivatives 20 USE traqsr, ONLY: ln_traqsr 20 21 ! 21 22 USE in_out_manager ! I/O manager … … 253 254 ENDIF 254 255 ! 256 IF( .NOT. ln_traqsr ) fraqsr_1lev(:,:) = 1._wp ! default definition: qsr 100% in the fisrt level 257 ! 255 258 IF( lwxios.AND.nn_fsbc > 1 ) THEN 256 259 CALL iom_set_rstw_var_active('nn_fsbc') -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/tests/BENCH/EXPREF/namelist_cfg_orca025_like
r9846 r10179 53 53 !----------------------------------------------------------------------- 54 54 ln_usr = .true. ! user defined formulation (T => check usrdef_sbc) 55 ln_traqsr = .true. ! Light penetration in the ocean (T => fill namtra_qsr) 55 56 / 56 57 … … 83 84 !!====================================================================== 84 85 ! 86 !----------------------------------------------------------------------- 87 &namtra_qsr ! penetrative solar radiation (ln_traqsr =T) 88 !----------------------------------------------------------------------- 89 ! ! type of penetration (default: NO selection) 90 ln_qsr_rgb = .true. ! RGB light penetration (Red-Green-Blue) 91 nn_chldta = 0 ! RGB : Chl data (=1) or cst value (=0) 92 / 85 93 !----------------------------------------------------------------------- 86 94 &namdrg ! top/bottom drag coefficient (default: NO selection) -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/tests/BENCH/EXPREF/namelist_cfg_orca12_like
r9848 r10179 53 53 !----------------------------------------------------------------------- 54 54 ln_usr = .true. ! user defined formulation (T => check usrdef_sbc) 55 ln_traqsr = .true. ! Light penetration in the ocean (T => fill namtra_qsr) 55 56 / 56 57 … … 83 84 !!====================================================================== 84 85 ! 86 !----------------------------------------------------------------------- 87 &namtra_qsr ! penetrative solar radiation (ln_traqsr =T) 88 !----------------------------------------------------------------------- 89 ! ! type of penetration (default: NO selection) 90 ln_qsr_rgb = .true. ! RGB light penetration (Red-Green-Blue) 91 nn_chldta = 0 ! RGB : Chl data (=1) or cst value (=0) 92 / 85 93 !----------------------------------------------------------------------- 86 94 &namdrg ! top/bottom drag coefficient (default: NO selection) -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/tests/BENCH/EXPREF/namelist_cfg_orca1_like
r9846 r10179 53 53 !----------------------------------------------------------------------- 54 54 ln_usr = .true. ! user defined formulation (T => check usrdef_sbc) 55 ln_traqsr = .true. ! Light penetration in the ocean (T => fill namtra_qsr) 55 56 / 56 57 … … 83 84 !!====================================================================== 84 85 ! 86 !----------------------------------------------------------------------- 87 &namtra_qsr ! penetrative solar radiation (ln_traqsr =T) 88 !----------------------------------------------------------------------- 89 ! ! type of penetration (default: NO selection) 90 ln_qsr_rgb = .true. ! RGB light penetration (Red-Green-Blue) 91 nn_chldta = 0 ! RGB : Chl data (=1) or cst value (=0) 92 / 85 93 !----------------------------------------------------------------------- 86 94 &namdrg ! top/bottom drag coefficient (default: NO selection) -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/tests/BENCH/MY_SRC/diawri.F90
r10170 r10179 408 408 SUBROUTINE dia_wri( kt ) 409 409 INTEGER, INTENT( in ) :: kt ! ocean time-step index 410 411 IF( ninist == 1 ) THEN !== Output the initial state and forcings ==! 412 CALL dia_wri_state( 'output.init', kt ) 413 ninist = 0 414 ENDIF 415 410 416 END SUBROUTINE dia_wri 411 417 -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/tests/BENCH/MY_SRC/usrdef_istate.F90
r10170 r10179 53 53 ! 54 54 REAL(wp), DIMENSION(jpi,jpj) :: z2d ! 2D workspace 55 INTEGER :: ji, jj, jk 55 REAL(wp) :: zfact 56 INTEGER :: ji, jj, jk 56 57 !!---------------------------------------------------------------------- 57 58 ! … … 60 61 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~~ ' 61 62 ! 62 ! define unique value on each point 63 ! define unique value on each point. z2d ranging from 0.05 to -0.05 63 64 DO jj = 1, jpj 64 65 DO ji = 1, jpi 65 z2d(ji,jj) = ( 0.5_wp - REAL( nimpp + ji - 1 + ( njmpp + jj - 2 ) * jpiglo) / REAL ( jpiglo * jpjglo ) ) * 0.1_wp66 z2d(ji,jj) = 0.1 * ( 0.5 - REAL( nimpp + ji - 1 + ( njmpp + jj - 2 ) * jpiglo, wp ) / REAL( jpiglo * jpjglo, wp ) ) 66 67 ENDDO 67 68 ENDDO 68 69 ! 69 70 ! sea level: 70 pssh(:,:) = z2d(:,:) 71 pssh(:,:) = z2d(:,:) ! +/- 0.05 m 71 72 ! 72 73 DO jk = 1, jpk 73 ! temperature: 74 pts(:,:,jk,jp_tem) = 10._wp + z2d(:,:) * 2._wp 74 zfact = REAL(jk-1,wp) / REAL(jpk-1,wp) ! 0 to 1 to add a basic stratification 75 ! temperature choosen to lead to 20% ice 76 pts(:,:,jk,jp_tem) = 2._wp - 0.1_wp * zfact + z2d(:,:) * 100._wp ! 2 to 1.9 +/- 5 degG 77 WHERE ( pts(:,:,jk,jp_tem) < -1.5_wp ) pts(:,:,jk,jp_tem) = -1.5_wp + z2d(:,:) * 0.2_wp 75 78 ! salinity: 76 pts(:,:,jk,jp_sal) = 3 5._wp + z2d(:,:)79 pts(:,:,jk,jp_sal) = 30._wp + 1._wp * zfact + z2d(:,:) ! 30 to 31 +/- 0.05 psu 77 80 ! velocities: 78 pu(:,:,jk) = z2d(:,:) * 0.1_wp 79 pv(:,:,jk) = z2d(:,:) * 0.01_wp 81 pu(:,:,jk) = z2d(:,:) * 0.1_wp ! +/- 0.005 m/s 82 pv(:,:,jk) = z2d(:,:) * 0.01_wp ! +/- 0.0005 m/s 80 83 ENDDO 81 84 ! -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/tests/BENCH/MY_SRC/usrdef_sbc.F90
r9762 r10179 13 13 !! usr_def_sbc : user defined surface bounday conditions in BENCH case 14 14 !!---------------------------------------------------------------------- 15 USE par_oce ! ocean space and time domain 16 USE dom_oce 17 USE oce ! ocean dynamics and tracers 15 18 USE sbc_oce ! Surface boundary condition: ocean fields 19 USE sbc_ice ! Surface boundary condition: ocean fields 16 20 USE in_out_manager ! I/O manager 21 USE phycst ! physical constants 22 USE lib_mpp ! MPP library 23 USE lbclnk ! lateral boundary conditions - mpp exchanges 24 25 #if defined key_si3 26 USE ice, ONLY : at_i_b, a_i_b 27 #endif 17 28 18 29 IMPLICIT NONE … … 61 72 qns (:,:) = 0._wp 62 73 qsr (:,:) = 0._wp 63 ! 74 ! 75 utau_b(:,:) = 0._wp 76 vtau_b(:,:) = 0._wp 77 emp_b (:,:) = 0._wp 78 sfx_b (:,:) = 0._wp 79 qns_b (:,:) = 0._wp 80 ! 64 81 ENDIF 65 82 … … 67 84 END SUBROUTINE usrdef_sbc_oce 68 85 86 69 87 SUBROUTINE usrdef_sbc_ice_tau( kt ) 88 !!--------------------------------------------------------------------- 89 !! *** ROUTINE usrdef_sbc_ice_tau *** 90 !! 91 !! ** Purpose : provide the surface boundary (momentum) condition over 92 !sea-ice 93 !!--------------------------------------------------------------------- 70 94 INTEGER, INTENT(in) :: kt ! ocean time step 95 ! 96 REAL(wp), DIMENSION(jpi,jpj) :: z2d ! 2D workspace 97 INTEGER :: ji, jj 98 !!--------------------------------------------------------------------- 99 #if defined key_si3 100 IF( kt==nit000 .AND. lwp) WRITE(numout,*)' usrdef_sbc_ice : BENCH case: constant stress forcing' 101 ! 102 ! define unique value on each point. z2d ranging from 0.05 to -0.05 103 DO jj = 1, jpj 104 DO ji = 1, jpi 105 z2d(ji,jj) = 0.1 * ( 0.5 - REAL( nimpp + ji - 1 + ( njmpp + jj - 2 ) * jpiglo, wp ) / REAL( jpiglo * jpjglo, wp ) ) 106 ENDDO 107 ENDDO 108 utau_ice(:,:) = 0.1_wp + z2d(:,:) 109 vtau_ice(:,:) = 0.1_wp + z2d(:,:) 110 111 CALL lbc_lnk_multi( 'usrdef_sbc', utau_ice, 'U', -1., vtau_ice, 'V', -1. ) 112 #endif 113 ! 71 114 END SUBROUTINE usrdef_sbc_ice_tau 72 115 73 SUBROUTINE usrdef_sbc_ice_flx( kt ) 116 117 SUBROUTINE usrdef_sbc_ice_flx( kt, phs, phi ) 118 !!--------------------------------------------------------------------- 119 !! *** ROUTINE usrdef_sbc_ice_flx *** 120 !! 121 !! ** Purpose : provide the surface boundary (flux) condition over 122 !sea-ice 123 !!--------------------------------------------------------------------- 74 124 INTEGER, INTENT(in) :: kt ! ocean time step 125 REAL(wp), DIMENSION(:,:,:), INTENT(in) :: phs ! snow thickness 126 REAL(wp), DIMENSION(:,:,:), INTENT(in) :: phi ! ice thickness 127 !! 128 REAL(wp) :: zfr1, zfr2 ! local variables 129 REAL(wp), DIMENSION(jpi,jpj) :: zsnw ! snw distribution after wind blowing 130 !!--------------------------------------------------------------------- 131 ! 132 #if defined key_si3 133 IF( kt==nit000 .AND. lwp) WRITE(numout,*)' usrdef_sbc_ice : BENCH case: NO flux forcing' 134 ! 135 ! ocean variables (renaming) 136 emp_oce (:,:) = 0._wp ! uniform value for freshwater budget (E-P) 137 qsr_oce (:,:) = 0._wp ! uniform value for solar radiation 138 qns_oce (:,:) = 0._wp ! uniform value for non-solar radiation 139 140 ! ice variables 141 alb_ice (:,:,:) = 0.7_wp ! useless 142 qsr_ice (:,:,:) = 0._wp ! uniform value for solar radiation 143 qns_ice (:,:,:) = 0._wp ! uniform value for non-solar radiation 144 sprecip (:,:) = 0._wp ! uniform value for snow precip 145 evap_ice(:,:,:) = 0._wp ! uniform value for sublimation 146 147 ! ice fields deduced from above 148 zsnw(:,:) = 1._wp 149 !!CALL lim_thd_snwblow( at_i_b, zsnw ) ! snow distribution over ice after 150 !wind blowing 151 emp_ice (:,:) = SUM( a_i_b(:,:,:) * evap_ice(:,:,:), dim=3 ) - sprecip(:,:) * zsnw(:,:) 152 emp_oce (:,:) = emp_oce(:,:) - sprecip(:,:) * (1._wp - zsnw(:,:) ) 153 qevap_ice(:,:,:) = 0._wp 154 qprec_ice(:,:) = rhos * ( sst_m(:,:) * rcpi - rLfus ) * tmask(:,:,1) ! in J/m3 155 qemp_oce (:,:) = - emp_oce(:,:) * sst_m(:,:) * rcp 156 qemp_ice (:,:) = sprecip(:,:) * zsnw * ( sst_m(:,:) * rcpi - rLfus ) * tmask(:,:,1) ! solid precip (only) 157 158 ! total fluxes 159 emp_tot (:,:) = emp_ice + emp_oce 160 qns_tot (:,:) = at_i_b(:,:) * qns_oce(:,:) + SUM( a_i_b(:,:,:) * qns_ice(:,:,:), dim=3 ) + qemp_ice(:,:) + qemp_oce(:,:) 161 qsr_tot (:,:) = at_i_b(:,:) * qsr_oce(:,:) + SUM( a_i_b(:,:,:) * qsr_ice(:,:,:), dim=3 ) 162 163 ! --- shortwave radiation transmitted below the surface (W/m2, see Grenfell Maykut 77) --- ! 164 zfr1 = ( 0.18 * ( 1.0 - cldf_ice ) + 0.35 * cldf_ice ) ! transmission when hi>10cm 165 zfr2 = ( 0.82 * ( 1.0 - cldf_ice ) + 0.65 * cldf_ice ) ! zfr2 such that zfr1 + zfr2 to equal 1 166 ! 167 WHERE ( phs(:,:,:) <= 0._wp .AND. phi(:,:,:) < 0.1_wp ) ! linear decrease from hi=0 to 10cm 168 qtr_ice_top(:,:,:) = qsr_ice(:,:,:) * ( zfr1 + zfr2 * ( 1._wp - phi(:,:,:) * 10._wp ) ) 169 ELSEWHERE( phs(:,:,:) <= 0._wp .AND. phi(:,:,:) >= 0.1_wp ) ! constant (zfr1) when hi>10cm 170 qtr_ice_top(:,:,:) = qsr_ice(:,:,:) * zfr1 171 ELSEWHERE ! zero when hs>0 172 qtr_ice_top(:,:,:) = 0._wp 173 END WHERE 174 #endif 175 75 176 END SUBROUTINE usrdef_sbc_ice_flx 76 177 -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/tests/BENCH/cpp_BENCH.fcm
r9762 r10179 1 bld::tool::fppkeys key_mpp_mpi 1 bld::tool::fppkeys key_mpp_mpi key_si3 -
NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/tests/demo_cfgs.txt
r10166 r10179 6 6 VORTEX OCE NST 7 7 WAD OCE 8 BENCH OCE 8 BENCH OCE ICE
Note: See TracChangeset
for help on using the changeset viewer.