Changeset 1380


Ignore:
Timestamp:
May 6, 2010, 2:24:59 PM (15 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

Location:
LMDZ4/branches/LMDZ4V5.0-dev/libf
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/dynetat0.F

    r1146 r1380  
    11!
    2 ! $Header$
     2! $Id $
    33!
    44      SUBROUTINE dynetat0(fichnom,vcov,ucov,
     
    3434#include "serre.h"
    3535#include "logic.h"
     36#include "iniprint.h"
    3637
    3738c   Arguments:
     
    5859      ierr = NF_OPEN (fichnom, NF_NOWRITE,nid)
    5960      IF (ierr.NE.NF_NOERR) THEN
    60         write(6,*)' Pb d''ouverture du fichier start.nc'
    61         write(6,*)' ierr = ', ierr
     61        write(lunout,*)'dynetat0: Pb d''ouverture du fichier start.nc'
     62        write(lunout,*)' ierr = ', ierr
    6263        CALL ABORT
    6364      ENDIF
     
    6667      ierr = NF_INQ_VARID (nid, "controle", nvarid)
    6768      IF (ierr .NE. NF_NOERR) THEN
    68          PRINT*, "dynetat0: Le champ <controle> est absent"
     69         write(lunout,*)"dynetat0: Le champ <controle> est absent"
    6970         CALL abort
    7071      ENDIF
     
    7576#endif
    7677      IF (ierr .NE. NF_NOERR) THEN
    77          PRINT*, "dynetat0: Lecture echoue pour <controle>"
     78         write(lunout,*)"dynetat0: Lecture echoue pour <controle>"
    7879         CALL abort
    7980      ENDIF
     
    121122c
    122123c
    123       PRINT*,'rad,omeg,g,cpp,kappa',rad,omeg,g,cpp,kappa
     124      write(lunout,*)'dynetat0: rad,omeg,g,cpp,kappa',
     125     &               rad,omeg,g,cpp,kappa
    124126
    125127      IF(   im.ne.iim           )  THEN
     
    136138      ierr = NF_INQ_VARID (nid, "rlonu", nvarid)
    137139      IF (ierr .NE. NF_NOERR) THEN
    138          PRINT*, "dynetat0: Le champ <rlonu> est absent"
     140         write(lunout,*)"dynetat0: Le champ <rlonu> est absent"
    139141         CALL abort
    140142      ENDIF
     
    145147#endif
    146148      IF (ierr .NE. NF_NOERR) THEN
    147          PRINT*, "dynetat0: Lecture echouee pour <rlonu>"
     149         write(lunout,*)"dynetat0: Lecture echouee pour <rlonu>"
    148150         CALL abort
    149151      ENDIF
     
    151153      ierr = NF_INQ_VARID (nid, "rlatu", nvarid)
    152154      IF (ierr .NE. NF_NOERR) THEN
    153          PRINT*, "dynetat0: Le champ <rlatu> est absent"
     155         write(lunout,*)"dynetat0: Le champ <rlatu> est absent"
    154156         CALL abort
    155157      ENDIF
     
    160162#endif
    161163      IF (ierr .NE. NF_NOERR) THEN
    162          PRINT*, "dynetat0: Lecture echouee pour <rlatu>"
     164         write(lunout,*)"dynetat0: Lecture echouee pour <rlatu>"
    163165         CALL abort
    164166      ENDIF
     
    166168      ierr = NF_INQ_VARID (nid, "rlonv", nvarid)
    167169      IF (ierr .NE. NF_NOERR) THEN
    168          PRINT*, "dynetat0: Le champ <rlonv> est absent"
     170         write(lunout,*)"dynetat0: Le champ <rlonv> est absent"
    169171         CALL abort
    170172      ENDIF
     
    175177#endif
    176178      IF (ierr .NE. NF_NOERR) THEN
    177          PRINT*, "dynetat0: Lecture echouee pour <rlonv>"
     179         write(lunout,*)"dynetat0: Lecture echouee pour <rlonv>"
    178180         CALL abort
    179181      ENDIF
     
    181183      ierr = NF_INQ_VARID (nid, "rlatv", nvarid)
    182184      IF (ierr .NE. NF_NOERR) THEN
    183          PRINT*, "dynetat0: Le champ <rlatv> est absent"
     185         write(lunout,*)"dynetat0: Le champ <rlatv> est absent"
    184186         CALL abort
    185187      ENDIF
     
    190192#endif
    191193      IF (ierr .NE. NF_NOERR) THEN
    192          PRINT*, "dynetat0: Lecture echouee pour rlatv"
     194         write(lunout,*)"dynetat0: Lecture echouee pour rlatv"
    193195         CALL abort
    194196      ENDIF
     
    196198      ierr = NF_INQ_VARID (nid, "cu", nvarid)
    197199      IF (ierr .NE. NF_NOERR) THEN
    198          PRINT*, "dynetat0: Le champ <cu> est absent"
     200         write(lunout,*)"dynetat0: Le champ <cu> est absent"
    199201         CALL abort
    200202      ENDIF
     
    205207#endif
    206208      IF (ierr .NE. NF_NOERR) THEN
    207          PRINT*, "dynetat0: Lecture echouee pour <cu>"
     209         write(lunout,*)"dynetat0: Lecture echouee pour <cu>"
    208210         CALL abort
    209211      ENDIF
     
    211213      ierr = NF_INQ_VARID (nid, "cv", nvarid)
    212214      IF (ierr .NE. NF_NOERR) THEN
    213          PRINT*, "dynetat0: Le champ <cv> est absent"
     215         write(lunout,*)"dynetat0: Le champ <cv> est absent"
    214216         CALL abort
    215217      ENDIF
     
    220222#endif
    221223      IF (ierr .NE. NF_NOERR) THEN
    222          PRINT*, "dynetat0: Lecture echouee pour <cv>"
     224         write(lunout,*)"dynetat0: Lecture echouee pour <cv>"
    223225         CALL abort
    224226      ENDIF
     
    226228      ierr = NF_INQ_VARID (nid, "aire", nvarid)
    227229      IF (ierr .NE. NF_NOERR) THEN
    228          PRINT*, "dynetat0: Le champ <aire> est absent"
     230         write(lunout,*)"dynetat0: Le champ <aire> est absent"
    229231         CALL abort
    230232      ENDIF
     
    235237#endif
    236238      IF (ierr .NE. NF_NOERR) THEN
    237          PRINT*, "dynetat0: Lecture echouee pour <aire>"
     239         write(lunout,*)"dynetat0: Lecture echouee pour <aire>"
    238240         CALL abort
    239241      ENDIF
     
    241243      ierr = NF_INQ_VARID (nid, "phisinit", nvarid)
    242244      IF (ierr .NE. NF_NOERR) THEN
    243          PRINT*, "dynetat0: Le champ <phisinit> est absent"
     245         write(lunout,*)"dynetat0: Le champ <phisinit> est absent"
    244246         CALL abort
    245247      ENDIF
     
    250252#endif
    251253      IF (ierr .NE. NF_NOERR) THEN
    252          PRINT*, "dynetat0: Lecture echouee pour <phisinit>"
     254         write(lunout,*)"dynetat0: Lecture echouee pour <phisinit>"
    253255         CALL abort
    254256      ENDIF
     
    256258      ierr = NF_INQ_VARID (nid, "temps", nvarid)
    257259      IF (ierr .NE. NF_NOERR) THEN
    258          PRINT*, "dynetat0: Le champ <temps> est absent"
     260         write(lunout,*)"dynetat0: Le champ <temps> est absent"
    259261         CALL abort
    260262      ENDIF
     
    265267#endif
    266268      IF (ierr .NE. NF_NOERR) THEN
    267          PRINT*, "dynetat0: Lecture echouee <temps>"
     269         write(lunout,*)"dynetat0: Lecture echouee <temps>"
    268270         CALL abort
    269271      ENDIF
     
    271273      ierr = NF_INQ_VARID (nid, "ucov", nvarid)
    272274      IF (ierr .NE. NF_NOERR) THEN
    273          PRINT*, "dynetat0: Le champ <ucov> est absent"
     275         write(lunout,*)"dynetat0: Le champ <ucov> est absent"
    274276         CALL abort
    275277      ENDIF
     
    280282#endif
    281283      IF (ierr .NE. NF_NOERR) THEN
    282          PRINT*, "dynetat0: Lecture echouee pour <ucov>"
     284         write(lunout,*)"dynetat0: Lecture echouee pour <ucov>"
    283285         CALL abort
    284286      ENDIF
     
    286288      ierr = NF_INQ_VARID (nid, "vcov", nvarid)
    287289      IF (ierr .NE. NF_NOERR) THEN
    288          PRINT*, "dynetat0: Le champ <vcov> est absent"
     290         write(lunout,*)"dynetat0: Le champ <vcov> est absent"
    289291         CALL abort
    290292      ENDIF
     
    295297#endif
    296298      IF (ierr .NE. NF_NOERR) THEN
    297          PRINT*, "dynetat0: Lecture echouee pour <vcov>"
     299         write(lunout,*)"dynetat0: Lecture echouee pour <vcov>"
    298300         CALL abort
    299301      ENDIF
     
    301303      ierr = NF_INQ_VARID (nid, "teta", nvarid)
    302304      IF (ierr .NE. NF_NOERR) THEN
    303          PRINT*, "dynetat0: Le champ <teta> est absent"
     305         write(lunout,*)"dynetat0: Le champ <teta> est absent"
    304306         CALL abort
    305307      ENDIF
     
    310312#endif
    311313      IF (ierr .NE. NF_NOERR) THEN
    312          PRINT*, "dynetat0: Lecture echouee pour <teta>"
     314         write(lunout,*)"dynetat0: Lecture echouee pour <teta>"
    313315         CALL abort
    314316      ENDIF
     
    319321        ierr =  NF_INQ_VARID (nid, tname(iq), nvarid)
    320322        IF (ierr .NE. NF_NOERR) THEN
    321            PRINT*, "dynetat0: Le champ <"//tname(iq)//"> est absent"
    322            PRINT*, "          Il est donc initialise a zero"
     323           write(lunout,*)"dynetat0: Le champ <"//tname(iq)//
     324     &                    "> est absent"
     325           write(lunout,*)"          Il est donc initialise a zero"
    323326           q(:,:,iq)=0.
    324327        ELSE
     
    329332#endif
    330333          IF (ierr .NE. NF_NOERR) THEN
    331              PRINT*, "dynetat0: Lecture echouee pour "//tname(iq)
    332              CALL abort
     334            write(lunout,*)"dynetat0: Lecture echouee pour "//tname(iq)
     335            CALL abort
    333336          ENDIF
    334337        ENDIF
     
    338341      ierr = NF_INQ_VARID (nid, "masse", nvarid)
    339342      IF (ierr .NE. NF_NOERR) THEN
    340          PRINT*, "dynetat0: Le champ <masse> est absent"
     343         write(lunout,*)"dynetat0: Le champ <masse> est absent"
    341344         CALL abort
    342345      ENDIF
     
    347350#endif
    348351      IF (ierr .NE. NF_NOERR) THEN
    349          PRINT*, "dynetat0: Lecture echouee pour <masse>"
     352         write(lunout,*)"dynetat0: Lecture echouee pour <masse>"
    350353         CALL abort
    351354      ENDIF
     
    353356      ierr = NF_INQ_VARID (nid, "ps", nvarid)
    354357      IF (ierr .NE. NF_NOERR) THEN
    355          PRINT*, "dynetat0: Le champ <ps> est absent"
     358         write(lunout,*)"dynetat0: Le champ <ps> est absent"
    356359         CALL abort
    357360      ENDIF
     
    362365#endif
    363366      IF (ierr .NE. NF_NOERR) THEN
    364          PRINT*, "dynetat0: Lecture echouee pour <ps>"
     367         write(lunout,*)"dynetat0: Lecture echouee pour <ps>"
    365368         CALL abort
    366369      ENDIF
  • LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/dynredem.F

    r1299 r1380  
    2626#include "description.h"
    2727#include "serre.h"
     28#include "iniprint.h"
    2829
    2930c   Arguments:
     
    126127      ierr = NF_CREATE(fichnom, NF_CLOBBER, nid)
    127128      IF (ierr.NE.NF_NOERR) THEN
    128          WRITE(6,*)" Pb d ouverture du fichier "//fichnom
    129          WRITE(6,*)' ierr = ', ierr
     129         write(lunout,*)"dynredem0: Pb d ouverture du fichier "
     130     &                  //trim(fichnom)
     131         write(lunout,*)' ierr = ', ierr
    130132         CALL ABORT
    131133      ENDIF
     
    509511      ierr = NF_CLOSE(nid) ! fermer le fichier
    510512
    511       PRINT*,'iim,jjm,llm,iday_end',iim,jjm,llm,iday_end
    512       PRINT*,'rad,omeg,g,cpp,kappa',
    513      ,        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
    514517
    515518      RETURN
     
    531534#include "comgeom.h"
    532535#include "temps.h"
     536#include "iniprint.h"
     537
    533538
    534539      INTEGER l
     
    557562      ierr = NF_OPEN(fichnom, NF_WRITE, nid)
    558563      IF (ierr .NE. NF_NOERR) THEN
    559          PRINT*, "Pb. d ouverture "//fichnom
     564         write(lunout,*)"dynredem1: Pb. d ouverture "//trim(fichnom)
    560565         CALL abort
    561566      ENDIF
     
    566571      ierr = NF_INQ_VARID(nid, "temps", nvarid)
    567572      IF (ierr .NE. NF_NOERR) THEN
    568          print *, NF_STRERROR(ierr)
     573         write(lunout,*) NF_STRERROR(ierr)
    569574         abort_message='Variable temps n est pas definie'
    570575         CALL abort_gcm(modname,abort_message,ierr)
     
    575580      ierr = NF_PUT_VAR1_REAL (nid,nvarid,nb,time)
    576581#endif
    577       PRINT*, "Enregistrement pour ", nb, time
     582      write(lunout,*) "dynredem1: Enregistrement pour ", nb, time
    578583
    579584c
     
    602607      ierr = NF_INQ_VARID(nid, "ucov", nvarid)
    603608      IF (ierr .NE. NF_NOERR) THEN
    604          PRINT*, "Variable ucov n est pas definie"
    605          CALL abort
     609         abort_message="Variable ucov n est pas definie"
     610         ierr=1
     611         CALL abort_gcm(modname,abort_message,ierr)
    606612      ENDIF
    607613#ifdef NC_DOUBLE
     
    613619      ierr = NF_INQ_VARID(nid, "vcov", nvarid)
    614620      IF (ierr .NE. NF_NOERR) THEN
    615          PRINT*, "Variable vcov n est pas definie"
    616          CALL abort
     621         abort_message="Variable vcov n est pas definie"
     622         ierr=1
     623         CALL abort_gcm(modname,abort_message,ierr)
    617624      ENDIF
    618625#ifdef NC_DOUBLE
     
    624631      ierr = NF_INQ_VARID(nid, "teta", nvarid)
    625632      IF (ierr .NE. NF_NOERR) THEN
    626          PRINT*, "Variable teta n est pas definie"
    627          CALL abort
     633         abort_message="Variable teta n est pas definie"
     634         ierr=1
     635         CALL abort_gcm(modname,abort_message,ierr)
    628636      ENDIF
    629637#ifdef NC_DOUBLE
     
    637645         ierr_file = NF_OPEN ("start_trac.nc", NF_NOWRITE,nid_trac)
    638646         IF (ierr_file .NE.NF_NOERR) THEN
    639             write(6,*)' Pb d''ouverture du fichier start_trac.nc'
    640             write(6,*)' ierr = ', ierr_file
     647            write(lunout,*)'dynredem1: Pb d''ouverture du fichier',
     648     &                     ' start_trac.nc'
     649            write(lunout,*)' ierr = ', ierr_file
    641650         ENDIF
    642651      END IF
     
    648657            ierr = NF_INQ_VARID(nid, tname(iq), nvarid)
    649658            IF (ierr .NE. NF_NOERR) THEN
    650                PRINT*, "Variable  tname(iq) n est pas definie"
    651                CALL abort
     659               abort_message="Variable  tname(iq) n est pas definie"
     660               ierr=1
     661               CALL abort_gcm(modname,abort_message,ierr)
    652662            ENDIF
    653663#ifdef NC_DOUBLE
     
    661671             ierr = NF_INQ_VARID (nid_trac, tname(iq), nvarid_trac)
    662672             IF (ierr .NE. NF_NOERR) THEN
    663                 PRINT*, tname(iq),"est absent de start_trac.nc"
     673                write(lunout,*) "dynredem1: ",trim(tname(iq)),
     674     &                          " est absent de start_trac.nc"
    664675                ierr = NF_INQ_VARID(nid, tname(iq), nvarid)
    665676                IF (ierr .NE. NF_NOERR) THEN
    666                    PRINT*, "Variable ", tname(iq)," n est pas definie"
    667                    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)
    668681                ENDIF
    669682#ifdef NC_DOUBLE
     
    674687               
    675688             ELSE
    676                 PRINT*, tname(iq), "est present dans start_trac.nc"
     689                write(lunout,*) "dynredem1: ",trim(tname(iq)),
     690     &              " est present dans start_trac.nc"
    677691#ifdef NC_DOUBLE
    678692               ierr = NF_GET_VAR_DOUBLE(nid_trac, nvarid_trac, trac_tmp)
     
    681695#endif
    682696                IF (ierr .NE. NF_NOERR) THEN
    683                    PRINT*, "Lecture echouee pour", tname(iq)
    684                    CALL abort
     697                   abort_message="dynredem1: Lecture echouee pour"//
     698     &                    trim(tname(iq))
     699                   ierr=1
     700                   CALL abort_gcm(modname,abort_message,ierr)
    685701                ENDIF
    686702                ierr = NF_INQ_VARID(nid, tname(iq), nvarid)
    687703                IF (ierr .NE. NF_NOERR) THEN
    688                    PRINT*, "Variable ", tname(iq)," n est pas definie"
    689                    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)
    690708                ENDIF
    691709#ifdef NC_DOUBLE
     
    701719             ierr = NF_INQ_VARID(nid, tname(iq), nvarid)
    702720             IF (ierr .NE. NF_NOERR) THEN
    703                 PRINT*, "Variable  tname(iq) n est pas definie"
    704                 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)
    705725             ENDIF
    706726#ifdef NC_DOUBLE
     
    717737      ierr = NF_INQ_VARID(nid, "masse", nvarid)
    718738      IF (ierr .NE. NF_NOERR) THEN
    719          PRINT*, "Variable masse n est pas definie"
    720          CALL abort
     739         abort_message="dynredem1: Variable masse n est pas definie"
     740         ierr=1
     741         CALL abort_gcm(modname,abort_message,ierr)
    721742      ENDIF
    722743#ifdef NC_DOUBLE
     
    728749      ierr = NF_INQ_VARID(nid, "ps", nvarid)
    729750      IF (ierr .NE. NF_NOERR) THEN
    730          PRINT*, "Variable ps n est pas definie"
    731          CALL abort
     751         abort_message="dynredem1: Variable ps n est pas definie"
     752         ierr=1
     753         CALL abort_gcm(modname,abort_message,ierr)
    732754      ENDIF
    733755#ifdef NC_DOUBLE
  • LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/gcm.F

    r1357 r1380  
    248248          CALL iniacademic(vcov,ucov,teta,q,masse,ps,phis,time_0)
    249249        endif
    250 !#ifdef CPP_IOIPSL
     250
    251251        if (planet_type.eq."earth") then
    252252#ifdef CPP_EARTH
    253253! Load an Earth-format start file
    254254         CALL dynetat0("start.nc",vcov,ucov,
    255      .              teta,q,masse,ps,phis, time_0)
    256 #endif
     255     &              teta,q,masse,ps,phis, time_0)
     256#endif
     257        ! SW model also has Earth-format start files
     258        ! (but can be used without the CPP_EARTH directive)
     259          if (iflag_phys.eq.0) then
     260            CALL dynetat0("start.nc",vcov,ucov,
     261     &              teta,q,masse,ps,phis, time_0)
     262          endif
     263       
    257264        endif ! of if (planet_type.eq."earth")
     265       
    258266c       write(73,*) 'ucov',ucov
    259267c       write(74,*) 'vcov',vcov
  • LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3d/iniconst.F

    r1299 r1380  
    1919#include "temps.h"
    2020#include "comvert.h"
     21#include "iniprint.h"
    2122
    2223
     
    4849      r       = cpp * kappa
    4950
    50       PRINT*,' R  CP  Kappa ',  r , cpp,  kappa
     51      write(lunout,*)'iniconst: R  CP  Kappa ',  r , cpp,  kappa
    5152c
    5253c-----------------------------------------------------------------------
  • LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/dynetat0.F

    r1146 r1380  
    11!
    2 ! $Header$
     2! $Id $
    33!
    44      SUBROUTINE dynetat0(fichnom,vcov,ucov,
    55     .                    teta,q,masse,ps,phis,time)
     6
    67      USE infotrac
    78      IMPLICIT NONE
     
    3334#include "serre.h"
    3435#include "logic.h"
     36#include "iniprint.h"
    3537
    3638c   Arguments:
     
    5254
    5355c-----------------------------------------------------------------------
     56
    5457c  Ouverture NetCDF du fichier etat initial
    5558
    5659      ierr = NF_OPEN (fichnom, NF_NOWRITE,nid)
    5760      IF (ierr.NE.NF_NOERR) THEN
    58         write(6,*)' Pb d''ouverture du fichier start.nc'
    59         write(6,*)' ierr = ', ierr
     61        write(lunout,*)'dynetat0: Pb d''ouverture du fichier start.nc'
     62        write(lunout,*)' ierr = ', ierr
    6063        CALL ABORT
    6164      ENDIF
     
    6467      ierr = NF_INQ_VARID (nid, "controle", nvarid)
    6568      IF (ierr .NE. NF_NOERR) THEN
    66          PRINT*, "dynetat0: Le champ <controle> est absent"
     69         write(lunout,*)"dynetat0: Le champ <controle> est absent"
    6770         CALL abort
    6871      ENDIF
     
    7376#endif
    7477      IF (ierr .NE. NF_NOERR) THEN
    75          PRINT*, "dynetat0: Lecture echoue pour <controle>"
     78         write(lunout,*)"dynetat0: Lecture echoue pour <controle>"
    7679         CALL abort
    7780      ENDIF
     
    119122c
    120123c
    121       PRINT*,'rad,omeg,g,cpp,kappa',rad,omeg,g,cpp,kappa
     124      write(lunout,*)'dynetat0: rad,omeg,g,cpp,kappa',
     125     &               rad,omeg,g,cpp,kappa
    122126
    123127      IF(   im.ne.iim           )  THEN
     
    134138      ierr = NF_INQ_VARID (nid, "rlonu", nvarid)
    135139      IF (ierr .NE. NF_NOERR) THEN
    136          PRINT*, "dynetat0: Le champ <rlonu> est absent"
     140         write(lunout,*)"dynetat0: Le champ <rlonu> est absent"
    137141         CALL abort
    138142      ENDIF
     
    143147#endif
    144148      IF (ierr .NE. NF_NOERR) THEN
    145          PRINT*, "dynetat0: Lecture echouee pour <rlonu>"
     149         write(lunout,*)"dynetat0: Lecture echouee pour <rlonu>"
    146150         CALL abort
    147151      ENDIF
     
    149153      ierr = NF_INQ_VARID (nid, "rlatu", nvarid)
    150154      IF (ierr .NE. NF_NOERR) THEN
    151          PRINT*, "dynetat0: Le champ <rlatu> est absent"
     155         write(lunout,*)"dynetat0: Le champ <rlatu> est absent"
    152156         CALL abort
    153157      ENDIF
     
    158162#endif
    159163      IF (ierr .NE. NF_NOERR) THEN
    160          PRINT*, "dynetat0: Lecture echouee pour <rlatu>"
     164         write(lunout,*)"dynetat0: Lecture echouee pour <rlatu>"
    161165         CALL abort
    162166      ENDIF
     
    164168      ierr = NF_INQ_VARID (nid, "rlonv", nvarid)
    165169      IF (ierr .NE. NF_NOERR) THEN
    166          PRINT*, "dynetat0: Le champ <rlonv> est absent"
     170         write(lunout,*)"dynetat0: Le champ <rlonv> est absent"
    167171         CALL abort
    168172      ENDIF
     
    173177#endif
    174178      IF (ierr .NE. NF_NOERR) THEN
    175          PRINT*, "dynetat0: Lecture echouee pour <rlonv>"
     179         write(lunout,*)"dynetat0: Lecture echouee pour <rlonv>"
    176180         CALL abort
    177181      ENDIF
     
    179183      ierr = NF_INQ_VARID (nid, "rlatv", nvarid)
    180184      IF (ierr .NE. NF_NOERR) THEN
    181          PRINT*, "dynetat0: Le champ <rlatv> est absent"
     185         write(lunout,*)"dynetat0: Le champ <rlatv> est absent"
    182186         CALL abort
    183187      ENDIF
     
    188192#endif
    189193      IF (ierr .NE. NF_NOERR) THEN
    190          PRINT*, "dynetat0: Lecture echouee pour rlatv"
     194         write(lunout,*)"dynetat0: Lecture echouee pour rlatv"
    191195         CALL abort
    192196      ENDIF
     
    194198      ierr = NF_INQ_VARID (nid, "cu", nvarid)
    195199      IF (ierr .NE. NF_NOERR) THEN
    196          PRINT*, "dynetat0: Le champ <cu> est absent"
     200         write(lunout,*)"dynetat0: Le champ <cu> est absent"
    197201         CALL abort
    198202      ENDIF
     
    203207#endif
    204208      IF (ierr .NE. NF_NOERR) THEN
    205          PRINT*, "dynetat0: Lecture echouee pour <cu>"
     209         write(lunout,*)"dynetat0: Lecture echouee pour <cu>"
    206210         CALL abort
    207211      ENDIF
     
    209213      ierr = NF_INQ_VARID (nid, "cv", nvarid)
    210214      IF (ierr .NE. NF_NOERR) THEN
    211          PRINT*, "dynetat0: Le champ <cv> est absent"
     215         write(lunout,*)"dynetat0: Le champ <cv> est absent"
    212216         CALL abort
    213217      ENDIF
     
    218222#endif
    219223      IF (ierr .NE. NF_NOERR) THEN
    220          PRINT*, "dynetat0: Lecture echouee pour <cv>"
     224         write(lunout,*)"dynetat0: Lecture echouee pour <cv>"
    221225         CALL abort
    222226      ENDIF
     
    224228      ierr = NF_INQ_VARID (nid, "aire", nvarid)
    225229      IF (ierr .NE. NF_NOERR) THEN
    226          PRINT*, "dynetat0: Le champ <aire> est absent"
     230         write(lunout,*)"dynetat0: Le champ <aire> est absent"
    227231         CALL abort
    228232      ENDIF
     
    233237#endif
    234238      IF (ierr .NE. NF_NOERR) THEN
    235          PRINT*, "dynetat0: Lecture echouee pour <aire>"
     239         write(lunout,*)"dynetat0: Lecture echouee pour <aire>"
    236240         CALL abort
    237241      ENDIF
     
    239243      ierr = NF_INQ_VARID (nid, "phisinit", nvarid)
    240244      IF (ierr .NE. NF_NOERR) THEN
    241          PRINT*, "dynetat0: Le champ <phisinit> est absent"
     245         write(lunout,*)"dynetat0: Le champ <phisinit> est absent"
    242246         CALL abort
    243247      ENDIF
     
    248252#endif
    249253      IF (ierr .NE. NF_NOERR) THEN
    250          PRINT*, "dynetat0: Lecture echouee pour <phisinit>"
     254         write(lunout,*)"dynetat0: Lecture echouee pour <phisinit>"
    251255         CALL abort
    252256      ENDIF
     
    254258      ierr = NF_INQ_VARID (nid, "temps", nvarid)
    255259      IF (ierr .NE. NF_NOERR) THEN
    256          PRINT*, "dynetat0: Le champ <temps> est absent"
     260         write(lunout,*)"dynetat0: Le champ <temps> est absent"
    257261         CALL abort
    258262      ENDIF
     
    263267#endif
    264268      IF (ierr .NE. NF_NOERR) THEN
    265          PRINT*, "dynetat0: Lecture echouee <temps>"
     269         write(lunout,*)"dynetat0: Lecture echouee <temps>"
    266270         CALL abort
    267271      ENDIF
     
    269273      ierr = NF_INQ_VARID (nid, "ucov", nvarid)
    270274      IF (ierr .NE. NF_NOERR) THEN
    271          PRINT*, "dynetat0: Le champ <ucov> est absent"
     275         write(lunout,*)"dynetat0: Le champ <ucov> est absent"
    272276         CALL abort
    273277      ENDIF
     
    278282#endif
    279283      IF (ierr .NE. NF_NOERR) THEN
    280          PRINT*, "dynetat0: Lecture echouee pour <ucov>"
     284         write(lunout,*)"dynetat0: Lecture echouee pour <ucov>"
    281285         CALL abort
    282286      ENDIF
     
    284288      ierr = NF_INQ_VARID (nid, "vcov", nvarid)
    285289      IF (ierr .NE. NF_NOERR) THEN
    286          PRINT*, "dynetat0: Le champ <vcov> est absent"
     290         write(lunout,*)"dynetat0: Le champ <vcov> est absent"
    287291         CALL abort
    288292      ENDIF
     
    293297#endif
    294298      IF (ierr .NE. NF_NOERR) THEN
    295          PRINT*, "dynetat0: Lecture echouee pour <vcov>"
     299         write(lunout,*)"dynetat0: Lecture echouee pour <vcov>"
    296300         CALL abort
    297301      ENDIF
     
    299303      ierr = NF_INQ_VARID (nid, "teta", nvarid)
    300304      IF (ierr .NE. NF_NOERR) THEN
    301          PRINT*, "dynetat0: Le champ <teta> est absent"
     305         write(lunout,*)"dynetat0: Le champ <teta> est absent"
    302306         CALL abort
    303307      ENDIF
     
    308312#endif
    309313      IF (ierr .NE. NF_NOERR) THEN
    310          PRINT*, "dynetat0: Lecture echouee pour <teta>"
    311          CALL abort
    312       ENDIF
    313 
    314 
     314         write(lunout,*)"dynetat0: Lecture echouee pour <teta>"
     315         CALL abort
     316      ENDIF
     317
     318
     319      IF(nqtot.GE.1) THEN
    315320      DO iq=1,nqtot
    316321        ierr =  NF_INQ_VARID (nid, tname(iq), nvarid)
    317322        IF (ierr .NE. NF_NOERR) THEN
    318            PRINT*, "dynetat0: Le champ <"//tname(iq)//"> est absent"
    319            PRINT*, "          Il est donc initialise a zero"
     323           write(lunout,*)"dynetat0: Le champ <"//tname(iq)//
     324     &                    "> est absent"
     325           write(lunout,*)"          Il est donc initialise a zero"
    320326           q(:,:,iq)=0.
    321327        ELSE
     
    326332#endif
    327333          IF (ierr .NE. NF_NOERR) THEN
    328              PRINT*, "dynetat0: Lecture echouee pour "//tname(iq)
    329              CALL abort
     334            write(lunout,*)"dynetat0: Lecture echouee pour "//tname(iq)
     335            CALL abort
    330336          ENDIF
    331337        ENDIF
    332338      ENDDO
     339      ENDIF
    333340
    334341      ierr = NF_INQ_VARID (nid, "masse", nvarid)
    335342      IF (ierr .NE. NF_NOERR) THEN
    336          PRINT*, "dynetat0: Le champ <masse> est absent"
     343         write(lunout,*)"dynetat0: Le champ <masse> est absent"
    337344         CALL abort
    338345      ENDIF
     
    343350#endif
    344351      IF (ierr .NE. NF_NOERR) THEN
    345          PRINT*, "dynetat0: Lecture echouee pour <masse>"
     352         write(lunout,*)"dynetat0: Lecture echouee pour <masse>"
    346353         CALL abort
    347354      ENDIF
     
    349356      ierr = NF_INQ_VARID (nid, "ps", nvarid)
    350357      IF (ierr .NE. NF_NOERR) THEN
    351          PRINT*, "dynetat0: Le champ <ps> est absent"
     358         write(lunout,*)"dynetat0: Le champ <ps> est absent"
    352359         CALL abort
    353360      ENDIF
     
    358365#endif
    359366      IF (ierr .NE. NF_NOERR) THEN
    360          PRINT*, "dynetat0: Lecture echouee pour <ps>"
     367         write(lunout,*)"dynetat0: Lecture echouee pour <ps>"
    361368         CALL abort
    362369      ENDIF
  • 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
  • LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/gcm.F

    r1357 r1380  
    274274          CALL iniacademic(vcov,ucov,teta,q,masse,ps,phis,time_0)
    275275        endif
    276 !#ifdef CPP_IOIPSL
     276
    277277        if (planet_type.eq."earth") then
    278278#ifdef CPP_EARTH
    279279! Load an Earth-format start file
    280280         CALL dynetat0("start.nc",vcov,ucov,
    281      .              teta,q,masse,ps,phis, time_0)
    282 #endif
     281     &              teta,q,masse,ps,phis, time_0)
     282#endif
     283        ! SW model also has Earth-format start files
     284        ! (but can be used without the CPP_EARTH directive)
     285          if (iflag_phys.eq.0) then
     286            CALL dynetat0("start.nc",vcov,ucov,
     287     &              teta,q,masse,ps,phis, time_0)
     288          endif
     289
    283290        endif ! of if (planet_type.eq."earth")
     291
    284292c       write(73,*) 'ucov',ucov
    285293c       write(74,*) 'vcov',vcov
  • LMDZ4/branches/LMDZ4V5.0-dev/libf/dyn3dpar/iniconst.F

    r1299 r1380  
    55
    66      USE control_mod
     7
    78      IMPLICIT NONE
    89c
     
    1819#include "temps.h"
    1920#include "comvert.h"
     21#include "iniprint.h"
    2022
    2123
     
    4749      r       = cpp * kappa
    4850
    49       PRINT*,' R  CP  Kappa ',  r , cpp,  kappa
     51      write(lunout,*)'iniconst: R  CP  Kappa ',  r , cpp,  kappa
    5052c
    5153c-----------------------------------------------------------------------
Note: See TracChangeset for help on using the changeset viewer.