Ignore:
Timestamp:
May 6, 2010, 2:24:59 PM (14 years ago)
Author:
Ehouarn Millour
Message:

Minor bug fix: Enable the possiblity to start a Shallow Water run from a start.nc file.

Plus some cleanup in outputs messages (in dyetat0,dynredem and iniconst).

EM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/dynredem.F

    r1299 r1380  
    88#endif
    99      USE infotrac
     10 
    1011      IMPLICIT NONE
    1112c=======================================================================
     
    2526#include "description.h"
    2627#include "serre.h"
     28#include "iniprint.h"
    2729
    2830c   Arguments:
     
    7274       tab_cntrl(l) = 0.
    7375      ENDDO
    74        tab_cntrl(1)  =  REAL(iim)
    75        tab_cntrl(2)  =  REAL(jjm)
    76        tab_cntrl(3)  =  REAL(llm)
    77        tab_cntrl(4)  =  REAL(day_ref)
    78        tab_cntrl(5)  =  REAL(annee_ref)
     76       tab_cntrl(1)  = REAL(iim)
     77       tab_cntrl(2)  = REAL(jjm)
     78       tab_cntrl(3)  = REAL(llm)
     79       tab_cntrl(4)  = REAL(day_ref)
     80       tab_cntrl(5)  = REAL(annee_ref)
    7981       tab_cntrl(6)  = rad
    8082       tab_cntrl(7)  = omeg
     
    116118      ENDIF
    117119
    118        tab_cntrl(30) =  REAL(iday_end)
    119        tab_cntrl(31) =  REAL(itau_dyn + itaufin)
     120       tab_cntrl(30) = REAL(iday_end)
     121       tab_cntrl(31) = REAL(itau_dyn + itaufin)
    120122c
    121123c    .........................................................
     
    125127      ierr = NF_CREATE(fichnom, NF_CLOBBER, nid)
    126128      IF (ierr.NE.NF_NOERR) THEN
    127          WRITE(6,*)" Pb d ouverture du fichier "//fichnom
    128          WRITE(6,*)' ierr = ', ierr
     129         write(lunout,*)"dynredem0: Pb d ouverture du fichier "
     130     &                  //trim(fichnom)
     131         write(lunout,*)' ierr = ', ierr
    129132         CALL ABORT
    130133      ENDIF
     
    508511      ierr = NF_CLOSE(nid) ! fermer le fichier
    509512
    510       PRINT*,'iim,jjm,llm,iday_end',iim,jjm,llm,iday_end
    511       PRINT*,'rad,omeg,g,cpp,kappa',
    512      ,        rad,omeg,g,cpp,kappa
     513      write(lunout,*)'dynredem0: iim,jjm,llm,iday_end',
     514     &               iim,jjm,llm,iday_end
     515      write(lunout,*)'dynredem0: rad,omeg,g,cpp,kappa',
     516     &        rad,omeg,g,cpp,kappa
    513517
    514518      RETURN
     
    518522      USE infotrac
    519523      USE control_mod
     524 
    520525      IMPLICIT NONE
    521526c=================================================================
     
    529534#include "comgeom.h"
    530535#include "temps.h"
     536#include "iniprint.h"
     537
    531538
    532539      INTEGER l
     
    555562      ierr = NF_OPEN(fichnom, NF_WRITE, nid)
    556563      IF (ierr .NE. NF_NOERR) THEN
    557          PRINT*, "Pb. d ouverture "//fichnom
     564         write(lunout,*)"dynredem1: Pb. d ouverture "//trim(fichnom)
    558565         CALL abort
    559566      ENDIF
     
    564571      ierr = NF_INQ_VARID(nid, "temps", nvarid)
    565572      IF (ierr .NE. NF_NOERR) THEN
    566          print *, NF_STRERROR(ierr)
     573         write(lunout,*) NF_STRERROR(ierr)
    567574         abort_message='Variable temps n est pas definie'
    568575         CALL abort_gcm(modname,abort_message,ierr)
     
    573580      ierr = NF_PUT_VAR1_REAL (nid,nvarid,nb,time)
    574581#endif
    575       PRINT*, "Enregistrement pour ", nb, time
     582      write(lunout,*) "dynredem1: Enregistrement pour ", nb, time
    576583
    577584c
     
    589596      ierr = NF_GET_VAR_REAL(nid, nvarid, tab_cntrl)
    590597#endif
    591        tab_cntrl(31) =  REAL(itau_dyn + itaufin)
     598       tab_cntrl(31) = REAL(itau_dyn + itaufin)
    592599#ifdef NC_DOUBLE
    593600      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,tab_cntrl)
     
    600607      ierr = NF_INQ_VARID(nid, "ucov", nvarid)
    601608      IF (ierr .NE. NF_NOERR) THEN
    602          PRINT*, "Variable ucov n est pas definie"
    603          CALL abort
     609         abort_message="Variable ucov n est pas definie"
     610         ierr=1
     611         CALL abort_gcm(modname,abort_message,ierr)
    604612      ENDIF
    605613#ifdef NC_DOUBLE
     
    611619      ierr = NF_INQ_VARID(nid, "vcov", nvarid)
    612620      IF (ierr .NE. NF_NOERR) THEN
    613          PRINT*, "Variable vcov n est pas definie"
    614          CALL abort
     621         abort_message="Variable vcov n est pas definie"
     622         ierr=1
     623         CALL abort_gcm(modname,abort_message,ierr)
    615624      ENDIF
    616625#ifdef NC_DOUBLE
     
    622631      ierr = NF_INQ_VARID(nid, "teta", nvarid)
    623632      IF (ierr .NE. NF_NOERR) THEN
    624          PRINT*, "Variable teta n est pas definie"
    625          CALL abort
     633         abort_message="Variable teta n est pas definie"
     634         ierr=1
     635         CALL abort_gcm(modname,abort_message,ierr)
    626636      ENDIF
    627637#ifdef NC_DOUBLE
     
    635645         ierr_file = NF_OPEN ("start_trac.nc", NF_NOWRITE,nid_trac)
    636646         IF (ierr_file .NE.NF_NOERR) THEN
    637             write(6,*)' Pb d''ouverture du fichier start_trac.nc'
    638             write(6,*)' ierr = ', ierr_file
     647            write(lunout,*)'dynredem1: Pb d''ouverture du fichier',
     648     &                     ' start_trac.nc'
     649            write(lunout,*)' ierr = ', ierr_file
    639650         ENDIF
    640651      END IF
     
    646657            ierr = NF_INQ_VARID(nid, tname(iq), nvarid)
    647658            IF (ierr .NE. NF_NOERR) THEN
    648                PRINT*, "Variable  tname(iq) n est pas definie"
    649                CALL abort
     659               abort_message="Variable  tname(iq) n est pas definie"
     660               ierr=1
     661               CALL abort_gcm(modname,abort_message,ierr)
    650662            ENDIF
    651663#ifdef NC_DOUBLE
     
    659671             ierr = NF_INQ_VARID (nid_trac, tname(iq), nvarid_trac)
    660672             IF (ierr .NE. NF_NOERR) THEN
    661                 PRINT*, tname(iq),"est absent de start_trac.nc"
     673                write(lunout,*) "dynredem1: ",trim(tname(iq)),
     674     &                          " est absent de start_trac.nc"
    662675                ierr = NF_INQ_VARID(nid, tname(iq), nvarid)
    663676                IF (ierr .NE. NF_NOERR) THEN
    664                    PRINT*, "Variable ", tname(iq)," n est pas definie"
    665                    CALL abort
     677                   abort_message="dynredem1: Variable "//
     678     &                     trim(tname(iq))//" n est pas definie"
     679                   ierr=1
     680                   CALL abort_gcm(modname,abort_message,ierr)
    666681                ENDIF
    667682#ifdef NC_DOUBLE
     
    672687               
    673688             ELSE
    674                 PRINT*, tname(iq), "est present dans start_trac.nc"
     689                write(lunout,*) "dynredem1: ",trim(tname(iq)),
     690     &              " est present dans start_trac.nc"
    675691#ifdef NC_DOUBLE
    676692               ierr = NF_GET_VAR_DOUBLE(nid_trac, nvarid_trac, trac_tmp)
     
    679695#endif
    680696                IF (ierr .NE. NF_NOERR) THEN
    681                    PRINT*, "Lecture echouee pour", tname(iq)
    682                    CALL abort
     697                   abort_message="dynredem1: Lecture echouee pour"//
     698     &                    trim(tname(iq))
     699                   ierr=1
     700                   CALL abort_gcm(modname,abort_message,ierr)
    683701                ENDIF
    684702                ierr = NF_INQ_VARID(nid, tname(iq), nvarid)
    685703                IF (ierr .NE. NF_NOERR) THEN
    686                    PRINT*, "Variable ", tname(iq)," n est pas definie"
    687                    CALL abort
     704                   abort_message="dynredem1: Variable "//
     705     &                trim(tname(iq))//" n est pas definie"
     706                   ierr=1
     707                   CALL abort_gcm(modname,abort_message,ierr)
    688708                ENDIF
    689709#ifdef NC_DOUBLE
     
    699719             ierr = NF_INQ_VARID(nid, tname(iq), nvarid)
    700720             IF (ierr .NE. NF_NOERR) THEN
    701                 PRINT*, "Variable  tname(iq) n est pas definie"
    702                 CALL abort
     721                abort_message="dynredem1: Variable "//
     722     &                trim(tname(iq))//" n est pas definie"
     723                   ierr=1
     724                   CALL abort_gcm(modname,abort_message,ierr)
    703725             ENDIF
    704726#ifdef NC_DOUBLE
     
    715737      ierr = NF_INQ_VARID(nid, "masse", nvarid)
    716738      IF (ierr .NE. NF_NOERR) THEN
    717          PRINT*, "Variable masse n est pas definie"
    718          CALL abort
     739         abort_message="dynredem1: Variable masse n est pas definie"
     740         ierr=1
     741         CALL abort_gcm(modname,abort_message,ierr)
    719742      ENDIF
    720743#ifdef NC_DOUBLE
     
    726749      ierr = NF_INQ_VARID(nid, "ps", nvarid)
    727750      IF (ierr .NE. NF_NOERR) THEN
    728          PRINT*, "Variable ps n est pas definie"
    729          CALL abort
     751         abort_message="dynredem1: Variable ps n est pas definie"
     752         ierr=1
     753         CALL abort_gcm(modname,abort_message,ierr)
    730754      ENDIF
    731755#ifdef NC_DOUBLE
Note: See TracChangeset for help on using the changeset viewer.