Changeset 128 for trunk/NEMO/OPA_SRC/mppini_2.h90
- Timestamp:
- 2004-07-07T14:38:57+02:00 (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/mppini_2.h90
r69 r128 39 39 !! 9.0 ! 04-01 (G. Madec, J.M Molines) F90 : free form , north fold jpni > 1 40 40 !!---------------------------------------------------------------------- 41 !! * Modules used 42 USE ioipsl 43 41 44 !! Local variables 42 CHARACTER (len=25) :: clexp, 43 & clname ! " "45 CHARACTER (len=25) :: clexp, & ! temporary name 46 clname , clvar ! filename and cdf variable name for bathy 44 47 LOGICAL :: llbon ! check the existence of bathy files 45 48 INTEGER :: ji, jj, jn, jproc, jarea ! dummy loop indices … … 63 66 ione , ionw , iose , iosw , & ! " " 64 67 ibne , ibnw , ibse , ibsw ! " " 68 INTEGER :: & 69 ipi, ipj, ipk, & ! temporary integers 70 itime ! " " 71 INTEGER, DIMENSION (1) :: istep 72 65 73 INTEGER, DIMENSION(jpidta,jpjdta) :: & 66 74 idata ! temporary data workspace 67 75 INTEGER, DIMENSION(jpiglo,jpjglo) :: & 68 76 imask ! temporary global workspace 69 REAL(wp) :: zidom , zjdom ! temporary scalars 77 78 REAL(wp), DIMENSION(jpidta,jpjdta) :: & 79 zlamt, zphit, zdta ! temporary data workspace 80 REAL(wp), DIMENSION(jpk) :: & 81 zdept ! temporary workspace (NetCDF read) 82 REAL(wp) :: zidom , zjdom, & ! temporary scalars 83 zdt, zdate0 84 70 85 !!---------------------------------------------------------------------- 71 86 !! OPA 8.5, LODYC-IPSL (2002) … … 100 115 101 116 ! open the file 102 clname = 'bathy_level' 103 IF(lwp) WRITE(numout,*) ' bathymetry file in levels' 104 INQUIRE( FILE=clname, EXIST=llbon ) 117 IF ( lk_zps ) THEN 118 clname = 'bathy_meter.nc' ! Meter bathy in case of partial steps 119 clvar = 'Bathymetry' 120 ELSE 121 clname = 'bathy_level.nc' ! Level bathymetry 122 clvar = 'Bathy_level' 123 ENDIF 124 125 INQUIRE( FILE=clname, EXIST=llbon ) 105 126 IF( llbon ) THEN 106 IF(lwp) WRITE(numout,*) 107 IF(lwp) WRITE(numout,*) ' read level bathymetry in ', clname 108 IF(lwp) WRITE(numout,*) 109 OPEN( UNIT=inum, FILE=clname, FORM='FORMATTED', ACCESS='SEQUENTIAL', STATUS='OLD' ) 110 111 ! read bathymetry file 112 REWIND inum 113 READ(inum,9001) clexp, iim, ijm 114 READ(inum,'(/)') 115 ifreq=40 116 il1=1 117 DO jn=1,jpidta/ifreq+1 118 READ(inum,'(/)') 119 il2 = MIN( jpidta, il1+ifreq-1 ) 120 READ(inum,9002) ( ii, ji = il1, il2, 5 ) 121 READ(inum,'(/)') 122 DO jj = jpjdta, 1, -1 123 READ(inum,9003) ij, ( idata(ji,jj), ji = il1, il2 ) 124 END DO 125 il1 = il1 + ifreq 126 END DO 127 CLOSE(inum) 128 129 9001 FORMAT(1x,a15,2i8) 130 9002 FORMAT(3x,13(i3,12x)) 131 9003 FORMAT(i3,41i3) 132 127 IF(lwp) WRITE(numout,*) 128 IF(lwp) WRITE(numout,*) ' read level bathymetry in ', clname 129 IF(lwp) WRITE(numout,*) 130 itime = 1 131 ipi = jpidta 132 ipj = jpjdta 133 ipk = 1 134 zdt = rdt 135 CALL flinopen( clname, 1, jpidta, 1, jpjdta, .FALSE., & 136 ipi, ipj, ipk, zlamt, zphit, zdept, itime, istep, zdate0, zdt, inum ) 137 CALL flinget( inum, clvar, jpidta, jpjdta, 1, & 138 itime, 1, 1, 1, jpidta, 1, jpjdta, zdta(:,:) ) 139 CALL flinclo( inum ) 133 140 ELSE 134 141 IF(lwp) WRITE(numout,cform_err) … … 138 145 139 146 ! land/sea mask over the global/zoom domain 140 DO jj = 1, jpjglo 141 DO ji = 1, jpiglo 142 imask(ji,jj) = MIN( 1, MAX( 0, idata(ji+jpizoom-1,jj+jpjzoom-1) ) ) 143 END DO 144 END DO 145 147 148 WHERE ( zdta(jpizoom:jpiglo+jpizoom-1, jpjzoom:jpjglo+jpjzoom-1) == 0. ) imask = 0 149 146 150 147 151 ! 1. Dimension arrays for subdomains … … 156 160 nreci=2*jpreci 157 161 nrecj=2*jprecj 158 iresti = MOD( jpiglo - nreci , jpni ) 159 irestj = MOD( jpjglo - nrecj , jpnj ) 160 161 IF( iresti == 0 ) iresti = jpni 162 DO jj = 1, jpnj 163 DO ji = 1, iresti 164 ilci(ji,jj) = jpi 165 END DO 166 DO ji = iresti+1, jpni 167 ilci(ji,jj) = jpi - 1 168 END DO 169 END DO 170 171 IF(irestj == 0) irestj = jpnj 172 DO ji = 1, jpni 173 DO jj = 1, irestj 174 ilcj(ji,jj) = jpj 175 END DO 176 DO jj = irestj+1, jpnj 177 ilcj(ji,jj) = jpj - 1 178 END DO 179 END DO 180 162 iresti = 1 + MOD( jpiglo - nreci -1 , jpni ) 163 irestj = 1 + MOD( jpjglo - nrecj -1 , jpnj ) 164 165 ilci(1:iresti ,:) = jpi 166 ilci(iresti+1:jpni ,:) = jpi-1 167 168 ilcj(1:irestj ,:) = jpj 169 ilcj(irestj+1:jpnj ,:) = jpj-1 170 181 171 IF(lwp) WRITE(numout,*) 182 172 IF(lwp) WRITE(numout,*) ' mpp_init2: defines mpp subdomains' … … 187 177 IF(lwp) WRITE(numout,*) 'jpni=',jpni,' jpnj=',jpnj 188 178 189 zidom = nreci 190 DO ji = 1, jpni 191 zidom = zidom + ilci(ji,1) - nreci 192 END DO 179 zidom = nreci + sum(ilci(:,1) - nreci ) 193 180 IF(lwp) WRITE(numout,*) 194 181 IF(lwp) WRITE(numout,*)' sum ilci(i,1)=',zidom,' jpiglo=',jpiglo 195 182 196 zjdom = nrecj 197 DO jj = 1, jpnj 198 zjdom = zjdom + ilcj(1,jj) - nrecj 199 END DO 200 IF(lwp) WRITE(numout,*) ' sum ilci(1,j)=',zjdom,' jpjglo=',jpjglo 183 zjdom = nrecj + sum(ilcj(1,:) - nrecj ) 184 IF(lwp) WRITE(numout,*) ' sum ilcj(1,j)=',zjdom,' jpjglo=',jpjglo 201 185 IF(lwp) WRITE(numout,*) 202 186 … … 205 189 ! ------------------------------- 206 190 207 DO jj = 1, jpnj 208 DO ji = 1, jpni 209 iimppt(ji,jj) = 1 210 ijmppt(ji,jj) = 1 211 ipproc(ji,jj) = -1 212 END DO 213 END DO 191 iimppt(:,:) = 1 192 ijmppt(:,:) = 1 193 ipproc(:,:) = -1 214 194 215 195 IF( jpni > 1 )THEN
Note: See TracChangeset
for help on using the changeset viewer.