New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 495 for trunk/NEMO/OFF_SRC/mppini_2.h90 – NEMO

Ignore:
Timestamp:
2006-09-01T16:11:03+02:00 (18 years ago)
Author:
opalod
Message:

nemo_v1_update_063:CE+RB: use of IOM for offline passive tracers

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OFF_SRC/mppini_2.h90

    r325 r495  
    4040      !!---------------------------------------------------------------------- 
    4141      !! * Modules used 
    42       USE ioipsl 
    43  
     42      USE iom 
     43    
    4444      !! Local variables 
    45       CHARACTER (len=25) ::               &  ! temporary name 
    46                 clname , clvar               ! filename and cdf variable name for bathy 
    47       LOGICAL ::   llbon                      ! check the existence of bathy files 
    4845      INTEGER :: ji, jj, jn, jproc, jarea     ! dummy loop indices 
    49       INTEGER ::   inum = 11                  ! temporary logical unit 
     46      INTEGER ::  inum                        ! temporary logical unit 
    5047      INTEGER ::   & 
    5148         ii, ij, ifreq, il1, il2,          &  ! temporary integers 
     
    6663         ione  , ionw  , iose  , iosw  ,   &  !    "           " 
    6764         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) ::   & 
    7466         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 
    8270 
    8371      !!---------------------------------------------------------------------- 
     
    10391#endif 
    10492 
    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' ) 
    11294 
    11395      ! 0. initialisation 
     
    11597 
    11698      ! open the file 
    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 ) 
    126       IF( llbon ) THEN 
    127             IF(lwp) WRITE(numout,*) 
    128             IF(lwp) WRITE(numout,*) '         read bathymetry in ', clname 
    129             IF(lwp) WRITE(numout,*) 
    130             itime = 1 
    131             ipi = jpidta 
    132             ipj = jpjdta 
    133             ipk = 1 
    134             zdt = rdt 
    135  
    136             CALL flinopen( clname, 1, jpidta, 1, jpjdta, .FALSE.,   & 
    137                            ipi, ipj, ipk, zlamt, zphit, zdept, itime, istep, zdate0, zdt, inum ) 
    138             CALL flinget( inum, clvar, jpidta, jpjdta, 1,   & 
    139                           itime, 1, 1, 1, jpidta, 1, jpjdta, zdta(:,:) ) 
    140             CALL flinclo( inum ) 
    141       ELSE 
    142          IF(lwp) WRITE(numout,cform_err) 
    143          IF(lwp) WRITE(numout,*)'    mppini_2 : unable to read the file ', clname 
    144          nstop = nstop + 1 
    145       ENDIF 
     99      IF ( ln_zps ) THEN 
     100         CALL iom_open ( 'bathy_meter.nc', inum )   ! Meter bathy in case of partial steps 
     101         CALL iom_get ( inum, jpdom_data, 'Bathymetry' , zdta ) 
     102      ELSE  
     103         CALL iom_open ( 'bathy_level.nc', inum )   ! Level bathymetry 
     104         CALL iom_get ( inum, jpdom_data, 'Bathy_level', zdta ) 
     105      ENDIF 
     106      CALL iom_close (inum) 
    146107 
    147108      ! land/sea mask over the global/zoom domain 
    148109 
    149110      imask(:,:)=1 
    150       WHERE ( zdta(jpizoom:(jpizoom+jpiglo-1),jpjzoom:(jpjglo+jpjzoom-1)) <= 0. ) imask = 0 
     111      WHERE ( zdta(:,:) <= 0. ) imask = 0 
    151112 
    152113      !  1. Dimension arrays for subdomains 
     
    323284         DO jj = 1+jprecj, ilj-jprecj 
    324285            DO  ji = 1+jpreci, ili-jpreci 
    325                IF( imask(ji+iimppt(ii,ij)-1, jj+ijmppt(ii,ij)-1) == 1) isurf = isurf+1 
     286               IF( imask(ji, jj) == 1) isurf = isurf+1 
    326287            END DO 
    327288         END DO 
     
    336297      ! Control 
    337298      IF(icont+1 /= jpnij) THEN 
    338          IF(lwp) THEN  
    339             WRITE(numout,*) ' Eliminate land processors algorithm' 
    340             WRITE(numout,*) 
    341             WRITE(numout,*) ' jpni =',jpni,' jpnj =',jpnj 
    342             WRITE(numout,*) ' jpnij =',jpnij, '< jpni x jpnj'  
    343             WRITE(numout,*) 
    344             WRITE(numout,*) ' E R R O R ' 
    345             WRITE(numout,*) ' ***********, mpp_init2 finds jpnij=',icont+1 
    346             WRITE(numout,*) ' we stop' 
    347          ENDIF 
    348          STOP 'mpp_init2' 
    349       ENDIF 
    350  
     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 
    351304 
    352305      ! 4. Subdomain print 
     
    513466      ! Save processor layout in ascii file 
    514467      IF (lwp) THEN 
    515         OPEN(inum,FILE='layout.dat') 
    516         WRITE(inum,'(6i8)') jpnij,jpi,jpj,jpk,jpiglo,jpjglo 
    517         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' 
    518472 
    519473        DO  jproc = 1, jpnij 
     
    560514      ENDIF 
    561515 
    562       IF( nperio == 1 .AND.jpni /= 1 ) THEN 
    563          IF(lwp) WRITE(numout,cform_err) 
    564          IF(lwp) WRITE(numout,*) ' mpp_init2:  error on cyclicity' 
    565          nstop = nstop + 1 
    566       ENDIF 
     516      IF( nperio == 1 .AND.jpni /= 1 ) CALL ctl_stop( ' mpp_init2:  error on cyclicity' ) 
    567517 
    568518      ! Prepare mpp north fold 
     
    588538         IF( ij == jpnj ) npolj = 5 
    589539      ENDIF 
    590        
     540 
    591541      ! Prepare NetCDF output file (if necessary) 
    592542      CALL mpp_init_ioipsl 
Note: See TracChangeset for help on using the changeset viewer.