Changeset 473 for trunk/NEMO/OPA_SRC/mppini_2.h90
- Timestamp:
- 2006-05-11T17:04:37+02:00 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/mppini_2.h90
r467 r473 40 40 !!---------------------------------------------------------------------- 41 41 !! * Modules used 42 USE io ipsl43 42 USE iom 43 44 44 !! Local variables 45 CHARACTER (len=25) :: & ! temporary name46 clname , clvar ! filename and cdf variable name for bathy47 LOGICAL :: llbon ! check the existence of bathy files48 45 INTEGER :: ji, jj, jn, jproc, jarea ! dummy loop indices 49 INTEGER :: inum = 11! temporary logical unit46 INTEGER :: inum ! temporary logical unit 50 47 INTEGER :: & 51 48 ii, ij, ifreq, il1, il2, & ! temporary integers … … 66 63 ione , ionw , iose , iosw , & ! " " 67 64 ibne , ibnw , ibse , ibsw ! " " 68 INTEGER :: & 69 ipi, ipj, ipk, & ! temporary integers 70 itime ! " " 71 INTEGER, DIMENSION (1) :: istep 72 73 INTEGER, DIMENSION(jpiglo,jpjglo) :: & 65 INTEGER, DIMENSION(jpi,jpj) :: & 74 66 imask ! temporary global workspace 75 76 REAL(wp), DIMENSION(jpidta,jpjdta) :: & 77 zlamt, zphit, zdta ! temporary data workspace 78 REAL(wp), DIMENSION(jpk) :: & 79 zdept ! temporary workspace (NetCDF read) 80 REAL(wp) :: zidom , zjdom, & ! temporary scalars 81 zdt, zdate0 67 REAL(wp), DIMENSION(jpi,jpj) :: & 68 zdta ! temporary data workspace 69 REAL(wp) :: zidom , zjdom ! temporary scalars 82 70 83 71 !!---------------------------------------------------------------------- … … 103 91 #endif 104 92 105 106 IF( jpni*jpnj < jpnij ) THEN 107 IF(lwp) WRITE(numout,cform_err) 108 IF(lwp) WRITE(numout,*) ' jpnij > jpni x jpnj impossible' 109 nstop = nstop + 1 110 ENDIF 111 93 IF( jpni*jpnj < jpnij ) CALL ctl_stop( ' jpnij > jpni x jpnj impossible' ) 112 94 113 95 ! 0. initialisation … … 115 97 116 98 ! open the file 117 IF ( ln_zco ) THEN 118 clname = 'bathy_level.nc' ! Level bathymetry 119 clvar = 'Bathy_level' 120 ELSE 121 clname = 'bathy_meter.nc' ! Meter bathy in case of partial steps 122 clvar = 'Bathymetry' 123 ENDIF 124 #if defined key_agrif 125 if ( .NOT. Agrif_Root() ) then 126 clname = TRIM(Agrif_CFixed())//'_'//TRIM(clname) 127 endif 128 #endif 129 130 INQUIRE( FILE=clname, EXIST=llbon ) 131 IF( llbon ) THEN 132 IF(lwp) WRITE(numout,*) 133 IF(lwp) WRITE(numout,*) ' read bathymetry in ', clname 134 IF(lwp) WRITE(numout,*) 135 itime = 1 136 ipi = jpidta 137 ipj = jpjdta 138 ipk = 1 139 zdt = rdt 140 141 CALL flinopen( clname, 1, jpidta, 1, jpjdta, .FALSE., & 142 ipi, ipj, ipk, zlamt, zphit, zdept, itime, istep, zdate0, zdt, inum ) 143 CALL flinget( inum, clvar, jpidta, jpjdta, 1, & 144 itime, 1, 1, 1, jpidta, 1, jpjdta, zdta(:,:) ) 145 CALL flinclo( inum ) 99 IF ( ln_zco ) THEN 100 CALL iom_open ( 'bathy_level.nc', inum ) ! Level bathymetry 101 CALL iom_get ( inum, jpdom_data, 'Bathy_level', zdta ) 146 102 ELSE 147 IF(lwp) WRITE(numout,cform_err)148 IF(lwp) WRITE(numout,*)' mppini_2 : unable to read the file ', clname149 nstop = nstop + 1150 ENDIF103 CALL iom_open ( 'bathy_meter.nc', inum ) ! Meter bathy in case of partial steps 104 CALL iom_get ( inum, jpdom_data, 'Bathymetry' , zdta ) 105 ENDIF 106 CALL iom_close (inum) 151 107 152 108 ! land/sea mask over the global/zoom domain 153 109 154 imask(:,:) =1155 WHERE ( zdta( jpizoom:(jpizoom+jpiglo-1),jpjzoom:(jpjglo+jpjzoom-1)) <= 0. ) imask = 0110 imask(:,:)=1 111 WHERE ( zdta(:,:) <= 0. ) imask = 0 156 112 157 113 ! 1. Dimension arrays for subdomains … … 328 284 DO jj = 1+jprecj, ilj-jprecj 329 285 DO ji = 1+jpreci, ili-jpreci 330 IF( imask(ji +iimppt(ii,ij)-1, jj+ijmppt(ii,ij)-1) == 1) isurf = isurf+1286 IF( imask(ji, jj) == 1) isurf = isurf+1 331 287 END DO 332 288 END DO … … 341 297 ! Control 342 298 IF(icont+1 /= jpnij) THEN 343 IF(lwp) THEN 344 WRITE(numout,*) ' Eliminate land processors algorithm' 345 WRITE(numout,*) 346 WRITE(numout,*) ' jpni =',jpni,' jpnj =',jpnj 347 WRITE(numout,*) ' jpnij =',jpnij, '< jpni x jpnj' 348 WRITE(numout,*) 349 WRITE(numout,*) ' E R R O R ' 350 WRITE(numout,*) ' ***********, mpp_init2 finds jpnij=',icont+1 351 WRITE(numout,*) ' we stop' 352 ENDIF 353 STOP 'mpp_init2' 354 ENDIF 355 299 WRITE(ctmp1,*) ' jpni =',jpni,' jpnj =',jpnj 300 WRITE(ctmp2,*) ' jpnij =',jpnij, '< jpni x jpnj' 301 WRITE(ctmp3,*) ' ***********, mpp_init2 finds jpnij=',icont+1 302 CALL ctl_stop( ' Eliminate land processors algorithm', '', ctmp1, ctmp2, '', ctmp3 ) 303 ENDIF 356 304 357 305 ! 4. Subdomain print … … 518 466 ! Save processor layout in ascii file 519 467 IF (lwp) THEN 520 OPEN(inum,FILE='layout.dat') 521 WRITE(inum,'(6i8)') jpnij,jpi,jpj,jpk,jpiglo,jpjglo 522 WRITE(inum,'(a)') 'NAREA nlci nlcj nldi nldj nlei nlej nimpp njmpp' 468 inum = 11 ! how do we know that 11 is ok??? 469 OPEN(inum,FILE='layout.dat') 470 WRITE(inum,'(6i8)') jpnij,jpi,jpj,jpk,jpiglo,jpjglo 471 WRITE(inum,'(a)') 'NAREA nlci nlcj nldi nldj nlei nlej nimpp njmpp' 523 472 524 473 DO jproc = 1, jpnij … … 565 514 ENDIF 566 515 567 IF( nperio == 1 .AND.jpni /= 1 ) THEN 568 IF(lwp) WRITE(numout,cform_err) 569 IF(lwp) WRITE(numout,*) ' mpp_init2: error on cyclicity' 570 nstop = nstop + 1 571 ENDIF 516 IF( nperio == 1 .AND.jpni /= 1 ) CALL ctl_stop( ' mpp_init2: error on cyclicity' ) 572 517 573 518 ! Prepare mpp north fold
Note: See TracChangeset
for help on using the changeset viewer.