Changeset 8750 for branches/UKMO
- Timestamp:
- 2017-11-20T12:45:31+01:00 (6 years ago)
- Location:
- branches/UKMO/r8727_WAVE-2_Clementi_add_coupling/NEMOGCM
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/r8727_WAVE-2_Clementi_add_coupling/NEMOGCM/CONFIG/SHARED/namelist_ref
r8749 r8750 216 216 ln_cdgw = .false. ! Neutral drag coefficient read from wave model (T => ln_wave=.true. & fill namsbc_wave) 217 217 ln_sdw = .false. ! Read 2D Surf Stokes Drift & Computation of 3D stokes drift (T => ln_wave=.true. & fill namsbc_wave) 218 nn_sdrift = 0 ! Parameterization for the calculation of 3D-Stokes drift from the surface Stokes drift 219 ! = 0 Breivik 2015 parameterization: v_z=v_0*[exp(2*k*z)/(1-8*k*z)] 220 ! = 1 Phillips: v_z=v_o*[exp(2*k*z)-beta*sqrt(-2*k*pi*z)*erfc(sqrt(-2*k*z))] 221 ! = 2 Phillips as (1) but using the wave frequency from a wave model 218 222 ln_tauoc = .false. ! Activate ocean stress modified by external wave induced stress (T => ln_wave=.true. & fill namsbc_wave) 219 223 ln_stcor = .false. ! Activate Stokes Coriolis term (T => ln_wave=.true. & ln_sdw=.true. & fill namsbc_wave) … … 298 302 sn_rcv_sdrfy = 'none' , 'no' , '' , '' , '' 299 303 sn_rcv_wper = 'none' , 'no' , '' , '' , '' 304 sn_rcv_wfreq = 'none' , 'no' , '' , '' , '' 300 305 sn_rcv_wnum = 'none' , 'no' , '' , '' , '' 301 306 sn_rcv_wstrf = 'none' , 'no' , '' , '' , '' … … 456 461 sn_hsw = 'sdw_wave' , 1 , 'hs' , .true. , .false. , 'daily' , '' , '' , '' 457 462 sn_wmp = 'sdw_wave' , 1 , 'wmp' , .true. , .false. , 'daily' , '' , '' , '' 463 sn_wfr = 'sdw_wave' , 1 , 'wfr' , .true. , .false. , 'daily' , '' , '' , '' 458 464 sn_wnum = 'sdw_wave' , 1 , 'wave_num' , .true. , .false. , 'daily' , '' , '' , '' 459 465 sn_tauoc = 'sdw_wave' , 1 , 'wave_stress', .true. , .false. , 'daily' , '' , '' , '' -
branches/UKMO/r8727_WAVE-2_Clementi_add_coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90
r8749 r8750 67 67 LOGICAL , PUBLIC :: ln_stcor !: true if Stokes-Coriolis term is used 68 68 ! 69 INTEGER , PUBLIC :: nn_sdrift ! type of parameterization to calculate vertical Stokes drift 70 ! 69 71 LOGICAL , PUBLIC :: ln_icebergs !: Icebergs 70 72 ! … … 79 81 INTEGER , PUBLIC, PARAMETER :: jp_none = 5 !: for OPA when doing coupling via SAS module 80 82 83 !!---------------------------------------------------------------------- 84 !! Stokes drift parametrization definition 85 !!---------------------------------------------------------------------- 86 INTEGER , PUBLIC, PARAMETER :: jp_breivik = 0 ! Breivik 2015: v_z=v_0*[exp(2*k*z)/(1-8*k*z)] 87 INTEGER , PUBLIC, PARAMETER :: jp_phillips = 1 ! Phillips: v_z=v_o*[exp(2*k*z)-beta*sqrt(-2*k*pi*z)*erfc(sqrt(-2*k*z))] 88 INTEGER , PUBLIC, PARAMETER :: jp_peakfr = 2 ! Phillips using the peak wave number read from wave model instead of the inverse depth scale 89 81 90 !!---------------------------------------------------------------------- 82 91 !! component definition -
branches/UKMO/r8727_WAVE-2_Clementi_add_coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90
r8749 r8750 117 117 INTEGER, PARAMETER :: jpr_isf = 52 118 118 INTEGER, PARAMETER :: jpr_icb = 53 119 120 INTEGER, PARAMETER :: jprcv = 53 ! total number of fields received 119 INTEGER, PARAMETER :: jpr_wfreq = 54 ! Wave peak frequency 120 121 INTEGER, PARAMETER :: jprcv = 54 ! total number of fields received 121 122 122 123 INTEGER, PARAMETER :: jps_fice = 1 ! ice fraction sent to the atmosphere … … 170 171 TYPE(FLD_C) :: sn_snd_ifrac, sn_snd_crtw, sn_snd_wlev 171 172 ! Received from waves 172 TYPE(FLD_C) :: sn_rcv_hsig,sn_rcv_phioc,sn_rcv_sdrfx,sn_rcv_sdrfy,sn_rcv_wper,sn_rcv_wnum,sn_rcv_wstrf,sn_rcv_wdrag 173 TYPE(FLD_C) :: sn_rcv_hsig,sn_rcv_phioc,sn_rcv_sdrfx,sn_rcv_sdrfy,sn_rcv_wper,sn_rcv_wnum,sn_rcv_wstrf,sn_rcv_wdrag, & 174 sn_rcv_wfreq 173 175 ! ! Other namelist parameters 174 176 INTEGER :: nn_cplmodel ! Maximum number of models to/from which NEMO is potentialy sending/receiving data … … 245 247 & sn_rcv_wdrag, sn_rcv_qns , sn_rcv_emp , sn_rcv_rnf , sn_rcv_cal , & 246 248 & sn_rcv_iceflx,sn_rcv_co2 , nn_cplmodel , ln_usecplmask, sn_rcv_mslp , & 247 & sn_rcv_icb , sn_rcv_isf 249 & sn_rcv_icb , sn_rcv_isf , sn_rcv_wfreq 248 250 249 251 !!--------------------------------------------------------------------- … … 295 297 WRITE(numout,*)' Mean wave period = ', TRIM(sn_rcv_wper%cldes ), ' (', TRIM(sn_rcv_wper%clcat ), ')' 296 298 WRITE(numout,*)' Mean wave number = ', TRIM(sn_rcv_wnum%cldes ), ' (', TRIM(sn_rcv_wnum%clcat ), ')' 299 WRITE(numout,*)' Wave peak frequency = ', TRIM(sn_rcv_wfreq%cldes ), ' (', TRIM(sn_rcv_wfreq%clcat ), ')' 297 300 WRITE(numout,*)' Stress frac adsorbed by waves = ', TRIM(sn_rcv_wstrf%cldes ), ' (', TRIM(sn_rcv_wstrf%clcat ), ')' 298 301 WRITE(numout,*)' Neutral surf drag coefficient = ', TRIM(sn_rcv_wdrag%cldes ), ' (', TRIM(sn_rcv_wdrag%clcat ), ')' … … 578 581 cpl_wper = .TRUE. 579 582 ENDIF 583 srcv(jpr_wfreq)%clname = 'O_WFreq' ! wave peak frequency 584 IF( TRIM(sn_rcv_wfreq%cldes ) == 'coupled' ) THEN 585 srcv(jpr_wfreq)%laction = .TRUE. 586 cpl_wfreq = .TRUE. 587 ENDIF 580 588 srcv(jpr_wnum)%clname = 'O_WNum' ! mean wave number 581 589 IF( TRIM(sn_rcv_wnum%cldes ) == 'coupled' ) THEN … … 1165 1173 ! ! ========================= ! 1166 1174 IF( srcv(jpr_hsig)%laction ) hsw(:,:) = frcv(jpr_hsig)%z3(:,:,1) 1175 ! 1176 ! ! ========================= ! 1177 ! ! Wave peak frequency ! 1178 ! ! ========================= ! 1179 IF( srcv(jpr_wfreq)%laction ) wfreq(:,:) = frcv(jpr_wfreq)%z3(:,:,1) 1167 1180 ! 1168 1181 ! ! ========================= ! … … 1173 1186 ! Calculate the 3D Stokes drift both in coupled and not fully uncoupled mode 1174 1187 IF( srcv(jpr_sdrftx)%laction .OR. srcv(jpr_sdrfty)%laction .OR. srcv(jpr_wper)%laction & 1175 .OR. srcv(jpr_hsig)%laction ) THEN1188 .OR. srcv(jpr_hsig)%laction .OR. srcv(jpr_wfreq)%laction ) THEN 1176 1189 CALL sbc_stokes() 1177 1190 ENDIF -
branches/UKMO/r8727_WAVE-2_Clementi_add_coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90
r8749 r8750 96 96 & ln_rnf , nn_fwb , ln_ssr , ln_isf , ln_apr_dyn , & 97 97 & ln_wave , ln_cdgw , ln_sdw , ln_tauoc , ln_stcor , & 98 & nn_lsm 98 & nn_lsm, nn_sdrift 99 99 !!---------------------------------------------------------------------- 100 100 ! … … 157 157 WRITE(numout,*) ' surface wave ln_wave = ', ln_wave 158 158 WRITE(numout,*) ' Stokes drift corr. to vert. velocity ln_sdw = ', ln_sdw 159 WRITE(numout,*) ' vertical parametrization nn_sdrift = ', nn_sdrift 159 160 WRITE(numout,*) ' wave modified ocean stress ln_tauoc = ', ln_tauoc 160 161 WRITE(numout,*) ' Stokes coriolis term ln_stcor = ', ln_stcor 161 162 WRITE(numout,*) ' neutral drag coefficient (CORE, MFS) ln_cdgw = ', ln_cdgw 163 ENDIF 164 ! 165 IF( ln_sdw ) THEN 166 IF( .NOT.(nn_sdrift==jp_breivik .OR. nn_sdrift==jp_phillips .OR. nn_sdrift==jp_peakfr) ) & 167 CALL ctl_stop( 'The chosen nn_sdrift for Stokes drift vertical velocity must be 0, 1, or 2' ) 162 168 ENDIF 163 169 ! -
branches/UKMO/r8727_WAVE-2_Clementi_add_coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcwave.F90
r8749 r8750 42 42 LOGICAL, PUBLIC :: cpl_sdrfty = .FALSE. 43 43 LOGICAL, PUBLIC :: cpl_wper = .FALSE. 44 LOGICAL, PUBLIC :: cpl_wfreq = .FALSE. 44 45 LOGICAL, PUBLIC :: cpl_wnum = .FALSE. 45 46 LOGICAL, PUBLIC :: cpl_wstrf = .FALSE. … … 51 52 INTEGER :: jp_hsw ! index of significant wave hight (m) at T-point 52 53 INTEGER :: jp_wmp ! index of mean wave period (s) at T-point 54 INTEGER :: jp_wfr ! index of wave peak frequency (1/s) at T-point 53 55 54 56 TYPE(FLD), ALLOCATABLE, DIMENSION(:) :: sf_cd ! structure of input fields (file informations, fields read) Drag Coefficient … … 58 60 REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:,:) :: cdn_wave !: 59 61 REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:,:) :: hsw, wmp, wnum !: 62 REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:,:) :: wfreq !: 60 63 REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:,:) :: tauoc_wave !: 61 64 REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:,:) :: tsd2d !: … … 96 99 CALL wrk_alloc( jpi,jpj, zk_t, zk_u, zk_v, zu0_sd, zv0_sd ) 97 100 ! 98 ! 99 zfac = 2.0_wp * rpi / 16.0_wp 100 DO jj = 1, jpj ! exp. wave number at t-point (Eq. (19) in Breivick et al. (2014) ) 101 DO ji = 1, jpi 101 ! select parameterization for the calculation of vertical Stokes drift 102 ! exp. wave number at t-point 103 IF( nn_sdrift==jp_breivik .OR. nn_sdrift==jp_phillips ) THEN ! (Eq. (19) in Breivick et al. (2014) ) 104 zfac = 2.0_wp * rpi / 16.0_wp 105 DO jj = 1, jpj 106 DO ji = 1, jpi 102 107 ! Stokes drift velocity estimated from Hs and Tmean 103 ztransp = zfac * hsw(ji,jj)*hsw(ji,jj) / MAX( wmp(ji,jj) 108 ztransp = zfac * hsw(ji,jj)*hsw(ji,jj) / MAX( wmp(ji,jj), 0.0000001_wp ) 104 109 ! Stokes surface speed 105 zsp0 = SQRT( ut0sd(ji,jj)*ut0sd(ji,jj) + vt0sd(ji,jj)*vt0sd(ji,jj) ) 106 tsd2d(ji,jj) = zsp0 110 tsd2d(ji,jj) = SQRT( ut0sd(ji,jj)*ut0sd(ji,jj) + vt0sd(ji,jj)*vt0sd(ji,jj)) 107 111 ! Wavenumber scale 108 zk_t(ji,jj) = ABS( zsp0 ) / MAX( ABS( 5.97_wp*ztransp ) , 0.0000001_wp ) 109 END DO 110 END DO 111 DO jj = 1, jpjm1 ! exp. wave number & Stokes drift velocity at u- & v-points 112 DO ji = 1, jpim1 113 zk_u(ji,jj) = 0.5_wp * ( zk_t(ji,jj) + zk_t(ji+1,jj) ) 114 zk_v(ji,jj) = 0.5_wp * ( zk_t(ji,jj) + zk_t(ji,jj+1) ) 115 ! 116 zu0_sd(ji,jj) = 0.5_wp * ( ut0sd(ji,jj) + ut0sd(ji+1,jj) ) 117 zv0_sd(ji,jj) = 0.5_wp * ( vt0sd(ji,jj) + vt0sd(ji,jj+1) ) 118 END DO 119 END DO 112 zk_t(ji,jj) = ABS( tsd2d(ji,jj) ) / MAX( ABS( 5.97_wp*ztransp ), 0.0000001_wp ) 113 END DO 114 END DO 115 DO jj = 1, jpjm1 ! exp. wave number & Stokes drift velocity at u- & v-points 116 DO ji = 1, jpim1 117 zk_u(ji,jj) = 0.5_wp * ( zk_t(ji,jj) + zk_t(ji+1,jj) ) 118 zk_v(ji,jj) = 0.5_wp * ( zk_t(ji,jj) + zk_t(ji,jj+1) ) 119 ! 120 zu0_sd(ji,jj) = 0.5_wp * ( ut0sd(ji,jj) + ut0sd(ji+1,jj) ) 121 zv0_sd(ji,jj) = 0.5_wp * ( vt0sd(ji,jj) + vt0sd(ji,jj+1) ) 122 END DO 123 END DO 124 ELSE IF( nn_sdrift==jp_peakfr ) THEN ! peak wave number calculated from the peak frequency received by the wave model 125 DO jj = 1, jpjm1 126 DO ji = 1, jpim1 127 zk_u(ji,jj) = 0.5_wp * ( wfreq(ji,jj)*wfreq(ji,jj) + wfreq(ji+1,jj)*wfreq(ji+1,jj) ) / grav 128 zk_v(ji,jj) = 0.5_wp * ( wfreq(ji,jj)*wfreq(ji,jj) + wfreq(ji,jj+1)*wfreq(ji,jj+1) ) / grav 129 ! 130 zu0_sd(ji,jj) = 0.5_wp * ( ut0sd(ji,jj) + ut0sd(ji+1,jj) ) 131 zv0_sd(ji,jj) = 0.5_wp * ( vt0sd(ji,jj) + vt0sd(ji,jj+1) ) 132 END DO 133 END DO 134 ENDIF 120 135 ! 121 136 ! !== horizontal Stokes Drift 3D velocity ==! 122 DO jk = 1, jpkm1 123 DO jj = 2, jpjm1 124 DO ji = 2, jpim1 125 zdep_u = 0.5_wp * ( gdept_n(ji,jj,jk) + gdept_n(ji+1,jj,jk) ) 126 zdep_v = 0.5_wp * ( gdept_n(ji,jj,jk) + gdept_n(ji,jj+1,jk) ) 127 ! 128 zkh_u = zk_u(ji,jj) * zdep_u ! k * depth 129 zkh_v = zk_v(ji,jj) * zdep_v 130 ! ! Depth attenuation 131 zda_u = EXP( -2.0_wp*zkh_u ) / ( 1.0_wp + 8.0_wp*zkh_u ) 132 zda_v = EXP( -2.0_wp*zkh_v ) / ( 1.0_wp + 8.0_wp*zkh_v ) 133 ! 134 usd(ji,jj,jk) = zda_u * zu0_sd(ji,jj) * umask(ji,jj,jk) 135 vsd(ji,jj,jk) = zda_v * zv0_sd(ji,jj) * vmask(ji,jj,jk) 136 END DO 137 END DO 138 END DO 137 IF( nn_sdrift==jp_breivik ) THEN 138 DO jk = 1, jpkm1 139 DO jj = 2, jpjm1 140 DO ji = 2, jpim1 141 zdep_u = 0.5_wp * ( gdept_n(ji,jj,jk) + gdept_n(ji+1,jj,jk) ) 142 zdep_v = 0.5_wp * ( gdept_n(ji,jj,jk) + gdept_n(ji,jj+1,jk) ) 143 ! 144 zkh_u = zk_u(ji,jj) * zdep_u ! k * depth 145 zkh_v = zk_v(ji,jj) * zdep_v 146 ! ! Depth attenuation 147 zda_u = EXP( -2.0_wp*zkh_u ) / ( 1.0_wp + 8.0_wp*zkh_u ) 148 zda_v = EXP( -2.0_wp*zkh_v ) / ( 1.0_wp + 8.0_wp*zkh_v ) 149 ! 150 usd(ji,jj,jk) = zda_u * zu0_sd(ji,jj) * umask(ji,jj,jk) 151 vsd(ji,jj,jk) = zda_v * zv0_sd(ji,jj) * vmask(ji,jj,jk) 152 END DO 153 END DO 154 END DO 155 ELSE IF( nn_sdrift==jp_phillips .OR. nn_sdrift==jp_peakfr ) THEN 156 DO jk = 1, jpkm1 157 DO jj = 2, jpjm1 158 DO ji = 2, jpim1 159 zdep_u = 0.5_wp * ( gdept_n(ji,jj,jk) + gdept_n(ji+1,jj,jk) ) 160 zdep_v = 0.5_wp * ( gdept_n(ji,jj,jk) + gdept_n(ji,jj+1,jk) ) 161 ! 162 zkh_u = zk_u(ji,jj) * zdep_u ! k * depth 163 zkh_v = zk_v(ji,jj) * zdep_v 164 ! ! Depth attenuation 165 zda_u = EXP( -2.0_wp*zkh_u ) - SQRT(2.0_wp*rpi*zkh_u) * ERFC(SQRT(2.0_wp*zkh_u)) 166 zda_v = EXP( -2.0_wp*zkh_v ) - SQRT(2.0_wp*rpi*zkh_v) * ERFC(SQRT(2.0_wp*zkh_v)) 167 ! 168 usd(ji,jj,jk) = zda_u * zu0_sd(ji,jj) * umask(ji,jj,jk) 169 vsd(ji,jj,jk) = zda_v * zv0_sd(ji,jj) * vmask(ji,jj,jk) 170 END DO 171 END DO 172 END DO 173 ENDIF 174 139 175 CALL lbc_lnk( usd(:,:,:), 'U', vsd(:,:,:), 'V', -1. ) 140 176 ! … … 222 258 IF( jp_hsw > 0 ) hsw (:,:) = sf_sd(jp_hsw)%fnow(:,:,1) ! significant wave height 223 259 IF( jp_wmp > 0 ) wmp (:,:) = sf_sd(jp_wmp)%fnow(:,:,1) ! wave mean period 260 IF( jp_wfr > 0 ) wfreq(:,:) = sf_sd(jp_wfr)%fnow(:,:,1) ! Peak wave frequency 224 261 IF( jp_usd > 0 ) ut0sd(:,:) = sf_sd(jp_usd)%fnow(:,:,1) ! 2D zonal Stokes Drift at T point 225 262 IF( jp_vsd > 0 ) vt0sd(:,:) = sf_sd(jp_vsd)%fnow(:,:,1) ! 2D meridional Stokes Drift at T point … … 234 271 ! !== Computation of the 3d Stokes Drift ==! 235 272 ! 236 IF( jpfld == 4 ) CALL sbc_stokes() ! Calculate only if required fields are read 237 ! ! In coupled wave model-NEMO case the call is done after coupling 273 IF( ((nn_sdrift==jp_breivik .OR. nn_sdrift==jp_phillips) .AND. & 274 jp_hsw>0 .AND. jp_wmp>0 .AND. jp_usd>0 .AND. jp_vsd>0) .OR. & 275 (nn_sdrift==jp_peakfr .AND. jp_wfr>0 .AND. jp_usd>0 .AND. jp_vsd>0) ) & 276 CALL sbc_stokes() ! Calculate only if required fields are read 277 ! ! In coupled wave model-NEMO case the call is done after coupling 238 278 ! 239 279 ENDIF … … 262 302 TYPE(FLD_N), ALLOCATABLE, DIMENSION(:) :: slf_i ! array of namelist informations on the fields to read 263 303 TYPE(FLD_N) :: sn_cdg, sn_usd, sn_vsd, & 264 & sn_hsw, sn_wmp, sn_w num, sn_tauoc ! informations about the fields to be read265 ! 266 NAMELIST/namsbc_wave/ sn_cdg, cn_dir, sn_usd, sn_vsd, sn_hsw, sn_wmp, sn_w num, sn_tauoc304 & sn_hsw, sn_wmp, sn_wfr, sn_wnum, sn_tauoc ! informations about the fields to be read 305 ! 306 NAMELIST/namsbc_wave/ sn_cdg, cn_dir, sn_usd, sn_vsd, sn_hsw, sn_wmp, sn_wfr, sn_wnum, sn_tauoc 267 307 !!--------------------------------------------------------------------- 268 308 ! … … 302 342 IF( ln_sdw ) THEN ! Find out how many fields have to be read from file if not coupled 303 343 jpfld=0 304 jp_usd=0 ; jp_vsd=0 ; jp_hsw=0 ; jp_wmp=0 344 jp_usd=0 ; jp_vsd=0 ; jp_hsw=0 ; jp_wmp=0 ; jp_wfr=0 305 345 IF( .NOT. cpl_sdrftx ) THEN 306 346 jpfld = jpfld + 1 … … 311 351 jp_vsd = jpfld 312 352 ENDIF 313 IF( .NOT. cpl_hsig ) THEN353 IF( .NOT. cpl_hsig .AND. (nn_sdrift==jp_breivik .OR. nn_sdrift==jp_phillips) ) THEN 314 354 jpfld = jpfld + 1 315 355 jp_hsw = jpfld 316 356 ENDIF 317 IF( .NOT. cpl_wper ) THEN357 IF( .NOT. cpl_wper .AND. (nn_sdrift==jp_breivik .OR. nn_sdrift==jp_phillips) ) THEN 318 358 jpfld = jpfld + 1 319 359 jp_wmp = jpfld 360 ENDIF 361 IF( .NOT. cpl_wfreq .AND. nn_sdrift==jp_peakfr ) THEN 362 jpfld = jpfld + 1 363 jp_wfr = jpfld 320 364 ENDIF 321 365 … … 327 371 IF( jp_hsw > 0 ) slf_i(jp_hsw) = sn_hsw 328 372 IF( jp_wmp > 0 ) slf_i(jp_wmp) = sn_wmp 373 IF( jp_wfr > 0 ) slf_i(jp_wfr) = sn_wfr 374 329 375 ALLOCATE( sf_sd(jpfld), STAT=ierror ) !* allocate and fill sf_sd with stokes drift 330 376 IF( ierror > 0 ) CALL ctl_stop( 'STOP', 'sbc_wave_init: unable to allocate sf_wave structure' ) … … 339 385 ALLOCATE( usd (jpi,jpj,jpk), vsd (jpi,jpj,jpk), wsd(jpi,jpj,jpk) ) 340 386 ALLOCATE( hsw (jpi,jpj) , wmp (jpi,jpj) ) 387 ALLOCATE( wfreq(jpi,jpj) ) 341 388 ALLOCATE( ut0sd(jpi,jpj) , vt0sd(jpi,jpj) ) 342 389 ALLOCATE( div_sd(jpi,jpj) )
Note: See TracChangeset
for help on using the changeset viewer.