- Timestamp:
- 2020-09-14T17:40:34+02:00 (4 years ago)
- Location:
- NEMO/branches/2019/dev_r11351_fldread_with_XIOS
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11351_fldread_with_XIOS
- Property svn:externals
-
old new 3 3 ^/utils/build/mk@HEAD mk 4 4 ^/utils/tools@HEAD tools 5 ^/vendors/AGRIF/dev @HEADext/AGRIF5 ^/vendors/AGRIF/dev_r12970_AGRIF_CMEMS ext/AGRIF 6 6 ^/vendors/FCM@HEAD ext/FCM 7 7 ^/vendors/IOIPSL@HEAD ext/IOIPSL 8 9 # SETTE 10 ^/utils/CI/sette@13382 sette
-
- Property svn:externals
-
NEMO/branches/2019/dev_r11351_fldread_with_XIOS/src/OCE/TRD/trdmxl.F90
r10425 r13463 68 68 INTEGER :: ionce, icount 69 69 70 !! * Substitutions 71 # include "do_loop_substitute.h90" 72 # include "domzgr_substitute.h90" 70 73 !!---------------------------------------------------------------------- 71 74 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 86 89 87 90 88 SUBROUTINE trd_tra_mxl( ptrdx, ptrdy, ktrd, kt, p2dt, kmxln )91 SUBROUTINE trd_tra_mxl( ptrdx, ptrdy, ktrd, kt, p2dt, kmxln, Kmm ) 89 92 !!---------------------------------------------------------------------- 90 93 !! *** ROUTINE trd_tra_mng *** … … 98 101 INTEGER , INTENT(in ) :: ktrd ! tracer trend index 99 102 INTEGER , INTENT(in ) :: kt ! time step index 103 INTEGER , INTENT(in ) :: Kmm ! time level index 100 104 REAL(wp) , INTENT(in ) :: p2dt ! time step [s] 101 105 REAL(wp), DIMENSION(:,:) , INTENT(in ) :: kmxln ! number of t-box for the vertical average … … 116 120 ! 117 121 wkx(:,:,:) = 0._wp !== now ML weights for vertical averaging ==! 118 DO jk = 1, jpktrd ! initialize wkx with vertical scale factor in mixed-layer 119 DO jj = 1,jpj 120 DO ji = 1,jpi 121 IF( jk - kmxln(ji,jj) < 0 ) wkx(ji,jj,jk) = e3t_n(ji,jj,jk) * tmask(ji,jj,jk) 122 END DO 123 END DO 124 END DO 122 DO_3D( 1, 1, 1, 1, 1, jpktrd ) 123 IF( jk - kmxln(ji,jj) < 0 ) THEN 124 wkx(ji,jj,jk) = e3t(ji,jj,jk,Kmm) * tmask(ji,jj,jk) 125 ENDIF 126 END_3D 125 127 hmxl(:,:) = 0._wp ! NOW mixed-layer depth 126 128 DO jk = 1, jpktrd … … 136 138 tml(:,:) = 0._wp ; sml(:,:) = 0._wp 137 139 DO jk = 1, jpktrd 138 tml(:,:) = tml(:,:) + wkx(:,:,jk) * ts n(:,:,jk,jp_tem)139 sml(:,:) = sml(:,:) + wkx(:,:,jk) * ts n(:,:,jk,jp_sal)140 tml(:,:) = tml(:,:) + wkx(:,:,jk) * ts(:,:,jk,jp_tem,Kmm) 141 sml(:,:) = sml(:,:) + wkx(:,:,jk) * ts(:,:,jk,jp_sal,Kmm) 140 142 END DO 141 143 ! … … 152 154 !!gm to be put juste before the output ! 153 155 ! ! Lateral boundary conditions 154 ! CALL lbc_lnk_multi( 'trdmxl', tmltrd(:,:,jl), 'T', 1. , smltrd(:,:,jl), 'T', 1.)156 ! CALL lbc_lnk_multi( 'trdmxl', tmltrd(:,:,jl), 'T', 1.0_wp , smltrd(:,:,jl), 'T', 1.0_wp ) 155 157 !!gm end 156 158 … … 371 373 hmxlbn(:,:) = hmxl(:,:) 372 374 373 IF( ln_ctl ) THEN375 IF( sn_cfctl%l_prtctl ) THEN 374 376 WRITE(numout,*) ' we reach kt == nit000 + 1 = ', nit000+1 375 377 CALL prt_ctl(tab2d_1=tmlbb , clinfo1=' tmlbb - : ', mask1=tmask) … … 380 382 END IF 381 383 382 IF( ( ln_rstart ) .AND. ( kt == nit000 ) .AND. ( ln_ctl )) THEN384 IF( ( ln_rstart ) .AND. ( kt == nit000 ) .AND. sn_cfctl%l_prtctl ) THEN 383 385 IF( ln_trdmxl_instant ) THEN 384 386 WRITE(numout,*) ' restart from kt == nit000 = ', nit000 … … 470 472 !-- Lateral boundary conditions 471 473 ! ... temperature ... ... salinity ... 472 CALL lbc_lnk_multi( 'trdmxl', ztmltot , 'T', 1. , zsmltot , 'T', 1., &473 & ztmlres , 'T', 1. , zsmlres , 'T', 1., &474 & ztmlatf , 'T', 1. , zsmlatf , 'T', 1.)474 CALL lbc_lnk_multi( 'trdmxl', ztmltot , 'T', 1.0_wp, zsmltot , 'T', 1.0_wp, & 475 & ztmlres , 'T', 1.0_wp, zsmlres , 'T', 1.0_wp, & 476 & ztmlatf , 'T', 1.0_wp, zsmlatf , 'T', 1.0_wp ) 475 477 476 478 … … 521 523 !-- Lateral boundary conditions 522 524 ! ... temperature ... ... salinity ... 523 CALL lbc_lnk_multi( 'trdmxl', ztmltot2, 'T', 1. , zsmltot2, 'T', 1., &524 & ztmlres2, 'T', 1. , zsmlres2, 'T', 1.)525 ! 526 CALL lbc_lnk_multi( 'trdmxl', ztmltrd2(:,:,:), 'T', 1. , zsmltrd2(:,:,:), 'T', 1.) ! / in the NetCDF trends file525 CALL lbc_lnk_multi( 'trdmxl', ztmltot2, 'T', 1.0_wp, zsmltot2, 'T', 1.0_wp, & 526 & ztmlres2, 'T', 1.0_wp, zsmlres2, 'T', 1.0_wp ) 527 ! 528 CALL lbc_lnk_multi( 'trdmxl', ztmltrd2(:,:,:), 'T', 1.0_wp, zsmltrd2(:,:,:), 'T', 1.0_wp ) ! / in the NetCDF trends file 527 529 528 530 ! III.3 Time evolution array swap … … 548 550 hmxlbn (:,:) = hmxl (:,:) 549 551 550 IF( ln_ctl ) THEN552 IF( sn_cfctl%l_prtctl ) THEN 551 553 IF( ln_trdmxl_instant ) THEN 552 554 CALL prt_ctl(tab2d_1=tmlbb , clinfo1=' tmlbb - : ', mask1=tmask) … … 732 734 !!---------------------------------------------------------------------- 733 735 ! 734 REWIND( numnam_ref ) ! Namelist namtrd_mxl in reference namelist : mixed layer trends diagnostic735 736 READ ( numnam_ref, namtrd_mxl, IOSTAT = ios, ERR = 901 ) 736 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrd_mxl in reference namelist', lwp ) 737 738 REWIND( numnam_cfg ) ! Namelist namtrd_mxl in configuration namelist : mixed layer trends diagnostic 737 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrd_mxl in reference namelist' ) 738 739 739 READ ( numnam_cfg, namtrd_mxl, IOSTAT = ios, ERR = 902 ) 740 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namtrd_mxl in configuration namelist' , lwp)740 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namtrd_mxl in configuration namelist' ) 741 741 IF(lwm) WRITE( numond, namtrd_mxl ) 742 742 ! … … 764 764 765 765 IF( MOD( nitend, nn_trd ) /= 0 ) THEN 766 WRITE(numout,cform_err) 767 WRITE(numout,*) ' Your nitend parameter, nitend = ', nitend 768 WRITE(numout,*) ' is no multiple of the trends diagnostics frequency ' 769 WRITE(numout,*) ' you defined, nn_trd = ', nn_trd 770 WRITE(numout,*) ' This will not allow you to restart from this simulation. ' 771 WRITE(numout,*) ' You should reconsider this choice. ' 772 WRITE(numout,*) 773 WRITE(numout,*) ' N.B. the nitend parameter is also constrained to be a ' 774 WRITE(numout,*) ' multiple of the nn_fsbc parameter ' 775 CALL ctl_stop( 'trd_mxl_init: see comment just above' ) 766 WRITE(ctmp1,*) ' Your nitend parameter, nitend = ', nitend 767 WRITE(ctmp2,*) ' is no multiple of the trends diagnostics frequency ' 768 WRITE(ctmp3,*) ' you defined, nn_trd = ', nn_trd 769 WRITE(ctmp4,*) ' This will not allow you to restart from this simulation. ' 770 WRITE(ctmp5,*) ' You should reconsider this choice. ' 771 WRITE(ctmp6,*) 772 WRITE(ctmp7,*) ' N.B. the nitend parameter is also constrained to be a ' 773 WRITE(ctmp8,*) ' multiple of the nn_fsbc parameter ' 774 CALL ctl_stop( ctmp1, ctmp2, ctmp3, ctmp4, ctmp5, ctmp6, ctmp7, ctmp8 ) 776 775 END IF 777 776
Note: See TracChangeset
for help on using the changeset viewer.