191 INTEGER(KIND=JPIM),
INTENT(IN) :: KULOUT
195 INTEGER(KIND=JPIM) :: IERR
196 REAL(KIND=JPRB) :: ZHOOK_HANDLE
200 #include "abor1.intfb.h"
201 #include "posnam.intfb.h"
202 #include "suscm.intfb.h"
215 print*,
'Dans SUOPHY ', kulout
538 IF(
nconf == 131)
THEN
696 CALL abor1(
' SU0PHY: NEPHYS_PCFULL')
717 WRITE(nulout,
'('' WARNING - NDPSFI RESET TO 0 '')')
753 WRITE(kulout,
'(1X,A,I3,A)')
' ! SU0PHY: ERROR NR ',ierr,
' !!!'
754 WRITE(kulout,
'(1X,A,A,A)')
' SU0PHY: options ',&
755 &
'LWRTC, LWRTCFOU ',&
756 &
'require the following options for physics:'
757 WRITE(kulout,
'(1X,A)')
' - LMPHYS=.TRUE. '
758 WRITE(kulout,
'(1X,A)')
' - LEPHYS=.FALSE. '
759 WRITE(kulout,
'(1X,A)')
' - LAGPHY=.FALSE. '
761 WRITE(kulout,
'(1X,A,A,A)')
' SU0PHY: option ',&
763 &
'require the following option for simplified physics:'
764 WRITE(kulout,
'(1X,A)')
' - LRAYSP=.TRUE. '
769 WRITE(kulout,
'(1X,A,I3,A)')
' ! SU0PHY: ERROR NR ',ierr,
' !!!'
770 WRITE(kulout,
'(1X,A,A,A)')
' SU0PHY: option ',&
772 &
'require the following options for physics:'
773 WRITE(kulout,
'(1X,A)')
' - LMPHYS=.TRUE. or LSIMPH=.TRUE.'
774 WRITE(kulout,
'(1X,A)')
' - LEPHYS=.FALSE. '
775 WRITE(kulout,
'(1X,A)')
' - LAGPHY=.FALSE. '
779 WRITE(kulout,
'(1X,A,I3,A)')
' ! SU0PHY: ERROR NR ',ierr,
' !!!'
780 WRITE(kulout,
'(1X,A,A,A)')
' SU0PHY: options ',&
782 &
'require the following options for physics:'
783 WRITE(kulout,
'(1X,A)')
' - LMPHYS=.TRUE. '
784 WRITE(kulout,
'(1X,A)')
' - LEPHYS=.FALSE. '
785 WRITE(kulout,
'(1X,A)')
' - LAGPHY=.FALSE. '
787 WRITE(kulout,
'(1X,A,A,A)')
' SU0PHY: options ',&
789 &
'require the following option for simplified physics:'
790 WRITE(kulout,
'(1X,A)')
' - LRAYSP=.TRUE. '
798 WRITE(kulout,
'(1X,A,I3,A)')
' ! SU0PHY: ERROR NR ',ierr,
' !!!'
799 WRITE(kulout,
'(1X,A,A,A)')
' SU0PHY: options ',&
802 WRITE(kulout,
'(1X,A)')
' - LRETCFOU=.FALSE. '
803 WRITE(kulout,
'(1X,A)')
' - LWRTCFOU=.FALSE. '
809 WRITE(kulout,
'(1X,A,I3,A)')
' ! SU0PHY: ERROR NR ',ierr,
' !!!'
810 WRITE(kulout,
'(1X,A,A,A)')
' SU0PHY: options ',&
813 WRITE(kulout,
'(1X,A)')
' - LSRCON=.TRUE. '
837 WRITE(kulout,
'(1X,A,I3,A)')
' ! SU0PHY: ERROR NR ',ierr,
' !!!'
838 WRITE(kulout,
'(1X,A)')
' SU0PHY: LPIL requires LCONDWT '
845 WRITE(kulout,
'(1X, A)')
'WARNING: LCVPRO requires NCONF=1'
855 WRITE(kulout,
'(1X,A,I3,A)')
' ! SU0PHY: ERROR NR ',ierr,
' !!!'
856 WRITE(kulout,
'(1X,A)') .OR.
' SU0PHY: LPHSPSH requires L3MTLSTRAPRO '
864 WRITE(kulout,
'(1X,A,I3,A)')
' ! SU0PHY: ERROR NR ',ierr,
' !!!'
865 WRITE(kulout,
'(1X,A)')
' SU0PHY: LMPA and LSIMPH cannot be both to T.'
871 CALL abor1(
' SU0PHY: ABOR1 CALLED')
879 WRITE(
unit=kulout,fmt=
'('' COMMON YOMPHY '')')
882 WRITE(
unit=kulout,fmt=
'('' LCONDWT='',L5,'' LCVPP = '',L5,&
883 & '' LCVPPKF = '',L5,&
884 & '' LNEIGE = '',L5,'' LRNUMX = '',L5,'' LCLSATUR = '',L5,'' LHUNEG = '',L5,&
885 & '' LVOIGT = '',L5,'' LVFULL = '',L5,&
886 & '' L2PHYS = '',L5,&
887 & '' LCVDD = '',L5,'' LCAPE= '',L5,'' LSRCON = '',L5,&
888 & '' LCVLIS = '',L5,'' LCVCAS= '',L5,'' LSRCONT= '',L5,'' LO3ABC= '',L5, &
889 & '' LAEROSEA = '',L5,'' LAEROLAN = '',L5,'' LAEROSOO = '',L5, &
890 & '' LAERODES = '',L5,'' LAEROVOL = '',L5,'' LAEROSUL = '',L5, &
891 & '' LRELAXT = '',L5,'' LRELAXW = '',L5,&
892 & '' LSLC = '',L5,'' LRRGUST= '',L5, &
893 & '' LNEWD = '',L5,'' LGLT= '',L5,'' LDIFCONS= '',L5, &
894 & '' LECT = '',L5,'' LECTFL = '',L5,'' LPBLE = '',L5,'' LCVPGY= '',L5, &
895 & '' LPTKE= '',L5,'' L3MT= '',L5 &
897 &
lcondwt,
lcvpp,
lcvppkf,
lneige,
lrnumx,
lclsatur,
lhuneg,
lvoigt,
lvfull,
l2phys,
lcvdd,&
904 &
lcondwt,
lcvpp,
lcvppkf,
lneige,
lrnumx,
lclsatur,
lhuneg,
lvoigt,
lvfull,
l2phys,
lcvdd,&
909 WRITE(
unit=kulout,fmt=
'('' LCVRA = '',L5 ,'' LFPCOR = '',L5&
910 & ,'' LNOIAS = '',L5 &
911 & ,'' LGWD = '',L5,'' LHMTO = '',L5,'' LRAY = '',L5 &
912 & ,'' LSFHYD = '',L5,'' LSTRA = '',L5,'' LTHERMO = '',L5,/&
913 & ,'' LVDIF = '',L5,'' LNEBCO = '',L5,'' LNEBT = '',L5,/&
914 & ,'' LRRMES = '',L5,'' LOZONE = '',L5,'' LNEBR = '',L5,/&
915 & ,'' LSNV = '',L5,'' LSOLV = '',L5,'' LFGEL = '',L5,/&
916 & ,'' LVGSN ='',L5,'' LND2DIFF ='',L5,/&
917 & ,'' LNEBN = '',L5,'' LNEBNXR = '',L5,'' LQXRTGH = '',L5,'' LSTRAS = '',L5,/&
918 & ,'' LHUCN = '',L5,'' LGWDC = '',L5,'' LRAYFM = '',L5,'' LRAYFM15= '',L5,/&
919 & ,'' LRAYLU = '',L5,'' LREWS = '',L5,'' LRPROX = '',L5 /&
920 & ,'' LRMIX = '',L5,'' LRSTAB = '',L5,''LRAUTOEV = '',L5 /&
921 & ,'' LRTPP = '',L5,'' LRTDL = '',L5,'' LRAYPL = '',L5 &
923 &
lcvra,
lfpcor,
lnoias,
lgwd,
lhmto,
lray,
lsfhyd,
lstra,
lthermo,
lvdif,
lnebco,&
928 WRITE(
unit=kulout,fmt=
'('' NBITER = '',I2,'' NDPSFI = '',I2,'' NPHYREP = '',I2)') &
930 WRITE(
unit=kulout,fmt=
'('' NOIR = '',I2)')
noir
933 WRITE(
unit=kulout,fmt=
'('' - - - - - - - - - -'')')
934 WRITE(
unit=kulout,fmt=
'('' COMMON YOMPHY'')')
935 WRITE(
unit=kulout,fmt=
'('' - - - - - - - - - -'')')
936 WRITE(
unit=kulout,fmt=
'(&
937 & '' LECT = '',L5,'' LAJUCV = '',L5,/, &
938 & '' LCVRAV3 = '',L5, &
939 & '' LNEBGR = '',L5,'' LNEBGY = '',L5,'' LBCCOND = '',L5 &
943 WRITE(
unit=kulout,fmt=
'('' - - - - - - - - -'')')
944 WRITE(
unit=kulout,fmt=
'('' MICROPHYSICS KEY '')')
945 WRITE(
unit=kulout,fmt=
'('' - - - - - - - - -'')')
946 WRITE(
unit=kulout,fmt=
'( '' LPROCLD = '',L5 &
947 &,'' LEVAPP = '',L5,'' LCOLLEC = '',L5,'' LNSMLIS = '',L5 &
948 &,'' LADJCLD = '',L5,'' LAUTONEB = '',L5,'' LSSD = '',L5)')&
951 WRITE(
unit=kulout,fmt=
'('' ALARO-0 cloud '')')
952 WRITE(
unit=kulout,fmt=
'('' LPIL = '',L5,'' LSTRAPRO = '',L5 &
953 &,'' LNEWSTAT = '',L5 &
954 &,'' LPHSPSH = '',L5 ,'' LSMROT = '',L5 &
955 &,'' LSMTPS = '',L5 ,'' LSMNIMBT = '',L5 &
956 &,'' L1DRHCRI = '',L5 ,'' LGWRHCRI = '',L5 &
957 &,'' NSMTBOT = '',I2,'' NSMDNEB = '',I2 &
958 &,'' NPRAG = '',I2,'' NPRAC = '',I2 &
964 WRITE(
unit=kulout,fmt=
'('' ALARO-0 prognostic convection '')')
966 &fmt=
'('' LCVPRO ='',L1,'' LCDDPRO ='',L1,'' LSCMF ='',L1)') &
969 WRITE(
unit=kulout,fmt=
'('' COMMON YOMSIMPHL '')')
970 WRITE(
unit=kulout,fmt=
'('' LSIMPH= '',L5,'' LTRAJPS = '',L5 &
971 & ,'' LTRAJPST = '',L5 &
972 & ,'' LSMOOTHD = '',L5,'' LSMOOTHA = '',L5,'' LSMOOTHB = '',L5 &
973 & ,'' LCLOUDS = '',L5 )')&
976 WRITE(
unit=kulout,fmt=
'('' LCVRASP = '',L5,'' LGWDSP = '',L5 &
977 & ,'' LRAYSP = '',L5,'' LSTRASP = '',L5,'' LVDIFSP = '',L5 &
978 & ,'' LRRMESSP = '',L5)')&
980 WRITE(
unit=kulout,fmt=
'('' COMMON YOMRCOEF '')')
981 WRITE(
unit=kulout,fmt=
'('' LRCOEF= '',L5 &
982 & ,'' LTLADDIA = '',L5,'' LGLOBRAD = '',L5)')&
989 WRITE(nulout,
'('' WARNING - 2 RADIATION SCHEMES... '')')
990 CALL abor1(
'SU0PHY: ABOR1 CALLED')
997 WRITE(nulout,fmt=
'('' ACPLUIS AND LRNUMX ARE NOT COMPATIBLE''&
998 & ,'' FOR THE MOMENT'')')
999 CALL abor1(
'SU0PHY: ABOR1 CALLED')
1016 WRITE(
unit=kulout,fmt=
'('' COMMON YOMARPHY '')')
1017 WRITE(
unit=kulout,fmt=
'('' LMPA = '',L5, &
1018 & '' LMICRO = '',L5,'' LTURB = '',L5, &
1019 & '' LMSE = '',L5,'' LKFBCONV = '',L5,&
1020 & '' LKFBD = '',L5,'' LKFBS = '',L5,&
1021 & '' LUSECHEM = '',L5,'' LORILAM = '',L5,'' LRDUST = '',L5)')&
1025 WRITE(
unit=kulout,fmt=
'('' COMMON YOEPHY '')')
1026 WRITE(
unit=kulout,fmt=
'('' LEPHYS = '',L5, &
1027 & '' LECOND = '',L5,'' LECUMF = '',L5 &
1031 WRITE(
unit=kulout,fmt=
'('' LEDCLD = '',L5,'' LEGWDG = '',L5 &
1032 & ,'' LEOZOC = '',L5,'' LEQNGT = '',L5 &
1033 & ,'' LEO3CH = '',L5)')&
1035 WRITE(
unit=kulout,fmt=
'('' LERADI = '',L5 &
1036 & ,'' LESHCV = '',L5,'' LESURF = '',L5,'' LEVDIF = '',L5 &
1037 & ,'' LEOCWA = '',L5,'' LEOCCO = '',L5,'' LEOCSA = '',L5 &
1038 & ,'' LECURR = '',L5,'' RTHRFRTI = '',F7.2 &
1041 WRITE(
unit=kulout,fmt=
'('' LEPCLD = '',L5,'' LEMETHOX= '',L5 &
1042 & ,'' LE4ALB = '',L5 &
1097 WRITE(
unit=kulout,fmt=
'('' LSPHLC = '',L5,'' LVDFLC = '',L5 &
1098 & ,'' LVDFDS = '',L5,'' LSDRLC = '',L5,'' LSDRDS = '',L5)')&
1100 WRITE(
unit=kulout,fmt=
'('' LCZDEB = '',L5,'' LZMCON = '',L5 &
1102 WRITE(
unit=kulout,fmt=
'('' ALPHA = '',E16.6)')
alpha
1103 WRITE(
unit=kulout,fmt=
'('' AH0 = '',E16.6,''m'')')
ah0
1104 WRITE(
unit=kulout,fmt=
'('' USTARL = '',E16.6,''m s-1'')')
ustarl
1105 WRITE(
unit=kulout,fmt=
'('' USTARS = '',E16.6,''m s-1'')')
ustars
1106 WRITE(
unit=kulout,fmt=
'('' ALANDZ0= '',E16.6,''m'')')
alandz0
1107 WRITE(
unit=kulout,fmt=
'('' ASEAZ0 = '',E16.6,''m'')')
aseaz0
1110 WRITE(
unit=kulout,fmt=
'('' LAGPHY = '',L5,'' THE PHYSICS PAC&
1111 & KAGE IS CALLED AFTER THE DYNAMICS IN LAGGED MODE'')')
lagphy
1113 WRITE(
unit=kulout,fmt=
'('' LAGPHY = '',L5,'' THE PHYSICS PAC&
1114 & KAGE IS CALLED BEFORE THE DYNAMICS '')')
lagphy
1117 WRITE(
unit=kulout,fmt=
'('' LPRGML = '',L4)')
lprgml
character(len=20) cgmixlen
integer(kind=jpim) nbiter
integer(kind=jpim) ndpsfi
subroutine su0phy(KULOUT)
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL false
character(len=1) ccoupling
integer(kind=jpim) nephys_pcfull
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL true
integer(kind=jpim) nphyrep
!$Id!Parameters for nlm real spfac!IM cf epmax real ptcrit real omtrain real dttrig real alpha real delta real betad COMMON cv30param nlm spfac &!IM cf ptcrit omtrain dttrig alpha
integer(kind=jpim), parameter jphyec
subroutine dr_hook(CDNAME, KSWITCH, PKEY)
!$Header!integer nvarmx s s unit
integer(kind=jpim), parameter jphymf
integer(kind=jpim) nsmdneb
integer(kind=jpim) nsmtbot
integer(kind=jpim), parameter jphyaro