Changeset 13286 for NEMO/trunk/src/OFF
- Timestamp:
- 2020-07-09T17:48:29+02:00 (4 years ago)
- Location:
- NEMO/trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk
- Property svn:externals
-
old new 2 2 ^/utils/build/makenemo@HEAD makenemo 3 3 ^/utils/build/mk@HEAD mk 4 ^/utils/tools /@HEADtools4 ^/utils/tools@HEAD tools 5 5 ^/vendors/AGRIF/dev_r12970_AGRIF_CMEMS ext/AGRIF 6 6 ^/vendors/FCM@HEAD ext/FCM … … 8 8 9 9 # SETTE 10 ^/utils/CI/ sette@12931sette10 ^/utils/CI/r12931_sette_ticket2366@HEAD sette
-
- Property svn:externals
-
NEMO/trunk/src/OFF/dtadyn.F90
r13237 r13286 71 71 INTEGER , SAVE :: jf_uwd ! index of u-transport 72 72 INTEGER , SAVE :: jf_vwd ! index of v-transport 73 INTEGER , SAVE :: jf_wwd ! index of v-transport73 INTEGER , SAVE :: jf_wwd ! index of w-transport 74 74 INTEGER , SAVE :: jf_avt ! index of Kz 75 75 INTEGER , SAVE :: jf_mld ! index of mixed layer deptht … … 128 128 ! 129 129 IF( kt == nit000 ) THEN ; nprevrec = 0 130 ELSE ; nprevrec = sf_dyn(jf_tem)%nrec _a(2)130 ELSE ; nprevrec = sf_dyn(jf_tem)%nrec(2,sf_dyn(jf_tem)%naa) 131 131 ENDIF 132 132 CALL fld_read( kt, 1, sf_dyn ) != read data at kt time step ==! … … 294 294 ! ! fill sf with slf_i and control print 295 295 CALL fld_fill( sf_dyn, slf_d, cn_dir, 'dta_dyn_init', 'Data in file', 'namdta_dyn' ) 296 sf_dyn(jf_uwd)%cltype = 'U' ; sf_dyn(jf_uwd)%zsgn = -1._wp 297 sf_dyn(jf_vwd)%cltype = 'V' ; sf_dyn(jf_vwd)%zsgn = -1._wp 298 sf_dyn(jf_ubl)%cltype = 'U' ; sf_dyn(jf_ubl)%zsgn = 1._wp 299 sf_dyn(jf_vbl)%cltype = 'V' ; sf_dyn(jf_vbl)%zsgn = 1._wp 296 300 ! 297 301 ! Open file for each variable to get his number of dimension … … 330 334 iom_varid( numrtr, 'sshn', ldstop = .FALSE. ) > 0 ) THEN 331 335 IF(lwp) WRITE(numout,*) ' ssh(:,:,Kmm) forcing fields read in the restart file for initialisation' 332 CALL iom_get( numrtr, jpdom_auto glo, 'sshn', ssh(:,:,Kmm) )333 CALL iom_get( numrtr, jpdom_auto glo, 'sshb', ssh(:,:,Kbb) )336 CALL iom_get( numrtr, jpdom_auto, 'sshn', ssh(:,:,Kmm) ) 337 CALL iom_get( numrtr, jpdom_auto, 'sshb', ssh(:,:,Kbb) ) 334 338 ELSE 335 339 IF(lwp) WRITE(numout,*) ' ssh(:,:,Kmm) forcing fields read in the restart file for initialisation' 336 340 CALL iom_open( 'restart', inum ) 337 CALL iom_get( inum, jpdom_auto glo, 'sshn', ssh(:,:,Kmm) )338 CALL iom_get( inum, jpdom_auto glo, 'sshb', ssh(:,:,Kbb) )341 CALL iom_get( inum, jpdom_auto, 'sshn', ssh(:,:,Kmm) ) 342 CALL iom_get( inum, jpdom_auto, 'sshb', ssh(:,:,Kbb) ) 339 343 CALL iom_close( inum ) ! close file 340 344 ENDIF … … 388 392 IF(lwp) WRITE(numout,*) ' read in the file depht over which runoffs are distributed' 389 393 CALL iom_open ( "runoffs", inum ) ! open file 390 CALL iom_get ( inum, jpdom_ data, 'rodepth', h_rnf ) ! read the river mouth array394 CALL iom_get ( inum, jpdom_global, 'rodepth', h_rnf ) ! read the river mouth array 391 395 CALL iom_close( inum ) ! close file 392 396 ! … … 452 456 ! 453 457 IF( kt == nit000 ) THEN ; nprevrec = 0 454 ELSE ; nprevrec = sf_dyn(jf_tem)%nrec _a(2)458 ELSE ; nprevrec = sf_dyn(jf_tem)%nrec(2,sf_dyn(jf_tem)%naa) 455 459 ENDIF 456 460 CALL fld_read( kt, 1, sf_dyn ) != read data at kt time step ==! … … 711 715 !!--------------------------------------------------------------------- 712 716 ! 713 IF( sf_dyn(jf_tem)%ln_tint ) THEN ! Computes slopes (here avt is used as workspace) 717 IF( sf_dyn(jf_tem)%ln_tint ) THEN ! Computes slopes (here avt is used as workspace) 718 ! 714 719 IF( kt == nit000 ) THEN 715 720 IF(lwp) WRITE(numout,*) ' Compute new slopes at kt = ', kt 716 zts(:,:,:,jp_tem) = sf_dyn(jf_tem)%fdta(:,:,:, 1) * tmask(:,:,:) ! temperature717 zts(:,:,:,jp_sal) = sf_dyn(jf_sal)%fdta(:,:,:, 1) * tmask(:,:,:) ! salinity718 avt(:,:,:) = sf_dyn(jf_avt)%fdta(:,:,:, 1) * tmask(:,:,:) ! vertical diffusive coef.721 zts(:,:,:,jp_tem) = sf_dyn(jf_tem)%fdta(:,:,:,sf_dyn(jf_tem)%nbb) * tmask(:,:,:) ! temperature 722 zts(:,:,:,jp_sal) = sf_dyn(jf_sal)%fdta(:,:,:,sf_dyn(jf_sal)%nbb) * tmask(:,:,:) ! salinity 723 avt(:,:,:) = sf_dyn(jf_avt)%fdta(:,:,:,sf_dyn(jf_avt)%nbb) * tmask(:,:,:) ! vertical diffusive coef. 719 724 CALL compute_slopes( kt, zts, zuslp, zvslp, zwslpi, zwslpj, Kbb, Kmm ) 720 725 uslpdta (:,:,:,1) = zuslp (:,:,:) … … 723 728 wslpjdta(:,:,:,1) = zwslpj(:,:,:) 724 729 ! 725 zts(:,:,:,jp_tem) = sf_dyn(jf_tem)%fdta(:,:,:, 2) * tmask(:,:,:) ! temperature726 zts(:,:,:,jp_sal) = sf_dyn(jf_sal)%fdta(:,:,:, 2) * tmask(:,:,:) ! salinity727 avt(:,:,:) = sf_dyn(jf_avt)%fdta(:,:,:, 2) * tmask(:,:,:) ! vertical diffusive coef.730 zts(:,:,:,jp_tem) = sf_dyn(jf_tem)%fdta(:,:,:,sf_dyn(jf_tem)%naa) * tmask(:,:,:) ! temperature 731 zts(:,:,:,jp_sal) = sf_dyn(jf_sal)%fdta(:,:,:,sf_dyn(jf_sal)%naa) * tmask(:,:,:) ! salinity 732 avt(:,:,:) = sf_dyn(jf_avt)%fdta(:,:,:,sf_dyn(jf_avt)%naa) * tmask(:,:,:) ! vertical diffusive coef. 728 733 CALL compute_slopes( kt, zts, zuslp, zvslp, zwslpi, zwslpj, Kbb, Kmm ) 729 734 uslpdta (:,:,:,2) = zuslp (:,:,:) … … 734 739 ! 735 740 iswap = 0 736 IF( sf_dyn(jf_tem)%nrec _a(2) - nprevrec /= 0 ) iswap = 1737 IF( nsecdyn > sf_dyn(jf_tem)%nrec _b(2) .AND. iswap == 1 ) THEN ! read/update the after data741 IF( sf_dyn(jf_tem)%nrec(2,sf_dyn(jf_tem)%naa) - nprevrec /= 0 ) iswap = 1 742 IF( nsecdyn > sf_dyn(jf_tem)%nrec(2,sf_dyn(jf_tem)%nbb) .AND. iswap == 1 ) THEN ! read/update the after data 738 743 IF(lwp) WRITE(numout,*) ' Compute new slopes at kt = ', kt 739 744 uslpdta (:,:,:,1) = uslpdta (:,:,:,2) ! swap the data … … 742 747 wslpjdta(:,:,:,1) = wslpjdta(:,:,:,2) 743 748 ! 744 zts(:,:,:,jp_tem) = sf_dyn(jf_tem)%fdta(:,:,:, 2) * tmask(:,:,:) ! temperature745 zts(:,:,:,jp_sal) = sf_dyn(jf_sal)%fdta(:,:,:, 2) * tmask(:,:,:) ! salinity746 avt(:,:,:) = sf_dyn(jf_avt)%fdta(:,:,:, 2) * tmask(:,:,:) ! vertical diffusive coef.749 zts(:,:,:,jp_tem) = sf_dyn(jf_tem)%fdta(:,:,:,sf_dyn(jf_tem)%naa) * tmask(:,:,:) ! temperature 750 zts(:,:,:,jp_sal) = sf_dyn(jf_sal)%fdta(:,:,:,sf_dyn(jf_sal)%naa) * tmask(:,:,:) ! salinity 751 avt(:,:,:) = sf_dyn(jf_avt)%fdta(:,:,:,sf_dyn(jf_avt)%naa) * tmask(:,:,:) ! vertical diffusive coef. 747 752 CALL compute_slopes( kt, zts, zuslp, zvslp, zwslpi, zwslpj, Kbb, Kmm ) 748 753 ! … … 756 761 ! 757 762 IF( sf_dyn(jf_tem)%ln_tint ) THEN 758 ztinta = REAL( nsecdyn - sf_dyn(jf_tem)%nrec _b(2), wp ) &759 & / REAL( sf_dyn(jf_tem)%nrec _a(2) - sf_dyn(jf_tem)%nrec_b(2), wp )763 ztinta = REAL( nsecdyn - sf_dyn(jf_tem)%nrec(2,sf_dyn(jf_tem)%nbb), wp ) & 764 & / REAL( sf_dyn(jf_tem)%nrec(2,sf_dyn(jf_tem)%naa) - sf_dyn(jf_tem)%nrec(2,sf_dyn(jf_tem)%nbb), wp ) 760 765 ztintb = 1. - ztinta 761 766 IF( l_ldfslp .AND. .NOT.lk_c1d ) THEN ! Computes slopes (here avt is used as workspace) -
NEMO/trunk/src/OFF/nemogcm.F90
r13237 r13286 31 31 USE domqco ! tools for scale factor (dom_qco_r3c routine) 32 32 #endif 33 USE bdy_oce, ONLY : ln_bdy 34 USE bdyini ! open boundary cond. setting (bdy_init routine) 33 USE bdyini ! open boundary cond. setting (bdy_init routine) 35 34 ! ! ocean physics 36 35 USE ldftra ! lateral diffusivity setting (ldf_tra_init routine) … … 64 63 USE timing ! Timing 65 64 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 66 USE lbcnfd , ONLY : isendto, nsndto , nfsloop, nfeloop! Setup of north fold exchanges65 USE lbcnfd , ONLY : isendto, nsndto ! Setup of north fold exchanges 67 66 USE step, ONLY : Nbb, Nnn, Naa, Nrhs ! time level indices 67 USE halo_mng 68 68 69 69 IMPLICIT NONE … … 193 193 INTEGER :: ios, ilocal_comm ! local integers 194 194 !! 195 NAMELIST/namctl/ sn_cfctl, nn_print, nn_ictls, nn_ictle, & 196 & nn_isplt , nn_jsplt, nn_jctls, nn_jctle, & 197 & ln_timing, ln_diacfl 195 NAMELIST/namctl/ sn_cfctl, ln_timing, ln_diacfl, & 196 & nn_isplt, nn_jsplt, nn_ictls, nn_ictle, nn_jctls, nn_jctle 198 197 NAMELIST/namcfg/ ln_read_cfg, cn_domcfg, ln_closea, ln_write_cfg, cn_domcfg_out, ln_use_jattr 199 198 !!---------------------------------------------------------------------- 200 199 ! 201 200 cxios_context = 'nemo' 201 nn_hls = 1 202 202 ! 203 203 ! !-------------------------------------------------! … … 292 292 ! 293 293 IF( ln_read_cfg ) THEN ! Read sizes in domain configuration file 294 CALL domain_cfg ( cn_cfg, nn_cfg, jpiglo, jpjglo, jpkglo, jperio )294 CALL domain_cfg ( cn_cfg, nn_cfg, Ni0glo, Nj0glo, jpkglo, jperio ) 295 295 ELSE ! user-defined namelist 296 CALL usr_def_nam( cn_cfg, nn_cfg, jpiglo, jpjglo, jpkglo, jperio )296 CALL usr_def_nam( cn_cfg, nn_cfg, Ni0glo, Nj0glo, jpkglo, jperio ) 297 297 ENDIF 298 298 ! … … 306 306 CALL mpp_init 307 307 308 CALL halo_mng_init() 308 309 ! Now we know the dimensions of the grid and numout has been set: we can allocate arrays 309 310 CALL nemo_alloc() … … 386 387 WRITE(numout,*) ' sn_cfctl%procincr = ', sn_cfctl%procincr 387 388 WRITE(numout,*) ' sn_cfctl%ptimincr = ', sn_cfctl%ptimincr 388 WRITE(numout,*) ' level of print nn_print = ', nn_print389 WRITE(numout,*) ' Start i indice for SUM control nn_ictls = ', nn_ictls390 WRITE(numout,*) ' End i indice for SUM control nn_ictle = ', nn_ictle391 WRITE(numout,*) ' Start j indice for SUM control nn_jctls = ', nn_jctls392 WRITE(numout,*) ' End j indice for SUM control nn_jctle = ', nn_jctle393 WRITE(numout,*) ' number of proc. following i nn_isplt = ', nn_isplt394 WRITE(numout,*) ' number of proc. following j nn_jsplt = ', nn_jsplt395 389 WRITE(numout,*) ' timing by routine ln_timing = ', ln_timing 396 390 WRITE(numout,*) ' CFL diagnostics ln_diacfl = ', ln_diacfl 397 391 ENDIF 398 ! 399 nprint = nn_print ! convert DOCTOR namelist names into OLD names 400 nictls = nn_ictls 401 nictle = nn_ictle 402 njctls = nn_jctls 403 njctle = nn_jctle 404 isplt = nn_isplt 405 jsplt = nn_jsplt 406 392 393 IF( .NOT.ln_read_cfg ) ln_closea = .false. ! dealing possible only with a domcfg file 407 394 IF(lwp) THEN ! control print 408 395 WRITE(numout,*) … … 414 401 WRITE(numout,*) ' filename to be written cn_domcfg_out = ', TRIM(cn_domcfg_out) 415 402 WRITE(numout,*) ' use file attribute if exists as i/p j-start ln_use_jattr = ', ln_use_jattr 416 ENDIF417 IF( .NOT.ln_read_cfg ) ln_closea = .false. ! dealing possible only with a domcfg file418 !419 ! ! Parameter control420 !421 IF( sn_cfctl%l_prtctl .OR. sn_cfctl%l_prttrc ) THEN ! sub-domain area indices for the control prints422 IF( lk_mpp .AND. jpnij > 1 ) THEN423 isplt = jpni ; jsplt = jpnj ; ijsplt = jpni*jpnj ! the domain is forced to the real split domain424 ELSE425 IF( isplt == 1 .AND. jsplt == 1 ) THEN426 CALL ctl_warn( ' - isplt & jsplt are equal to 1', &427 & ' - the print control will be done over the whole domain' )428 ENDIF429 ijsplt = isplt * jsplt ! total number of processors ijsplt430 ENDIF431 IF(lwp) WRITE(numout,*)' - The total number of processors over which the'432 IF(lwp) WRITE(numout,*)' print control will be done is ijsplt : ', ijsplt433 !434 ! ! indices used for the SUM control435 IF( nictls+nictle+njctls+njctle == 0 ) THEN ! print control done over the default area436 lsp_area = .FALSE.437 ELSE ! print control done over a specific area438 lsp_area = .TRUE.439 IF( nictls < 1 .OR. nictls > jpiglo ) THEN440 CALL ctl_warn( ' - nictls must be 1<=nictls>=jpiglo, it is forced to 1' )441 nictls = 1442 ENDIF443 IF( nictle < 1 .OR. nictle > jpiglo ) THEN444 CALL ctl_warn( ' - nictle must be 1<=nictle>=jpiglo, it is forced to jpiglo' )445 nictle = jpiglo446 ENDIF447 IF( njctls < 1 .OR. njctls > jpjglo ) THEN448 CALL ctl_warn( ' - njctls must be 1<=njctls>=jpjglo, it is forced to 1' )449 njctls = 1450 ENDIF451 IF( njctle < 1 .OR. njctle > jpjglo ) THEN452 CALL ctl_warn( ' - njctle must be 1<=njctle>=jpjglo, it is forced to jpjglo' )453 njctle = jpjglo454 ENDIF455 ENDIF456 403 ENDIF 457 404 !
Note: See TracChangeset
for help on using the changeset viewer.