Changeset 9120
- Timestamp:
- 2017-12-18T18:29:02+01:00 (7 years ago)
- Location:
- branches/UKMO/dev_r8814_surge_modelling_Nemo4/NEMOGCM
- Files:
-
- 12 added
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r8814_surge_modelling_Nemo4/NEMOGCM/CONFIG/SHARED/field_def_nemo-opa.xml
r8698 r9120 203 203 <field id="taum" long_name="wind stress module" standard_name="magnitude_of_surface_downward_stress" unit="N/m2" /> 204 204 <field id="wspd" long_name="wind speed module" standard_name="wind_speed" unit="m/s" /> 205 <field id="uwnd" long_name="u component of wind" unit="m/s" /> 206 <field id="vwnd" long_name="v component of wind" unit="m/s" /> 205 207 206 208 <!-- * variable relative to atmospheric pressure forcing : available with ln_apr_dyn --> -
branches/UKMO/dev_r8814_surge_modelling_Nemo4/NEMOGCM/CONFIG/SHARED/namelist_ref
r8599 r9120 94 94 ! 95 95 ln_crs = .false. ! Logical switch for coarsening module 96 ln_2d = .false. ! (=T) run in 2D barotropic mode (no tracer processes or vertical diffusion) 96 97 / 97 98 !----------------------------------------------------------------------- -
branches/UKMO/dev_r8814_surge_modelling_Nemo4/NEMOGCM/CONFIG/cfg.txt
r8600 r9120 1 AMM12 OPA_SRC2 1 C1D_PAPA OPA_SRC 3 2 GYRE_PISCES OPA_SRC TOP_SRC … … 7 6 ORCA2_OFF_TRC OPA_SRC OFF_SRC TOP_SRC 8 7 ORCA2_LIM3_PISCES OPA_SRC LIM_SRC_3 TOP_SRC NST_SRC 8 AMM12 OPA_SRC 9 AMM7_SURGE OPA_SRC -
branches/UKMO/dev_r8814_surge_modelling_Nemo4/NEMOGCM/NEMO/OPA_SRC/DOM/dom_oce.F90
r7914 r9120 39 39 LOGICAL , PUBLIC :: ln_iscpl !: coupling with ice sheet 40 40 LOGICAL , PUBLIC :: ln_crs !: Apply grid coarsening to dynamical model output or online passive tracers 41 LOGICAL , PUBLIC :: ln_2d ! (=T) run in 2D barotropic mode (no tracer processes or vertical diffusion) 41 42 42 43 !! Free surface parameters -
branches/UKMO/dev_r8814_surge_modelling_Nemo4/NEMOGCM/NEMO/OPA_SRC/DOM/domain.F90
r7822 r9120 286 286 & nn_stock, nn_write , ln_mskland , ln_clobber , nn_chunksz, nn_euler , & 287 287 & ln_cfmeta, ln_iscpl 288 NAMELIST/namdom/ ln_linssh, nn_closea, nn_msh, rn_isfhmin, rn_rdt, rn_atfp, ln_crs 288 NAMELIST/namdom/ ln_linssh, nn_closea, nn_msh, rn_isfhmin, rn_rdt, rn_atfp, ln_crs, ln_2d 289 289 #if defined key_netcdf4 290 290 NAMELIST/namnc4/ nn_nchunks_i, nn_nchunks_j, nn_nchunks_k, ln_nc4zip … … 405 405 WRITE(numout,*) ' asselin time filter parameter rn_atfp = ', rn_atfp 406 406 WRITE(numout,*) ' online coarsening of dynamical fields ln_crs = ', ln_crs 407 ENDIF 407 WRITE(numout,*) ' 2D mode ln_2d = ', ln_2d 408 IF(ln_2d) WRITE(numout,*) ' 2D mode active: All tracer processes and vertical diffusion turned off' 409 410 ENDIF 411 412 408 413 409 414 call flush( numout ) -
branches/UKMO/dev_r8814_surge_modelling_Nemo4/NEMOGCM/NEMO/OPA_SRC/DOM/domzgr.F90
r7753 r9120 135 135 136 136 137 IF (ln_2d .AND. .NOT.ln_sco) CALL ctl_stop( ' 2D mode must be used with ln_sco' ) 138 137 139 ! ! top/bottom ocean level indices for t-, u- and v-points (f-point also for top) 138 140 CALL zgr_top_bot( k_top, k_bot ) ! with a minimum value set to 1 -
branches/UKMO/dev_r8814_surge_modelling_Nemo4/NEMOGCM/NEMO/OPA_SRC/DOM/dtatsd.F90
r7753 r9120 90 90 WRITE(numout,*) ' T & S data not used' 91 91 ENDIF 92 IF( ln_2d ) WRITE(numout,*) ' 2D ocean - ocean will be started at rest and T&S = 0' 93 92 94 ENDIF 93 95 ! -
branches/UKMO/dev_r8814_surge_modelling_Nemo4/NEMOGCM/NEMO/OPA_SRC/DOM/istate.F90
r7753 r9120 94 94 ! ! Initialization of ocean to zero 95 95 ! 96 IF( ln_tsd_init ) THEN 96 IF (ln_2d) THEN 97 tsn(:,:,:,:)= 0._wp ! No tracers 98 sshb(:,:) = 0._wp ! set the ocean at rest 99 ub (:,:,:) = 0._wp 100 vb (:,:,:) = 0._wp 101 ELSE IF( ln_tsd_init ) THEN 97 102 CALL dta_tsd( nit000, tsb ) ! read 3D T and S data at nit000 98 103 ! -
branches/UKMO/dev_r8814_surge_modelling_Nemo4/NEMOGCM/NEMO/OPA_SRC/DYN/dynhpg.F90
r7761 r9120 494 494 END IF 495 495 496 ! Surface value 497 DO jj = 2, jpjm1 498 DO ji = fs_2, fs_jpim1 ! vector opt. 499 ! hydrostatic pressure gradient along s-surfaces 500 zhpi(ji,jj,1) = zcoef0 * ( e3w_n(ji+1,jj ,1) * ( znad + rhd(ji+1,jj ,1) ) & 501 & - e3w_n(ji ,jj ,1) * ( znad + rhd(ji ,jj ,1) ) ) * r1_e1u(ji,jj) 502 zhpj(ji,jj,1) = zcoef0 * ( e3w_n(ji ,jj+1,1) * ( znad + rhd(ji ,jj+1,1) ) & 503 & - e3w_n(ji ,jj ,1) * ( znad + rhd(ji ,jj ,1) ) ) * r1_e2v(ji,jj) 504 ! s-coordinate pressure gradient correction 505 zuap = -zcoef0 * ( rhd (ji+1,jj,1) + rhd (ji,jj,1) + 2._wp * znad ) & 506 & * ( gde3w_n(ji+1,jj,1) - gde3w_n(ji,jj,1) ) * r1_e1u(ji,jj) 507 zvap = -zcoef0 * ( rhd (ji,jj+1,1) + rhd (ji,jj,1) + 2._wp * znad ) & 508 & * ( gde3w_n(ji,jj+1,1) - gde3w_n(ji,jj,1) ) * r1_e2v(ji,jj) 509 510 511 IF( ln_wd ) THEN 512 513 zhpi(ji,jj,1) = zhpi(ji,jj,1) * zcpx(ji,jj) 514 zhpj(ji,jj,1) = zhpj(ji,jj,1) * zcpy(ji,jj) 515 zuap = zuap * zcpx(ji,jj) 516 zvap = zvap * zcpy(ji,jj) 517 ENDIF 518 519 ! add to the general momentum trend 520 ua(ji,jj,1) = ua(ji,jj,1) + zhpi(ji,jj,1) + zuap 521 va(ji,jj,1) = va(ji,jj,1) + zhpj(ji,jj,1) + zvap 522 END DO 523 END DO 524 525 ! interior value (2=<jk=<jpkm1) 526 DO jk = 2, jpkm1 527 DO jj = 2, jpjm1 528 DO ji = fs_2, fs_jpim1 ! vector opt. 529 ! hydrostatic pressure gradient along s-surfaces 530 zhpi(ji,jj,jk) = zhpi(ji,jj,jk-1) + zcoef0 * r1_e1u(ji,jj) & 531 & * ( e3w_n(ji+1,jj,jk) * ( rhd(ji+1,jj,jk) + rhd(ji+1,jj,jk-1) + 2*znad ) & 532 & - e3w_n(ji ,jj,jk) * ( rhd(ji ,jj,jk) + rhd(ji ,jj,jk-1) + 2*znad ) ) 533 zhpj(ji,jj,jk) = zhpj(ji,jj,jk-1) + zcoef0 * r1_e2v(ji,jj) & 534 & * ( e3w_n(ji,jj+1,jk) * ( rhd(ji,jj+1,jk) + rhd(ji,jj+1,jk-1) + 2*znad ) & 535 & - e3w_n(ji,jj ,jk) * ( rhd(ji,jj, jk) + rhd(ji,jj ,jk-1) + 2*znad ) ) 536 ! s-coordinate pressure gradient correction 537 zuap = -zcoef0 * ( rhd (ji+1,jj ,jk) + rhd (ji,jj,jk) + 2._wp * znad ) & 538 & * ( gde3w_n(ji+1,jj ,jk) - gde3w_n(ji,jj,jk) ) * r1_e1u(ji,jj) 539 zvap = -zcoef0 * ( rhd (ji ,jj+1,jk) + rhd (ji,jj,jk) + 2._wp * znad ) & 540 & * ( gde3w_n(ji ,jj+1,jk) - gde3w_n(ji,jj,jk) ) * r1_e2v(ji,jj) 541 542 IF( ln_wd ) THEN 543 zhpi(ji,jj,jk) = zhpi(ji,jj,jk) * zcpx(ji,jj) 544 zhpj(ji,jj,jk) = zhpj(ji,jj,jk) * zcpy(ji,jj) 545 zuap = zuap * zcpx(ji,jj) 546 zvap = zvap * zcpy(ji,jj) 547 ENDIF 548 549 ! add to the general momentum trend 550 ua(ji,jj,jk) = ua(ji,jj,jk) + zhpi(ji,jj,jk) + zuap 551 va(ji,jj,jk) = va(ji,jj,jk) + zhpj(ji,jj,jk) + zvap 552 END DO 553 END DO 554 END DO 496 IF (ln_2d) THEN 497 ! Surface value 498 DO jj = 2, jpjm1 499 DO ji = fs_2, fs_jpim1 ! vector opt. 500 ! hydrostatic pressure gradient along s-surfaces 501 zhpi(ji,jj,1) = zcoef0 * ( e3w_n(ji+1,jj ,1) * znad & 502 & - e3w_n(ji ,jj ,1) * znad ) * r1_e1u(ji,jj) 503 zhpj(ji,jj,1) = zcoef0 * ( e3w_n(ji ,jj+1,1) * znad & 504 & - e3w_n(ji ,jj ,1) * znad ) * r1_e2v(ji,jj) 505 ! s-coordinate pressure gradient correction 506 zuap = -zcoef0 * ( 2._wp * znad ) & 507 & * ( gde3w_n(ji+1,jj,1) - gde3w_n(ji,jj,1) ) * r1_e1u(ji,jj) 508 zvap = -zcoef0 * ( 2._wp * znad ) & 509 & * ( gde3w_n(ji,jj+1,1) - gde3w_n(ji,jj,1) ) * r1_e2v(ji,jj) 510 511 512 IF( ln_wd ) THEN 513 514 zhpi(ji,jj,1) = zhpi(ji,jj,1) * zcpx(ji,jj) 515 zhpj(ji,jj,1) = zhpj(ji,jj,1) * zcpy(ji,jj) 516 zuap = zuap * zcpx(ji,jj) 517 zvap = zvap * zcpy(ji,jj) 518 ENDIF 519 520 ! add to the general momentum trend 521 ua(ji,jj,1) = ua(ji,jj,1) + zhpi(ji,jj,1) + zuap * umask(ji,jj,1) 522 va(ji,jj,1) = va(ji,jj,1) + zhpj(ji,jj,1) + zvap * vmask(ji,jj,1) 523 END DO 524 END DO 525 526 ! interior value (2=<jk=<jpkm1) 527 DO jk = 2, jpkm1 528 DO jj = 2, jpjm1 529 DO ji = fs_2, fs_jpim1 ! vector opt. 530 ! hydrostatic pressure gradient along s-surfaces 531 zhpi(ji,jj,jk) = zhpi(ji,jj,jk-1) + zcoef0 * r1_e1u(ji,jj) & 532 & * ( e3w_n(ji+1,jj,jk) * ( 2*znad ) & 533 & - e3w_n(ji ,jj,jk) * ( 2*znad ) ) 534 zhpj(ji,jj,jk) = zhpj(ji,jj,jk-1) + zcoef0 * r1_e2v(ji,jj) & 535 & * ( e3w_n(ji,jj+1,jk) * ( 2*znad ) & 536 & - e3w_n(ji,jj ,jk) * ( 2*znad ) ) 537 ! s-coordinate pressure gradient correction 538 zuap = -zcoef0 * ( 2._wp * znad ) & 539 & * ( gde3w_n(ji+1,jj ,jk) - gde3w_n(ji,jj,jk) ) * r1_e1u(ji,jj) 540 zvap = -zcoef0 * ( 2._wp * znad ) & 541 & * ( gde3w_n(ji ,jj+1,jk) - gde3w_n(ji,jj,jk) ) * r1_e2v(ji,jj) 542 543 IF( ln_wd ) THEN 544 zhpi(ji,jj,jk) = zhpi(ji,jj,jk) * zcpx(ji,jj) 545 zhpj(ji,jj,jk) = zhpj(ji,jj,jk) * zcpy(ji,jj) 546 zuap = zuap * zcpx(ji,jj) 547 zvap = zvap * zcpy(ji,jj) 548 ENDIF 549 550 ! add to the general momentum trend 551 ua(ji,jj,jk) = ua(ji,jj,jk) + zhpi(ji,jj,jk) + zuap * umask(ji,jj,1) 552 va(ji,jj,jk) = va(ji,jj,jk) + zhpj(ji,jj,jk) + zvap * vmask(ji,jj,1) 553 END DO 554 END DO 555 END DO 556 557 ELSE 558 559 ! Surface value 560 DO jj = 2, jpjm1 561 DO ji = fs_2, fs_jpim1 ! vector opt. 562 ! hydrostatic pressure gradient along s-surfaces 563 zhpi(ji,jj,1) = zcoef0 * ( e3w_n(ji+1,jj ,1) * ( znad + rhd(ji+1,jj ,1) ) & 564 & - e3w_n(ji ,jj ,1) * ( znad + rhd(ji ,jj ,1) ) ) * r1_e1u(ji,jj) 565 zhpj(ji,jj,1) = zcoef0 * ( e3w_n(ji ,jj+1,1) * ( znad + rhd(ji ,jj+1,1) ) & 566 & - e3w_n(ji ,jj ,1) * ( znad + rhd(ji ,jj ,1) ) ) * r1_e2v(ji,jj) 567 ! s-coordinate pressure gradient correction 568 zuap = -zcoef0 * ( rhd (ji+1,jj,1) + rhd (ji,jj,1) + 2._wp * znad ) & 569 & * ( gde3w_n(ji+1,jj,1) - gde3w_n(ji,jj,1) ) * r1_e1u(ji,jj) 570 zvap = -zcoef0 * ( rhd (ji,jj+1,1) + rhd (ji,jj,1) + 2._wp * znad ) & 571 & * ( gde3w_n(ji,jj+1,1) - gde3w_n(ji,jj,1) ) * r1_e2v(ji,jj) 572 573 574 IF( ln_wd ) THEN 575 576 zhpi(ji,jj,1) = zhpi(ji,jj,1) * zcpx(ji,jj) 577 zhpj(ji,jj,1) = zhpj(ji,jj,1) * zcpy(ji,jj) 578 zuap = zuap * zcpx(ji,jj) 579 zvap = zvap * zcpy(ji,jj) 580 ENDIF 581 582 ! add to the general momentum trend 583 ua(ji,jj,1) = ua(ji,jj,1) + zhpi(ji,jj,1) + zuap 584 va(ji,jj,1) = va(ji,jj,1) + zhpj(ji,jj,1) + zvap 585 END DO 586 END DO 587 588 ! interior value (2=<jk=<jpkm1) 589 DO jk = 2, jpkm1 590 DO jj = 2, jpjm1 591 DO ji = fs_2, fs_jpim1 ! vector opt. 592 ! hydrostatic pressure gradient along s-surfaces 593 zhpi(ji,jj,jk) = zhpi(ji,jj,jk-1) + zcoef0 * r1_e1u(ji,jj) & 594 & * ( e3w_n(ji+1,jj,jk) * ( rhd(ji+1,jj,jk) + rhd(ji+1,jj,jk-1) + 2*znad ) & 595 & - e3w_n(ji ,jj,jk) * ( rhd(ji ,jj,jk) + rhd(ji ,jj,jk-1) + 2*znad ) ) 596 zhpj(ji,jj,jk) = zhpj(ji,jj,jk-1) + zcoef0 * r1_e2v(ji,jj) & 597 & * ( e3w_n(ji,jj+1,jk) * ( rhd(ji,jj+1,jk) + rhd(ji,jj+1,jk-1) + 2*znad ) & 598 & - e3w_n(ji,jj ,jk) * ( rhd(ji,jj, jk) + rhd(ji,jj ,jk-1) + 2*znad ) ) 599 ! s-coordinate pressure gradient correction 600 zuap = -zcoef0 * ( rhd (ji+1,jj ,jk) + rhd (ji,jj,jk) + 2._wp * znad ) & 601 & * ( gde3w_n(ji+1,jj ,jk) - gde3w_n(ji,jj,jk) ) * r1_e1u(ji,jj) 602 zvap = -zcoef0 * ( rhd (ji ,jj+1,jk) + rhd (ji,jj,jk) + 2._wp * znad ) & 603 & * ( gde3w_n(ji ,jj+1,jk) - gde3w_n(ji,jj,jk) ) * r1_e2v(ji,jj) 604 605 IF( ln_wd ) THEN 606 zhpi(ji,jj,jk) = zhpi(ji,jj,jk) * zcpx(ji,jj) 607 zhpj(ji,jj,jk) = zhpj(ji,jj,jk) * zcpy(ji,jj) 608 zuap = zuap * zcpx(ji,jj) 609 zvap = zvap * zcpy(ji,jj) 610 ENDIF 611 612 ! add to the general momentum trend 613 ua(ji,jj,jk) = ua(ji,jj,jk) + zhpi(ji,jj,jk) + zuap 614 va(ji,jj,jk) = va(ji,jj,jk) + zhpj(ji,jj,jk) + zvap 615 END DO 616 END DO 617 END DO 618 END IF ! if ln_2d 619 555 620 ! 556 621 CALL wrk_dealloc( jpi,jpj,jpk, zhpi, zhpj ) -
branches/UKMO/dev_r8814_surge_modelling_Nemo4/NEMOGCM/NEMO/OPA_SRC/DYN/dynkeg.F90
r7753 r9120 177 177 DO jj = 2, jpjm1 178 178 DO ji = fs_2, fs_jpim1 ! vector opt. 179 ua(ji,jj,jk) = ua(ji,jj,jk) - ( zhke(ji+1,jj ,jk) - zhke(ji,jj,jk) ) / e1u(ji,jj) 180 va(ji,jj,jk) = va(ji,jj,jk) - ( zhke(ji ,jj+1,jk) - zhke(ji,jj,jk) ) / e2v(ji,jj) 179 ua(ji,jj,jk) = ua(ji,jj,jk) - ( zhke(ji+1,jj ,jk) - zhke(ji,jj,jk) ) / e1u(ji,jj) * umask(ji,jj,jk) 180 va(ji,jj,jk) = va(ji,jj,jk) - ( zhke(ji ,jj+1,jk) - zhke(ji,jj,jk) ) / e2v(ji,jj) * vmask(ji,jj,jk) 181 181 END DO 182 182 END DO -
branches/UKMO/dev_r8814_surge_modelling_Nemo4/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg.F90
r7753 r9120 142 142 DO jj = 2, jpjm1 143 143 DO ji = fs_2, fs_jpim1 ! vector opt. 144 ua(ji,jj,jk) = ua(ji,jj,jk) + spgu(ji,jj) 145 va(ji,jj,jk) = va(ji,jj,jk) + spgv(ji,jj) 144 ua(ji,jj,jk) = ua(ji,jj,jk) + spgu(ji,jj) * umask(ji,jj,jk) 145 va(ji,jj,jk) = va(ji,jj,jk) + spgv(ji,jj) * vmask(ji,jj,jk) 146 146 END DO 147 147 END DO -
branches/UKMO/dev_r8814_surge_modelling_Nemo4/NEMOGCM/NEMO/OPA_SRC/DYN/dynvor.F90
r7913 r9120 304 304 zx1 = zwx(ji-1,jj) + zwx(ji-1,jj+1) 305 305 zx2 = zwx(ji ,jj) + zwx(ji ,jj+1) 306 pua(ji,jj,jk) = pua(ji,jj,jk) + r1_4 * r1_e1u(ji,jj) * ( zwz(ji ,jj-1) * zy1 + zwz(ji,jj) * zy2 ) 307 pva(ji,jj,jk) = pva(ji,jj,jk) - r1_4 * r1_e2v(ji,jj) * ( zwz(ji-1,jj ) * zx1 + zwz(ji,jj) * zx2 ) 306 pua(ji,jj,jk) = pua(ji,jj,jk) + r1_4 * r1_e1u(ji,jj) * ( zwz(ji ,jj-1) * zy1 + zwz(ji,jj) * zy2 ) * umask(ji,jj,jk) 307 pva(ji,jj,jk) = pva(ji,jj,jk) - r1_4 * r1_e2v(ji,jj) * ( zwz(ji-1,jj ) * zx1 + zwz(ji,jj) * zx2 ) * vmask(ji,jj,jk) 308 308 END DO 309 309 END DO … … 424 424 zvau =-r1_8 * r1_e2v(ji,jj) * ( zwx(ji-1,jj ) + zwx(ji-1,jj+1) & 425 425 & + zwx(ji ,jj ) + zwx(ji ,jj+1) ) 426 pua(ji,jj,jk) = pua(ji,jj,jk) + zuav * ( zwz(ji ,jj-1) + zwz(ji,jj) ) 427 pva(ji,jj,jk) = pva(ji,jj,jk) + zvau * ( zwz(ji-1,jj ) + zwz(ji,jj) ) 426 pua(ji,jj,jk) = pua(ji,jj,jk) + zuav * ( zwz(ji ,jj-1) + zwz(ji,jj) ) * umask(ji,jj,jk) 427 pva(ji,jj,jk) = pva(ji,jj,jk) + zvau * ( zwz(ji-1,jj ) + zwz(ji,jj) ) * vmask(ji,jj,jk) 428 428 END DO 429 429 END DO … … 591 591 zva = - r1_12 * r1_e2v(ji,jj) * ( ztsw(ji,jj+1) * zwx(ji-1,jj+1) + ztse(ji,jj+1) * zwx(ji ,jj+1) & 592 592 & + ztnw(ji,jj ) * zwx(ji-1,jj ) + ztne(ji,jj ) * zwx(ji ,jj ) ) 593 pua(ji,jj,jk) = pua(ji,jj,jk) + zua 594 pva(ji,jj,jk) = pva(ji,jj,jk) + zva 593 pua(ji,jj,jk) = pua(ji,jj,jk) + zua * umask(ji,jj,jk) 594 pva(ji,jj,jk) = pva(ji,jj,jk) + zva * vmask(ji,jj,jk) 595 595 END DO 596 596 END DO -
branches/UKMO/dev_r8814_surge_modelling_Nemo4/NEMOGCM/NEMO/OPA_SRC/DYN/dynzad.F90
r7753 r9120 123 123 zva = - ( zwvw(ji,jj,jk) + zwvw(ji,jj,jk+1) ) * r1_e1e2v(ji,jj) / e3v_n(ji,jj,jk) 124 124 ! ! add the trends to the general momentum trends 125 ua(ji,jj,jk) = ua(ji,jj,jk) + zua 126 va(ji,jj,jk) = va(ji,jj,jk) + zva 125 ua(ji,jj,jk) = ua(ji,jj,jk) + zua * umask(ji,jj,jk) 126 va(ji,jj,jk) = va(ji,jj,jk) + zva * vmask(ji,jj,jk) 127 127 END DO 128 128 END DO -
branches/UKMO/dev_r8814_surge_modelling_Nemo4/NEMOGCM/NEMO/OPA_SRC/SBC/tide.h90
r4292 r9120 1 1 !!---------------------------------------------------------------------- 2 2 !! History : 3.2 ! 2007 (O. Le Galloudec) Original code 3 !! ! 2017 (C O'Neill) Added components 20-31 3 4 !!---------------------------------------------------------------------- 4 5 … … 28 29 Wave(18) = tide( 'L2' , 0.006694 , 2 , 2 , -1 , 2 , -1 , 0 , +180 , 2 , -2 , 0 , 0 , 0 , 215 ) 29 30 Wave(19) = tide( 'T2' , 0.006614 , 2 , 2 , 0 , -1 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ) 31 ! 32 Wave(20) = tide( 'MNS2' , 0.000000 , 2 , 2 , -5 , 4 , 1 , 0 , 0 , 4 , -4 , 0 , 0 , 0 , 6 ) 33 Wave(21) = tide( 'Lam2' , 0.001760 , 2 , 2 , -1 , 0 , 1 , 0 , +180 , 2 , -2 , 0 , 0 , 0 , 78 ) 34 Wave(22) = tide( 'MSN2' , 0.000000 , 2 , 2 , 1 , 0 , 1 , 0 , 0 , 2 , -2 , 0 , 2 , 0 , 6 ) 35 Wave(23) = tide( '2SM2' , 0.000000 , 2 , 2 , 2 , -2 , 0 , 0 , 0 , -2 , 2 , 0 , 0 , 0 , 16 ) 36 Wave(24) = tide( 'MO3' , 0.000000 , 3 , 3 , -4 , 1 , 0 , 0 , +90 , 2 , -2 , 0 , 0 , 0 , 13 ) 37 Wave(25) = tide( 'MK3' , 0.000000 , 3 , 3 , -2 , 3 , 0 , 0 , -90 , 2 , -2 , -1 , 0 , 0 , 10 ) 38 Wave(26) = tide( 'MN4' , 0.000000 , 4 , 4 , -5 , 4 , 1 , 0 , 0 , 4 , -4 , 0 , 0 , 0 , 1 ) 39 Wave(27) = tide( 'MS4' , 0.000000 , 4 , 4 , -2 , 2 , 0 , 0 , 0 , 2 , -2 , 0 , 0 , 0 , 2 ) 40 Wave(28) = tide( 'M6' , 0.000000 , 6 , 6 , -6 , 6 , 0 , 0 , 0 , 6 , -6 , 0 , 0 , 0 , 4 ) 41 Wave(29) = tide( '2MS6' , 0.000000 , 6 , 6 , -4 , 4 , 0 , 0 , 0 , 4 , -4 , 0 , 0 , 0 , 6 ) 42 Wave(30) = tide( '2MK6' , 0.000000 , 6 , 6 , -4 , 6 , 0 , 0 , 0 , 4 , -4 , 0 , -2 , 0 , 5 ) 43 Wave(31) = tide( '3M2S2' , 0.000000 , 2 , 2 , -6 , 6 , 0 , 0 , 0 , 6 , -6 , 0 , 0 , 0 , 12 ) -
branches/UKMO/dev_r8814_surge_modelling_Nemo4/NEMOGCM/NEMO/OPA_SRC/SBC/tide_mod.F90
r5215 r9120 16 16 PUBLIC tide_init_Wave ! called by tideini and diaharm modules 17 17 18 INTEGER, PUBLIC, PARAMETER :: jpmax_harmo = 19!: maximum number of harmonic18 INTEGER, PUBLIC, PARAMETER :: jpmax_harmo = 31 !: maximum number of harmonic 19 19 20 20 TYPE, PUBLIC :: tide 21 CHARACTER(LEN= 4) :: cname_tide21 CHARACTER(LEN=5) :: cname_tide 22 22 REAL(wp) :: equitide 23 23 INTEGER :: nutide -
branches/UKMO/dev_r8814_surge_modelling_Nemo4/NEMOGCM/NEMO/OPA_SRC/SBC/tideini.F90
r7646 r9120 46 46 !!---------------------------------------------------------------------- 47 47 INTEGER :: ji, jk 48 CHARACTER(LEN= 4), DIMENSION(jpmax_harmo) :: clname48 CHARACTER(LEN=5), DIMENSION(jpmax_harmo) :: clname 49 49 INTEGER :: ios ! Local integer output status for namelist read 50 50 ! -
branches/UKMO/dev_r8814_surge_modelling_Nemo4/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90
r8570 r9120 78 78 USE dia25h ! 25h mean output 79 79 USE sbc_oce , ONLY : lk_oasis 80 USE dom_oce , ONLY : ln_2d 80 81 USE wet_dry ! Wetting and drying setting (wad_init routine) 81 82 #if defined key_top … … 456 457 ! ! Ocean physics 457 458 ! ! Vertical physics 458 459 IF (.NOT. ln_2d) CALL zdf_init ! namelist read 459 460 CALL zdf_bfr_init ! bottom friction 460 461 IF( lk_zdfric ) CALL zdf_ric_init ! Richardson number dependent Kz … … 465 466 466 467 ! ! Lateral physics 467 468 IF (.NOT. ln_2d) CALL ldf_tra_init ! Lateral ocean tracer physics 468 469 CALL ldf_eiv_init ! eddy induced velocity param. 469 470 CALL ldf_dyn_init ! Lateral ocean momentum physics 470 471 472 IF (.NOT. ln_2d) THEN ! No tracers in 2D mode 471 473 ! ! Active tracers 472 474 CALL tra_qsr_init ! penetrative solar radiation qsr … … 477 479 CALL tra_ldf_init ! lateral mixing 478 480 CALL tra_zdf_init ! vertical mixing and after tracer fields 479 481 ENDIF 482 480 483 ! ! Dynamics 481 484 IF( lk_c1d ) CALL dyn_dmp_init ! internal momentum damping … … 484 487 CALL dyn_ldf_init ! lateral mixing 485 488 CALL dyn_hpg_init ! horizontal gradient of Hydrostatic pressure 486 489 IF (.NOT. ln_2d) CALL dyn_zdf_init ! vertical diffusion 487 490 CALL dyn_spg_init ! surface pressure gradient 488 491 -
branches/UKMO/dev_r8814_surge_modelling_Nemo4/NEMOGCM/NEMO/OPA_SRC/step.F90
r7753 r9120 120 120 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 121 121 ! THERMODYNAMICS 122 IF ( .NOT. ln_2d ) THEN 122 123 CALL eos_rab( tsb, rab_b ) ! before local thermal/haline expension ratio at T-points 123 124 CALL eos_rab( tsn, rab_n ) ! now local thermal/haline expension ratio at T-points 124 125 CALL bn2 ( tsb, rab_b, rn2b ) ! before Brunt-Vaisala frequency 125 126 CALL bn2 ( tsn, rab_n, rn2 ) ! now Brunt-Vaisala frequency 126 127 ENDIF 127 128 ! 128 129 ! VERTICAL PHYSICS … … 184 185 IF(.NOT.ln_linssh ) CALL dom_vvl_sf_nxt( kstp ) ! after vertical scale factors 185 186 CALL wzv ( kstp ) ! now cross-level velocity 186 187 IF( .NOT. ln_2d ) CALL eos ( tsn, rhd, rhop, gdept_n(:,:,:) ) ! now in situ density for hpg computation 187 188 188 189 !!jc: fs simplification … … 222 223 223 224 CALL dyn_bfr ( kstp ) ! bottom friction 224 225 IF (.NOT. ln_2d) CALL dyn_zdf ( kstp ) ! vertical diffusion 225 226 226 227 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> … … 252 253 ! Active tracers 253 254 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 255 IF (.NOT. ln_2d) THEN ! No tracers in 2D mode 254 256 tsa(:,:,:,:) = 0._wp ! set tracer trends to zero 255 257 … … 274 276 CALL tra_zdf ( kstp ) ! vertical mixing and after tracer fields 275 277 IF( ln_zdfnpc ) CALL tra_npc ( kstp ) ! update after fields by non-penetrative convection 278 ENDIF ! not ln_2d 276 279 277 280 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> … … 292 295 !! 293 296 !!jc2: dynnxt must be the latest call. e3t_b are indeed updated in that routine 294 297 IF (.NOT. ln_2d) CALL tra_nxt ( kstp ) ! finalize (bcs) tracer fields at next time step and swap 295 298 CALL dyn_nxt ( kstp ) ! finalize (bcs) velocities at next time step and swap 296 299 CALL ssh_swp ( kstp ) ! swap of sea surface height
Note: See TracChangeset
for help on using the changeset viewer.