- Timestamp:
- 2020-09-29T12:41:06+02:00 (4 years ago)
- Location:
- NEMO/branches/2020/r12377_ticket2386
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/r12377_ticket2386
- 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 8 9 9 # SETTE 10 ^/utils/CI/sette@ HEADsette10 ^/utils/CI/sette@13507 sette
-
- Property svn:externals
-
NEMO/branches/2020/r12377_ticket2386/src/OCE/DOM/domain.F90
r12515 r13540 15 15 !! 3.7 ! 2015-11 (G. Madec, A. Coward) time varying zgr by default 16 16 !! 4.0 ! 2016-10 (G. Madec, S. Flavoni) domain configuration / user defined interface 17 !! 4.x ! 2020-02 (G. Madec, S. Techene) introduce ssh to h0 ratio 17 18 !!---------------------------------------------------------------------- 18 19 … … 34 35 USE dommsk ! domain: set the mask system 35 36 USE domwri ! domain: write the meshmask file 37 #if ! defined key_qco 36 38 USE domvvl ! variable volume 39 #else 40 USE domqco ! variable volume 41 #endif 37 42 USE c1d ! 1D configuration 38 43 USE dyncor_c1d ! 1D configuration: Coriolis term (cor_c1d routine) … … 76 81 CHARACTER (len=*), INTENT(in) :: cdstr ! model: NEMO or SAS. Determines core restart variables 77 82 ! 78 INTEGER :: ji, jj, jk, ik! dummy loop indices83 INTEGER :: ji, jj, jk, jt ! dummy loop indices 79 84 INTEGER :: iconf = 0 ! local integers 80 85 CHARACTER (len=64) :: cform = "(A12, 3(A13, I7))" … … 110 115 CASE( 7 ) ; WRITE(numout,*) ' (i.e. cyclic east-west and north-south)' 111 116 CASE DEFAULT 112 CALL ctl_stop( ' jperio is out of range' )117 CALL ctl_stop( 'dom_init: jperio is out of range' ) 113 118 END SELECT 114 119 WRITE(numout,*) ' Ocean model configuration used:' … … 140 145 IF( ln_closea ) CALL dom_clo ! Read in masks to define closed seas and lakes 141 146 142 CALL dom_zgr( ik_top, ik_bot ) ! Vertical mesh and bathymetry 147 CALL dom_zgr( ik_top, ik_bot ) ! Vertical mesh and bathymetry (return top and bottom ocean t-level indices) 143 148 144 149 CALL dom_msk( ik_top, ik_bot ) ! Masks … … 147 152 hu_0(:,:) = 0._wp 148 153 hv_0(:,:) = 0._wp 154 hf_0(:,:) = 0._wp 149 155 DO jk = 1, jpk 150 156 ht_0(:,:) = ht_0(:,:) + e3t_0(:,:,jk) * tmask(:,:,jk) 151 157 hu_0(:,:) = hu_0(:,:) + e3u_0(:,:,jk) * umask(:,:,jk) 152 158 hv_0(:,:) = hv_0(:,:) + e3v_0(:,:,jk) * vmask(:,:,jk) 159 hf_0(:,:) = hf_0(:,:) + e3f_0(:,:,jk) * fmask(:,:,jk) 153 160 END DO 154 161 ! 162 r1_ht_0(:,:) = ssmask (:,:) / ( ht_0(:,:) + 1._wp - ssmask (:,:) ) 163 r1_hu_0(:,:) = ssumask(:,:) / ( hu_0(:,:) + 1._wp - ssumask(:,:) ) 164 r1_hv_0(:,:) = ssvmask(:,:) / ( hv_0(:,:) + 1._wp - ssvmask(:,:) ) 165 r1_hf_0(:,:) = ssfmask(:,:) / ( hf_0(:,:) + 1._wp - ssfmask(:,:) ) 166 167 ! 168 #if defined key_qco 169 ! !== initialisation of time varying coordinate ==! Quasi-Euerian coordinate case 170 ! 171 IF( .NOT.l_offline ) CALL dom_qco_init( Kbb, Kmm, Kaa ) 172 ! 173 IF( ln_linssh ) CALL ctl_stop('STOP','domain: key_qco and ln_linssh = T are incompatible') 174 ! 175 #else 155 176 ! !== time varying part of coordinate system ==! 156 177 ! 157 178 IF( ln_linssh ) THEN != Fix in time : set to the reference one for all 158 !159 ! before ! now ! after !160 gdept(:,:,:, Kbb) = gdept_0 ; gdept(:,:,:,Kmm) = gdept_0 ; gdept(:,:,:,Kaa) = gdept_0 ! depth of grid-points161 gdepw(:,:,:, Kbb) = gdepw_0 ; gdepw(:,:,:,Kmm) = gdepw_0 ; gdepw(:,:,:,Kaa) = gdepw_0 !162 gde3w = gde3w_0 ! --- !163 !164 e3t(:,:,:,Kbb) = e3t_0 ; e3t(:,:,:,Kmm) = e3t_0 ; e3t(:,:,:,Kaa) = e3t_0 ! scale factors165 e3u(:,:,:,Kbb) = e3u_0 ; e3u(:,:,:,Kmm) = e3u_0 ; e3u(:,:,:,Kaa) = e3u_0 !166 e3v(:,:,:,Kbb) = e3v_0 ; e3v(:,:,:,Kmm) = e3v_0 ; e3v(:,:,:,Kaa) = e3v_0 !167 e3f = e3f_0 ! --- !168 e3w(:,:,:,Kbb) = e3w_0 ; e3w(:,:,:,Kmm) = e3w_0 ; e3w(:,:,:,Kaa) = e3w_0 !169 e3uw(:,:,:,Kbb) = e3uw_0 ; e3uw(:,:,:,Kmm) = e3uw_0 ; e3uw(:,:,:,Kaa) = e3uw_0 !170 e3vw(:,:,:,Kbb) = e3vw_0 ; e3vw(:,:,:,Kmm) = e3vw_0 ; e3vw(:,:,:,Kaa) = e3vw_0 !171 !172 z1_hu_0(:,:) = ssumask(:,:) / ( hu_0(:,:) + 1._wp - ssumask(:,:) ) ! _i mask due to ISF173 z1_hv_0(:,:) = ssvmask(:,:) / ( hv_0(:,:) + 1._wp - ssvmask(:,:))174 ! 175 ! before ! now ! after !176 ht = ht_0 ! ! water column thickness177 hu(:,:,Kbb) = hu_0 ; hu(:,:,Kmm) = hu_0 ; hu(:,:,Kaa) = hu_0 !178 hv(:,:,Kbb) = hv_0 ; hv(:,:,Kmm) = hv_0 ; hv(:,:,Kaa) = hv_0 !179 r1_h u(:,:,Kbb) = z1_hu_0 ; r1_hu(:,:,Kmm) = z1_hu_0 ; r1_hu(:,:,Kaa) = z1_hu_0 ! inverse of water column thickness180 r1_hv(:,:,Kbb) = z1_hv_0 ; r1_hv(:,:,Kmm) = z1_hv_0 ; r1_hv(:,:,Kaa) = z1_hv_0 !181 !179 ! 180 DO jt = 1, jpt ! depth of t- and w-grid-points 181 gdept(:,:,:,jt) = gdept_0(:,:,:) 182 gdepw(:,:,:,jt) = gdepw_0(:,:,:) 183 END DO 184 gde3w(:,:,:) = gde3w_0(:,:,:) ! = gdept as the sum of e3t 185 ! 186 DO jt = 1, jpt ! vertical scale factors 187 e3t(:,:,:,jt) = e3t_0(:,:,:) 188 e3u(:,:,:,jt) = e3u_0(:,:,:) 189 e3v(:,:,:,jt) = e3v_0(:,:,:) 190 e3w(:,:,:,jt) = e3w_0(:,:,:) 191 e3uw(:,:,:,jt) = e3uw_0(:,:,:) 192 e3vw(:,:,:,jt) = e3vw_0(:,:,:) 193 END DO 194 e3f(:,:,:) = e3f_0(:,:,:) 195 ! 196 DO jt = 1, jpt ! water column thickness and its inverse 197 hu(:,:,jt) = hu_0(:,:) 198 hv(:,:,jt) = hv_0(:,:) 199 r1_hu(:,:,jt) = r1_hu_0(:,:) 200 r1_hv(:,:,jt) = r1_hv_0(:,:) 201 END DO 202 ht(:,:) = ht_0(:,:) 182 203 ! 183 204 ELSE != time varying : initialize before/now/after variables 184 205 ! 185 IF( .NOT.l_offline ) CALL dom_vvl_init( Kbb, Kmm, Kaa ) 186 ! 187 ENDIF 188 ! 206 IF( .NOT.l_offline ) CALL dom_vvl_init( Kbb, Kmm, Kaa ) 207 ! 208 ENDIF 209 #endif 210 211 ! 212 189 213 IF( lk_c1d ) CALL cor_c1d ! 1D configuration: Coriolis set at T-point 190 214 ! 215 216 #if defined key_agrif 217 IF( .NOT. Agrif_Root() ) CALL Agrif_Init_Domain( Kbb, Kmm, Kaa ) 218 #endif 191 219 IF( ln_meshmask ) CALL dom_wri ! Create a domain file 192 220 IF( .NOT.ln_rstart ) CALL dom_ctl ! Domain control … … 212 240 !! ** Method : 213 241 !! 214 !! ** Action : - mig , mjg : local domain indices ==> global domain indices 242 !! ** Action : - mig , mjg : local domain indices ==> global domain, including halos, indices 243 !! - mig0, mjg0: local domain indices ==> global domain, excluding halos, indices 215 244 !! - mi0 , mi1 : global domain indices ==> local domain indices 216 !! - mj0 ,, mj1 (global point not in the local domain ==> mi0>mi1 and/or mj0>mj1)245 !! - mj0 , mj1 (if global point not in the local domain ==> mi0>mi1 and/or mj0>mj1) 217 246 !!---------------------------------------------------------------------- 218 247 INTEGER :: ji, jj ! dummy loop argument 219 248 !!---------------------------------------------------------------------- 220 249 ! 221 DO ji = 1, jpi ! local domain indices ==> global domain indices 250 DO ji = 1, jpi ! local domain indices ==> global domain indices, including halos 222 251 mig(ji) = ji + nimpp - 1 223 252 END DO … … 225 254 mjg(jj) = jj + njmpp - 1 226 255 END DO 227 ! ! global domain indices ==> local domain indices 256 ! ! local domain indices ==> global domain indices, excluding halos 257 ! 258 mig0(:) = mig(:) - nn_hls 259 mjg0(:) = mjg(:) - nn_hls 260 ! WARNING: to keep compatibility with the trunk that was including periodocity into the input data, 261 ! we must define mig0 and mjg0 as bellow. 262 ! Once we decide to forget trunk compatibility, we must simply define mig0 and mjg0 as: 263 mig0_oldcmp(:) = mig0(:) + COUNT( (/ jperio == 1 .OR. jperio == 4 .OR. jperio == 6 .OR. jperio == 7 /) ) 264 mjg0_oldcmp(:) = mjg0(:) + COUNT( (/ jperio == 2 .OR. jperio == 7 /) ) 265 ! 266 ! ! global domain, including halos, indices ==> local domain indices 228 267 ! ! (return (m.0,m.1)=(1,0) if data domain gridpoint is to the west/south of the 229 268 ! ! local domain, or (m.0,m.1)=(jp.+1,jp.) to the east/north of local domain. … … 243 282 WRITE(numout,*) ' local domain: jpi = ', jpi , ' jpj = ', jpj , ' jpk = ', jpk 244 283 WRITE(numout,*) 245 WRITE(numout,*) ' conversion from local to global domain indices (and vise versa) done' 246 IF( nn_print >= 1 ) THEN 247 WRITE(numout,*) 248 WRITE(numout,*) ' conversion local ==> global i-index domain (mig)' 249 WRITE(numout,25) (mig(ji),ji = 1,jpi) 250 WRITE(numout,*) 251 WRITE(numout,*) ' conversion global ==> local i-index domain' 252 WRITE(numout,*) ' starting index (mi0)' 253 WRITE(numout,25) (mi0(ji),ji = 1,jpiglo) 254 WRITE(numout,*) ' ending index (mi1)' 255 WRITE(numout,25) (mi1(ji),ji = 1,jpiglo) 256 WRITE(numout,*) 257 WRITE(numout,*) ' conversion local ==> global j-index domain (mjg)' 258 WRITE(numout,25) (mjg(jj),jj = 1,jpj) 259 WRITE(numout,*) 260 WRITE(numout,*) ' conversion global ==> local j-index domain' 261 WRITE(numout,*) ' starting index (mj0)' 262 WRITE(numout,25) (mj0(jj),jj = 1,jpjglo) 263 WRITE(numout,*) ' ending index (mj1)' 264 WRITE(numout,25) (mj1(jj),jj = 1,jpjglo) 265 ENDIF 266 ENDIF 267 25 FORMAT( 100(10x,19i4,/) ) 284 ENDIF 268 285 ! 269 286 END SUBROUTINE dom_glo … … 307 324 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namrun in configuration namelist' ) 308 325 IF(lwm) WRITE ( numond, namrun ) 326 327 #if defined key_agrif 328 IF( .NOT. Agrif_Root() ) THEN 329 nn_it000 = (Agrif_Parent(nn_it000)-1)*Agrif_IRhot() + 1 330 nn_itend = Agrif_Parent(nn_itend) *Agrif_IRhot() 331 ENDIF 332 #endif 309 333 ! 310 334 IF(lwp) THEN ! control print … … 378 402 #endif 379 403 380 #if defined key_agrif381 404 IF( Agrif_Root() ) THEN 382 #endif 383 IF(lwp) WRITE(numout,*) 384 SELECT CASE ( nleapy ) ! Choose calendar for IOIPSL 385 CASE ( 1 ) 386 CALL ioconf_calendar('gregorian') 387 IF(lwp) WRITE(numout,*) ' ==>>> The IOIPSL calendar is "gregorian", i.e. leap year' 388 CASE ( 0 ) 389 CALL ioconf_calendar('noleap') 390 IF(lwp) WRITE(numout,*) ' ==>>> The IOIPSL calendar is "noleap", i.e. no leap year' 391 CASE ( 30 ) 392 CALL ioconf_calendar('360d') 393 IF(lwp) WRITE(numout,*) ' ==>>> The IOIPSL calendar is "360d", i.e. 360 days in a year' 394 END SELECT 395 #if defined key_agrif 396 ENDIF 397 #endif 405 IF(lwp) WRITE(numout,*) 406 SELECT CASE ( nleapy ) ! Choose calendar for IOIPSL 407 CASE ( 1 ) 408 CALL ioconf_calendar('gregorian') 409 IF(lwp) WRITE(numout,*) ' ==>>> The IOIPSL calendar is "gregorian", i.e. leap year' 410 CASE ( 0 ) 411 CALL ioconf_calendar('noleap') 412 IF(lwp) WRITE(numout,*) ' ==>>> The IOIPSL calendar is "noleap", i.e. no leap year' 413 CASE ( 30 ) 414 CALL ioconf_calendar('360d') 415 IF(lwp) WRITE(numout,*) ' ==>>> The IOIPSL calendar is "360d", i.e. 360 days in a year' 416 END SELECT 417 ENDIF 398 418 399 419 READ ( numnam_ref, namdom, IOSTAT = ios, ERR = 903) … … 402 422 904 IF( ios > 0 ) CALL ctl_nam ( ios , 'namdom in configuration namelist' ) 403 423 IF(lwm) WRITE( numond, namdom ) 424 ! 425 #if defined key_agrif 426 IF( .NOT. Agrif_Root() ) THEN 427 rn_Dt = Agrif_Parent(rn_Dt) / Agrif_Rhot() 428 ENDIF 429 #endif 404 430 ! 405 431 IF(lwp) THEN … … 462 488 !! ** Method : compute and print extrema of masked scale factors 463 489 !!---------------------------------------------------------------------- 464 INTEGER, DIMENSION(2) :: imi1, imi2, ima1, ima2 465 INTEGER, DIMENSION(2) :: iloc ! 466 REAL(wp) :: ze1min, ze1max, ze2min, ze2max 467 !!---------------------------------------------------------------------- 468 ! 469 IF(lk_mpp) THEN 470 CALL mpp_minloc( 'domain', e1t(:,:), tmask_i(:,:), ze1min, imi1 ) 471 CALL mpp_minloc( 'domain', e2t(:,:), tmask_i(:,:), ze2min, imi2 ) 472 CALL mpp_maxloc( 'domain', e1t(:,:), tmask_i(:,:), ze1max, ima1 ) 473 CALL mpp_maxloc( 'domain', e2t(:,:), tmask_i(:,:), ze2max, ima2 ) 474 ELSE 475 ze1min = MINVAL( e1t(:,:), mask = tmask_i(:,:) == 1._wp ) 476 ze2min = MINVAL( e2t(:,:), mask = tmask_i(:,:) == 1._wp ) 477 ze1max = MAXVAL( e1t(:,:), mask = tmask_i(:,:) == 1._wp ) 478 ze2max = MAXVAL( e2t(:,:), mask = tmask_i(:,:) == 1._wp ) 479 ! 480 iloc = MINLOC( e1t(:,:), mask = tmask_i(:,:) == 1._wp ) 481 imi1(1) = iloc(1) + nimpp - 1 482 imi1(2) = iloc(2) + njmpp - 1 483 iloc = MINLOC( e2t(:,:), mask = tmask_i(:,:) == 1._wp ) 484 imi2(1) = iloc(1) + nimpp - 1 485 imi2(2) = iloc(2) + njmpp - 1 486 iloc = MAXLOC( e1t(:,:), mask = tmask_i(:,:) == 1._wp ) 487 ima1(1) = iloc(1) + nimpp - 1 488 ima1(2) = iloc(2) + njmpp - 1 489 iloc = MAXLOC( e2t(:,:), mask = tmask_i(:,:) == 1._wp ) 490 ima2(1) = iloc(1) + nimpp - 1 491 ima2(2) = iloc(2) + njmpp - 1 492 ENDIF 490 LOGICAL, DIMENSION(jpi,jpj) :: llmsk 491 INTEGER, DIMENSION(2) :: imil, imip, imi1, imi2, imal, imap, ima1, ima2 492 REAL(wp) :: zglmin, zglmax, zgpmin, zgpmax, ze1min, ze1max, ze2min, ze2max 493 !!---------------------------------------------------------------------- 494 ! 495 llmsk = tmask_h(:,:) == 1._wp 496 ! 497 CALL mpp_minloc( 'domain', glamt(:,:), llmsk, zglmin, imil ) 498 CALL mpp_minloc( 'domain', gphit(:,:), llmsk, zgpmin, imip ) 499 CALL mpp_minloc( 'domain', e1t(:,:), llmsk, ze1min, imi1 ) 500 CALL mpp_minloc( 'domain', e2t(:,:), llmsk, ze2min, imi2 ) 501 CALL mpp_maxloc( 'domain', glamt(:,:), llmsk, zglmax, imal ) 502 CALL mpp_maxloc( 'domain', gphit(:,:), llmsk, zgpmax, imap ) 503 CALL mpp_maxloc( 'domain', e1t(:,:), llmsk, ze1max, ima1 ) 504 CALL mpp_maxloc( 'domain', e2t(:,:), llmsk, ze2max, ima2 ) 505 ! 493 506 IF(lwp) THEN 494 507 WRITE(numout,*) 495 508 WRITE(numout,*) 'dom_ctl : extrema of the masked scale factors' 496 509 WRITE(numout,*) '~~~~~~~' 497 WRITE(numout,"(14x,'e1t maxi: ',1f10.2,' at i = ',i5,' j= ',i5)") ze1max, ima1(1), ima1(2) 498 WRITE(numout,"(14x,'e1t mini: ',1f10.2,' at i = ',i5,' j= ',i5)") ze1min, imi1(1), imi1(2) 499 WRITE(numout,"(14x,'e2t maxi: ',1f10.2,' at i = ',i5,' j= ',i5)") ze2max, ima2(1), ima2(2) 500 WRITE(numout,"(14x,'e2t mini: ',1f10.2,' at i = ',i5,' j= ',i5)") ze2min, imi2(1), imi2(2) 510 WRITE(numout,"(14x,'glamt mini: ',1f10.2,' at i = ',i5,' j= ',i5)") zglmin, imil(1), imil(2) 511 WRITE(numout,"(14x,'glamt maxi: ',1f10.2,' at i = ',i5,' j= ',i5)") zglmax, imal(1), imal(2) 512 WRITE(numout,"(14x,'gphit mini: ',1f10.2,' at i = ',i5,' j= ',i5)") zgpmin, imip(1), imip(2) 513 WRITE(numout,"(14x,'gphit maxi: ',1f10.2,' at i = ',i5,' j= ',i5)") zgpmax, imap(1), imap(2) 514 WRITE(numout,"(14x,' e1t mini: ',1f10.2,' at i = ',i5,' j= ',i5)") ze1min, imi1(1), imi1(2) 515 WRITE(numout,"(14x,' e1t maxi: ',1f10.2,' at i = ',i5,' j= ',i5)") ze1max, ima1(1), ima1(2) 516 WRITE(numout,"(14x,' e2t mini: ',1f10.2,' at i = ',i5,' j= ',i5)") ze2min, imi2(1), imi2(2) 517 WRITE(numout,"(14x,' e2t maxi: ',1f10.2,' at i = ',i5,' j= ',i5)") ze2max, ima2(1), ima2(2) 501 518 ENDIF 502 519 ! … … 565 582 IF(lwp) THEN 566 583 WRITE(numout,*) ' cn_cfg = ', TRIM(cd_cfg), ' nn_cfg = ', kk_cfg 567 WRITE(numout,*) ' jpiglo = ', kpi568 WRITE(numout,*) ' jpjglo = ', kpj584 WRITE(numout,*) ' Ni0glo = ', kpi 585 WRITE(numout,*) ' Nj0glo = ', kpj 569 586 WRITE(numout,*) ' jpkglo = ', kpk 570 587 WRITE(numout,*) ' type of global domain lateral boundary jperio = ', kperio … … 590 607 !!---------------------------------------------------------------------- 591 608 INTEGER :: ji, jj, jk ! dummy loop indices 592 INTEGER :: izco, izps, isco, icav593 609 INTEGER :: inum ! local units 594 610 CHARACTER(len=21) :: clnam ! filename (mesh and mask informations) … … 605 621 ! 606 622 clnam = cn_domcfg_out ! filename (configuration information) 607 CALL iom_open( TRIM(clnam), inum, ldwrt = .TRUE. ) 608 623 CALL iom_open( TRIM(clnam), inum, ldwrt = .TRUE. ) 609 624 ! 610 625 ! !== ORCA family specificities ==! 611 IF( cn_cfg== "ORCA" ) THEN626 IF( TRIM(cn_cfg) == "orca" .OR. TRIM(cn_cfg) == "ORCA" ) THEN 612 627 CALL iom_rstput( 0, 0, inum, 'ORCA' , 1._wp , ktype = jp_i4 ) 613 628 CALL iom_rstput( 0, 0, inum, 'ORCA_index', REAL( nn_cfg, wp), ktype = jp_i4 ) 614 629 ENDIF 615 630 ! 616 ! !== global domain size ==!617 !618 CALL iom_rstput( 0, 0, inum, 'jpiglo', REAL( jpiglo, wp), ktype = jp_i4 )619 CALL iom_rstput( 0, 0, inum, 'jpjglo', REAL( jpjglo, wp), ktype = jp_i4 )620 CALL iom_rstput( 0, 0, inum, 'jpkglo', REAL( jpk , wp), ktype = jp_i4 )621 !622 631 ! !== domain characteristics ==! 623 632 ! … … 626 635 ! 627 636 ! ! type of vertical coordinate 628 IF( ln_zco ) THEN ; izco = 1 ; ELSE ; izco = 0 ; ENDIF 629 IF( ln_zps ) THEN ; izps = 1 ; ELSE ; izps = 0 ; ENDIF 630 IF( ln_sco ) THEN ; isco = 1 ; ELSE ; isco = 0 ; ENDIF 631 CALL iom_rstput( 0, 0, inum, 'ln_zco' , REAL( izco, wp), ktype = jp_i4 ) 632 CALL iom_rstput( 0, 0, inum, 'ln_zps' , REAL( izps, wp), ktype = jp_i4 ) 633 CALL iom_rstput( 0, 0, inum, 'ln_sco' , REAL( isco, wp), ktype = jp_i4 ) 637 CALL iom_rstput( 0, 0, inum, 'ln_zco', REAL(COUNT((/ln_zco/)), wp), ktype = jp_i4 ) 638 CALL iom_rstput( 0, 0, inum, 'ln_zps', REAL(COUNT((/ln_zps/)), wp), ktype = jp_i4 ) 639 CALL iom_rstput( 0, 0, inum, 'ln_sco', REAL(COUNT((/ln_sco/)), wp), ktype = jp_i4 ) 634 640 ! 635 641 ! ! ocean cavities under iceshelves 636 IF( ln_isfcav ) THEN ; icav = 1 ; ELSE ; icav = 0 ; ENDIF 637 CALL iom_rstput( 0, 0, inum, 'ln_isfcav', REAL( icav, wp), ktype = jp_i4 ) 642 CALL iom_rstput( 0, 0, inum, 'ln_isfcav', REAL(COUNT((/ln_isfcav/)), wp), ktype = jp_i4 ) 638 643 ! 639 644 ! !== horizontal mesh !
Note: See TracChangeset
for help on using the changeset viewer.