Changeset 10 for trunk


Ignore:
Timestamp:
02/09/12 19:18:51 (12 years ago)
Author:
cholod
Message:

allow to start without obc restart

Location:
trunk/NEMOGCM/NEMO/OPA_SRC/OBC
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/OPA_SRC/OBC/obc_oce.F90

    r1 r10  
    6464   !                                    !  These logical flags are set to 'true' if damping time  
    6565   !                                    !  scale are set to 0 in the namelist, for both inflow and outflow). 
     66 
     67!--> IND4 Begin 
     68!     Logical for restarting with radiative OBCs, but without an OBC restart restart.obc.output file. 
     69!     During the first 30 time steps, used FIXED boundary conditions. 
     70!     We modify : obcini, obctra, obcdyn 
     71   LOGICAL :: ln_obc_rstart = .TRUE. !: radiative OBCs, but do not read restart.obc.output 
     72!<-- IND4 End 
    6673 
    6774   REAL(wp), PUBLIC ::   obcsurftot       !: Total lateral surface of open boundaries 
  • trunk/NEMOGCM/NEMO/OPA_SRC/OBC/obcdyn.F90

    r1 r10  
    4545   REAL(wp) ::   rtaue  , rtauw  , rtaun  , rtaus  ,  & 
    4646                 rtauein, rtauwin, rtaunin, rtausin 
     47 
     48! IND4 
     49   LOGICAL  ::   ll_fbc 
     50! IND4 
    4751 
    4852   !!--------------------------------------------------------------------------------- 
     
    97101         rtausin = 2. * rdt / rdpsin  
    98102      END IF 
     103! IND4 
     104!     ll_fbc = ( ( ( kt < nit000+3  ) .AND. .NOT.  ln_rstart     ) .OR. lk_dynspg_exp )  
     105!     IF ( cp_cfg == "indian" .OR. cp_cfg == "bengal" ) THEN 
     106         ll_fbc = ( ( ( kt < nit000+30 ) .AND. .NOT.  ln_obc_rstart ) .OR. lk_dynspg_exp )  
     107!     ENDIF 
     108! IND4 
     109 
    99110 
    100111      IF( lp_obc_east  )   CALL obc_dyn_east ( kt ) 
     
    104115 
    105116      IF( lk_mpp ) THEN 
    106          IF( kt >= nit000+3 .AND. ln_rstart ) THEN 
     117! IND4 BUG OBC_RADIA 
     118       ! IF( kt >= nit000+3 .AND. ln_rstart ) THEN 
    107119            CALL lbc_lnk( ub, 'U', -1. ) 
    108120            CALL lbc_lnk( vb, 'V', -1. ) 
    109          END IF 
     121!        END IF 
     122! IND4 
    110123         CALL lbc_lnk( ua, 'U', -1. ) 
    111124         CALL lbc_lnk( va, 'V', -1. ) 
     
    143156      ! -------------------------------------------------------- 
    144157 
    145       IF( ( kt < nit000+3 .AND. .NOT.ln_rstart ) .OR. lfbceast .OR. lk_dynspg_exp ) THEN 
     158! IND4 
     159!     IF( ( kt < nit000+3 .AND. .NOT.ln_rstart ) .OR. lfbceast .OR. lk_dynspg_exp ) THEN 
     160      IF ( ll_fbc .OR. lfbceast ) THEN 
     161! IND4 
    146162 
    147163         ! 1.1 U zonal velocity     
     
    285301      ! -------------------------------------------------------- 
    286302 
    287       IF( ( kt < nit000+3 .AND. .NOT.ln_rstart ) .OR. lfbcwest .OR. lk_dynspg_exp ) THEN 
     303! IND4 
     304!     IF( ( kt < nit000+3 .AND. .NOT.ln_rstart ) .OR. lfbcwest .OR. lk_dynspg_exp ) THEN 
     305      IF ( ll_fbc .OR. lfbcwest ) THEN 
     306! IND4 
    288307 
    289308         ! 1.1 U zonal velocity 
     
    424443      ! --------------------------------------------------------- 
    425444  
    426       IF( ( kt < nit000+3 .AND. .NOT.ln_rstart ) .OR. lfbcnorth  .OR. lk_dynspg_exp ) THEN 
     445! IND4 
     446!     IF( ( kt < nit000+3 .AND. .NOT.ln_rstart ) .OR. lfbcnorth  .OR. lk_dynspg_exp ) THEN 
     447      IF ( ll_fbc .OR. lfbcnorth ) THEN 
     448! IND4 
    427449 
    428450         ! 1.1 U zonal velocity 
     
    575597      ! --------------------------------------------------------- 
    576598 
    577       IF( ( kt < nit000+3 .AND. .NOT.ln_rstart ) .OR. lfbcsouth  .OR. lk_dynspg_exp ) THEN 
     599! IND4 
     600!     IF( ( kt < nit000+3 .AND. .NOT.ln_rstart ) .OR. lfbcsouth  .OR. lk_dynspg_exp ) THEN 
     601      IF ( ll_fbc .OR. lfbcsouth ) THEN 
     602! IND4 
    578603 
    579604         ! 1.1 U zonal velocity 
  • trunk/NEMOGCM/NEMO/OPA_SRC/OBC/obcini.F90

    r1 r10  
    6363         &             rn_dpeob, rn_dpwob, rn_dpnob, rn_dpsob,       & 
    6464         &             rn_volemp, nn_obcdta, cn_obcdta,    & 
    65          &             ln_obc_clim, ln_vol_cst, ln_obc_fla 
     65         &             ln_obc_clim, ln_vol_cst, ln_obc_fla,ln_obc_rstart 
    6666      !!---------------------------------------------------------------------- 
    6767 
     
    582582      ! -------------------------------------------------------------- 
    583583      !   only if at least one boundary is  radiative  
    584       IF ( inumfbc < nbobc .AND.  ln_rstart ) THEN 
    585          !  Restart from restart.obc 
    586          CALL obc_rst_read 
    587       ELSE 
     584! IND4      IF ( inumfbc < nbobc .AND.  ln_rstart ) THEN 
     585! IND4         !  Restart from restart.obc 
     586! IND4         CALL obc_rst_read 
     587 
     588! IND4 
     589       IF(lwp) WRITE(numout,*) 
     590       IF(lwp) WRITE(numout,*) ' obcini : ' 
     591       IF(lwp) WRITE(numout,*) '   ln_rstart     : ', ln_rstart 
     592       IF(lwp) WRITE(numout,*) '   ln_obc_rstart : ', ln_obc_rstart 
     593        
     594       IF ( .NOT. ln_rstart .AND. ln_obc_rstart ) THEN 
     595          IF(lwp) WRITE(numout,*) ' obcini : Warning!! ln_rstart = .F. => we force ln_obc_rstart =.F. ' 
     596          ln_obc_rstart = .FALSE. 
     597       ENDIF  
     598 
     599       IF ( ln_rstart .AND. ln_obc_rstart ) THEN 
     600          IF  ( inumfbc < nbobc ) THEN 
     601             IF(lwp) WRITE(numout,*) '   => We read the OBC restart file ' 
     602             CALL obc_rst_read 
     603          ELSE 
     604             IF(lwp) WRITE(numout,*) '   => We DO NOT read the OBC restart file (since all OBCs are fixed) ' 
     605          ENDIF          
     606! IND4           
     607       ELSE 
    588608 
    589609!         ! ... Initialization to zero of radiation arrays. 
     
    600620          swbnd(:,:,:,:) = 0.e0   ;   ssbnd(:,:,:,:) = 0.e0 
    601621 
    602       END IF 
     622       END IF 
    603623 
    604624      ! 7. Control print 
  • trunk/NEMOGCM/NEMO/OPA_SRC/OBC/obctra.F90

    r7 r10  
    4343      rtauein, rtauwin, rtaunin, rtausin      ! Boundary restoring coefficient for inflow  
    4444 
     45! IND4 
     46   LOGICAL  ::   ll_fbc 
     47! IND4 
     48 
    4549   !! * Substitutions 
    4650#  include "obc_vectopt_loop_substitute.h90" 
     
    9195      END IF 
    9296 
     97! IND4 
     98!     ll_fbc = ( ( kt < nit000+3  ) .AND. .NOT.  ln_rstart     ) 
     99!     IF ( cp_cfg == "indian" .OR. cp_cfg == "bengal" ) THEN 
     100      ll_fbc = ( ( kt < nit000+30 ) .AND. .NOT.  ln_obc_rstart ) 
     101!     ENDIF 
     102! IND4 
     103 
    93104      IF( lp_obc_east  )   CALL obc_tra_east ( kt )    ! East open boundary 
    94105 
     
    100111 
    101112      IF( lk_mpp ) THEN                  !!bug ??? 
    102          IF( kt >= nit000+3 .AND. ln_rstart ) THEN 
     113! IND4 BUG OBC_RADIA 
     114!        IF( kt >= nit000+3 .AND. ln_rstart ) THEN 
    103115            CALL lbc_lnk( tsb(:,:,:,jp_tem), 'T', 1. ) 
    104116            CALL lbc_lnk( tsb(:,:,:,jp_sal), 'T', 1. ) 
    105          END IF 
     117!        END IF 
    106118         CALL lbc_lnk( tsa(:,:,:,jp_tem), 'T', 1. ) 
    107119         CALL lbc_lnk( tsa(:,:,:,jp_sal), 'T', 1. ) 
     
    139151      ! -------------------------------------------------------- 
    140152 
    141       IF( ( kt < nit000+3 .AND. .NOT.ln_rstart ) .OR. lfbceast ) THEN 
     153! IND4 
     154!     IF( ( kt < nit000+3 .AND. .NOT.ln_rstart ) .OR. lfbceast ) THEN 
     155      IF ( ll_fbc .OR. lfbceast ) THEN 
     156! IND4 
    142157         DO ji = fs_nie0+1, fs_nie1+1 ! Vector opt. 
    143158            DO jk = 1, jpkm1 
     
    239254      ! -------------------------------------------------------- 
    240255 
    241       IF( ( kt < nit000+3 .AND. .NOT.ln_rstart ) .OR. lfbcwest ) THEN 
     256! IND4 
     257!     IF( ( kt < nit000+3 .AND. .NOT.ln_rstart ) .OR. lfbcwest ) THEN 
     258      IF ( ll_fbc .OR. lfbcwest ) THEN 
     259! IND4 
    242260 
    243261         DO ji = fs_niw0, fs_niw1 ! Vector opt. 
     
    338356      ! -------------------------------------------------------- 
    339357 
    340       IF( ( kt < nit000+3 .AND. .NOT.ln_rstart ) .OR. lfbcnorth ) THEN 
     358! IND4 
     359!     IF( ( kt < nit000+3 .AND. .NOT.ln_rstart ) .OR. lfbcnorth ) THEN 
     360      IF ( ll_fbc .OR. lfbcnorth ) THEN 
     361! IND4 
    341362 
    342363         DO jj = fs_njn0+1, fs_njn1+1  ! Vector opt. 
     
    440461      ! -------------------------------------------------------- 
    441462 
    442       IF( ( kt < nit000+3 .AND. .NOT.ln_rstart ) .OR. lfbcsouth ) THEN 
     463! IND4 
     464!     IF( ( kt < nit000+3 .AND. .NOT.ln_rstart ) .OR. lfbcsouth ) THEN 
     465      IF ( ll_fbc .OR. lfbcsouth ) THEN 
     466! IND4 
    443467 
    444468         DO jj = fs_njs0, fs_njs1  ! Vector opt. 
Note: See TracChangeset for help on using the changeset viewer.