1 | ! |
---|
2 | ! $Id: iniphysiq.F 1403 2010-07-01 09:02:53Z fairhead $ |
---|
3 | ! |
---|
4 | c |
---|
5 | c |
---|
6 | SUBROUTINE iniphysiq(ngrid,nlayer, |
---|
7 | $ punjours, |
---|
8 | $ pdayref,ptimestep, |
---|
9 | $ plat,plon,parea,pcu,pcv, |
---|
10 | $ prad,pg,pr,pcpp) |
---|
11 | USE dimphy |
---|
12 | USE mod_grid_phy_lmdz |
---|
13 | USE mod_phys_lmdz_para |
---|
14 | USE comgeomphy |
---|
15 | |
---|
16 | IMPLICIT NONE |
---|
17 | c |
---|
18 | c======================================================================= |
---|
19 | c |
---|
20 | c subject: |
---|
21 | c -------- |
---|
22 | c |
---|
23 | c Initialisation for the physical parametrisations of the LMD |
---|
24 | c martian atmospheric general circulation modele. |
---|
25 | c |
---|
26 | c author: Frederic Hourdin 15 / 10 /93 |
---|
27 | c ------- |
---|
28 | c |
---|
29 | c arguments: |
---|
30 | c ---------- |
---|
31 | c |
---|
32 | c input: |
---|
33 | c ------ |
---|
34 | c |
---|
35 | c ngrid Size of the horizontal grid. |
---|
36 | c All internal loops are performed on that grid. |
---|
37 | c nlayer Number of vertical layers. |
---|
38 | c pdayref Day of reference for the simulation |
---|
39 | c firstcall True at the first call |
---|
40 | c lastcall True at the last call |
---|
41 | c pday Number of days counted from the North. Spring |
---|
42 | c equinoxe. |
---|
43 | c |
---|
44 | c======================================================================= |
---|
45 | c |
---|
46 | c----------------------------------------------------------------------- |
---|
47 | c declarations: |
---|
48 | c ------------- |
---|
49 | |
---|
50 | cym#include "dimensions.h" |
---|
51 | cym#include "dimphy.h" |
---|
52 | cym#include "comgeomphy.h" |
---|
53 | #include "comcstphy.h" |
---|
54 | REAL prad,pg,pr,pcpp,punjours |
---|
55 | |
---|
56 | INTEGER ngrid,nlayer |
---|
57 | REAL plat(ngrid),plon(ngrid),parea(klon_glo) |
---|
58 | REAL pcu(klon_glo),pcv(klon_glo) |
---|
59 | INTEGER pdayref |
---|
60 | INTEGER :: ibegin,iend,offset |
---|
61 | |
---|
62 | REAL ptimestep |
---|
63 | CHARACTER (LEN=20) :: modname='iniphysiq' |
---|
64 | CHARACTER (LEN=80) :: abort_message |
---|
65 | |
---|
66 | IF (nlayer.NE.klev) THEN |
---|
67 | PRINT*,'STOP in inifis' |
---|
68 | PRINT*,'Probleme de dimensions :' |
---|
69 | PRINT*,'nlayer = ',nlayer |
---|
70 | PRINT*,'klev = ',klev |
---|
71 | abort_message = '' |
---|
72 | CALL abort_gcm (modname,abort_message,1) |
---|
73 | ENDIF |
---|
74 | |
---|
75 | IF (ngrid.NE.klon_glo) THEN |
---|
76 | PRINT*,'STOP in inifis' |
---|
77 | PRINT*,'Probleme de dimensions :' |
---|
78 | PRINT*,'ngrid = ',ngrid |
---|
79 | PRINT*,'klon = ',klon_glo |
---|
80 | abort_message = '' |
---|
81 | CALL abort_gcm (modname,abort_message,1) |
---|
82 | ENDIF |
---|
83 | c$OMP PARALLEL PRIVATE(ibegin,iend) |
---|
84 | c$OMP+ SHARED(parea,pcu,pcv,plon,plat) |
---|
85 | |
---|
86 | offset=klon_mpi_begin-1 |
---|
87 | airephy(1:klon_omp)=parea(offset+klon_omp_begin: |
---|
88 | & offset+klon_omp_end) |
---|
89 | cuphy(1:klon_omp)=pcu(offset+klon_omp_begin:offset+klon_omp_end) |
---|
90 | cvphy(1:klon_omp)=pcv(offset+klon_omp_begin:offset+klon_omp_end) |
---|
91 | rlond(1:klon_omp)=plon(offset+klon_omp_begin:offset+klon_omp_end) |
---|
92 | rlatd(1:klon_omp)=plat(offset+klon_omp_begin:offset+klon_omp_end) |
---|
93 | |
---|
94 | ! call suphel |
---|
95 | ! prad,pg,pr,pcpp |
---|
96 | rradius=prad |
---|
97 | rg=pg |
---|
98 | rr=pr |
---|
99 | rcpp=pcpp |
---|
100 | |
---|
101 | |
---|
102 | |
---|
103 | c$OMP END PARALLEL |
---|
104 | |
---|
105 | print*,'ATTENTION !!! TRAVAILLER SUR INIPHYSIQ' |
---|
106 | print*,'CONTROLE DES LATITUDES, LONGITUDES, PARAMETRES ...' |
---|
107 | |
---|
108 | RETURN |
---|
109 | 9999 CONTINUE |
---|
110 | abort_message ='Cette version demande les fichier rnatur.dat |
---|
111 | & et surf.def' |
---|
112 | CALL abort_gcm (modname,abort_message,1) |
---|
113 | |
---|
114 | END |
---|