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 473 for trunk/NEMO/OPA_SRC/mppini_2.h90 – NEMO

Ignore:
Timestamp:
2006-05-11T17:04:37+02:00 (18 years ago)
Author:
opalod
Message:

nemo_v1_update_060: SM: IOM + 301 levels + CORE + begining of ctl_stop

File:
1 edited

Legend:

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

    r467 r473  
    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 ( 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 ) 
    146102      ELSE 
    147          IF(lwp) WRITE(numout,cform_err) 
    148          IF(lwp) WRITE(numout,*)'    mppini_2 : unable to read the file ', clname 
    149          nstop = nstop + 1 
    150       ENDIF 
     103         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) 
    151107 
    152108      ! land/sea mask over the global/zoom domain 
    153109 
    154       imask(:,:) = 1 
    155       WHERE ( zdta(jpizoom:(jpizoom+jpiglo-1),jpjzoom:(jpjglo+jpjzoom-1)) <= 0. ) imask = 0 
     110      imask(:,:)=1 
     111      WHERE ( zdta(:,:) <= 0. ) imask = 0 
    156112 
    157113      !  1. Dimension arrays for subdomains 
     
    328284         DO jj = 1+jprecj, ilj-jprecj 
    329285            DO  ji = 1+jpreci, ili-jpreci 
    330                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 
    331287            END DO 
    332288         END DO 
     
    341297      ! Control 
    342298      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 
    356304 
    357305      ! 4. Subdomain print 
     
    518466      ! Save processor layout in ascii file 
    519467      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' 
    523472 
    524473        DO  jproc = 1, jpnij 
     
    565514      ENDIF 
    566515 
    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' ) 
    572517 
    573518      ! Prepare mpp north fold 
Note: See TracChangeset for help on using the changeset viewer.